├── .cargo └── config.toml ├── .codesandbox └── task.json ├── .devcontainer ├── build.sh ├── devcontainer.json ├── docker-compose.yml └── setup-user.sh ├── .docker ├── dev │ ├── .env.example │ ├── .gitignore │ ├── README.md │ ├── certs │ │ └── .gitkeep │ ├── compose.yml.example │ ├── nginx │ │ └── nginx.conf │ └── templates │ │ ├── nginx.conf │ │ └── openssl.conf └── selfhost │ ├── .env.example │ ├── .gitignore │ ├── compose.yml │ ├── config.example.json │ └── schema.json ├── .editorconfig ├── .gitattributes ├── .github ├── CLA.md ├── CODEOWNERS ├── FUNDING.yml ├── ISSUE_TEMPLATE │ ├── BUG-REPORT.yml │ ├── FEATURE-REQUEST.yml │ └── config.yml ├── actions │ ├── build-rust │ │ └── action.yml │ ├── cluster-auth │ │ └── action.yml │ ├── copilot-test │ │ └── action.yml │ ├── deploy │ │ ├── action.yml │ │ └── deploy.mjs │ ├── download-web │ │ └── action.yml │ ├── prepare-release │ │ └── action.yml │ ├── server-test-env │ │ └── action.yml │ ├── setup-node │ │ └── action.yml │ ├── setup-sentry │ │ └── action.yml │ └── setup-version │ │ └── action.yml ├── auto_assign.yml ├── deployment │ ├── front │ │ ├── Dockerfile │ │ ├── affine.nginx.conf │ │ └── nginx.conf │ └── node │ │ └── Dockerfile ├── helm │ ├── affine │ │ ├── .helmignore │ │ ├── Chart.yaml │ │ ├── charts │ │ │ ├── doc │ │ │ │ ├── Chart.yaml │ │ │ │ ├── templates │ │ │ │ │ ├── NOTES.txt │ │ │ │ │ ├── _helpers.tpl │ │ │ │ │ ├── deployment.yaml │ │ │ │ │ ├── service.yaml │ │ │ │ │ ├── serviceaccount.yaml │ │ │ │ │ └── tests │ │ │ │ │ │ └── test-connection.yaml │ │ │ │ └── values.yaml │ │ │ ├── gcloud-sql-proxy │ │ │ │ ├── .helmignore │ │ │ │ ├── Chart.yaml │ │ │ │ ├── templates │ │ │ │ │ ├── NOTES.txt │ │ │ │ │ ├── _helpers.tpl │ │ │ │ │ ├── deployment.yaml │ │ │ │ │ ├── service.yaml │ │ │ │ │ ├── serviceaccount.yaml │ │ │ │ │ └── tests │ │ │ │ │ │ └── test-connection.yaml │ │ │ │ └── values.yaml │ │ │ ├── graphql │ │ │ │ ├── Chart.yaml │ │ │ │ ├── templates │ │ │ │ │ ├── NOTES.txt │ │ │ │ │ ├── _helpers.tpl │ │ │ │ │ ├── deployment.yaml │ │ │ │ │ ├── migration.yaml │ │ │ │ │ ├── secret.yaml │ │ │ │ │ ├── service.yaml │ │ │ │ │ ├── serviceaccount.yaml │ │ │ │ │ └── tests │ │ │ │ │ │ └── test-connection.yaml │ │ │ │ └── values.yaml │ │ │ ├── renderer │ │ │ │ ├── Chart.yaml │ │ │ │ ├── templates │ │ │ │ │ ├── NOTES.txt │ │ │ │ │ ├── _helpers.tpl │ │ │ │ │ ├── deployment.yaml │ │ │ │ │ ├── service.yaml │ │ │ │ │ ├── serviceaccount.yaml │ │ │ │ │ └── tests │ │ │ │ │ │ └── test-connection.yaml │ │ │ │ └── values.yaml │ │ │ ├── sync │ │ │ │ ├── .helmignore │ │ │ │ ├── Chart.yaml │ │ │ │ ├── templates │ │ │ │ │ ├── NOTES.txt │ │ │ │ │ ├── _helpers.tpl │ │ │ │ │ ├── deployment.yaml │ │ │ │ │ ├── service.yaml │ │ │ │ │ ├── serviceaccount.yaml │ │ │ │ │ └── tests │ │ │ │ │ │ └── test-connection.yaml │ │ │ │ └── values.yaml │ │ │ └── web │ │ │ │ ├── .helmignore │ │ │ │ ├── Chart.yaml │ │ │ │ ├── templates │ │ │ │ ├── NOTES.txt │ │ │ │ ├── _helpers.tpl │ │ │ │ ├── deployment.yaml │ │ │ │ ├── service.yaml │ │ │ │ ├── serviceaccount.yaml │ │ │ │ └── tests │ │ │ │ │ └── test-connection.yaml │ │ │ │ └── values.yaml │ │ ├── templates │ │ │ ├── _helpers.tpl │ │ │ ├── configmap.yaml │ │ │ ├── indexer-secret.yaml │ │ │ ├── ingress.yaml │ │ │ ├── monitoring.yaml │ │ │ ├── pg-secret.yaml │ │ │ └── redis-secret.yaml │ │ └── values.yaml │ ├── releaser.yaml │ └── separate-config │ │ ├── Dockerfile_pgvector │ │ └── backend-config.yaml ├── labeler.yml ├── renovate.json └── workflows │ ├── auto-labeler.yml │ ├── build-images.yml │ ├── build-test.yml │ ├── copilot-test-automatically.yml │ ├── copilot-test.yml │ ├── pr-title-lint.yml │ ├── release-cloud.yml │ ├── release-desktop.yml │ ├── release-mobile.yml │ ├── release.yml │ ├── sync-i18n.yml │ └── windows-signer.yml ├── .gitignore ├── .husky └── pre-commit ├── .npmrc ├── .nvmrc ├── .prettierignore ├── .prettierrc ├── .taplo.toml ├── .vscode ├── extensions.json ├── launch.template.json └── settings.template.json ├── .yarn ├── patches │ ├── @atlaskit-pragmatic-drag-and-drop-npm-1.4.0-75c45f52d3.patch │ ├── @nestjs-testing-npm-10.4.15-d591a1705a.patch │ ├── decode-named-character-reference-npm-1.0.2-db17a755fd.patch │ ├── tinykeys-npm-2.1.0-819feeaed0.patch │ └── yjs-npm-13.6.21-c9f1f3397c.patch └── releases │ └── yarn-4.9.1.cjs ├── .yarnrc.yml ├── CHANGELOG.md ├── Cargo.lock ├── Cargo.toml ├── LICENSE ├── LICENSE-MIT ├── README.md ├── SECURITY.md ├── blocksuite ├── affine │ ├── all │ │ ├── package.json │ │ ├── src │ │ │ ├── __tests__ │ │ │ │ ├── adapters │ │ │ │ │ ├── html.unit.spec.ts │ │ │ │ │ ├── markdown.unit.spec.ts │ │ │ │ │ ├── notion-html.unit.spec.ts │ │ │ │ │ ├── notion-text.unit.spec.ts │ │ │ │ │ └── plain-text.unit.spec.ts │ │ │ │ ├── database │ │ │ │ │ ├── database.unit.spec.ts │ │ │ │ │ └── typesystem.unit.spec.ts │ │ │ │ └── utils │ │ │ │ │ ├── create-job.ts │ │ │ │ │ ├── get-provider.ts │ │ │ │ │ ├── nanoid-replacement.ts │ │ │ │ │ └── store.ts │ │ │ ├── blocks │ │ │ │ ├── attachment │ │ │ │ │ ├── index.ts │ │ │ │ │ ├── store.ts │ │ │ │ │ └── view.ts │ │ │ │ ├── bookmark │ │ │ │ │ ├── index.ts │ │ │ │ │ ├── store.ts │ │ │ │ │ └── view.ts │ │ │ │ ├── callout │ │ │ │ │ ├── index.ts │ │ │ │ │ ├── store.ts │ │ │ │ │ └── view.ts │ │ │ │ ├── code │ │ │ │ │ ├── index.ts │ │ │ │ │ ├── store.ts │ │ │ │ │ └── view.ts │ │ │ │ ├── data-view │ │ │ │ │ ├── index.ts │ │ │ │ │ ├── store.ts │ │ │ │ │ └── view.ts │ │ │ │ ├── database │ │ │ │ │ ├── index.ts │ │ │ │ │ ├── store.ts │ │ │ │ │ └── view.ts │ │ │ │ ├── divider │ │ │ │ │ ├── index.ts │ │ │ │ │ ├── store.ts │ │ │ │ │ └── view.ts │ │ │ │ ├── edgeless-text │ │ │ │ │ ├── index.ts │ │ │ │ │ ├── store.ts │ │ │ │ │ └── view.ts │ │ │ │ ├── embed-doc │ │ │ │ │ ├── index.ts │ │ │ │ │ ├── store.ts │ │ │ │ │ └── view.ts │ │ │ │ ├── embed │ │ │ │ │ ├── index.ts │ │ │ │ │ ├── store.ts │ │ │ │ │ └── view.ts │ │ │ │ ├── frame │ │ │ │ │ ├── index.ts │ │ │ │ │ ├── store.ts │ │ │ │ │ └── view.ts │ │ │ │ ├── image │ │ │ │ │ ├── index.ts │ │ │ │ │ ├── store.ts │ │ │ │ │ └── view.ts │ │ │ │ ├── latex │ │ │ │ │ ├── index.ts │ │ │ │ │ ├── store.ts │ │ │ │ │ └── view.ts │ │ │ │ ├── list │ │ │ │ │ ├── index.ts │ │ │ │ │ ├── store.ts │ │ │ │ │ └── view.ts │ │ │ │ ├── note │ │ │ │ │ ├── index.ts │ │ │ │ │ ├── store.ts │ │ │ │ │ └── view.ts │ │ │ │ ├── paragraph │ │ │ │ │ ├── index.ts │ │ │ │ │ ├── store.ts │ │ │ │ │ └── view.ts │ │ │ │ ├── root │ │ │ │ │ ├── index.ts │ │ │ │ │ ├── store.ts │ │ │ │ │ └── view.ts │ │ │ │ ├── surface-ref │ │ │ │ │ ├── index.ts │ │ │ │ │ ├── store.ts │ │ │ │ │ └── view.ts │ │ │ │ ├── surface │ │ │ │ │ ├── index.ts │ │ │ │ │ ├── store.ts │ │ │ │ │ └── view.ts │ │ │ │ └── table │ │ │ │ │ ├── index.ts │ │ │ │ │ ├── store.ts │ │ │ │ │ └── view.ts │ │ │ ├── components │ │ │ │ ├── block-selection.ts │ │ │ │ ├── block-zero-width.ts │ │ │ │ ├── caption.ts │ │ │ │ ├── card-style-dropdown-menu.ts │ │ │ │ ├── citation.ts │ │ │ │ ├── color-picker.ts │ │ │ │ ├── context-menu.ts │ │ │ │ ├── date-picker.ts │ │ │ │ ├── drop-indicator.ts │ │ │ │ ├── edgeless-line-styles-panel.ts │ │ │ │ ├── edgeless-line-width-panel.ts │ │ │ │ ├── edgeless-shape-color-picker.ts │ │ │ │ ├── embed-card-modal.ts │ │ │ │ ├── filterable-list.ts │ │ │ │ ├── highlight-dropdown-menu.ts │ │ │ │ ├── hover.ts │ │ │ │ ├── icon-button.ts │ │ │ │ ├── icons.ts │ │ │ │ ├── link-preview.ts │ │ │ │ ├── linked-doc-title.ts │ │ │ │ ├── notification.ts │ │ │ │ ├── open-doc-dropdown-menu.ts │ │ │ │ ├── peek.ts │ │ │ │ ├── portal.ts │ │ │ │ ├── resource.ts │ │ │ │ ├── size-dropdown-menu.ts │ │ │ │ ├── smooth-corner.ts │ │ │ │ ├── toast.ts │ │ │ │ ├── toggle-button.ts │ │ │ │ ├── toggle-switch.ts │ │ │ │ ├── toolbar.ts │ │ │ │ ├── tooltip-content-with-shortcut.ts │ │ │ │ ├── tooltip.ts │ │ │ │ └── view-dropdown-menu.ts │ │ │ ├── data-view │ │ │ │ ├── effects.ts │ │ │ │ └── index.ts │ │ │ ├── effects.ts │ │ │ ├── ext-loader │ │ │ │ └── index.ts │ │ │ ├── extensions │ │ │ │ ├── store.ts │ │ │ │ └── view.ts │ │ │ ├── foundation │ │ │ │ ├── clipboard.ts │ │ │ │ ├── store.ts │ │ │ │ └── view.ts │ │ │ ├── fragments │ │ │ │ ├── adapter-panel │ │ │ │ │ ├── index.ts │ │ │ │ │ └── view.ts │ │ │ │ ├── doc-title │ │ │ │ │ ├── index.ts │ │ │ │ │ └── view.ts │ │ │ │ ├── frame-panel │ │ │ │ │ ├── index.ts │ │ │ │ │ └── view.ts │ │ │ │ └── outline │ │ │ │ │ ├── index.ts │ │ │ │ │ └── view.ts │ │ │ ├── gfx │ │ │ │ ├── brush │ │ │ │ │ ├── index.ts │ │ │ │ │ ├── store.ts │ │ │ │ │ └── view.ts │ │ │ │ ├── connector │ │ │ │ │ ├── index.ts │ │ │ │ │ ├── store.ts │ │ │ │ │ └── view.ts │ │ │ │ ├── group │ │ │ │ │ ├── index.ts │ │ │ │ │ ├── store.ts │ │ │ │ │ └── view.ts │ │ │ │ ├── link │ │ │ │ │ ├── index.ts │ │ │ │ │ └── view.ts │ │ │ │ ├── mindmap │ │ │ │ │ ├── index.ts │ │ │ │ │ ├── store.ts │ │ │ │ │ └── view.ts │ │ │ │ ├── note │ │ │ │ │ ├── index.ts │ │ │ │ │ └── view.ts │ │ │ │ ├── pointer │ │ │ │ │ ├── index.ts │ │ │ │ │ └── view.ts │ │ │ │ ├── shape │ │ │ │ │ ├── index.ts │ │ │ │ │ ├── store.ts │ │ │ │ │ └── view.ts │ │ │ │ ├── template │ │ │ │ │ ├── index.ts │ │ │ │ │ └── view.ts │ │ │ │ ├── text │ │ │ │ │ ├── index.ts │ │ │ │ │ ├── store.ts │ │ │ │ │ └── view.ts │ │ │ │ └── turbo-renderer.ts │ │ │ ├── global │ │ │ │ ├── di.ts │ │ │ │ ├── disposable.ts │ │ │ │ ├── env.ts │ │ │ │ ├── exceptions.ts │ │ │ │ ├── gfx.ts │ │ │ │ ├── index.ts │ │ │ │ ├── lit.ts │ │ │ │ ├── types.ts │ │ │ │ └── utils.ts │ │ │ ├── index.ts │ │ │ ├── inlines │ │ │ │ ├── comment │ │ │ │ │ └── index.ts │ │ │ │ ├── footnote │ │ │ │ │ ├── index.ts │ │ │ │ │ ├── store.ts │ │ │ │ │ └── view.ts │ │ │ │ ├── latex │ │ │ │ │ ├── index.ts │ │ │ │ │ ├── store.ts │ │ │ │ │ └── view.ts │ │ │ │ ├── link │ │ │ │ │ ├── index.ts │ │ │ │ │ ├── store.ts │ │ │ │ │ └── view.ts │ │ │ │ ├── mention │ │ │ │ │ ├── index.ts │ │ │ │ │ └── view.ts │ │ │ │ ├── preset │ │ │ │ │ ├── index.ts │ │ │ │ │ ├── store.ts │ │ │ │ │ └── view.ts │ │ │ │ └── reference │ │ │ │ │ ├── index.ts │ │ │ │ │ ├── store.ts │ │ │ │ │ └── view.ts │ │ │ ├── model │ │ │ │ └── index.ts │ │ │ ├── rich-text │ │ │ │ ├── effects.ts │ │ │ │ └── index.ts │ │ │ ├── schemas.ts │ │ │ ├── shared │ │ │ │ ├── adapters.ts │ │ │ │ ├── commands.ts │ │ │ │ ├── consts.ts │ │ │ │ ├── selection.ts │ │ │ │ ├── services.ts │ │ │ │ ├── styles.ts │ │ │ │ ├── theme.ts │ │ │ │ ├── types.ts │ │ │ │ └── utils.ts │ │ │ ├── std │ │ │ │ ├── effects.ts │ │ │ │ ├── gfx.ts │ │ │ │ ├── index.ts │ │ │ │ └── inline.ts │ │ │ ├── store │ │ │ │ ├── index.ts │ │ │ │ └── test.ts │ │ │ ├── sync │ │ │ │ └── index.ts │ │ │ └── widgets │ │ │ │ ├── drag-handle │ │ │ │ ├── index.ts │ │ │ │ └── view.ts │ │ │ │ ├── edgeless-auto-connect │ │ │ │ ├── index.ts │ │ │ │ └── view.ts │ │ │ │ ├── edgeless-dragging-area │ │ │ │ ├── index.ts │ │ │ │ └── view.ts │ │ │ │ ├── edgeless-selected-rect │ │ │ │ ├── index.ts │ │ │ │ └── view.ts │ │ │ │ ├── edgeless-toolbar │ │ │ │ ├── index.ts │ │ │ │ └── view.ts │ │ │ │ ├── edgeless-zoom-toolbar │ │ │ │ ├── index.ts │ │ │ │ └── view.ts │ │ │ │ ├── frame-title │ │ │ │ ├── index.ts │ │ │ │ └── view.ts │ │ │ │ ├── keyboard-toolbar │ │ │ │ ├── index.ts │ │ │ │ └── view.ts │ │ │ │ ├── linked-doc │ │ │ │ ├── index.ts │ │ │ │ └── view.ts │ │ │ │ ├── note-slicer │ │ │ │ ├── index.ts │ │ │ │ └── view.ts │ │ │ │ ├── page-dragging-area │ │ │ │ ├── index.ts │ │ │ │ └── view.ts │ │ │ │ ├── remote-selection │ │ │ │ ├── index.ts │ │ │ │ └── view.ts │ │ │ │ ├── scroll-anchoring │ │ │ │ ├── index.ts │ │ │ │ └── view.ts │ │ │ │ ├── slash-menu │ │ │ │ ├── index.ts │ │ │ │ └── view.ts │ │ │ │ ├── toolbar │ │ │ │ ├── index.ts │ │ │ │ └── view.ts │ │ │ │ └── viewport-overlay │ │ │ │ ├── index.ts │ │ │ │ └── view.ts │ │ ├── tsconfig.json │ │ └── vitest.config.ts │ ├── blocks │ │ ├── attachment │ │ │ ├── package.json │ │ │ ├── src │ │ │ │ ├── adapters │ │ │ │ │ ├── extension.ts │ │ │ │ │ ├── index.ts │ │ │ │ │ ├── markdown.ts │ │ │ │ │ └── notion-html.ts │ │ │ │ ├── attachment-block.ts │ │ │ │ ├── attachment-edgeless-block.ts │ │ │ │ ├── attachment-service.ts │ │ │ │ ├── components │ │ │ │ │ ├── rename-model.ts │ │ │ │ │ └── styles.ts │ │ │ │ ├── configs │ │ │ │ │ ├── slash-menu.ts │ │ │ │ │ ├── toolbar.ts │ │ │ │ │ └── tooltips.ts │ │ │ │ ├── edgeless-clipboard-config.ts │ │ │ │ ├── effects.ts │ │ │ │ ├── embed.ts │ │ │ │ ├── index.ts │ │ │ │ ├── store.ts │ │ │ │ ├── styles.ts │ │ │ │ ├── utils.ts │ │ │ │ └── view.ts │ │ │ └── tsconfig.json │ │ ├── bookmark │ │ │ ├── package.json │ │ │ ├── src │ │ │ │ ├── __tests__ │ │ │ │ │ └── adapters │ │ │ │ │ │ └── preprocessor.unit.spec.ts │ │ │ │ ├── adapters │ │ │ │ │ ├── extension.ts │ │ │ │ │ ├── html.ts │ │ │ │ │ ├── index.ts │ │ │ │ │ ├── markdown │ │ │ │ │ │ ├── index.ts │ │ │ │ │ │ ├── markdown.ts │ │ │ │ │ │ └── preprocessor.ts │ │ │ │ │ ├── notion-html.ts │ │ │ │ │ └── plain-text.ts │ │ │ │ ├── bookmark-block.ts │ │ │ │ ├── bookmark-edgeless-block.ts │ │ │ │ ├── commands │ │ │ │ │ ├── index.ts │ │ │ │ │ ├── insert-bookmark.ts │ │ │ │ │ └── insert-link-by-quick-search.ts │ │ │ │ ├── components │ │ │ │ │ ├── bookmark-card.ts │ │ │ │ │ └── index.ts │ │ │ │ ├── configs │ │ │ │ │ ├── slash-menu.ts │ │ │ │ │ ├── toolbar.ts │ │ │ │ │ └── tooltips.ts │ │ │ │ ├── edgeless-clipboard-config.ts │ │ │ │ ├── effects.ts │ │ │ │ ├── index.ts │ │ │ │ ├── store.ts │ │ │ │ ├── styles.ts │ │ │ │ ├── utils.ts │ │ │ │ └── view.ts │ │ │ ├── tsconfig.json │ │ │ └── vitest.config.ts │ │ ├── callout │ │ │ ├── package.json │ │ │ ├── src │ │ │ │ ├── adapters │ │ │ │ │ └── markdown.ts │ │ │ │ ├── callout-block-styles.ts │ │ │ │ ├── callout-block.ts │ │ │ │ ├── callout-keymap.ts │ │ │ │ ├── commands │ │ │ │ │ ├── callout-to-paragraph.ts │ │ │ │ │ └── split-callout.ts │ │ │ │ ├── configs │ │ │ │ │ ├── slash-menu.ts │ │ │ │ │ ├── toolbar.ts │ │ │ │ │ └── tooltips.ts │ │ │ │ ├── effects.ts │ │ │ │ ├── icon-picker-wrapper.ts │ │ │ │ ├── index.ts │ │ │ │ ├── store.ts │ │ │ │ └── view.ts │ │ │ └── tsconfig.json │ │ ├── code │ │ │ ├── package.json │ │ │ ├── src │ │ │ │ ├── adapters │ │ │ │ │ ├── extension.ts │ │ │ │ │ ├── html.ts │ │ │ │ │ ├── index.ts │ │ │ │ │ ├── markdown │ │ │ │ │ │ ├── index.ts │ │ │ │ │ │ ├── markdown.ts │ │ │ │ │ │ └── preprocessor.ts │ │ │ │ │ ├── notion-html.ts │ │ │ │ │ └── plain-text.ts │ │ │ │ ├── clipboard │ │ │ │ │ └── index.ts │ │ │ │ ├── code-block-config.ts │ │ │ │ ├── code-block-inline.ts │ │ │ │ ├── code-block-service.ts │ │ │ │ ├── code-block.ts │ │ │ │ ├── code-keymap.ts │ │ │ │ ├── code-preview-extension.ts │ │ │ │ ├── code-toolbar │ │ │ │ │ ├── components │ │ │ │ │ │ ├── code-toolbar.ts │ │ │ │ │ │ ├── lang-button.ts │ │ │ │ │ │ └── preview-button.ts │ │ │ │ │ ├── config.ts │ │ │ │ │ ├── context.ts │ │ │ │ │ ├── index.ts │ │ │ │ │ └── utils.ts │ │ │ │ ├── configs │ │ │ │ │ └── slash-menu.ts │ │ │ │ ├── effects.ts │ │ │ │ ├── highlight │ │ │ │ │ ├── affine-code-unit.ts │ │ │ │ │ └── const.ts │ │ │ │ ├── index.ts │ │ │ │ ├── markdown.ts │ │ │ │ ├── store.ts │ │ │ │ ├── styles.ts │ │ │ │ ├── turbo │ │ │ │ │ ├── code-layout-handler.ts │ │ │ │ │ └── code-painter.worker.ts │ │ │ │ └── view.ts │ │ │ └── tsconfig.json │ │ ├── data-view │ │ │ ├── package.json │ │ │ ├── src │ │ │ │ ├── block-meta │ │ │ │ │ ├── base.ts │ │ │ │ │ ├── index.ts │ │ │ │ │ └── todo.ts │ │ │ │ ├── columns │ │ │ │ │ └── index.ts │ │ │ │ ├── configs │ │ │ │ │ ├── slash-menu.ts │ │ │ │ │ └── tooltips.ts │ │ │ │ ├── data-source.ts │ │ │ │ ├── data-view-block.ts │ │ │ │ ├── data-view-model.ts │ │ │ │ ├── data-view-spec.ts │ │ │ │ ├── effects.ts │ │ │ │ ├── index.ts │ │ │ │ ├── store.ts │ │ │ │ ├── view.ts │ │ │ │ └── views │ │ │ │ │ └── index.ts │ │ │ └── tsconfig.json │ │ ├── database │ │ │ ├── package.json │ │ │ ├── src │ │ │ │ ├── adapters │ │ │ │ │ ├── extension.ts │ │ │ │ │ ├── html.ts │ │ │ │ │ ├── index.ts │ │ │ │ │ ├── markdown.ts │ │ │ │ │ ├── notion-html.ts │ │ │ │ │ ├── plain-text.ts │ │ │ │ │ └── utils.ts │ │ │ │ ├── block-icons.ts │ │ │ │ ├── commands.ts │ │ │ │ ├── components │ │ │ │ │ ├── layout.ts │ │ │ │ │ └── title │ │ │ │ │ │ └── index.ts │ │ │ │ ├── config.ts │ │ │ │ ├── configs │ │ │ │ │ ├── slash-menu.ts │ │ │ │ │ └── tooltips.ts │ │ │ │ ├── context │ │ │ │ │ ├── host-context.ts │ │ │ │ │ └── index.ts │ │ │ │ ├── data-source.ts │ │ │ │ ├── database-block-styles.ts │ │ │ │ ├── database-block.ts │ │ │ │ ├── database-dnd-preview-block.ts │ │ │ │ ├── detail-panel │ │ │ │ │ ├── block-renderer.ts │ │ │ │ │ └── note-renderer.ts │ │ │ │ ├── effects.ts │ │ │ │ ├── index.ts │ │ │ │ ├── properties │ │ │ │ │ ├── converts.ts │ │ │ │ │ ├── created-time │ │ │ │ │ │ ├── cell-renderer.ts │ │ │ │ │ │ └── define.ts │ │ │ │ │ ├── index.ts │ │ │ │ │ ├── link │ │ │ │ │ │ ├── cell-renderer-css.ts │ │ │ │ │ │ ├── cell-renderer.ts │ │ │ │ │ │ └── define.ts │ │ │ │ │ ├── model.ts │ │ │ │ │ ├── rich-text │ │ │ │ │ │ ├── cell-renderer-css.ts │ │ │ │ │ │ ├── cell-renderer.ts │ │ │ │ │ │ └── define.ts │ │ │ │ │ └── title │ │ │ │ │ │ ├── cell-renderer-css.ts │ │ │ │ │ │ ├── cell-renderer.ts │ │ │ │ │ │ ├── define.ts │ │ │ │ │ │ ├── icon.ts │ │ │ │ │ │ └── text.ts │ │ │ │ ├── selection.ts │ │ │ │ ├── service │ │ │ │ │ └── index.ts │ │ │ │ ├── store.ts │ │ │ │ ├── utils │ │ │ │ │ ├── block-utils.ts │ │ │ │ │ ├── current-view.ts │ │ │ │ │ └── title-doc.ts │ │ │ │ ├── view.ts │ │ │ │ ├── views │ │ │ │ │ └── index.ts │ │ │ │ └── widgets │ │ │ │ │ └── index.ts │ │ │ └── tsconfig.json │ │ ├── divider │ │ │ ├── package.json │ │ │ ├── src │ │ │ │ ├── adapters │ │ │ │ │ ├── extension.ts │ │ │ │ │ ├── html.ts │ │ │ │ │ ├── index.ts │ │ │ │ │ ├── markdown.ts │ │ │ │ │ ├── notion-html.ts │ │ │ │ │ └── plain-text.ts │ │ │ │ ├── divider-block.ts │ │ │ │ ├── effects.ts │ │ │ │ ├── index.ts │ │ │ │ ├── markdown.ts │ │ │ │ ├── store.ts │ │ │ │ ├── styles.ts │ │ │ │ └── view.ts │ │ │ └── tsconfig.json │ │ ├── edgeless-text │ │ │ ├── package.json │ │ │ ├── src │ │ │ │ ├── edgeless-clipboard-config.ts │ │ │ │ ├── edgeless-text-block.ts │ │ │ │ ├── edgeless-toolbar │ │ │ │ │ ├── config.ts │ │ │ │ │ └── index.ts │ │ │ │ ├── effects.ts │ │ │ │ ├── index.ts │ │ │ │ ├── store.ts │ │ │ │ └── view.ts │ │ │ └── tsconfig.json │ │ ├── embed-doc │ │ │ ├── package.json │ │ │ ├── src │ │ │ │ ├── common │ │ │ │ │ └── render-linked-doc.ts │ │ │ │ ├── effects.ts │ │ │ │ ├── embed-linked-doc-block │ │ │ │ │ ├── adapters │ │ │ │ │ │ ├── extension.ts │ │ │ │ │ │ ├── html.ts │ │ │ │ │ │ ├── index.ts │ │ │ │ │ │ ├── markdown.ts │ │ │ │ │ │ └── plain-text.ts │ │ │ │ │ ├── commands │ │ │ │ │ │ ├── index.ts │ │ │ │ │ │ └── insert-embed-linked-doc.ts │ │ │ │ │ ├── configs │ │ │ │ │ │ ├── slash-menu.ts │ │ │ │ │ │ ├── toolbar.ts │ │ │ │ │ │ └── tooltips.ts │ │ │ │ │ ├── edgeless-clipboard-config.ts │ │ │ │ │ ├── embed-edgeless-linked-doc-block.ts │ │ │ │ │ ├── embed-linked-doc-block.ts │ │ │ │ │ ├── embed-linked-doc-spec.ts │ │ │ │ │ ├── index.ts │ │ │ │ │ ├── styles.ts │ │ │ │ │ └── utils.ts │ │ │ │ ├── embed-synced-doc-block │ │ │ │ │ ├── adapters │ │ │ │ │ │ ├── extension.ts │ │ │ │ │ │ ├── html.ts │ │ │ │ │ │ ├── index.ts │ │ │ │ │ │ ├── markdown.ts │ │ │ │ │ │ └── plain-text.ts │ │ │ │ │ ├── commands │ │ │ │ │ │ ├── index.ts │ │ │ │ │ │ └── insert-embed-synced-doc.ts │ │ │ │ │ ├── components │ │ │ │ │ │ └── embed-synced-doc-card.ts │ │ │ │ │ ├── configs │ │ │ │ │ │ ├── edgeless-interaction.ts │ │ │ │ │ │ ├── index.ts │ │ │ │ │ │ └── toolbar.ts │ │ │ │ │ ├── edgeless-clipboard-config.ts │ │ │ │ │ ├── embed-edgeless-synced-doc-block.ts │ │ │ │ │ ├── embed-synced-doc-block.ts │ │ │ │ │ ├── embed-synced-doc-spec.ts │ │ │ │ │ ├── index.ts │ │ │ │ │ ├── init-height-extension.ts │ │ │ │ │ ├── styles.ts │ │ │ │ │ └── utils.ts │ │ │ │ ├── index.ts │ │ │ │ ├── store.ts │ │ │ │ └── view.ts │ │ │ └── tsconfig.json │ │ ├── embed │ │ │ ├── package.json │ │ │ ├── src │ │ │ │ ├── common │ │ │ │ │ ├── adapters │ │ │ │ │ │ ├── html.ts │ │ │ │ │ │ ├── markdown.ts │ │ │ │ │ │ ├── notion-html.ts │ │ │ │ │ │ └── plain-text.ts │ │ │ │ │ ├── embed-block-element.ts │ │ │ │ │ ├── embed-note-content-styles.ts │ │ │ │ │ ├── insert-embed-card.ts │ │ │ │ │ ├── render-linked-doc.ts │ │ │ │ │ ├── to-edgeless-embed-block.ts │ │ │ │ │ └── utils.ts │ │ │ │ ├── configs │ │ │ │ │ └── toolbar.ts │ │ │ │ ├── effects.ts │ │ │ │ ├── embed-figma-block │ │ │ │ │ ├── adapters │ │ │ │ │ │ ├── extension.ts │ │ │ │ │ │ ├── html.ts │ │ │ │ │ │ ├── index.ts │ │ │ │ │ │ ├── markdown.ts │ │ │ │ │ │ ├── notion-html.ts │ │ │ │ │ │ └── plain-text.ts │ │ │ │ │ ├── configs │ │ │ │ │ │ ├── slash-menu.ts │ │ │ │ │ │ └── tooltips.ts │ │ │ │ │ ├── edgeless-clipboard-config.ts │ │ │ │ │ ├── embed-edgeless-figma-block.ts │ │ │ │ │ ├── embed-figma-block.ts │ │ │ │ │ ├── embed-figma-model.ts │ │ │ │ │ ├── embed-figma-service.ts │ │ │ │ │ ├── embed-figma-spec.ts │ │ │ │ │ ├── index.ts │ │ │ │ │ └── styles.ts │ │ │ │ ├── embed-github-block │ │ │ │ │ ├── adapters │ │ │ │ │ │ ├── extension.ts │ │ │ │ │ │ ├── html.ts │ │ │ │ │ │ ├── index.ts │ │ │ │ │ │ ├── markdown.ts │ │ │ │ │ │ ├── notion-html.ts │ │ │ │ │ │ └── plain-text.ts │ │ │ │ │ ├── configs │ │ │ │ │ │ ├── slash-menu.ts │ │ │ │ │ │ └── tooltips.ts │ │ │ │ │ ├── edgeless-clipboard-config.ts │ │ │ │ │ ├── embed-edgeless-github-block.ts │ │ │ │ │ ├── embed-github-block.ts │ │ │ │ │ ├── embed-github-model.ts │ │ │ │ │ ├── embed-github-service.ts │ │ │ │ │ ├── embed-github-spec.ts │ │ │ │ │ ├── index.ts │ │ │ │ │ ├── styles.ts │ │ │ │ │ └── utils.ts │ │ │ │ ├── embed-html-block │ │ │ │ │ ├── components │ │ │ │ │ │ └── fullscreen-toolbar.ts │ │ │ │ │ ├── configs │ │ │ │ │ │ ├── toolbar.ts │ │ │ │ │ │ └── tooltips.ts │ │ │ │ │ ├── edgeless-clipboard-config.ts │ │ │ │ │ ├── embed-edgeless-html-block.ts │ │ │ │ │ ├── embed-html-block.ts │ │ │ │ │ ├── embed-html-spec.ts │ │ │ │ │ ├── index.ts │ │ │ │ │ └── styles.ts │ │ │ │ ├── embed-iframe-block │ │ │ │ │ ├── adapters │ │ │ │ │ │ ├── html.ts │ │ │ │ │ │ ├── index.ts │ │ │ │ │ │ ├── markdown.ts │ │ │ │ │ │ └── plain-text.ts │ │ │ │ │ ├── commands │ │ │ │ │ │ ├── index.ts │ │ │ │ │ │ ├── insert-embed-iframe-with-url.ts │ │ │ │ │ │ └── insert-empty-embed-iframe.ts │ │ │ │ │ ├── components │ │ │ │ │ │ ├── embed-iframe-error-card.ts │ │ │ │ │ │ ├── embed-iframe-idle-card.ts │ │ │ │ │ │ ├── embed-iframe-link-edit-popup.ts │ │ │ │ │ │ ├── embed-iframe-link-input-base.ts │ │ │ │ │ │ ├── embed-iframe-link-input-popup.ts │ │ │ │ │ │ └── embed-iframe-loading-card.ts │ │ │ │ │ ├── configs │ │ │ │ │ │ ├── index.ts │ │ │ │ │ │ ├── providers │ │ │ │ │ │ │ ├── excalidraw.ts │ │ │ │ │ │ │ ├── generic.ts │ │ │ │ │ │ │ ├── google-docs.ts │ │ │ │ │ │ │ ├── google-drive.ts │ │ │ │ │ │ │ ├── index.ts │ │ │ │ │ │ │ ├── miro.ts │ │ │ │ │ │ │ └── spotify.ts │ │ │ │ │ │ ├── slash-menu │ │ │ │ │ │ │ ├── slash-menu.ts │ │ │ │ │ │ │ └── tooltip.ts │ │ │ │ │ │ └── toolbar.ts │ │ │ │ │ ├── consts.ts │ │ │ │ │ ├── edgeless-clipboard-config.ts │ │ │ │ │ ├── embed-edgeless-iframe-block.ts │ │ │ │ │ ├── embed-iframe-block.ts │ │ │ │ │ ├── embed-iframe-spec.ts │ │ │ │ │ ├── index.ts │ │ │ │ │ ├── style.ts │ │ │ │ │ ├── types.ts │ │ │ │ │ └── utils.ts │ │ │ │ ├── embed-loom-block │ │ │ │ │ ├── adapters │ │ │ │ │ │ ├── extension.ts │ │ │ │ │ │ ├── html.ts │ │ │ │ │ │ ├── index.ts │ │ │ │ │ │ ├── markdown.ts │ │ │ │ │ │ ├── notion-html.ts │ │ │ │ │ │ └── plain-text.ts │ │ │ │ │ ├── configs │ │ │ │ │ │ ├── slash-menu.ts │ │ │ │ │ │ └── tooltips.ts │ │ │ │ │ ├── edgeless-clipboard-config.ts │ │ │ │ │ ├── embed-edgeless-loom-bock.ts │ │ │ │ │ ├── embed-loom-block.ts │ │ │ │ │ ├── embed-loom-model.ts │ │ │ │ │ ├── embed-loom-service.ts │ │ │ │ │ ├── embed-loom-spec.ts │ │ │ │ │ ├── index.ts │ │ │ │ │ ├── styles.ts │ │ │ │ │ └── utils.ts │ │ │ │ ├── embed-youtube-block │ │ │ │ │ ├── adapters │ │ │ │ │ │ ├── extension.ts │ │ │ │ │ │ ├── html.ts │ │ │ │ │ │ ├── index.ts │ │ │ │ │ │ ├── markdown.ts │ │ │ │ │ │ ├── notion-html.ts │ │ │ │ │ │ └── plain-text.ts │ │ │ │ │ ├── configs │ │ │ │ │ │ ├── slash-menu.ts │ │ │ │ │ │ └── tooltips.ts │ │ │ │ │ ├── edgeless-clipboard-config.ts │ │ │ │ │ ├── embed-edgeless-youtube-block.ts │ │ │ │ │ ├── embed-youtube-block.ts │ │ │ │ │ ├── embed-youtube-model.ts │ │ │ │ │ ├── embed-youtube-service.ts │ │ │ │ │ ├── embed-youtube-spec.ts │ │ │ │ │ ├── index.ts │ │ │ │ │ ├── styles.ts │ │ │ │ │ └── utils.ts │ │ │ │ ├── index.ts │ │ │ │ ├── store.ts │ │ │ │ ├── types.ts │ │ │ │ └── view.ts │ │ │ └── tsconfig.json │ │ ├── frame │ │ │ ├── package.json │ │ │ ├── src │ │ │ │ ├── edgeless-clipboard-config.ts │ │ │ │ ├── edgeless-toolbar │ │ │ │ │ ├── config.ts │ │ │ │ │ ├── frame-dense-menu.ts │ │ │ │ │ ├── frame-menu.ts │ │ │ │ │ ├── frame-tool-button.ts │ │ │ │ │ ├── index.ts │ │ │ │ │ ├── presentation-toolbar.ts │ │ │ │ │ └── quick-tool.ts │ │ │ │ ├── effects.ts │ │ │ │ ├── frame-block.ts │ │ │ │ ├── frame-highlight-manager.ts │ │ │ │ ├── frame-manager.ts │ │ │ │ ├── frame-spec.ts │ │ │ │ ├── frame-tool.ts │ │ │ │ ├── frame-toolbar.ts │ │ │ │ ├── index.ts │ │ │ │ ├── present-tool.ts │ │ │ │ ├── present │ │ │ │ │ ├── frame-order-button.ts │ │ │ │ │ ├── frame-order-menu.ts │ │ │ │ │ ├── navigator-bg-widget.ts │ │ │ │ │ ├── navigator-setting-button.ts │ │ │ │ │ └── present-button.ts │ │ │ │ ├── store.ts │ │ │ │ └── view.ts │ │ │ └── tsconfig.json │ │ ├── image │ │ │ ├── package.json │ │ │ ├── src │ │ │ │ ├── adapters │ │ │ │ │ ├── extension.ts │ │ │ │ │ ├── html.ts │ │ │ │ │ ├── index.ts │ │ │ │ │ ├── markdown.ts │ │ │ │ │ ├── notion-html.ts │ │ │ │ │ └── utils.ts │ │ │ │ ├── commands │ │ │ │ │ ├── index.ts │ │ │ │ │ └── insert-images.ts │ │ │ │ ├── components │ │ │ │ │ ├── image-block-fallback.ts │ │ │ │ │ ├── image-selected-rect.ts │ │ │ │ │ └── page-image-block.ts │ │ │ │ ├── configs │ │ │ │ │ ├── slash-menu.ts │ │ │ │ │ ├── toolbar.ts │ │ │ │ │ └── tooltips.ts │ │ │ │ ├── edgeless-clipboard-config.ts │ │ │ │ ├── effects.ts │ │ │ │ ├── image-block.ts │ │ │ │ ├── image-edgeless-block.ts │ │ │ │ ├── image-resize-manager.ts │ │ │ │ ├── image-service.ts │ │ │ │ ├── image-spec.ts │ │ │ │ ├── index.ts │ │ │ │ ├── preview-image │ │ │ │ │ ├── edgeless.ts │ │ │ │ │ └── page.ts │ │ │ │ ├── store.ts │ │ │ │ ├── turbo │ │ │ │ │ ├── image-layout-handler.ts │ │ │ │ │ └── image-painter.worker.ts │ │ │ │ ├── utils.ts │ │ │ │ └── view.ts │ │ │ └── tsconfig.json │ │ ├── latex │ │ │ ├── package.json │ │ │ ├── src │ │ │ │ ├── adapters │ │ │ │ │ ├── extension.ts │ │ │ │ │ ├── index.ts │ │ │ │ │ ├── markdown │ │ │ │ │ │ ├── index.ts │ │ │ │ │ │ ├── markdown.ts │ │ │ │ │ │ └── preprocessor.ts │ │ │ │ │ ├── notion-html.ts │ │ │ │ │ └── plain-text.ts │ │ │ │ ├── commands.ts │ │ │ │ ├── configs │ │ │ │ │ ├── slash-menu.ts │ │ │ │ │ └── tooltips.ts │ │ │ │ ├── effects.ts │ │ │ │ ├── index.ts │ │ │ │ ├── latex-block.ts │ │ │ │ ├── store.ts │ │ │ │ ├── styles.ts │ │ │ │ └── view.ts │ │ │ └── tsconfig.json │ │ ├── list │ │ │ ├── package.json │ │ │ ├── src │ │ │ │ ├── adapters │ │ │ │ │ ├── extension.ts │ │ │ │ │ ├── html.ts │ │ │ │ │ ├── index.ts │ │ │ │ │ ├── markdown.ts │ │ │ │ │ ├── notion-html.ts │ │ │ │ │ └── plain-text.ts │ │ │ │ ├── commands │ │ │ │ │ ├── convert-to-numbered-list.ts │ │ │ │ │ ├── dedent-list.ts │ │ │ │ │ ├── indent-list.ts │ │ │ │ │ ├── index.ts │ │ │ │ │ ├── list-to-paragraph.ts │ │ │ │ │ ├── split-list.ts │ │ │ │ │ └── utils.ts │ │ │ │ ├── effects.ts │ │ │ │ ├── index.ts │ │ │ │ ├── list-block.ts │ │ │ │ ├── list-keymap.ts │ │ │ │ ├── markdown.ts │ │ │ │ ├── store.ts │ │ │ │ ├── styles.ts │ │ │ │ ├── turbo │ │ │ │ │ ├── list-layout-handler.ts │ │ │ │ │ └── list-painter.worker.ts │ │ │ │ ├── utils │ │ │ │ │ ├── forward-delete.ts │ │ │ │ │ ├── get-list-icon.ts │ │ │ │ │ └── get-number-prefix.ts │ │ │ │ └── view.ts │ │ │ └── tsconfig.json │ │ ├── note │ │ │ ├── package.json │ │ │ ├── src │ │ │ │ ├── adapters │ │ │ │ │ ├── html.ts │ │ │ │ │ ├── index.ts │ │ │ │ │ ├── markdown.ts │ │ │ │ │ └── plain-text.ts │ │ │ │ ├── commands │ │ │ │ │ ├── block-type.ts │ │ │ │ │ ├── change-note-display-mode.ts │ │ │ │ │ ├── dedent-block-to-root.ts │ │ │ │ │ ├── dedent-block.ts │ │ │ │ │ ├── dedent-blocks-to-root.ts │ │ │ │ │ ├── dedent-blocks.ts │ │ │ │ │ ├── indent-block.ts │ │ │ │ │ ├── indent-blocks.ts │ │ │ │ │ ├── index.ts │ │ │ │ │ ├── select-block.ts │ │ │ │ │ ├── select-blocks-between.ts │ │ │ │ │ └── update-block-align.ts │ │ │ │ ├── components │ │ │ │ │ ├── edgeless-note-background.css.ts │ │ │ │ │ ├── edgeless-note-background.ts │ │ │ │ │ ├── edgeless-note-border-dropdown-menu.ts │ │ │ │ │ ├── edgeless-note-display-mode-dropdown-menu.ts │ │ │ │ │ ├── edgeless-note-mask.ts │ │ │ │ │ ├── edgeless-note-shadow-menu.ts │ │ │ │ │ ├── edgeless-note-style-panel.ts │ │ │ │ │ ├── edgeless-page-block-title.css.ts │ │ │ │ │ ├── edgeless-page-block-title.ts │ │ │ │ │ ├── icons.ts │ │ │ │ │ └── more-indicator.ts │ │ │ │ ├── config.ts │ │ │ │ ├── configs │ │ │ │ │ ├── slash-menu.ts │ │ │ │ │ ├── toolbar.ts │ │ │ │ │ └── tooltips.ts │ │ │ │ ├── edgeless-clipboard-config.ts │ │ │ │ ├── effects.ts │ │ │ │ ├── index.ts │ │ │ │ ├── move-block.ts │ │ │ │ ├── note-block.ts │ │ │ │ ├── note-edgeless-block.css.ts │ │ │ │ ├── note-edgeless-block.ts │ │ │ │ ├── note-keymap.ts │ │ │ │ ├── quick-action.ts │ │ │ │ ├── store.ts │ │ │ │ ├── turbo │ │ │ │ │ ├── note-layout-handler.ts │ │ │ │ │ └── note-painter.worker.ts │ │ │ │ └── view.ts │ │ │ └── tsconfig.json │ │ ├── paragraph │ │ │ ├── package.json │ │ │ ├── src │ │ │ │ ├── adapters │ │ │ │ │ ├── extension.ts │ │ │ │ │ ├── html.ts │ │ │ │ │ ├── index.ts │ │ │ │ │ ├── markdown.ts │ │ │ │ │ ├── notion-html.ts │ │ │ │ │ └── plain-text.ts │ │ │ │ ├── commands │ │ │ │ │ ├── add-paragraph.ts │ │ │ │ │ ├── append-paragraph.ts │ │ │ │ │ ├── dedent-paragraph.ts │ │ │ │ │ ├── indent-paragraph.ts │ │ │ │ │ ├── index.ts │ │ │ │ │ └── split-paragraph.ts │ │ │ │ ├── effects.ts │ │ │ │ ├── heading-icon.ts │ │ │ │ ├── index.ts │ │ │ │ ├── markdown.ts │ │ │ │ ├── paragraph-block-config.ts │ │ │ │ ├── paragraph-block.ts │ │ │ │ ├── paragraph-keymap.ts │ │ │ │ ├── store.ts │ │ │ │ ├── styles.ts │ │ │ │ ├── turbo │ │ │ │ │ ├── paragraph-layout-handler.ts │ │ │ │ │ └── paragraph-painter.worker.ts │ │ │ │ ├── utils │ │ │ │ │ ├── forward-delete.ts │ │ │ │ │ └── merge-with-prev.ts │ │ │ │ └── view.ts │ │ │ └── tsconfig.json │ │ ├── root │ │ │ ├── package.json │ │ │ ├── src │ │ │ │ ├── adapters │ │ │ │ │ ├── extension.ts │ │ │ │ │ ├── html.ts │ │ │ │ │ ├── index.ts │ │ │ │ │ ├── markdown.ts │ │ │ │ │ └── notion-html.ts │ │ │ │ ├── clipboard │ │ │ │ │ ├── index.ts │ │ │ │ │ ├── page-clipboard.ts │ │ │ │ │ └── readonly-clipboard.ts │ │ │ │ ├── configs │ │ │ │ │ └── toolbar.ts │ │ │ │ ├── edgeless │ │ │ │ │ ├── clipboard │ │ │ │ │ │ ├── canvas.ts │ │ │ │ │ │ ├── clipboard.ts │ │ │ │ │ │ ├── command.ts │ │ │ │ │ │ └── utils.ts │ │ │ │ │ ├── configs │ │ │ │ │ │ └── toolbar │ │ │ │ │ │ │ ├── alignment.ts │ │ │ │ │ │ │ ├── index.ts │ │ │ │ │ │ │ ├── misc.ts │ │ │ │ │ │ │ ├── more.ts │ │ │ │ │ │ │ ├── render-linked-doc.ts │ │ │ │ │ │ │ └── utils.ts │ │ │ │ │ ├── edgeless-keyboard.ts │ │ │ │ │ ├── edgeless-root-block.ts │ │ │ │ │ ├── edgeless-root-service.ts │ │ │ │ │ ├── edgeless-root-spec.ts │ │ │ │ │ ├── index.ts │ │ │ │ │ ├── interact-extensions │ │ │ │ │ │ └── clone-ext.ts │ │ │ │ │ └── utils │ │ │ │ │ │ ├── clipboard-utils.ts │ │ │ │ │ │ ├── clone-utils.ts │ │ │ │ │ │ ├── connector.ts │ │ │ │ │ │ ├── consts.ts │ │ │ │ │ │ ├── crud.ts │ │ │ │ │ │ ├── cursors.ts │ │ │ │ │ │ └── query.ts │ │ │ │ ├── effects.ts │ │ │ │ ├── index.ts │ │ │ │ ├── keyboard │ │ │ │ │ ├── keyboard-manager.ts │ │ │ │ │ └── keymap.ts │ │ │ │ ├── page │ │ │ │ │ └── page-root-block.ts │ │ │ │ ├── preview │ │ │ │ │ ├── edgeless-root-preview-block.ts │ │ │ │ │ └── preview-root-block.ts │ │ │ │ ├── store.ts │ │ │ │ ├── types.ts │ │ │ │ └── view.ts │ │ │ └── tsconfig.json │ │ ├── surface-ref │ │ │ ├── package.json │ │ │ ├── src │ │ │ │ ├── commands.ts │ │ │ │ ├── components │ │ │ │ │ ├── index.ts │ │ │ │ │ ├── placeholder.ts │ │ │ │ │ └── surface-ref-toolbar-title.ts │ │ │ │ ├── configs │ │ │ │ │ ├── slash-menu.ts │ │ │ │ │ ├── toolbar.ts │ │ │ │ │ └── tooltips.ts │ │ │ │ ├── effects.ts │ │ │ │ ├── icons.ts │ │ │ │ ├── index.ts │ │ │ │ ├── portal │ │ │ │ │ ├── generic-block.ts │ │ │ │ │ └── note.ts │ │ │ │ ├── store.ts │ │ │ │ ├── surface-ref-block-edgeless.ts │ │ │ │ ├── surface-ref-block.ts │ │ │ │ ├── utils.ts │ │ │ │ └── view.ts │ │ │ └── tsconfig.json │ │ ├── surface │ │ │ ├── package.json │ │ │ ├── src │ │ │ │ ├── __tests__ │ │ │ │ │ ├── a-star.unit.spec.ts │ │ │ │ │ ├── bound.unit.spec.ts │ │ │ │ │ ├── graph.unit.spec.ts │ │ │ │ │ ├── math-utils.unit.spec.ts │ │ │ │ │ ├── priority-queue.unit.spec.ts │ │ │ │ │ └── sort.unit.spec.ts │ │ │ │ ├── adapters │ │ │ │ │ ├── extension.ts │ │ │ │ │ ├── html-adapter │ │ │ │ │ │ └── html.ts │ │ │ │ │ ├── index.ts │ │ │ │ │ ├── markdown │ │ │ │ │ │ ├── element-adapter │ │ │ │ │ │ │ ├── index.ts │ │ │ │ │ │ │ └── type.ts │ │ │ │ │ │ └── markdown.ts │ │ │ │ │ ├── plain-text │ │ │ │ │ │ ├── element-adapter │ │ │ │ │ │ │ ├── index.ts │ │ │ │ │ │ │ └── type.ts │ │ │ │ │ │ └── plain-text.ts │ │ │ │ │ └── type.ts │ │ │ │ ├── commands │ │ │ │ │ ├── auto-align.ts │ │ │ │ │ ├── index.ts │ │ │ │ │ └── reassociate-connectors.ts │ │ │ │ ├── consts.ts │ │ │ │ ├── effects.ts │ │ │ │ ├── element-model │ │ │ │ │ ├── base.ts │ │ │ │ │ └── index.ts │ │ │ │ ├── extensions │ │ │ │ │ ├── clipboard-config.ts │ │ │ │ │ ├── crud-extension.ts │ │ │ │ │ ├── dom-element-renderer.ts │ │ │ │ │ ├── edit-props-middleware-builder.ts │ │ │ │ │ ├── element-renderer.ts │ │ │ │ │ ├── export-manager │ │ │ │ │ │ ├── export-manager.ts │ │ │ │ │ │ ├── file-exporter.ts │ │ │ │ │ │ └── index.ts │ │ │ │ │ ├── index.ts │ │ │ │ │ ├── legacy-slot-extension.ts │ │ │ │ │ ├── query.ts │ │ │ │ │ └── surface-middleware.ts │ │ │ │ ├── index.ts │ │ │ │ ├── renderer │ │ │ │ │ ├── canvas-renderer.ts │ │ │ │ │ ├── dom-elements │ │ │ │ │ │ └── index.ts │ │ │ │ │ ├── dom-renderer.ts │ │ │ │ │ ├── elements │ │ │ │ │ │ ├── index.ts │ │ │ │ │ │ └── type.ts │ │ │ │ │ ├── overlay.ts │ │ │ │ │ └── tool-overlay.ts │ │ │ │ ├── store.ts │ │ │ │ ├── surface-block-void.ts │ │ │ │ ├── surface-block.ts │ │ │ │ ├── surface-model.ts │ │ │ │ ├── surface-transformer.ts │ │ │ │ ├── tool │ │ │ │ │ ├── default-tool.ts │ │ │ │ │ └── panning-utils.ts │ │ │ │ ├── utils │ │ │ │ │ ├── a-star.ts │ │ │ │ │ ├── font.ts │ │ │ │ │ ├── get-bg-grip-gap.ts │ │ │ │ │ ├── get-last-props-key.ts │ │ │ │ │ ├── get-surface-block.ts │ │ │ │ │ ├── graph.ts │ │ │ │ │ ├── index.ts │ │ │ │ │ ├── path-data-parser │ │ │ │ │ │ ├── LICENSE │ │ │ │ │ │ ├── absolutize.ts │ │ │ │ │ │ ├── normalize.ts │ │ │ │ │ │ └── parser.ts │ │ │ │ │ ├── points-on-curve │ │ │ │ │ │ ├── LICENSE │ │ │ │ │ │ ├── curve-to-bezier.ts │ │ │ │ │ │ └── index.ts │ │ │ │ │ ├── points-on-path │ │ │ │ │ │ ├── LICENSE │ │ │ │ │ │ └── index.ts │ │ │ │ │ ├── priority-queue.ts │ │ │ │ │ ├── rough │ │ │ │ │ │ ├── LICENSE │ │ │ │ │ │ ├── canvas.ts │ │ │ │ │ │ ├── core.ts │ │ │ │ │ │ ├── fillers │ │ │ │ │ │ │ ├── dashed-filler.ts │ │ │ │ │ │ │ ├── dot-filler.ts │ │ │ │ │ │ │ ├── filler-interface.ts │ │ │ │ │ │ │ ├── filler.ts │ │ │ │ │ │ │ ├── hachure-filler.ts │ │ │ │ │ │ │ ├── hatch-filler.ts │ │ │ │ │ │ │ ├── scan-line-hachure.ts │ │ │ │ │ │ │ ├── zigzag-filler.ts │ │ │ │ │ │ │ └── zigzag-line-filler.ts │ │ │ │ │ │ ├── generator.ts │ │ │ │ │ │ ├── geometry.ts │ │ │ │ │ │ ├── math.ts │ │ │ │ │ │ ├── renderer.ts │ │ │ │ │ │ ├── rough.ts │ │ │ │ │ │ └── svg.ts │ │ │ │ │ ├── sort.ts │ │ │ │ │ └── update-xywh.ts │ │ │ │ └── view.ts │ │ │ └── tsconfig.json │ │ └── table │ │ │ ├── package.json │ │ │ ├── src │ │ │ ├── adapters │ │ │ │ ├── extension.ts │ │ │ │ ├── html.ts │ │ │ │ ├── index.ts │ │ │ │ ├── markdown.ts │ │ │ │ ├── notion-html.ts │ │ │ │ ├── plain-text.ts │ │ │ │ └── utils.ts │ │ │ ├── add-button-css.ts │ │ │ ├── add-button.ts │ │ │ ├── color.ts │ │ │ ├── commands.ts │ │ │ ├── configs │ │ │ │ ├── slash-menu.ts │ │ │ │ └── tooltips.ts │ │ │ ├── consts.ts │ │ │ ├── effects.ts │ │ │ ├── index.ts │ │ │ ├── selection-controller.ts │ │ │ ├── selection-layer.ts │ │ │ ├── selection-schema.ts │ │ │ ├── store.ts │ │ │ ├── table-block-css.ts │ │ │ ├── table-block.ts │ │ │ ├── table-cell-css.ts │ │ │ ├── table-cell.ts │ │ │ ├── table-data-manager.ts │ │ │ ├── utils.ts │ │ │ └── view.ts │ │ │ └── tsconfig.json │ ├── components │ │ ├── package.json │ │ ├── src │ │ │ ├── block-selection │ │ │ │ └── index.ts │ │ │ ├── block-zero-width │ │ │ │ └── index.ts │ │ │ ├── caption │ │ │ │ ├── block-caption.ts │ │ │ │ ├── captioned-block-component.ts │ │ │ │ ├── index.ts │ │ │ │ └── styles.ts │ │ │ ├── card-style-dropdown-menu │ │ │ │ ├── dropdown-menu.ts │ │ │ │ └── index.ts │ │ │ ├── citation │ │ │ │ ├── citation.ts │ │ │ │ └── index.ts │ │ │ ├── color-picker │ │ │ │ ├── button.ts │ │ │ │ ├── color-panel.ts │ │ │ │ ├── color-picker.ts │ │ │ │ ├── consts.ts │ │ │ │ ├── custom-button.ts │ │ │ │ ├── icons.ts │ │ │ │ ├── index.ts │ │ │ │ ├── styles.ts │ │ │ │ ├── types.ts │ │ │ │ └── utils.ts │ │ │ ├── context-menu │ │ │ │ ├── button.ts │ │ │ │ ├── dynamic.ts │ │ │ │ ├── focusable.ts │ │ │ │ ├── group.ts │ │ │ │ ├── index.ts │ │ │ │ ├── input.ts │ │ │ │ ├── item.ts │ │ │ │ ├── menu-all.ts │ │ │ │ ├── menu-divider.ts │ │ │ │ ├── menu-renderer.ts │ │ │ │ ├── menu.ts │ │ │ │ ├── sub-menu.ts │ │ │ │ └── types.ts │ │ │ ├── date-picker │ │ │ │ ├── date-picker.ts │ │ │ │ ├── icons.ts │ │ │ │ ├── index.ts │ │ │ │ ├── style.ts │ │ │ │ └── utils.ts │ │ │ ├── drop-indicator │ │ │ │ ├── drop-indicator.ts │ │ │ │ ├── file-drop-manager.ts │ │ │ │ └── index.ts │ │ │ ├── edgeless-line-styles-panel │ │ │ │ ├── index.ts │ │ │ │ └── line-styles-panel.ts │ │ │ ├── edgeless-line-width-panel │ │ │ │ ├── index.ts │ │ │ │ └── line-width-panel.ts │ │ │ ├── edgeless-shape-color-picker │ │ │ │ ├── color-picker.ts │ │ │ │ └── index.ts │ │ │ ├── embed-card-modal │ │ │ │ ├── embed-card-create-modal.ts │ │ │ │ ├── embed-card-edit-modal.ts │ │ │ │ ├── index.ts │ │ │ │ └── styles.ts │ │ │ ├── filterable-list │ │ │ │ ├── index.ts │ │ │ │ ├── styles.ts │ │ │ │ └── types.ts │ │ │ ├── highlight-dropdown-menu │ │ │ │ ├── dropdown-menu.ts │ │ │ │ ├── highlight-duotone-icon.ts │ │ │ │ ├── index.ts │ │ │ │ └── text-duotone-icon.ts │ │ │ ├── hover │ │ │ │ ├── controller.ts │ │ │ │ ├── index.ts │ │ │ │ ├── middlewares │ │ │ │ │ ├── basic.ts │ │ │ │ │ └── safe-area.ts │ │ │ │ ├── types.ts │ │ │ │ └── when-hover.ts │ │ │ ├── icon-button │ │ │ │ └── index.ts │ │ │ ├── icons │ │ │ │ ├── ai.ts │ │ │ │ ├── file-icons-rc.ts │ │ │ │ ├── file-icons.ts │ │ │ │ ├── import-export.ts │ │ │ │ ├── index.ts │ │ │ │ ├── list.ts │ │ │ │ ├── loading.ts │ │ │ │ ├── misc.ts │ │ │ │ ├── tags.ts │ │ │ │ ├── text.ts │ │ │ │ └── utils.ts │ │ │ ├── index.ts │ │ │ ├── link-preview │ │ │ │ ├── index.ts │ │ │ │ └── link.ts │ │ │ ├── linked-doc-title │ │ │ │ ├── doc-title.ts │ │ │ │ └── index.ts │ │ │ ├── notification │ │ │ │ ├── index.ts │ │ │ │ └── linked-doc.ts │ │ │ ├── open-doc-dropdown-menu │ │ │ │ ├── dropdown-menu.ts │ │ │ │ └── index.ts │ │ │ ├── peek │ │ │ │ ├── commands.ts │ │ │ │ ├── controller.ts │ │ │ │ ├── index.ts │ │ │ │ ├── peekable.ts │ │ │ │ ├── service.ts │ │ │ │ └── type.ts │ │ │ ├── portal │ │ │ │ ├── helper.ts │ │ │ │ ├── index.ts │ │ │ │ ├── portal.ts │ │ │ │ └── types.ts │ │ │ ├── resource │ │ │ │ ├── index.ts │ │ │ │ ├── resource.ts │ │ │ │ └── status.ts │ │ │ ├── size-dropdown-menu │ │ │ │ ├── dropdown-menu.ts │ │ │ │ └── index.ts │ │ │ ├── slider │ │ │ │ ├── index.ts │ │ │ │ ├── slider.ts │ │ │ │ ├── styles.ts │ │ │ │ ├── types.ts │ │ │ │ └── utils.ts │ │ │ ├── smooth-corner │ │ │ │ └── index.ts │ │ │ ├── toast │ │ │ │ ├── create.ts │ │ │ │ ├── html-to-element.ts │ │ │ │ ├── index.ts │ │ │ │ └── toast.ts │ │ │ ├── toggle-button │ │ │ │ ├── index.ts │ │ │ │ └── toggle-button.ts │ │ │ ├── toggle-switch │ │ │ │ └── index.ts │ │ │ ├── toolbar │ │ │ │ ├── chevron-down.ts │ │ │ │ ├── config.ts │ │ │ │ ├── icon-button.ts │ │ │ │ ├── index.ts │ │ │ │ ├── menu-button.ts │ │ │ │ ├── menu-context.ts │ │ │ │ ├── separator.ts │ │ │ │ ├── styles.ts │ │ │ │ ├── toolbar.ts │ │ │ │ ├── types.ts │ │ │ │ └── utils.ts │ │ │ ├── tooltip-content-with-shortcut │ │ │ │ └── index.ts │ │ │ ├── tooltip │ │ │ │ ├── effect.ts │ │ │ │ ├── index.ts │ │ │ │ └── tooltip.ts │ │ │ └── view-dropdown-menu │ │ │ │ ├── dropdown-menu.ts │ │ │ │ └── index.ts │ │ └── tsconfig.json │ ├── data-view │ │ ├── package.json │ │ ├── src │ │ │ ├── __tests__ │ │ │ │ ├── hotkeys.unit.spec.ts │ │ │ │ └── table-group.unit.spec.ts │ │ │ ├── core │ │ │ │ ├── common │ │ │ │ │ ├── css-variable.ts │ │ │ │ │ ├── dv-css.ts │ │ │ │ │ ├── index.ts │ │ │ │ │ ├── properties.ts │ │ │ │ │ ├── property-menu.ts │ │ │ │ │ └── types.ts │ │ │ │ ├── component │ │ │ │ │ ├── button │ │ │ │ │ │ └── button.ts │ │ │ │ │ ├── index.ts │ │ │ │ │ ├── overflow │ │ │ │ │ │ └── overflow.ts │ │ │ │ │ └── tags │ │ │ │ │ │ ├── colors.ts │ │ │ │ │ │ ├── index.ts │ │ │ │ │ │ ├── multi-tag-select.ts │ │ │ │ │ │ ├── multi-tag-view.ts │ │ │ │ │ │ └── styles-css.ts │ │ │ │ ├── data-source │ │ │ │ │ ├── base.ts │ │ │ │ │ └── index.ts │ │ │ │ ├── data-view.ts │ │ │ │ ├── detail │ │ │ │ │ ├── detail.ts │ │ │ │ │ ├── field.ts │ │ │ │ │ └── selection.ts │ │ │ │ ├── effect.ts │ │ │ │ ├── expression │ │ │ │ │ ├── index.ts │ │ │ │ │ ├── ref │ │ │ │ │ │ ├── index.ts │ │ │ │ │ │ ├── ref-view.ts │ │ │ │ │ │ └── ref.ts │ │ │ │ │ └── types.ts │ │ │ │ ├── filter │ │ │ │ │ ├── add-filter.ts │ │ │ │ │ ├── eval.ts │ │ │ │ │ ├── filter-fn │ │ │ │ │ │ ├── boolean.ts │ │ │ │ │ │ ├── create.ts │ │ │ │ │ │ ├── date.ts │ │ │ │ │ │ ├── matcher.ts │ │ │ │ │ │ ├── multi-tag.ts │ │ │ │ │ │ ├── number.ts │ │ │ │ │ │ ├── string.ts │ │ │ │ │ │ ├── tag.ts │ │ │ │ │ │ ├── unknown.ts │ │ │ │ │ │ └── utils.ts │ │ │ │ │ ├── generate-default-values.ts │ │ │ │ │ ├── index.ts │ │ │ │ │ ├── literal │ │ │ │ │ │ ├── create.ts │ │ │ │ │ │ ├── define.ts │ │ │ │ │ │ ├── index.ts │ │ │ │ │ │ ├── matcher.ts │ │ │ │ │ │ └── types.ts │ │ │ │ │ ├── trait.ts │ │ │ │ │ ├── types.ts │ │ │ │ │ └── utils.ts │ │ │ │ ├── group-by │ │ │ │ │ ├── default.ts │ │ │ │ │ ├── define.ts │ │ │ │ │ ├── group-title.ts │ │ │ │ │ ├── index.ts │ │ │ │ │ ├── matcher.ts │ │ │ │ │ ├── renderer │ │ │ │ │ │ ├── base.ts │ │ │ │ │ │ ├── boolean-group.ts │ │ │ │ │ │ ├── number-group.ts │ │ │ │ │ │ ├── select-group.ts │ │ │ │ │ │ └── string-group.ts │ │ │ │ │ ├── setting.ts │ │ │ │ │ ├── trait.ts │ │ │ │ │ └── types.ts │ │ │ │ ├── index.ts │ │ │ │ ├── logical │ │ │ │ │ ├── composite-type.ts │ │ │ │ │ ├── data-type.ts │ │ │ │ │ ├── index.ts │ │ │ │ │ ├── matcher.ts │ │ │ │ │ ├── type-presets.ts │ │ │ │ │ ├── type-system.ts │ │ │ │ │ ├── type-variable.ts │ │ │ │ │ └── type.ts │ │ │ │ ├── property │ │ │ │ │ ├── base-cell.ts │ │ │ │ │ ├── convert.ts │ │ │ │ │ ├── index.ts │ │ │ │ │ ├── manager.ts │ │ │ │ │ ├── property-config.ts │ │ │ │ │ ├── renderer.ts │ │ │ │ │ ├── types.ts │ │ │ │ │ └── utils.ts │ │ │ │ ├── sort │ │ │ │ │ ├── add-sort.ts │ │ │ │ │ ├── eval.ts │ │ │ │ │ ├── manager.ts │ │ │ │ │ ├── types.ts │ │ │ │ │ └── utils.ts │ │ │ │ ├── statistics │ │ │ │ │ ├── any.ts │ │ │ │ │ ├── checkbox.ts │ │ │ │ │ ├── create.ts │ │ │ │ │ ├── index.ts │ │ │ │ │ ├── number.ts │ │ │ │ │ └── types.ts │ │ │ │ ├── traits │ │ │ │ │ └── key.ts │ │ │ │ ├── types.ts │ │ │ │ ├── utils │ │ │ │ │ ├── auto-scroll.ts │ │ │ │ │ ├── cache.ts │ │ │ │ │ ├── drag.ts │ │ │ │ │ ├── event.ts │ │ │ │ │ ├── index.ts │ │ │ │ │ ├── lazy.ts │ │ │ │ │ ├── lock.ts │ │ │ │ │ ├── menu-title.ts │ │ │ │ │ ├── uni-component │ │ │ │ │ │ ├── index.ts │ │ │ │ │ │ ├── operation.ts │ │ │ │ │ │ ├── render-template.ts │ │ │ │ │ │ └── uni-component.ts │ │ │ │ │ ├── uni-icon.ts │ │ │ │ │ ├── utils.ts │ │ │ │ │ └── wc-dnd │ │ │ │ │ │ ├── dnd-context.ts │ │ │ │ │ │ ├── sensors │ │ │ │ │ │ ├── index.ts │ │ │ │ │ │ └── mouse.ts │ │ │ │ │ │ ├── sort │ │ │ │ │ │ ├── sort-context.ts │ │ │ │ │ │ └── strategies │ │ │ │ │ │ │ ├── horizontal-list-sorting.ts │ │ │ │ │ │ │ ├── index.ts │ │ │ │ │ │ │ └── vertical-list-sorting.ts │ │ │ │ │ │ ├── types.ts │ │ │ │ │ │ └── utils │ │ │ │ │ │ ├── adjustment.ts │ │ │ │ │ │ ├── apply-modifiers.ts │ │ │ │ │ │ ├── array-move.ts │ │ │ │ │ │ ├── closest-center.ts │ │ │ │ │ │ ├── data-directive.ts │ │ │ │ │ │ ├── distance-between-points.ts │ │ │ │ │ │ ├── element.ts │ │ │ │ │ │ ├── events.ts │ │ │ │ │ │ ├── get-scrollable-ancestors.ts │ │ │ │ │ │ ├── has-exceeded-distance.ts │ │ │ │ │ │ ├── linear-move.ts │ │ │ │ │ │ ├── listeners.ts │ │ │ │ │ │ ├── raf.ts │ │ │ │ │ │ ├── rect-adjustment.ts │ │ │ │ │ │ ├── rect.ts │ │ │ │ │ │ └── signal.ts │ │ │ │ ├── view-manager │ │ │ │ │ ├── cell.ts │ │ │ │ │ ├── index.ts │ │ │ │ │ ├── property.ts │ │ │ │ │ ├── row.ts │ │ │ │ │ ├── single-view.ts │ │ │ │ │ └── view-manager.ts │ │ │ │ ├── view │ │ │ │ │ ├── convert.ts │ │ │ │ │ ├── data-view-base.ts │ │ │ │ │ ├── data-view.ts │ │ │ │ │ ├── index.ts │ │ │ │ │ └── types.ts │ │ │ │ └── widget │ │ │ │ │ ├── index.ts │ │ │ │ │ ├── types.ts │ │ │ │ │ └── widget-base.ts │ │ │ ├── effects.ts │ │ │ ├── index.ts │ │ │ ├── property-presets │ │ │ │ ├── checkbox │ │ │ │ │ ├── cell-renderer.ts │ │ │ │ │ └── define.ts │ │ │ │ ├── converts.ts │ │ │ │ ├── date │ │ │ │ │ ├── cell-renderer-css.ts │ │ │ │ │ ├── cell-renderer.ts │ │ │ │ │ └── define.ts │ │ │ │ ├── effect.ts │ │ │ │ ├── image │ │ │ │ │ ├── cell-renderer.ts │ │ │ │ │ └── define.ts │ │ │ │ ├── index.ts │ │ │ │ ├── multi-select │ │ │ │ │ ├── cell-renderer-css.ts │ │ │ │ │ ├── cell-renderer.ts │ │ │ │ │ └── define.ts │ │ │ │ ├── number │ │ │ │ │ ├── cell-renderer-css.ts │ │ │ │ │ ├── cell-renderer.ts │ │ │ │ │ ├── define.ts │ │ │ │ │ ├── index.ts │ │ │ │ │ ├── types.ts │ │ │ │ │ └── utils │ │ │ │ │ │ ├── formats.ts │ │ │ │ │ │ └── formatter.ts │ │ │ │ ├── progress │ │ │ │ │ ├── cell-renderer-css.ts │ │ │ │ │ ├── cell-renderer.ts │ │ │ │ │ └── define.ts │ │ │ │ ├── pure-index.ts │ │ │ │ ├── select │ │ │ │ │ ├── cell-renderer-css.ts │ │ │ │ │ ├── cell-renderer.ts │ │ │ │ │ └── define.ts │ │ │ │ └── text │ │ │ │ │ ├── cell-renderer-css.ts │ │ │ │ │ ├── cell-renderer.ts │ │ │ │ │ └── define.ts │ │ │ ├── view-presets │ │ │ │ ├── convert.ts │ │ │ │ ├── effect.ts │ │ │ │ ├── index.ts │ │ │ │ ├── kanban │ │ │ │ │ ├── define.ts │ │ │ │ │ ├── effect.ts │ │ │ │ │ ├── index.ts │ │ │ │ │ ├── kanban-view-manager.ts │ │ │ │ │ ├── mobile │ │ │ │ │ │ ├── card.ts │ │ │ │ │ │ ├── cell.ts │ │ │ │ │ │ ├── effect.ts │ │ │ │ │ │ ├── group.ts │ │ │ │ │ │ ├── kanban-view-ui-logic.ts │ │ │ │ │ │ └── menu.ts │ │ │ │ │ ├── pc │ │ │ │ │ │ ├── card.ts │ │ │ │ │ │ ├── cell.ts │ │ │ │ │ │ ├── controller │ │ │ │ │ │ │ ├── clipboard.ts │ │ │ │ │ │ │ ├── drag.ts │ │ │ │ │ │ │ ├── hotkeys.ts │ │ │ │ │ │ │ └── selection.ts │ │ │ │ │ │ ├── effect.ts │ │ │ │ │ │ ├── group.ts │ │ │ │ │ │ ├── header.ts │ │ │ │ │ │ ├── kanban-view-ui-logic.ts │ │ │ │ │ │ └── menu.ts │ │ │ │ │ ├── renderer.ts │ │ │ │ │ └── selection.ts │ │ │ │ └── table │ │ │ │ │ ├── collapsed-state.ts │ │ │ │ │ ├── consts.ts │ │ │ │ │ ├── define.ts │ │ │ │ │ ├── effect.ts │ │ │ │ │ ├── index.ts │ │ │ │ │ ├── mobile │ │ │ │ │ ├── cell.ts │ │ │ │ │ ├── column-header.ts │ │ │ │ │ ├── effect.ts │ │ │ │ │ ├── group.ts │ │ │ │ │ ├── header.ts │ │ │ │ │ ├── menu.ts │ │ │ │ │ ├── row.ts │ │ │ │ │ ├── table-view-style.ts │ │ │ │ │ └── table-view-ui-logic.ts │ │ │ │ │ ├── pc-virtual │ │ │ │ │ ├── controller │ │ │ │ │ │ ├── clipboard.ts │ │ │ │ │ │ ├── drag-to-fill.ts │ │ │ │ │ │ ├── drag.ts │ │ │ │ │ │ ├── hotkeys.ts │ │ │ │ │ │ └── selection.ts │ │ │ │ │ ├── effect.ts │ │ │ │ │ ├── group │ │ │ │ │ │ ├── bottom │ │ │ │ │ │ │ ├── group-footer-css.ts │ │ │ │ │ │ │ ├── group-footer.ts │ │ │ │ │ │ │ └── stats │ │ │ │ │ │ │ │ ├── column-stats-bar.ts │ │ │ │ │ │ │ │ └── column-stats-column.ts │ │ │ │ │ │ └── top │ │ │ │ │ │ │ ├── group-header-css.ts │ │ │ │ │ │ │ ├── group-header.ts │ │ │ │ │ │ │ ├── group-title-css.ts │ │ │ │ │ │ │ ├── group-title.ts │ │ │ │ │ │ │ └── header │ │ │ │ │ │ │ ├── column-header-css.ts │ │ │ │ │ │ │ ├── column-header.ts │ │ │ │ │ │ │ ├── column-move-preview.ts │ │ │ │ │ │ │ ├── number-format-bar.ts │ │ │ │ │ │ │ ├── single-column-header.ts │ │ │ │ │ │ │ └── vertical-indicator.ts │ │ │ │ │ ├── row │ │ │ │ │ │ ├── cell.ts │ │ │ │ │ │ ├── menu.ts │ │ │ │ │ │ ├── row-header-css.ts │ │ │ │ │ │ ├── row-header.ts │ │ │ │ │ │ └── row-last.ts │ │ │ │ │ ├── table-view-css.ts │ │ │ │ │ ├── table-view-ui-logic.ts │ │ │ │ │ ├── types.ts │ │ │ │ │ └── virtual │ │ │ │ │ │ ├── batch-task-manager.ts │ │ │ │ │ │ ├── linked-list.ts │ │ │ │ │ │ ├── virtual-cell-css.ts │ │ │ │ │ │ ├── virtual-cell.ts │ │ │ │ │ │ └── virtual-scroll.ts │ │ │ │ │ ├── pc │ │ │ │ │ ├── cell.ts │ │ │ │ │ ├── controller │ │ │ │ │ │ ├── clipboard.ts │ │ │ │ │ │ ├── drag-to-fill.ts │ │ │ │ │ │ ├── drag.ts │ │ │ │ │ │ ├── hotkeys.ts │ │ │ │ │ │ └── selection.ts │ │ │ │ │ ├── effect.ts │ │ │ │ │ ├── group.ts │ │ │ │ │ ├── header │ │ │ │ │ │ ├── column-header.ts │ │ │ │ │ │ ├── column-renderer.ts │ │ │ │ │ │ ├── database-header-column.ts │ │ │ │ │ │ ├── number-format-bar.ts │ │ │ │ │ │ ├── styles.ts │ │ │ │ │ │ └── vertical-indicator.ts │ │ │ │ │ ├── menu.ts │ │ │ │ │ ├── row │ │ │ │ │ │ ├── row-select-checkbox.ts │ │ │ │ │ │ └── row.ts │ │ │ │ │ ├── table-view-style.ts │ │ │ │ │ └── table-view-ui-logic.ts │ │ │ │ │ ├── renderer.ts │ │ │ │ │ ├── selection.ts │ │ │ │ │ ├── stats │ │ │ │ │ ├── column-stats-bar.ts │ │ │ │ │ ├── column-stats-column.ts │ │ │ │ │ └── effect.ts │ │ │ │ │ ├── styles.ts │ │ │ │ │ ├── table-view-manager.ts │ │ │ │ │ ├── types.ts │ │ │ │ │ └── utils.ts │ │ │ └── widget-presets │ │ │ │ ├── effect.ts │ │ │ │ ├── index.ts │ │ │ │ ├── quick-setting-bar │ │ │ │ ├── context.ts │ │ │ │ ├── filter │ │ │ │ │ ├── condition-view.ts │ │ │ │ │ ├── group-panel-view.ts │ │ │ │ │ ├── index.ts │ │ │ │ │ ├── list-view.ts │ │ │ │ │ └── root-panel-view.ts │ │ │ │ ├── index.ts │ │ │ │ └── sort │ │ │ │ │ ├── index.ts │ │ │ │ │ └── root-panel.ts │ │ │ │ ├── tools │ │ │ │ ├── index.ts │ │ │ │ ├── presets │ │ │ │ │ ├── filter │ │ │ │ │ │ └── filter.ts │ │ │ │ │ ├── search │ │ │ │ │ │ └── search.ts │ │ │ │ │ ├── sort │ │ │ │ │ │ └── sort.ts │ │ │ │ │ ├── table-add-row │ │ │ │ │ │ ├── add-row.ts │ │ │ │ │ │ └── new-record-preview.ts │ │ │ │ │ └── view-options │ │ │ │ │ │ └── view-options.ts │ │ │ │ └── tools-view.ts │ │ │ │ └── views-bar │ │ │ │ ├── index.ts │ │ │ │ └── views-view.ts │ │ ├── tsconfig.json │ │ └── vitest.config.ts │ ├── ext-loader │ │ ├── README.md │ │ ├── package.json │ │ ├── src │ │ │ ├── __tests__ │ │ │ │ └── ext-loader.unit.spec.ts │ │ │ ├── base-provider.ts │ │ │ ├── index.ts │ │ │ ├── manager.ts │ │ │ ├── store-manager.ts │ │ │ ├── store-provider.ts │ │ │ ├── view-manager.ts │ │ │ └── view-provider.ts │ │ ├── tsconfig.json │ │ └── vitest.config.ts │ ├── foundation │ │ ├── package.json │ │ ├── src │ │ │ ├── clipboard.ts │ │ │ ├── effects.ts │ │ │ ├── index.ts │ │ │ ├── store.ts │ │ │ └── view.ts │ │ └── tsconfig.json │ ├── fragments │ │ ├── adapter-panel │ │ │ ├── package.json │ │ │ ├── src │ │ │ │ ├── adapter-panel.ts │ │ │ │ ├── body │ │ │ │ │ └── adapter-panel-body.ts │ │ │ │ ├── config.ts │ │ │ │ ├── effects.ts │ │ │ │ ├── header │ │ │ │ │ ├── adapter-menu.ts │ │ │ │ │ └── adapter-panel-header.ts │ │ │ │ ├── index.ts │ │ │ │ └── view.ts │ │ │ └── tsconfig.json │ │ ├── doc-title │ │ │ ├── package.json │ │ │ ├── src │ │ │ │ ├── doc-title.ts │ │ │ │ ├── effects.ts │ │ │ │ ├── index.ts │ │ │ │ ├── utils.ts │ │ │ │ └── view.ts │ │ │ └── tsconfig.json │ │ ├── frame-panel │ │ │ ├── package.json │ │ │ ├── src │ │ │ │ ├── body │ │ │ │ │ └── frame-panel-body.ts │ │ │ │ ├── card │ │ │ │ │ ├── frame-card-title-editor.ts │ │ │ │ │ ├── frame-card-title.ts │ │ │ │ │ ├── frame-card.ts │ │ │ │ │ └── frame-preview.ts │ │ │ │ ├── effects.ts │ │ │ │ ├── frame-panel.ts │ │ │ │ ├── header │ │ │ │ │ ├── frame-panel-header.ts │ │ │ │ │ └── frames-setting-menu.ts │ │ │ │ ├── index.ts │ │ │ │ ├── utils │ │ │ │ │ └── drag.ts │ │ │ │ └── view.ts │ │ │ └── tsconfig.json │ │ └── outline │ │ │ ├── package.json │ │ │ ├── src │ │ │ ├── body │ │ │ │ ├── outline-notice.css.ts │ │ │ │ ├── outline-notice.ts │ │ │ │ ├── outline-panel-body.css.ts │ │ │ │ └── outline-panel-body.ts │ │ │ ├── card │ │ │ │ ├── outline-card.css.ts │ │ │ │ ├── outline-card.ts │ │ │ │ ├── outline-preview.css.ts │ │ │ │ └── outline-preview.ts │ │ │ ├── config.ts │ │ │ ├── effects.ts │ │ │ ├── header │ │ │ │ ├── outline-panel-header.css.ts │ │ │ │ ├── outline-panel-header.ts │ │ │ │ ├── outline-setting-menu.css.ts │ │ │ │ └── outline-setting-menu.ts │ │ │ ├── index.ts │ │ │ ├── mobile-outline-panel.ts │ │ │ ├── outline-panel.css.ts │ │ │ ├── outline-panel.ts │ │ │ ├── outline-viewer.ts │ │ │ ├── utils │ │ │ │ ├── custom-events.ts │ │ │ │ ├── drag.ts │ │ │ │ ├── query.ts │ │ │ │ └── scroll.ts │ │ │ └── view.ts │ │ │ └── tsconfig.json │ ├── gfx │ │ ├── brush │ │ │ ├── package.json │ │ │ ├── src │ │ │ │ ├── adapter │ │ │ │ │ ├── index.ts │ │ │ │ │ ├── markdown │ │ │ │ │ │ └── index.ts │ │ │ │ │ └── plain-text │ │ │ │ │ │ └── index.ts │ │ │ │ ├── brush-tool.ts │ │ │ │ ├── effects.ts │ │ │ │ ├── eraser-tool.ts │ │ │ │ ├── highlighter-tool.ts │ │ │ │ ├── index.ts │ │ │ │ ├── renderer │ │ │ │ │ ├── dom │ │ │ │ │ │ ├── brush.ts │ │ │ │ │ │ ├── highlighter.ts │ │ │ │ │ │ └── index.ts │ │ │ │ │ ├── element │ │ │ │ │ │ ├── brush.ts │ │ │ │ │ │ ├── highlighter.ts │ │ │ │ │ │ └── index.ts │ │ │ │ │ └── index.ts │ │ │ │ ├── store.ts │ │ │ │ ├── toolbar │ │ │ │ │ ├── components │ │ │ │ │ │ ├── eraser │ │ │ │ │ │ │ ├── eraser-tool-button.ts │ │ │ │ │ │ │ └── icons.ts │ │ │ │ │ │ └── pen │ │ │ │ │ │ │ ├── consts.ts │ │ │ │ │ │ │ ├── icons.ts │ │ │ │ │ │ │ ├── pen-menu.ts │ │ │ │ │ │ │ ├── pen-tool-button.ts │ │ │ │ │ │ │ └── types.ts │ │ │ │ │ ├── configs │ │ │ │ │ │ ├── brush.ts │ │ │ │ │ │ ├── highlighter.ts │ │ │ │ │ │ └── index.ts │ │ │ │ │ └── senior-tool.ts │ │ │ │ └── view.ts │ │ │ └── tsconfig.json │ │ ├── connector │ │ │ ├── package.json │ │ │ ├── src │ │ │ │ ├── adapter │ │ │ │ │ ├── index.ts │ │ │ │ │ ├── markdown │ │ │ │ │ │ └── index.ts │ │ │ │ │ ├── plain-text │ │ │ │ │ │ └── index.ts │ │ │ │ │ └── text.ts │ │ │ │ ├── components │ │ │ │ │ └── connector-handle.ts │ │ │ │ ├── connector-manager.ts │ │ │ │ ├── connector-tool.ts │ │ │ │ ├── connector-watcher.ts │ │ │ │ ├── effects.ts │ │ │ │ ├── element-transform │ │ │ │ │ ├── connector-filter.ts │ │ │ │ │ └── index.ts │ │ │ │ ├── index.ts │ │ │ │ ├── renderer │ │ │ │ │ ├── dom-renderer.ts │ │ │ │ │ ├── element-renderer.ts │ │ │ │ │ ├── index.ts │ │ │ │ │ └── utils.ts │ │ │ │ ├── store.ts │ │ │ │ ├── text │ │ │ │ │ ├── edgeless-connector-label-editor.ts │ │ │ │ │ ├── index.ts │ │ │ │ │ └── text.ts │ │ │ │ ├── toolbar │ │ │ │ │ ├── config.ts │ │ │ │ │ ├── connector-dense-menu.ts │ │ │ │ │ ├── connector-menu.ts │ │ │ │ │ ├── connector-tool-button.ts │ │ │ │ │ └── quick-tool.ts │ │ │ │ ├── view.ts │ │ │ │ └── view │ │ │ │ │ ├── index.ts │ │ │ │ │ └── view.ts │ │ │ └── tsconfig.json │ │ ├── group │ │ │ ├── package.json │ │ │ ├── src │ │ │ │ ├── adapter │ │ │ │ │ ├── index.ts │ │ │ │ │ ├── markdown │ │ │ │ │ │ └── index.ts │ │ │ │ │ ├── plain-text │ │ │ │ │ │ └── index.ts │ │ │ │ │ └── text.ts │ │ │ │ ├── command │ │ │ │ │ ├── group-api.ts │ │ │ │ │ └── index.ts │ │ │ │ ├── effects.ts │ │ │ │ ├── element-view.ts │ │ │ │ ├── group-watcher.ts │ │ │ │ ├── index.ts │ │ │ │ ├── interaction-ext.ts │ │ │ │ ├── renderer │ │ │ │ │ ├── consts.ts │ │ │ │ │ ├── dom-renderer.ts │ │ │ │ │ ├── element-renderer.ts │ │ │ │ │ ├── index.ts │ │ │ │ │ └── utils.ts │ │ │ │ ├── store.ts │ │ │ │ ├── text │ │ │ │ │ ├── edgeless-group-title-editor.ts │ │ │ │ │ └── text.ts │ │ │ │ ├── toolbar │ │ │ │ │ └── config.ts │ │ │ │ └── view.ts │ │ │ └── tsconfig.json │ │ ├── link │ │ │ ├── package.json │ │ │ ├── src │ │ │ │ ├── effects.ts │ │ │ │ ├── index.ts │ │ │ │ ├── link-tool.ts │ │ │ │ ├── toolbar │ │ │ │ │ ├── link-dense-menu.ts │ │ │ │ │ └── link-tool-button.ts │ │ │ │ └── view.ts │ │ │ └── tsconfig.json │ │ ├── mindmap │ │ │ ├── package.json │ │ │ ├── src │ │ │ │ ├── adapter │ │ │ │ │ ├── index.ts │ │ │ │ │ ├── markdown │ │ │ │ │ │ └── index.ts │ │ │ │ │ ├── plain-text │ │ │ │ │ │ └── index.ts │ │ │ │ │ └── utils.ts │ │ │ │ ├── effects.ts │ │ │ │ ├── index.ts │ │ │ │ ├── indicator-overlay │ │ │ │ │ └── index.ts │ │ │ │ ├── interactivity │ │ │ │ │ ├── drag-utils.ts │ │ │ │ │ ├── index.ts │ │ │ │ │ └── mind-map-drag.ts │ │ │ │ ├── renderer │ │ │ │ │ ├── dom-renderer.ts │ │ │ │ │ ├── element-renderer.ts │ │ │ │ │ └── index.ts │ │ │ │ ├── store.ts │ │ │ │ ├── toolbar │ │ │ │ │ ├── assets.ts │ │ │ │ │ ├── basket-elements.ts │ │ │ │ │ ├── config.ts │ │ │ │ │ ├── icons.ts │ │ │ │ │ ├── mindmap-importing-placeholder.ts │ │ │ │ │ ├── mindmap-menu.ts │ │ │ │ │ ├── mindmap-tool-button.ts │ │ │ │ │ ├── senior-tool.ts │ │ │ │ │ └── utils │ │ │ │ │ │ └── import-mindmap.ts │ │ │ │ ├── utils │ │ │ │ │ └── index.ts │ │ │ │ ├── view.ts │ │ │ │ └── view │ │ │ │ │ ├── index.ts │ │ │ │ │ ├── layout.ts │ │ │ │ │ ├── style-svg.ts │ │ │ │ │ ├── utils.ts │ │ │ │ │ └── view.ts │ │ │ └── tsconfig.json │ │ ├── note │ │ │ ├── package.json │ │ │ ├── src │ │ │ │ ├── components │ │ │ │ │ ├── icons.ts │ │ │ │ │ ├── note-display-mode-panel.ts │ │ │ │ │ └── note-shadow-panel.ts │ │ │ │ ├── effects.ts │ │ │ │ ├── index.ts │ │ │ │ ├── note-tool.ts │ │ │ │ ├── overlay │ │ │ │ │ ├── consts.ts │ │ │ │ │ ├── index.ts │ │ │ │ │ └── overlay.ts │ │ │ │ ├── toolbar │ │ │ │ │ ├── icon.ts │ │ │ │ │ ├── note-menu-config.ts │ │ │ │ │ ├── note-menu.ts │ │ │ │ │ ├── note-senior-button.ts │ │ │ │ │ ├── note-tool-button.ts │ │ │ │ │ └── senior-tool.ts │ │ │ │ └── view.ts │ │ │ └── tsconfig.json │ │ ├── pointer │ │ │ ├── package.json │ │ │ ├── src │ │ │ │ ├── effects.ts │ │ │ │ ├── index.ts │ │ │ │ ├── quick-tool │ │ │ │ │ ├── default-tool-button.ts │ │ │ │ │ └── quick-tool.ts │ │ │ │ ├── snap │ │ │ │ │ ├── snap-manager.ts │ │ │ │ │ └── snap-overlay.ts │ │ │ │ ├── tools │ │ │ │ │ ├── empty-tool.ts │ │ │ │ │ ├── index.ts │ │ │ │ │ └── pan-tool.ts │ │ │ │ └── view.ts │ │ │ └── tsconfig.json │ │ ├── shape │ │ │ ├── package.json │ │ │ ├── src │ │ │ │ ├── adapter │ │ │ │ │ ├── index.ts │ │ │ │ │ ├── markdown │ │ │ │ │ │ └── index.ts │ │ │ │ │ ├── plain-text │ │ │ │ │ │ └── index.ts │ │ │ │ │ └── utils.ts │ │ │ │ ├── components │ │ │ │ │ ├── shape-panel.ts │ │ │ │ │ └── shape-style-panel.ts │ │ │ │ ├── consts.ts │ │ │ │ ├── draggable │ │ │ │ │ ├── index.ts │ │ │ │ │ ├── shape-draggable.ts │ │ │ │ │ ├── shape-menu.ts │ │ │ │ │ ├── shape-tool-button.ts │ │ │ │ │ ├── shape-tool-element.ts │ │ │ │ │ └── utils.ts │ │ │ │ ├── effects.ts │ │ │ │ ├── element-renderer │ │ │ │ │ ├── index.ts │ │ │ │ │ ├── shape-dom.ts │ │ │ │ │ ├── shape-dom │ │ │ │ │ │ ├── index.ts │ │ │ │ │ │ └── utils.ts │ │ │ │ │ └── shape │ │ │ │ │ │ ├── diamond.ts │ │ │ │ │ │ ├── ellipse.ts │ │ │ │ │ │ ├── index.ts │ │ │ │ │ │ ├── rect.ts │ │ │ │ │ │ ├── triangle.ts │ │ │ │ │ │ └── utils.ts │ │ │ │ ├── element-view.ts │ │ │ │ ├── index.ts │ │ │ │ ├── overlay │ │ │ │ │ ├── diamond.ts │ │ │ │ │ ├── ellipse.ts │ │ │ │ │ ├── factory.ts │ │ │ │ │ ├── index.ts │ │ │ │ │ ├── rect.ts │ │ │ │ │ ├── rounded-rect.ts │ │ │ │ │ ├── shape-overlay.ts │ │ │ │ │ ├── shape.ts │ │ │ │ │ ├── triangle.ts │ │ │ │ │ └── utils.ts │ │ │ │ ├── shape-tool.ts │ │ │ │ ├── store.ts │ │ │ │ ├── text │ │ │ │ │ ├── edgeless-shape-text-editor.ts │ │ │ │ │ └── index.ts │ │ │ │ ├── toolbar │ │ │ │ │ ├── config.ts │ │ │ │ │ ├── icons.ts │ │ │ │ │ ├── index.ts │ │ │ │ │ ├── senior-tool.ts │ │ │ │ │ └── shape-menu-config.ts │ │ │ │ └── view.ts │ │ │ └── tsconfig.json │ │ ├── template │ │ │ ├── package.json │ │ │ ├── src │ │ │ │ ├── effects.ts │ │ │ │ ├── index.ts │ │ │ │ ├── services │ │ │ │ │ ├── template-middlewares.ts │ │ │ │ │ └── template.ts │ │ │ │ ├── template-tool.ts │ │ │ │ ├── toolbar │ │ │ │ │ ├── builtin-templates.ts │ │ │ │ │ ├── cards.ts │ │ │ │ │ ├── overlay-scrollbar.ts │ │ │ │ │ ├── senior-tool.ts │ │ │ │ │ ├── template-loading.ts │ │ │ │ │ ├── template-panel.ts │ │ │ │ │ ├── template-tool-button.ts │ │ │ │ │ ├── template-type.ts │ │ │ │ │ └── utils.ts │ │ │ │ └── view.ts │ │ │ └── tsconfig.json │ │ ├── text │ │ │ ├── package.json │ │ │ ├── src │ │ │ │ ├── adapter │ │ │ │ │ ├── index.ts │ │ │ │ │ ├── markdown │ │ │ │ │ │ └── index.ts │ │ │ │ │ ├── plain-text │ │ │ │ │ │ └── index.ts │ │ │ │ │ └── text.ts │ │ │ │ ├── commands │ │ │ │ │ ├── index.ts │ │ │ │ │ └── insert-edgeless-text.ts │ │ │ │ ├── dblclick-add-edgeless-text.ts │ │ │ │ ├── edgeless-text-editor.ts │ │ │ │ ├── effects.ts │ │ │ │ ├── element-renderer │ │ │ │ │ ├── index.ts │ │ │ │ │ └── utils.ts │ │ │ │ ├── element-view.ts │ │ │ │ ├── index.ts │ │ │ │ ├── store.ts │ │ │ │ ├── tool.ts │ │ │ │ ├── toolbar │ │ │ │ │ ├── actions.ts │ │ │ │ │ ├── config.ts │ │ │ │ │ ├── index.ts │ │ │ │ │ └── text-menu.ts │ │ │ │ └── view.ts │ │ │ └── tsconfig.json │ │ └── turbo-renderer │ │ │ ├── package.json │ │ │ ├── src │ │ │ ├── index.ts │ │ │ ├── layout │ │ │ │ └── block-layout-provider.ts │ │ │ ├── painter │ │ │ │ └── painter.worker.ts │ │ │ ├── renderer-utils.ts │ │ │ ├── text-utils.ts │ │ │ ├── turbo-renderer.ts │ │ │ └── types.ts │ │ │ └── tsconfig.json │ ├── inlines │ │ ├── comment │ │ │ ├── package.json │ │ │ ├── src │ │ │ │ ├── effects.ts │ │ │ │ ├── index.ts │ │ │ │ ├── inline-comment-manager.ts │ │ │ │ ├── inline-comment.ts │ │ │ │ ├── inline-spec.ts │ │ │ │ ├── utils.ts │ │ │ │ └── view.ts │ │ │ └── tsconfig.json │ │ ├── footnote │ │ │ ├── package.json │ │ │ ├── src │ │ │ │ ├── __tests__ │ │ │ │ │ └── adapters │ │ │ │ │ │ └── preprocessor.unit.spec.ts │ │ │ │ ├── adapters │ │ │ │ │ ├── index.ts │ │ │ │ │ └── markdown │ │ │ │ │ │ ├── inline-delta.ts │ │ │ │ │ │ ├── markdown-inline.ts │ │ │ │ │ │ └── preprocessor.ts │ │ │ │ ├── effects.ts │ │ │ │ ├── footnote-node │ │ │ │ │ ├── footnote-config.ts │ │ │ │ │ ├── footnote-node.ts │ │ │ │ │ ├── footnote-popup-chip.ts │ │ │ │ │ └── footnote-popup.ts │ │ │ │ ├── index.ts │ │ │ │ ├── inline-spec.ts │ │ │ │ ├── store.ts │ │ │ │ └── view.ts │ │ │ ├── tsconfig.json │ │ │ └── vitest.config.ts │ │ ├── latex │ │ │ ├── package.json │ │ │ ├── src │ │ │ │ ├── adapters │ │ │ │ │ ├── index.ts │ │ │ │ │ ├── markdown │ │ │ │ │ │ ├── inline-delta.ts │ │ │ │ │ │ └── markdown-inline.ts │ │ │ │ │ └── plain-text │ │ │ │ │ │ └── inline-delta.ts │ │ │ │ ├── command.ts │ │ │ │ ├── effects.ts │ │ │ │ ├── index.ts │ │ │ │ ├── inline-spec.ts │ │ │ │ ├── latex-node │ │ │ │ │ ├── latex-editor-menu.ts │ │ │ │ │ ├── latex-editor-unit.ts │ │ │ │ │ └── latex-node.ts │ │ │ │ ├── markdown.ts │ │ │ │ ├── store.ts │ │ │ │ └── view.ts │ │ │ └── tsconfig.json │ │ ├── link │ │ │ ├── package.json │ │ │ ├── src │ │ │ │ ├── adapters │ │ │ │ │ ├── html │ │ │ │ │ │ ├── html-inline.ts │ │ │ │ │ │ └── inline-delta.ts │ │ │ │ │ ├── index.ts │ │ │ │ │ ├── markdown │ │ │ │ │ │ ├── index.ts │ │ │ │ │ │ ├── inline-delta.ts │ │ │ │ │ │ └── markdown-inline.ts │ │ │ │ │ ├── notion-html │ │ │ │ │ │ └── html-inline.ts │ │ │ │ │ └── plain-text │ │ │ │ │ │ └── inline-delta.ts │ │ │ │ ├── command.ts │ │ │ │ ├── effects.ts │ │ │ │ ├── index.ts │ │ │ │ ├── inline-spec.ts │ │ │ │ ├── link-node │ │ │ │ │ ├── affine-link.ts │ │ │ │ │ ├── configs │ │ │ │ │ │ └── toolbar.ts │ │ │ │ │ ├── index.ts │ │ │ │ │ └── link-popup │ │ │ │ │ │ ├── link-popup.ts │ │ │ │ │ │ ├── styles.ts │ │ │ │ │ │ └── toggle-link-popup.ts │ │ │ │ ├── markdown.ts │ │ │ │ ├── store.ts │ │ │ │ ├── toolbar.ts │ │ │ │ └── view.ts │ │ │ └── tsconfig.json │ │ ├── mention │ │ │ ├── package.json │ │ │ ├── src │ │ │ │ ├── affine-mention.ts │ │ │ │ ├── effects.ts │ │ │ │ ├── index.ts │ │ │ │ ├── inline-spec.ts │ │ │ │ └── view.ts │ │ │ └── tsconfig.json │ │ ├── preset │ │ │ ├── package.json │ │ │ ├── src │ │ │ │ ├── adapters │ │ │ │ │ ├── extensions.ts │ │ │ │ │ ├── html │ │ │ │ │ │ ├── html-inline.ts │ │ │ │ │ │ └── inline-delta.ts │ │ │ │ │ ├── markdown │ │ │ │ │ │ ├── inline-delta.ts │ │ │ │ │ │ └── markdown-inline.ts │ │ │ │ │ └── notion-html │ │ │ │ │ │ └── html-inline.ts │ │ │ │ ├── command │ │ │ │ │ ├── config.ts │ │ │ │ │ ├── consts.ts │ │ │ │ │ ├── delete-text.ts │ │ │ │ │ ├── format-block.ts │ │ │ │ │ ├── format-native.ts │ │ │ │ │ ├── format-text.ts │ │ │ │ │ ├── index.ts │ │ │ │ │ ├── text-style.ts │ │ │ │ │ └── utils.ts │ │ │ │ ├── default-inline-manager.ts │ │ │ │ ├── effects.ts │ │ │ │ ├── index.ts │ │ │ │ ├── inline-spec.ts │ │ │ │ ├── keymap │ │ │ │ │ ├── basic.ts │ │ │ │ │ ├── bracket.ts │ │ │ │ │ ├── format.ts │ │ │ │ │ └── index.ts │ │ │ │ ├── markdown.ts │ │ │ │ ├── nodes │ │ │ │ │ └── affine-text.ts │ │ │ │ ├── store.ts │ │ │ │ └── view.ts │ │ │ └── tsconfig.json │ │ └── reference │ │ │ ├── package.json │ │ │ ├── src │ │ │ ├── adapters │ │ │ │ ├── html │ │ │ │ │ └── inline-delta.ts │ │ │ │ ├── index.ts │ │ │ │ ├── markdown │ │ │ │ │ └── inline-delta.ts │ │ │ │ └── plain-text │ │ │ │ │ └── inline-delta.ts │ │ │ ├── effects.ts │ │ │ ├── index.ts │ │ │ ├── inline-spec.ts │ │ │ ├── reference-node │ │ │ │ ├── configs │ │ │ │ │ └── toolbar.ts │ │ │ │ ├── index.ts │ │ │ │ ├── reference-config.ts │ │ │ │ ├── reference-node-slots.ts │ │ │ │ ├── reference-node.ts │ │ │ │ ├── reference-popup │ │ │ │ │ ├── reference-popup.ts │ │ │ │ │ └── toggle-reference-popup.ts │ │ │ │ └── types.ts │ │ │ ├── store.ts │ │ │ ├── toolbar.ts │ │ │ ├── utils.ts │ │ │ └── view.ts │ │ │ └── tsconfig.json │ ├── model │ │ ├── package.json │ │ ├── src │ │ │ ├── blocks │ │ │ │ ├── attachment │ │ │ │ │ ├── attachment-model.ts │ │ │ │ │ ├── attachment-transformer.ts │ │ │ │ │ └── index.ts │ │ │ │ ├── bookmark │ │ │ │ │ ├── bookmark-model.ts │ │ │ │ │ └── index.ts │ │ │ │ ├── callout │ │ │ │ │ ├── callout-model.ts │ │ │ │ │ └── index.ts │ │ │ │ ├── code │ │ │ │ │ ├── code-model.ts │ │ │ │ │ └── index.ts │ │ │ │ ├── database │ │ │ │ │ ├── database-model.ts │ │ │ │ │ ├── index.ts │ │ │ │ │ └── types.ts │ │ │ │ ├── divider │ │ │ │ │ ├── divider-model.ts │ │ │ │ │ └── index.ts │ │ │ │ ├── edgeless-text │ │ │ │ │ ├── edgeless-text-model.ts │ │ │ │ │ └── index.ts │ │ │ │ ├── embed │ │ │ │ │ ├── figma │ │ │ │ │ │ ├── figma-model.ts │ │ │ │ │ │ ├── figma-schema.ts │ │ │ │ │ │ └── index.ts │ │ │ │ │ ├── github │ │ │ │ │ │ ├── github-model.ts │ │ │ │ │ │ ├── github-schema.ts │ │ │ │ │ │ └── index.ts │ │ │ │ │ ├── html │ │ │ │ │ │ ├── html-model.ts │ │ │ │ │ │ ├── html-schema.ts │ │ │ │ │ │ └── index.ts │ │ │ │ │ ├── iframe │ │ │ │ │ │ ├── iframe-model.ts │ │ │ │ │ │ ├── iframe-schema.ts │ │ │ │ │ │ └── index.ts │ │ │ │ │ ├── index.ts │ │ │ │ │ ├── linked-doc │ │ │ │ │ │ ├── index.ts │ │ │ │ │ │ ├── linked-doc-model.ts │ │ │ │ │ │ └── linked-doc-schema.ts │ │ │ │ │ ├── loom │ │ │ │ │ │ ├── index.ts │ │ │ │ │ │ ├── loom-model.ts │ │ │ │ │ │ └── loom-schema.ts │ │ │ │ │ ├── synced-doc │ │ │ │ │ │ ├── index.ts │ │ │ │ │ │ ├── synced-doc-model.ts │ │ │ │ │ │ └── synced-doc-schema.ts │ │ │ │ │ ├── types.ts │ │ │ │ │ └── youtube │ │ │ │ │ │ ├── index.ts │ │ │ │ │ │ ├── youtube-model.ts │ │ │ │ │ │ └── youtube-schema.ts │ │ │ │ ├── frame │ │ │ │ │ ├── frame-model.ts │ │ │ │ │ └── index.ts │ │ │ │ ├── image │ │ │ │ │ ├── image-model.ts │ │ │ │ │ ├── image-transformer.ts │ │ │ │ │ └── index.ts │ │ │ │ ├── index.ts │ │ │ │ ├── latex │ │ │ │ │ ├── index.ts │ │ │ │ │ └── latex-model.ts │ │ │ │ ├── list │ │ │ │ │ ├── index.ts │ │ │ │ │ └── list-model.ts │ │ │ │ ├── note │ │ │ │ │ ├── index.ts │ │ │ │ │ └── note-model.ts │ │ │ │ ├── paragraph │ │ │ │ │ ├── index.ts │ │ │ │ │ └── paragraph-model.ts │ │ │ │ ├── root │ │ │ │ │ ├── index.ts │ │ │ │ │ └── root-block-model.ts │ │ │ │ ├── surface-ref │ │ │ │ │ ├── index.ts │ │ │ │ │ └── surface-ref-model.ts │ │ │ │ └── table │ │ │ │ │ ├── index.ts │ │ │ │ │ └── table-model.ts │ │ │ ├── consts │ │ │ │ ├── connector.ts │ │ │ │ ├── doc.ts │ │ │ │ ├── edgeless-text.ts │ │ │ │ ├── image.ts │ │ │ │ ├── index.ts │ │ │ │ ├── line.ts │ │ │ │ ├── mindmap.ts │ │ │ │ ├── note.ts │ │ │ │ ├── shape.ts │ │ │ │ └── text.ts │ │ │ ├── elements │ │ │ │ ├── brush │ │ │ │ │ ├── brush.ts │ │ │ │ │ └── index.ts │ │ │ │ ├── connector │ │ │ │ │ ├── connector.ts │ │ │ │ │ ├── index.ts │ │ │ │ │ └── local-connector.ts │ │ │ │ ├── group │ │ │ │ │ ├── group.ts │ │ │ │ │ └── index.ts │ │ │ │ ├── highlighter │ │ │ │ │ ├── highlighter.ts │ │ │ │ │ └── index.ts │ │ │ │ ├── index.ts │ │ │ │ ├── mindmap │ │ │ │ │ ├── index.ts │ │ │ │ │ ├── mindmap.ts │ │ │ │ │ ├── snapshot │ │ │ │ │ │ ├── index.ts │ │ │ │ │ │ ├── types.ts │ │ │ │ │ │ └── utils.ts │ │ │ │ │ ├── style.ts │ │ │ │ │ └── utils.ts │ │ │ │ ├── shape │ │ │ │ │ ├── api │ │ │ │ │ │ ├── diamond.ts │ │ │ │ │ │ ├── ellipse.ts │ │ │ │ │ │ ├── index.ts │ │ │ │ │ │ ├── rect.ts │ │ │ │ │ │ └── triangle.ts │ │ │ │ │ ├── index.ts │ │ │ │ │ └── shape.ts │ │ │ │ └── text │ │ │ │ │ ├── index.ts │ │ │ │ │ └── text.ts │ │ │ ├── index.ts │ │ │ ├── themes │ │ │ │ ├── color.ts │ │ │ │ ├── default.ts │ │ │ │ ├── index.ts │ │ │ │ ├── types.ts │ │ │ │ └── utils.ts │ │ │ └── utils │ │ │ │ ├── enum.ts │ │ │ │ ├── helper.ts │ │ │ │ ├── index.ts │ │ │ │ └── types.ts │ │ └── tsconfig.json │ ├── rich-text │ │ ├── package.json │ │ ├── src │ │ │ ├── align.ts │ │ │ ├── conversion.ts │ │ │ ├── dom.ts │ │ │ ├── effects.ts │ │ │ ├── hooks.ts │ │ │ ├── index.ts │ │ │ ├── rich-text.ts │ │ │ └── utils.ts │ │ └── tsconfig.json │ ├── shared │ │ ├── package.json │ │ ├── src │ │ │ ├── __tests__ │ │ │ │ ├── adapters │ │ │ │ │ ├── html │ │ │ │ │ │ └── rehype-plugins │ │ │ │ │ │ │ ├── inline-to-block.unit.spec.ts │ │ │ │ │ │ │ └── wrap-inline-element.unit.spec.ts │ │ │ │ │ ├── markdown │ │ │ │ │ │ └── remark-plugins │ │ │ │ │ │ │ └── remark-callout.unit.spec.ts │ │ │ │ │ └── utils │ │ │ │ │ │ └── file-path.unit.spec.ts │ │ │ │ ├── commands │ │ │ │ │ ├── block-crud │ │ │ │ │ │ ├── get-first-block.unit.spec.ts │ │ │ │ │ │ └── get-last-block.unit.spec.ts │ │ │ │ │ ├── model-crud │ │ │ │ │ │ └── replace-selected-text-with-blocks.unit.spec.ts │ │ │ │ │ └── selection │ │ │ │ │ │ └── is-nothing-selected.unit.spec.ts │ │ │ │ ├── test-utils │ │ │ │ │ └── affine-template.unit.spec.ts │ │ │ │ └── utils │ │ │ │ │ ├── rect.unit.spec.ts │ │ │ │ │ ├── string.unit.spec.ts │ │ │ │ │ └── url.unit.spec.ts │ │ │ ├── adapters │ │ │ │ ├── attachment.ts │ │ │ │ ├── clipboard │ │ │ │ │ ├── clipboard.ts │ │ │ │ │ ├── index.ts │ │ │ │ │ └── utils.ts │ │ │ │ ├── html │ │ │ │ │ ├── block-adapter.ts │ │ │ │ │ ├── delta-converter.ts │ │ │ │ │ ├── html.ts │ │ │ │ │ ├── index.ts │ │ │ │ │ └── rehype-plugins │ │ │ │ │ │ ├── index.ts │ │ │ │ │ │ ├── inline-to-block.ts │ │ │ │ │ │ └── wrap-inline-element.ts │ │ │ │ ├── image.ts │ │ │ │ ├── index.ts │ │ │ │ ├── markdown │ │ │ │ │ ├── block-adapter.ts │ │ │ │ │ ├── delta-converter.ts │ │ │ │ │ ├── gfm.ts │ │ │ │ │ ├── index.ts │ │ │ │ │ ├── markdown.ts │ │ │ │ │ ├── preprocessor.ts │ │ │ │ │ ├── remark-plugins │ │ │ │ │ │ ├── index.ts │ │ │ │ │ │ └── remark-callout.ts │ │ │ │ │ └── type.ts │ │ │ │ ├── middlewares │ │ │ │ │ ├── callout-export-options.ts │ │ │ │ │ ├── code.ts │ │ │ │ │ ├── copy.ts │ │ │ │ │ ├── doc-link.ts │ │ │ │ │ ├── file-name.ts │ │ │ │ │ ├── file-path.ts │ │ │ │ │ ├── index.ts │ │ │ │ │ ├── paste.ts │ │ │ │ │ ├── proxy.ts │ │ │ │ │ ├── replace-id.ts │ │ │ │ │ ├── surface-ref-to-embed.ts │ │ │ │ │ ├── title.ts │ │ │ │ │ └── upload.ts │ │ │ │ ├── mix-text.ts │ │ │ │ ├── notion-html │ │ │ │ │ ├── block-adapter.ts │ │ │ │ │ ├── delta-converter.ts │ │ │ │ │ ├── index.ts │ │ │ │ │ └── notion-html.ts │ │ │ │ ├── notion-text.ts │ │ │ │ ├── plain-text │ │ │ │ │ ├── block-adapter.ts │ │ │ │ │ ├── delta-converter.ts │ │ │ │ │ ├── index.ts │ │ │ │ │ └── plain-text.ts │ │ │ │ ├── types │ │ │ │ │ ├── adapter.ts │ │ │ │ │ ├── delta-converter.ts │ │ │ │ │ ├── hast.ts │ │ │ │ │ ├── index.ts │ │ │ │ │ └── preprocessor.ts │ │ │ │ └── utils │ │ │ │ │ ├── fetch.ts │ │ │ │ │ ├── file-path.ts │ │ │ │ │ ├── hast.ts │ │ │ │ │ ├── index.ts │ │ │ │ │ └── text.ts │ │ │ ├── commands │ │ │ │ ├── README.md │ │ │ │ ├── block-crud │ │ │ │ │ ├── get-block-index.ts │ │ │ │ │ ├── get-first-content-block.ts │ │ │ │ │ ├── get-last-content-block.ts │ │ │ │ │ ├── get-next-block.ts │ │ │ │ │ ├── get-prev-block.ts │ │ │ │ │ ├── get-selected-blocks.ts │ │ │ │ │ └── index.ts │ │ │ │ ├── index.d.ts │ │ │ │ ├── index.ts │ │ │ │ ├── model-crud │ │ │ │ │ ├── clear-and-select-first-model.ts │ │ │ │ │ ├── copy-selected-models.ts │ │ │ │ │ ├── delete-selected-models.ts │ │ │ │ │ ├── draft-selected-models.ts │ │ │ │ │ ├── duplicate-selected-model.ts │ │ │ │ │ ├── get-selected-models.ts │ │ │ │ │ ├── index.ts │ │ │ │ │ ├── replace-selected-text-with-blocks.ts │ │ │ │ │ └── retain-first-model.ts │ │ │ │ └── selection │ │ │ │ │ ├── focus-block-end.ts │ │ │ │ │ ├── focus-block-start.ts │ │ │ │ │ ├── get-block-selections.ts │ │ │ │ │ ├── get-image-selections.ts │ │ │ │ │ ├── get-selection-rects.ts │ │ │ │ │ ├── get-surface-selection.ts │ │ │ │ │ ├── get-text-selection.ts │ │ │ │ │ ├── index.ts │ │ │ │ │ ├── is-nothing-selected.ts │ │ │ │ │ └── types.ts │ │ │ ├── consts │ │ │ │ ├── bracket-pairs.ts │ │ │ │ ├── index.ts │ │ │ │ ├── note.ts │ │ │ │ └── text.ts │ │ │ ├── index.ts │ │ │ ├── selection │ │ │ │ ├── hightlight.ts │ │ │ │ ├── image.ts │ │ │ │ └── index.ts │ │ │ ├── services │ │ │ │ ├── auto-clear-selection-service.ts │ │ │ │ ├── block-meta-service.ts │ │ │ │ ├── citation-service │ │ │ │ │ ├── citation-service.ts │ │ │ │ │ └── index.ts │ │ │ │ ├── comment-service │ │ │ │ │ ├── block-element-comment-manager.ts │ │ │ │ │ ├── comment-provider.ts │ │ │ │ │ ├── index.ts │ │ │ │ │ └── utils.ts │ │ │ │ ├── doc-display-meta-service.ts │ │ │ │ ├── doc-mode-service.ts │ │ │ │ ├── drag-handle-config.ts │ │ │ │ ├── edit-props-store.ts │ │ │ │ ├── editor-setting-service.ts │ │ │ │ ├── embed-iframe │ │ │ │ │ ├── embed-iframe-config.ts │ │ │ │ │ ├── embed-iframe-service.ts │ │ │ │ │ └── index.ts │ │ │ │ ├── embed-option-service.ts │ │ │ │ ├── feature-flag-service.ts │ │ │ │ ├── file-size-limit-service.ts │ │ │ │ ├── font-loader │ │ │ │ │ ├── config.ts │ │ │ │ │ ├── font-loader-service.ts │ │ │ │ │ └── index.ts │ │ │ │ ├── generate-url-service.ts │ │ │ │ ├── icon-picker-service.ts │ │ │ │ ├── icon-picker-service │ │ │ │ │ └── index.ts │ │ │ │ ├── index.ts │ │ │ │ ├── link-preview-service │ │ │ │ │ ├── index.ts │ │ │ │ │ ├── link-preview-cache.ts │ │ │ │ │ ├── link-preview-service.ts │ │ │ │ │ └── link-preview-storage.ts │ │ │ │ ├── native-clipboard-service.ts │ │ │ │ ├── notification-service.ts │ │ │ │ ├── open-doc-config.ts │ │ │ │ ├── page-viewport-service.ts │ │ │ │ ├── parse-url-service.ts │ │ │ │ ├── quick-search-service.ts │ │ │ │ ├── sidebar-service.ts │ │ │ │ ├── telemetry-service │ │ │ │ │ ├── citation.ts │ │ │ │ │ ├── code-block.ts │ │ │ │ │ ├── database.ts │ │ │ │ │ ├── index.ts │ │ │ │ │ ├── link.ts │ │ │ │ │ ├── note.ts │ │ │ │ │ ├── slash-menu.ts │ │ │ │ │ ├── telemetry-service.ts │ │ │ │ │ └── types.ts │ │ │ │ ├── theme-service.ts │ │ │ │ ├── toolbar-service │ │ │ │ │ ├── action.ts │ │ │ │ │ ├── config.ts │ │ │ │ │ ├── context.ts │ │ │ │ │ ├── flags.ts │ │ │ │ │ ├── index.ts │ │ │ │ │ ├── module.ts │ │ │ │ │ └── registry.ts │ │ │ │ ├── user-service │ │ │ │ │ ├── index.ts │ │ │ │ │ ├── types.ts │ │ │ │ │ ├── user-list-service.ts │ │ │ │ │ ├── user-service.ts │ │ │ │ │ └── writer-info-service.ts │ │ │ │ ├── viewport-element-service.ts │ │ │ │ └── virtual-keyboard-service.ts │ │ │ ├── styles │ │ │ │ ├── font.ts │ │ │ │ ├── index.ts │ │ │ │ ├── panel.ts │ │ │ │ ├── scrollbar-style.ts │ │ │ │ └── text.ts │ │ │ ├── test-utils │ │ │ │ ├── README.md │ │ │ │ ├── affine-template.ts │ │ │ │ ├── affine-test-utils.ts │ │ │ │ ├── create-test-host.ts │ │ │ │ └── index.ts │ │ │ ├── theme │ │ │ │ ├── css-variables.ts │ │ │ │ └── index.ts │ │ │ ├── types │ │ │ │ ├── index.ts │ │ │ │ └── uni-component.ts │ │ │ └── utils │ │ │ │ ├── auto-scroll.ts │ │ │ │ ├── button-popper.ts │ │ │ │ ├── collapsed │ │ │ │ ├── index.ts │ │ │ │ └── paragraph.ts │ │ │ │ ├── computing.ts │ │ │ │ ├── dnd │ │ │ │ ├── calc-drop-target.ts │ │ │ │ ├── get-drop-rect-by-point.ts │ │ │ │ ├── index.ts │ │ │ │ └── types.ts │ │ │ │ ├── dom │ │ │ │ ├── checker.ts │ │ │ │ ├── has-classname-in-list.ts │ │ │ │ ├── index.ts │ │ │ │ ├── point-to-block.ts │ │ │ │ ├── point-to-range.ts │ │ │ │ ├── query.ts │ │ │ │ ├── scroll-container.ts │ │ │ │ └── viewport.ts │ │ │ │ ├── drag-helper │ │ │ │ ├── cell-select.ts │ │ │ │ ├── index.ts │ │ │ │ ├── linear-move.ts │ │ │ │ └── types.ts │ │ │ │ ├── edgeless.ts │ │ │ │ ├── event.ts │ │ │ │ ├── figma-squircle │ │ │ │ ├── distribute.ts │ │ │ │ ├── draw.ts │ │ │ │ └── index.ts │ │ │ │ ├── file │ │ │ │ ├── filesys.ts │ │ │ │ ├── header-value-parser.ts │ │ │ │ └── index.ts │ │ │ │ ├── fractional-indexing.ts │ │ │ │ ├── image.ts │ │ │ │ ├── index.ts │ │ │ │ ├── insert.ts │ │ │ │ ├── is-abort-error.ts │ │ │ │ ├── math.ts │ │ │ │ ├── model │ │ │ │ ├── block-props.ts │ │ │ │ ├── checker.ts │ │ │ │ ├── doc.ts │ │ │ │ ├── get-content-block.ts │ │ │ │ ├── getter.ts │ │ │ │ ├── index.ts │ │ │ │ ├── list.ts │ │ │ │ ├── merge-to-code-model.ts │ │ │ │ └── transform-model.ts │ │ │ │ ├── popper-position.ts │ │ │ │ ├── print-to-pdf.ts │ │ │ │ ├── reference.ts │ │ │ │ ├── reordering.ts │ │ │ │ ├── signal.ts │ │ │ │ ├── string.ts │ │ │ │ ├── title.ts │ │ │ │ ├── url.ts │ │ │ │ ├── virtual-padding.ts │ │ │ │ └── zod-schema.ts │ │ ├── tsconfig.json │ │ └── vitest.config.ts │ └── widgets │ │ ├── drag-handle │ │ ├── package.json │ │ ├── src │ │ │ ├── components │ │ │ │ └── edgeless-preview │ │ │ │ │ └── preview.ts │ │ │ ├── config.ts │ │ │ ├── consts.ts │ │ │ ├── drag-handle.ts │ │ │ ├── effects.ts │ │ │ ├── helpers │ │ │ │ ├── preview-helper.ts │ │ │ │ ├── rect-helper.ts │ │ │ │ └── selection-helper.ts │ │ │ ├── index.ts │ │ │ ├── middleware │ │ │ │ ├── blocks-filter.ts │ │ │ │ ├── card-style-updater.ts │ │ │ │ ├── new-id-cross-doc.ts │ │ │ │ └── reorder-list.ts │ │ │ ├── styles.ts │ │ │ ├── utils.ts │ │ │ ├── view.ts │ │ │ └── watchers │ │ │ │ ├── drag-event-watcher.ts │ │ │ │ ├── edgeless-watcher.ts │ │ │ │ ├── handle-event-watcher.ts │ │ │ │ ├── keyboard-event-watcher.ts │ │ │ │ ├── page-watcher.ts │ │ │ │ └── pointer-event-watcher.ts │ │ └── tsconfig.json │ │ ├── edgeless-auto-connect │ │ ├── package.json │ │ ├── src │ │ │ ├── effects.ts │ │ │ ├── index.ts │ │ │ └── view.ts │ │ └── tsconfig.json │ │ ├── edgeless-dragging-area │ │ ├── package.json │ │ ├── src │ │ │ ├── edgeless-dragging-area-rect.ts │ │ │ ├── effects.ts │ │ │ ├── index.ts │ │ │ └── view.ts │ │ └── tsconfig.json │ │ ├── edgeless-selected-rect │ │ ├── package.json │ │ ├── src │ │ │ ├── auto-complete-panel.ts │ │ │ ├── edgeless-auto-complete.ts │ │ │ ├── edgeless-selected-rect.ts │ │ │ ├── effects.ts │ │ │ ├── index.ts │ │ │ ├── resize-handles.ts │ │ │ ├── spec.ts │ │ │ ├── utils.ts │ │ │ └── view.ts │ │ └── tsconfig.json │ │ ├── edgeless-toolbar │ │ ├── package.json │ │ ├── src │ │ │ ├── button │ │ │ │ ├── tool-icon-button.ts │ │ │ │ └── toolbar-button.ts │ │ │ ├── config │ │ │ │ ├── consts.ts │ │ │ │ ├── index.ts │ │ │ │ ├── types.ts │ │ │ │ └── utils.ts │ │ │ ├── context.ts │ │ │ ├── create-popper.ts │ │ │ ├── draggable │ │ │ │ ├── draggable-element.controller.ts │ │ │ │ ├── event-resolver.ts │ │ │ │ ├── index.ts │ │ │ │ ├── overlay-factory.ts │ │ │ │ └── types.ts │ │ │ ├── edgeless-toolbar.ts │ │ │ ├── effects.ts │ │ │ ├── extension │ │ │ │ └── index.ts │ │ │ ├── index.ts │ │ │ ├── menu │ │ │ │ ├── slide-menu.ts │ │ │ │ └── toolbar-arrow-up-icon.ts │ │ │ ├── mixins │ │ │ │ ├── index.ts │ │ │ │ ├── quick-tool.mixin.ts │ │ │ │ ├── tool.mixin.ts │ │ │ │ └── toolbar-button-with-menu.mixin.ts │ │ │ ├── panel │ │ │ │ ├── font-family-panel.ts │ │ │ │ └── font-weight-and-style-panel.ts │ │ │ └── view.ts │ │ └── tsconfig.json │ │ ├── edgeless-zoom-toolbar │ │ ├── package.json │ │ ├── src │ │ │ ├── effects.ts │ │ │ ├── index.ts │ │ │ ├── view.ts │ │ │ ├── zoom-bar-toggle-button.ts │ │ │ └── zoom-toolbar.ts │ │ └── tsconfig.json │ │ ├── frame-title │ │ ├── package.json │ │ ├── src │ │ │ ├── affine-frame-title-widget.ts │ │ │ ├── edgeless-frame-title-editor.ts │ │ │ ├── effects.ts │ │ │ ├── frame-title.ts │ │ │ ├── index.ts │ │ │ ├── mount-frame-title-editor.ts │ │ │ ├── styles.ts │ │ │ └── view.ts │ │ └── tsconfig.json │ │ ├── keyboard-toolbar │ │ ├── package.json │ │ ├── src │ │ │ ├── config.ts │ │ │ ├── effects.ts │ │ │ ├── icons.ts │ │ │ ├── index.ts │ │ │ ├── keyboard-tool-panel.ts │ │ │ ├── keyboard-toolbar.ts │ │ │ ├── styles.ts │ │ │ ├── utils.ts │ │ │ ├── view.ts │ │ │ └── widget.ts │ │ └── tsconfig.json │ │ ├── linked-doc │ │ ├── package.json │ │ ├── src │ │ │ ├── config.ts │ │ │ ├── effects.ts │ │ │ ├── import-doc │ │ │ │ ├── import-doc.ts │ │ │ │ ├── index.ts │ │ │ │ ├── loader.ts │ │ │ │ └── styles.ts │ │ │ ├── index.ts │ │ │ ├── linked-doc-popover.ts │ │ │ ├── mobile-linked-doc-menu.ts │ │ │ ├── styles.ts │ │ │ ├── transformers │ │ │ │ ├── docx.ts │ │ │ │ ├── html.ts │ │ │ │ ├── index.ts │ │ │ │ ├── markdown.ts │ │ │ │ ├── notion-html.ts │ │ │ │ ├── type.ts │ │ │ │ ├── utils.ts │ │ │ │ └── zip.ts │ │ │ ├── utils.ts │ │ │ ├── view.ts │ │ │ └── widget.ts │ │ └── tsconfig.json │ │ ├── note-slicer │ │ ├── package.json │ │ ├── src │ │ │ ├── effects.ts │ │ │ ├── index.ts │ │ │ ├── note-slicer.ts │ │ │ └── view.ts │ │ └── tsconfig.json │ │ ├── page-dragging-area │ │ ├── package.json │ │ ├── src │ │ │ ├── effects.ts │ │ │ ├── index.ts │ │ │ ├── utils.ts │ │ │ └── view.ts │ │ └── tsconfig.json │ │ ├── remote-selection │ │ ├── package.json │ │ ├── src │ │ │ ├── doc │ │ │ │ ├── config.ts │ │ │ │ ├── doc-remote-selection.ts │ │ │ │ ├── index.ts │ │ │ │ └── utils.ts │ │ │ ├── edgeless │ │ │ │ └── index.ts │ │ │ ├── effects.ts │ │ │ ├── index.ts │ │ │ ├── manager │ │ │ │ ├── color-picker.ts │ │ │ │ └── remote-color-manager.ts │ │ │ └── view.ts │ │ └── tsconfig.json │ │ ├── scroll-anchoring │ │ ├── package.json │ │ ├── src │ │ │ ├── effects.ts │ │ │ ├── index.ts │ │ │ ├── scroll-anchoring.ts │ │ │ └── view.ts │ │ └── tsconfig.json │ │ ├── slash-menu │ │ ├── README.md │ │ ├── package.json │ │ ├── src │ │ │ ├── config.ts │ │ │ ├── consts.ts │ │ │ ├── effects.ts │ │ │ ├── extensions.ts │ │ │ ├── index.ts │ │ │ ├── slash-menu-popover.ts │ │ │ ├── styles.ts │ │ │ ├── tooltips │ │ │ │ ├── copy.ts │ │ │ │ ├── delete.ts │ │ │ │ ├── empty.ts │ │ │ │ ├── index.ts │ │ │ │ ├── move-down.ts │ │ │ │ ├── move-up.ts │ │ │ │ ├── now.ts │ │ │ │ ├── today.ts │ │ │ │ ├── tomorrow.ts │ │ │ │ └── yesterday.ts │ │ │ ├── types.ts │ │ │ ├── utils.ts │ │ │ ├── view.ts │ │ │ └── widget.ts │ │ └── tsconfig.json │ │ ├── toolbar │ │ ├── package.json │ │ ├── src │ │ │ ├── effects.ts │ │ │ ├── index.ts │ │ │ ├── toolbar.ts │ │ │ ├── utils.ts │ │ │ └── view.ts │ │ └── tsconfig.json │ │ └── viewport-overlay │ │ ├── package.json │ │ ├── src │ │ ├── effects.ts │ │ ├── index.ts │ │ └── view.ts │ │ └── tsconfig.json ├── docs │ ├── README.md │ ├── api │ │ ├── @blocksuite │ │ │ ├── std │ │ │ │ ├── README.md │ │ │ │ ├── gfx │ │ │ │ │ ├── README.md │ │ │ │ │ ├── classes │ │ │ │ │ │ ├── GfxBlockElementModel.md │ │ │ │ │ │ └── GfxSelectionManager.md │ │ │ │ │ ├── functions │ │ │ │ │ │ ├── GfxCompatible.md │ │ │ │ │ │ ├── canSafeAddToContainer.md │ │ │ │ │ │ ├── compareLayer.md │ │ │ │ │ │ ├── convert.md │ │ │ │ │ │ ├── derive.md │ │ │ │ │ │ ├── generateKeyBetween.md │ │ │ │ │ │ ├── generateKeyBetweenV2.md │ │ │ │ │ │ ├── generateNKeysBetween.md │ │ │ │ │ │ ├── getTopElements.md │ │ │ │ │ │ ├── isGfxGroupCompatibleModel.md │ │ │ │ │ │ ├── local.md │ │ │ │ │ │ ├── observe.md │ │ │ │ │ │ └── watch.md │ │ │ │ │ ├── interfaces │ │ │ │ │ │ ├── GfxCompatibleInterface.md │ │ │ │ │ │ ├── GfxElementGeometry.md │ │ │ │ │ │ ├── GfxGroupCompatibleInterface.md │ │ │ │ │ │ └── PointTestOptions.md │ │ │ │ │ ├── type-aliases │ │ │ │ │ │ ├── GfxCommonBlockProps.md │ │ │ │ │ │ └── GfxCompatibleProps.md │ │ │ │ │ └── variables │ │ │ │ │ │ ├── SURFACE_TEXT_UNIQ_IDENTIFIER.md │ │ │ │ │ │ ├── SURFACE_YMAP_UNIQ_IDENTIFIER.md │ │ │ │ │ │ └── gfxGroupCompatibleSymbol.md │ │ │ │ └── index │ │ │ │ │ ├── README.md │ │ │ │ │ ├── classes │ │ │ │ │ ├── BlockService.md │ │ │ │ │ ├── CommandManager.md │ │ │ │ │ └── LifeCycleWatcher.md │ │ │ │ │ └── functions │ │ │ │ │ ├── BlockViewExtension.md │ │ │ │ │ ├── ConfigExtensionFactory.md │ │ │ │ │ ├── FlavourExtension.md │ │ │ │ │ ├── KeymapExtension.md │ │ │ │ │ └── WidgetViewExtension.md │ │ │ └── store │ │ │ │ ├── README.md │ │ │ │ ├── classes │ │ │ │ ├── Boxed.md │ │ │ │ ├── Extension.md │ │ │ │ ├── Schema.md │ │ │ │ ├── Store.md │ │ │ │ ├── StoreExtension.md │ │ │ │ └── Text.md │ │ │ │ └── interfaces │ │ │ │ └── StoreSlots.md │ │ └── README.md │ ├── package.json │ ├── tsconfig.json │ └── typedoc.json ├── framework │ ├── README.md │ ├── global │ │ ├── package.json │ │ ├── src │ │ │ ├── __tests__ │ │ │ │ ├── di.unit.spec.ts │ │ │ │ └── svg-path.unit.spec.ts │ │ │ ├── di │ │ │ │ ├── consts.ts │ │ │ │ ├── container.ts │ │ │ │ ├── error.ts │ │ │ │ ├── identifier.ts │ │ │ │ ├── index.ts │ │ │ │ ├── provider.ts │ │ │ │ ├── scope.ts │ │ │ │ ├── stable-hash.ts │ │ │ │ └── types.ts │ │ │ ├── disposable │ │ │ │ └── index.ts │ │ │ ├── env │ │ │ │ └── index.ts │ │ │ ├── exceptions │ │ │ │ ├── code.ts │ │ │ │ └── index.ts │ │ │ ├── gfx │ │ │ │ ├── bound.ts │ │ │ │ ├── curve.ts │ │ │ │ ├── index.ts │ │ │ │ ├── math.ts │ │ │ │ ├── model │ │ │ │ │ ├── bound.ts │ │ │ │ │ ├── index.ts │ │ │ │ │ ├── point-location.ts │ │ │ │ │ ├── point.ts │ │ │ │ │ └── vec.ts │ │ │ │ ├── perfect-freehand │ │ │ │ │ ├── LICENSE │ │ │ │ │ ├── get-solid-stroke-points.ts │ │ │ │ │ ├── get-stroke-outline-points.ts │ │ │ │ │ ├── get-stroke-points.ts │ │ │ │ │ ├── get-stroke-radius.ts │ │ │ │ │ ├── get-stroke.ts │ │ │ │ │ ├── index.ts │ │ │ │ │ ├── types.ts │ │ │ │ │ └── vec.ts │ │ │ │ ├── polyline.ts │ │ │ │ ├── svg-path.ts │ │ │ │ └── xywh.ts │ │ │ ├── index.ts │ │ │ ├── lit │ │ │ │ ├── index.ts │ │ │ │ ├── signal-watcher.ts │ │ │ │ ├── watch.ts │ │ │ │ └── with-disposable.ts │ │ │ ├── types │ │ │ │ ├── index.ts │ │ │ │ └── virtual-keyboard.ts │ │ │ └── utils │ │ │ │ ├── crypto.ts │ │ │ │ ├── function.ts │ │ │ │ ├── index.ts │ │ │ │ ├── logger.ts │ │ │ │ └── types.ts │ │ ├── tsconfig.json │ │ └── vitest.config.ts │ ├── std │ │ ├── package.json │ │ ├── src │ │ │ ├── __tests__ │ │ │ │ ├── __screenshots__ │ │ │ │ │ ├── command.unit.spec.ts │ │ │ │ │ │ └── CommandManager-can-execute-a-single-command-with--exec--1.png │ │ │ │ │ └── editor-host.unit.spec.ts │ │ │ │ │ │ └── editor-host-editor-host-should-rerender-model-when-view-changes-1.png │ │ │ │ ├── command.unit.spec.ts │ │ │ │ ├── editor-host.unit.spec.ts │ │ │ │ ├── gfx │ │ │ │ │ ├── __screenshots__ │ │ │ │ │ │ ├── surface.unit.spec.ts │ │ │ │ │ │ │ ├── convert-decorator-convert-decorator-1.png │ │ │ │ │ │ │ ├── derive-decorator-derived-decorator-should-work-correctly-1.png │ │ │ │ │ │ │ ├── stash-pop-stash-and-pop-should-work-correctly-1.png │ │ │ │ │ │ │ ├── stash-pop-stashed-property-should-also-trigger-derive-decorator-1.png │ │ │ │ │ │ │ ├── surface-basic-created-slot-should-be-called-1.png │ │ │ │ │ │ │ ├── surface-basic-delete-observer-should-be-called-1.png │ │ │ │ │ │ │ └── surface-basic-update-slot-should-be-called-1.png │ │ │ │ │ │ └── view.unit.spec.ts │ │ │ │ │ │ │ ├── gfx-element-view-basic-local-element-view-should-be-created-1.png │ │ │ │ │ │ │ ├── gfx-element-view-basic-query-gfx-block-view-should-work-1.png │ │ │ │ │ │ │ ├── gfx-element-view-basic-view-should-be-created-1.png │ │ │ │ │ │ │ └── gfx-element-view-basic-view-should-be-removed-1.png │ │ │ │ │ ├── surface.unit.spec.ts │ │ │ │ │ └── view.unit.spec.ts │ │ │ │ ├── hast.unit.spec.ts │ │ │ │ ├── inline │ │ │ │ │ ├── convert.unit.spec.ts │ │ │ │ │ ├── editor.unit.spec.ts │ │ │ │ │ ├── inline-range.unit.spec.ts │ │ │ │ │ └── utils.ts │ │ │ │ ├── test-block.ts │ │ │ │ ├── test-editor.ts │ │ │ │ ├── test-gfx-element.ts │ │ │ │ ├── test-schema.ts │ │ │ │ └── test-spec.ts │ │ │ ├── clipboard │ │ │ │ ├── clipboard-adapter.ts │ │ │ │ ├── clipboard.ts │ │ │ │ ├── index.ts │ │ │ │ └── utils.ts │ │ │ ├── command │ │ │ │ ├── consts.ts │ │ │ │ ├── index.ts │ │ │ │ ├── manager.ts │ │ │ │ └── types.ts │ │ │ ├── effects.ts │ │ │ ├── event │ │ │ │ ├── base.ts │ │ │ │ ├── control │ │ │ │ │ ├── clipboard.ts │ │ │ │ │ ├── keyboard.ts │ │ │ │ │ ├── pointer.ts │ │ │ │ │ └── range.ts │ │ │ │ ├── dispatcher.ts │ │ │ │ ├── index.ts │ │ │ │ ├── keymap.ts │ │ │ │ ├── state │ │ │ │ │ ├── clipboard.ts │ │ │ │ │ ├── dnd.ts │ │ │ │ │ ├── index.ts │ │ │ │ │ ├── keyboard.ts │ │ │ │ │ ├── pointer.ts │ │ │ │ │ └── source.ts │ │ │ │ └── utils.ts │ │ │ ├── extension │ │ │ │ ├── block-view.ts │ │ │ │ ├── config.ts │ │ │ │ ├── dnd │ │ │ │ │ ├── index.ts │ │ │ │ │ └── types.ts │ │ │ │ ├── editor-life-cycle.ts │ │ │ │ ├── flavour.ts │ │ │ │ ├── index.ts │ │ │ │ ├── keymap.ts │ │ │ │ ├── lifecycle-watcher.ts │ │ │ │ ├── service-manager.ts │ │ │ │ ├── service.ts │ │ │ │ └── widget-view-map.ts │ │ │ ├── gfx │ │ │ │ ├── controller.ts │ │ │ │ ├── cursor.ts │ │ │ │ ├── extension.ts │ │ │ │ ├── grid.ts │ │ │ │ ├── identifiers.ts │ │ │ │ ├── index.ts │ │ │ │ ├── interactivity │ │ │ │ │ ├── event.ts │ │ │ │ │ ├── extension │ │ │ │ │ │ ├── base.ts │ │ │ │ │ │ └── view.ts │ │ │ │ │ ├── gfx-view-event-handler.ts │ │ │ │ │ ├── index.ts │ │ │ │ │ ├── manager.ts │ │ │ │ │ ├── resize │ │ │ │ │ │ └── manager.ts │ │ │ │ │ └── types │ │ │ │ │ │ ├── clone.ts │ │ │ │ │ │ ├── drag.ts │ │ │ │ │ │ ├── resize.ts │ │ │ │ │ │ ├── select.ts │ │ │ │ │ │ └── view.ts │ │ │ │ ├── keyboard.ts │ │ │ │ ├── layer.ts │ │ │ │ ├── model │ │ │ │ │ ├── base.ts │ │ │ │ │ ├── gfx-block-model.ts │ │ │ │ │ ├── model.ts │ │ │ │ │ └── surface │ │ │ │ │ │ ├── decorators │ │ │ │ │ │ ├── common.ts │ │ │ │ │ │ ├── convert.ts │ │ │ │ │ │ ├── derive.ts │ │ │ │ │ │ ├── field.ts │ │ │ │ │ │ ├── index.ts │ │ │ │ │ │ ├── local.ts │ │ │ │ │ │ ├── observer.ts │ │ │ │ │ │ └── watch.ts │ │ │ │ │ │ ├── element-model.ts │ │ │ │ │ │ ├── local-element-model.ts │ │ │ │ │ │ └── surface-model.ts │ │ │ │ ├── selection.ts │ │ │ │ ├── surface-middleware.ts │ │ │ │ ├── tool │ │ │ │ │ ├── tool-controller.ts │ │ │ │ │ └── tool.ts │ │ │ │ ├── view │ │ │ │ │ ├── view-manager.ts │ │ │ │ │ └── view.ts │ │ │ │ ├── viewport-element.ts │ │ │ │ └── viewport.ts │ │ │ ├── identifier.ts │ │ │ ├── index.ts │ │ │ ├── inline │ │ │ │ ├── components │ │ │ │ │ ├── embed-gap.ts │ │ │ │ │ ├── index.ts │ │ │ │ │ ├── v-element.ts │ │ │ │ │ ├── v-line.ts │ │ │ │ │ └── v-text.ts │ │ │ │ ├── consts.ts │ │ │ │ ├── extensions │ │ │ │ │ ├── index.ts │ │ │ │ │ ├── inline-manager.ts │ │ │ │ │ ├── inline-spec.ts │ │ │ │ │ ├── markdown-matcher.ts │ │ │ │ │ └── type.ts │ │ │ │ ├── index.ts │ │ │ │ ├── inline-editor.ts │ │ │ │ ├── range │ │ │ │ │ ├── active.ts │ │ │ │ │ ├── consts.ts │ │ │ │ │ ├── index.ts │ │ │ │ │ ├── inline-range-provider.ts │ │ │ │ │ ├── range-binding.ts │ │ │ │ │ └── range-manager.ts │ │ │ │ ├── services │ │ │ │ │ ├── attribute.ts │ │ │ │ │ ├── delta.ts │ │ │ │ │ ├── event.ts │ │ │ │ │ ├── hook.ts │ │ │ │ │ ├── index.ts │ │ │ │ │ ├── range.ts │ │ │ │ │ ├── render.ts │ │ │ │ │ └── text.ts │ │ │ │ ├── types.ts │ │ │ │ └── utils │ │ │ │ │ ├── attribute-renderer.ts │ │ │ │ │ ├── delta-convert.ts │ │ │ │ │ ├── dynamic-schema.ts │ │ │ │ │ ├── embed.ts │ │ │ │ │ ├── guard.ts │ │ │ │ │ ├── index.ts │ │ │ │ │ ├── inline-range.ts │ │ │ │ │ ├── point-conversion.ts │ │ │ │ │ ├── query.ts │ │ │ │ │ ├── range-conversion.ts │ │ │ │ │ ├── renderer.ts │ │ │ │ │ ├── text.ts │ │ │ │ │ └── transform-input.ts │ │ │ ├── scope │ │ │ │ ├── index.ts │ │ │ │ └── std-scope.ts │ │ │ ├── selection │ │ │ │ ├── block.ts │ │ │ │ ├── cursor.ts │ │ │ │ ├── index.ts │ │ │ │ ├── surface.ts │ │ │ │ └── text.ts │ │ │ ├── spec │ │ │ │ ├── index.ts │ │ │ │ └── type.ts │ │ │ ├── utils │ │ │ │ ├── fractional-indexing.ts │ │ │ │ ├── gfx.ts │ │ │ │ ├── layer.ts │ │ │ │ └── tree.ts │ │ │ └── view │ │ │ │ ├── decorators │ │ │ │ ├── index.ts │ │ │ │ └── required.ts │ │ │ │ ├── element │ │ │ │ ├── block-component.ts │ │ │ │ ├── consts.ts │ │ │ │ ├── gfx-block-component.ts │ │ │ │ ├── index.ts │ │ │ │ ├── lit-host.ts │ │ │ │ ├── shadowless-element.ts │ │ │ │ └── widget-component.ts │ │ │ │ ├── index.ts │ │ │ │ └── view-store.ts │ │ ├── tsconfig.json │ │ ├── typedoc.json │ │ └── vitest.config.ts │ ├── store │ │ ├── README.md │ │ ├── package.json │ │ ├── src │ │ │ ├── __tests__ │ │ │ │ ├── __snapshots__ │ │ │ │ │ └── transformer.unit.spec.ts.snap │ │ │ │ ├── assets.unit.spec.ts │ │ │ │ ├── block.unit.spec.ts │ │ │ │ ├── collection.unit.spec.ts │ │ │ │ ├── doc.unit.spec.ts │ │ │ │ ├── schema.unit.spec.ts │ │ │ │ ├── test-schema.ts │ │ │ │ ├── test-utils-dom.ts │ │ │ │ ├── transformer.unit.spec.ts │ │ │ │ └── yjs.unit.spec.ts │ │ │ ├── adapter │ │ │ │ ├── assets.ts │ │ │ │ ├── base.ts │ │ │ │ ├── context.ts │ │ │ │ └── index.ts │ │ │ ├── consts.ts │ │ │ ├── extension │ │ │ │ ├── extension.ts │ │ │ │ ├── history │ │ │ │ │ ├── history-extension.ts │ │ │ │ │ └── index.ts │ │ │ │ ├── index.ts │ │ │ │ ├── schema.ts │ │ │ │ ├── selection │ │ │ │ │ ├── base.ts │ │ │ │ │ ├── identifier.ts │ │ │ │ │ ├── index.ts │ │ │ │ │ ├── selection-extension.ts │ │ │ │ │ └── types.ts │ │ │ │ ├── store-extension.ts │ │ │ │ └── workspace │ │ │ │ │ ├── doc.ts │ │ │ │ │ ├── index.ts │ │ │ │ │ ├── workspace-meta.ts │ │ │ │ │ └── workspace.ts │ │ │ ├── index.ts │ │ │ ├── model │ │ │ │ ├── block │ │ │ │ │ ├── block-model.ts │ │ │ │ │ ├── block.ts │ │ │ │ │ ├── draft.ts │ │ │ │ │ ├── flat-sync-controller.ts │ │ │ │ │ ├── index.ts │ │ │ │ │ ├── sync-controller.ts │ │ │ │ │ ├── types.ts │ │ │ │ │ └── zod.ts │ │ │ │ ├── index.ts │ │ │ │ ├── store-container.ts │ │ │ │ └── store │ │ │ │ │ ├── crud.ts │ │ │ │ │ ├── identifier.ts │ │ │ │ │ ├── index.ts │ │ │ │ │ ├── query.ts │ │ │ │ │ ├── store.ts │ │ │ │ │ └── utils.ts │ │ │ ├── reactive │ │ │ │ ├── base-reactive-data.ts │ │ │ │ ├── boxed.ts │ │ │ │ ├── flat-native-y │ │ │ │ │ ├── index.ts │ │ │ │ │ ├── initialize.ts │ │ │ │ │ ├── proxy.ts │ │ │ │ │ ├── signal-updater.ts │ │ │ │ │ ├── types.ts │ │ │ │ │ ├── utils.ts │ │ │ │ │ ├── y-event-handler.ts │ │ │ │ │ └── y-map-updater.ts │ │ │ │ ├── index.ts │ │ │ │ ├── is-pure-object.ts │ │ │ │ ├── memory.ts │ │ │ │ ├── native-y.ts │ │ │ │ ├── proxy.ts │ │ │ │ ├── stash-pop.ts │ │ │ │ ├── text │ │ │ │ │ ├── attributes.ts │ │ │ │ │ ├── index.ts │ │ │ │ │ ├── text.ts │ │ │ │ │ └── types.ts │ │ │ │ └── types.ts │ │ │ ├── schema │ │ │ │ ├── error.ts │ │ │ │ ├── index.ts │ │ │ │ └── schema.ts │ │ │ ├── test │ │ │ │ ├── index.ts │ │ │ │ ├── test-doc.ts │ │ │ │ ├── test-meta.ts │ │ │ │ └── test-workspace.ts │ │ │ ├── transformer │ │ │ │ ├── assets.ts │ │ │ │ ├── base.ts │ │ │ │ ├── index.ts │ │ │ │ ├── json.ts │ │ │ │ ├── middleware.ts │ │ │ │ ├── slice.ts │ │ │ │ ├── transformer.ts │ │ │ │ └── type.ts │ │ │ ├── utils │ │ │ │ └── id-generator.ts │ │ │ └── yjs │ │ │ │ ├── awareness.ts │ │ │ │ ├── index.ts │ │ │ │ └── utils.ts │ │ ├── tsconfig.json │ │ ├── typedoc.json │ │ └── vitest.config.ts │ └── sync │ │ ├── README.md │ │ ├── package.json │ │ ├── src │ │ ├── __tests__ │ │ │ └── blob.unit.spec.ts │ │ ├── awareness │ │ │ ├── engine.ts │ │ │ ├── impl │ │ │ │ ├── broadcast.ts │ │ │ │ └── index.ts │ │ │ ├── index.ts │ │ │ └── source.ts │ │ ├── blob │ │ │ ├── engine.ts │ │ │ ├── impl │ │ │ │ ├── index.ts │ │ │ │ ├── indexeddb.ts │ │ │ │ └── memory.ts │ │ │ ├── index.ts │ │ │ └── source.ts │ │ ├── doc │ │ │ ├── consts.ts │ │ │ ├── engine.ts │ │ │ ├── impl │ │ │ │ ├── broadcast.ts │ │ │ │ ├── index.ts │ │ │ │ ├── indexeddb.ts │ │ │ │ └── noop.ts │ │ │ ├── index.ts │ │ │ ├── peer.ts │ │ │ └── source.ts │ │ ├── index.ts │ │ └── utils │ │ │ ├── __tests__ │ │ │ ├── async-queue.spec.ts │ │ │ └── throw-if-aborted.spec.ts │ │ │ ├── async-queue.ts │ │ │ └── throw-if-aborted.ts │ │ ├── tsconfig.json │ │ └── vitest.config.ts ├── integration-test │ ├── README.md │ ├── package.json │ ├── renderer.html │ ├── src │ │ ├── __tests__ │ │ │ ├── edgeless │ │ │ │ ├── __screenshots__ │ │ │ │ │ ├── frame.spec.ts │ │ │ │ │ │ ├── frame-frame-should-always-be-placed-under-the-bottom-of-other-blocks-1.png │ │ │ │ │ │ ├── frame-frame-should-have-externalXYWH-after-moving-viewport-to-contains-frame-1.png │ │ │ │ │ │ └── frame-frame-should-have-title-1.png │ │ │ │ │ ├── group.spec.ts │ │ │ │ │ │ ├── group-group-s-xywh-should-update-automatically-when-children-change-1.png │ │ │ │ │ │ ├── group-group-with-no-children-will-be-removed-automatically-1.png │ │ │ │ │ │ ├── group-remove-group-should-remove-its-children-at-the-same-time-1.png │ │ │ │ │ │ ├── mindmap-delete-the-root-node-should-remove-all-children-1.png │ │ │ │ │ │ └── mindmap-mindmap-should-layout-automatically-when-creating-1.png │ │ │ │ │ ├── last-props.spec.ts │ │ │ │ │ │ ├── apply-last-props-brush-1.png │ │ │ │ │ │ ├── apply-last-props-connector-1.png │ │ │ │ │ │ ├── apply-last-props-shapes-1.png │ │ │ │ │ │ └── apply-last-props-text-1.png │ │ │ │ │ ├── layer.spec.ts │ │ │ │ │ │ ├── a-new-layer-should-be-created-in-canvasLayers-prop-when-the-topmost-layer-is-not-canvas-layer-1.png │ │ │ │ │ │ ├── add-new-edgeless-blocks-or-canvas-elements-should-update-layer-automatically-1.png │ │ │ │ │ │ ├── blocks-should-rerender-when-their-z-index-changed-1.png │ │ │ │ │ │ ├── change-element-should-update-layer-automatically-1.png │ │ │ │ │ │ ├── compare-function-compare-a-group-and-its-child-1.png │ │ │ │ │ │ ├── compare-function-compare-nested-elements-1.png │ │ │ │ │ │ ├── compare-function-compare-same-element-1.png │ │ │ │ │ │ ├── compare-function-compare-two-different-elements-1.png │ │ │ │ │ │ ├── compare-function-compare-two-nested-elements-1.png │ │ │ │ │ │ ├── delete-element-should-update-layer-automatically-1.png │ │ │ │ │ │ ├── group-related-functionality-change-group-index-should-update-its-children-s-layer-1.png │ │ │ │ │ │ ├── group-related-functionality-new-added-group-should-effect-it-children-s-layer-1.png │ │ │ │ │ │ ├── if-the-topmost-layer-is-canvas-layer--the-length-of-canvasLayers-array-should-equal-to-the-counts-of-canvas-layers-1.png │ │ │ │ │ │ ├── index-generator-generator-can-generate-incrementing-indices-regardless-the-element-type-1.png │ │ │ │ │ │ ├── index-generator-generator-should-remember-the-index-it-generated-1.png │ │ │ │ │ │ ├── indexed-canvas-should-be-inserted-into-edgeless-portal-when-switch-to-edgeless-mode-1.png │ │ │ │ │ │ ├── layer-reorder-functionality-back-1.png │ │ │ │ │ │ ├── layer-reorder-functionality-backward-1.png │ │ │ │ │ │ ├── layer-reorder-functionality-forward-1.png │ │ │ │ │ │ ├── layer-reorder-functionality-front-1.png │ │ │ │ │ │ ├── layer-zindex-should-update-correctly-when-elements-changed-1.png │ │ │ │ │ │ ├── new-added-block-should-be-placed-under-the-topmost-canvas-layer-1.png │ │ │ │ │ │ ├── new-added-canvas-elements-should-be-placed-in-the-topmost-canvas-layer-1.png │ │ │ │ │ │ └── the-actual-rendering-z-index-should-satisfy-the-logic-order-of-their-indexes-1.png │ │ │ │ │ ├── surface-ref.spec.ts │ │ │ │ │ │ ├── basic-content-in-frame-should-be-rendered-in-the-correct-order-1.png │ │ │ │ │ │ ├── basic-content-in-group-should-be-rendered-in-the-correct-order-1.png │ │ │ │ │ │ ├── basic-frame-should-be-rendered-in-surface-ref-viewport-1.png │ │ │ │ │ │ ├── basic-group-should-be-rendered-in-surface-ref-viewport-1.png │ │ │ │ │ │ ├── basic-surface-ref-should-be-rendered-as-empty-surface-ref-block-edgeless-component-page-mode-1.png │ │ │ │ │ │ ├── basic-surface-ref-should-be-rendered-in-page-mode-1.png │ │ │ │ │ │ ├── basic-view-in-edgeless-mode-button-1.png │ │ │ │ │ │ ├── basic-viewport-of-surface-ref-should-be-updated-when-the-reference-xywh-updated-1.png │ │ │ │ │ │ └── clipboard-import-surface-ref-snapshot-should-render-content-correctly-1.png │ │ │ │ │ └── tools.spec.ts │ │ │ │ │ │ ├── default-tool-block-drag-moving-1.png │ │ │ │ │ │ ├── default-tool-element-click-selection-1.png │ │ │ │ │ │ └── default-tool-element-drag-moving-1.png │ │ │ │ ├── basic.spec.ts │ │ │ │ ├── color-picker.spec.ts │ │ │ │ ├── connector-dom.spec.ts │ │ │ │ ├── frame.spec.ts │ │ │ │ ├── group.spec.ts │ │ │ │ ├── last-props.spec.ts │ │ │ │ ├── layer.spec.ts │ │ │ │ ├── mindmap.spec.ts │ │ │ │ ├── shape-dom.spec.ts │ │ │ │ ├── surface-model.spec.ts │ │ │ │ ├── surface-ref.spec.ts │ │ │ │ ├── template.spec.ts │ │ │ │ ├── tools.spec.ts │ │ │ │ └── turbo-renderer.spec.ts │ │ │ ├── main │ │ │ │ ├── __screenshots__ │ │ │ │ │ └── snapshot.spec.ts │ │ │ │ │ │ ├── snapshot-1-importing-1.png │ │ │ │ │ │ └── snapshot-2-importing-1.png │ │ │ │ └── snapshot.spec.ts │ │ │ ├── snapshots │ │ │ │ └── edgeless │ │ │ │ │ └── surface-ref.spec.ts │ │ │ │ │ └── surface-ref.json │ │ │ └── utils │ │ │ │ ├── common.ts │ │ │ │ ├── doc-generator.ts │ │ │ │ ├── edgeless.ts │ │ │ │ ├── misc.ts │ │ │ │ ├── renderer-entry.ts │ │ │ │ ├── setup.ts │ │ │ │ └── turbo-painter.worker.ts │ │ ├── editors │ │ │ ├── editor-container.ts │ │ │ └── index.ts │ │ ├── effects.ts │ │ ├── index.ts │ │ ├── store.ts │ │ └── view.ts │ ├── tsconfig.json │ ├── vite.config.ts │ └── vitest.config.ts ├── playground │ ├── .env │ ├── .gitignore │ ├── apps │ │ ├── README.md │ │ ├── _common │ │ │ ├── components │ │ │ │ ├── attachment-viewer-panel.ts │ │ │ │ ├── custom-adapter-panel.ts │ │ │ │ ├── custom-frame-panel.ts │ │ │ │ ├── custom-outline-panel.ts │ │ │ │ ├── custom-outline-viewer.ts │ │ │ │ ├── docs-panel.ts │ │ │ │ ├── left-side-panel.ts │ │ │ │ ├── pdf │ │ │ │ │ ├── types.ts │ │ │ │ │ └── worker.ts │ │ │ │ └── starter-debug-menu.ts │ │ │ ├── helper.ts │ │ │ ├── history.ts │ │ │ ├── mock-services.ts │ │ │ ├── setup.ts │ │ │ ├── sync │ │ │ │ ├── blob │ │ │ │ │ └── mock-server.ts │ │ │ │ └── websocket │ │ │ │ │ ├── awareness.ts │ │ │ │ │ ├── doc.ts │ │ │ │ │ ├── types.ts │ │ │ │ │ └── utils.ts │ │ │ └── templates │ │ │ │ └── stickers.ts │ │ ├── comment │ │ │ ├── comment-input.ts │ │ │ ├── comment-manager.ts │ │ │ ├── comment-panel.ts │ │ │ ├── effects.ts │ │ │ └── index.ts │ │ ├── env.d.ts │ │ ├── starter │ │ │ ├── data │ │ │ │ ├── affine-snapshot.ts │ │ │ │ ├── database.ts │ │ │ │ ├── embed.ts │ │ │ │ ├── empty.ts │ │ │ │ ├── heavy-whiteboard.ts │ │ │ │ ├── heavy.ts │ │ │ │ ├── index.ts │ │ │ │ ├── linked.ts │ │ │ │ ├── multiple-editor.ts │ │ │ │ ├── pending-structs.ts │ │ │ │ ├── preset.ts │ │ │ │ ├── snapshots │ │ │ │ │ ├── affine-default.zip │ │ │ │ │ └── put-snapshot-zips-here │ │ │ │ ├── synced.ts │ │ │ │ ├── utils.ts │ │ │ │ └── version-mismatch.ts │ │ │ ├── main.ts │ │ │ └── utils │ │ │ │ ├── app.ts │ │ │ │ ├── collection.ts │ │ │ │ ├── extensions.ts │ │ │ │ ├── setup-playground.ts │ │ │ │ └── test.ts │ │ └── vite-env.d.ts │ ├── examples │ │ ├── README.md │ │ └── inline │ │ │ ├── index.html │ │ │ └── test-page.ts │ ├── index.html │ ├── package.json │ ├── public │ │ ├── logo.svg │ │ ├── test-card-1.png │ │ └── test-card-2.png │ ├── scripts │ │ └── hmr-plugin │ │ │ ├── fine-tune.ts │ │ │ └── index.ts │ ├── style.css │ ├── tsconfig.json │ ├── tsconfig.node.json │ └── vite.config.ts └── tsconfig.json ├── codecov.yml ├── docs ├── BUILDING.md ├── CODE_OF_CONDUCT.md ├── CONTRIBUTING.md ├── building-desktop-client-app.md ├── contributing │ ├── assets │ │ └── release-action.png │ ├── releases.md │ └── tutorial.md ├── contributor-add.md ├── developing-server.md ├── issue-triaging.md ├── jobs.md ├── reference │ ├── package.json │ └── readme.md └── types-of-contributions.md ├── eslint.config.mjs ├── nyc.config.js ├── oxlint.json ├── package.json ├── packages ├── backend │ ├── native │ │ ├── Cargo.toml │ │ ├── benchmark │ │ │ └── index.js │ │ ├── build.rs │ │ ├── index.d.ts │ │ ├── index.js │ │ ├── package.json │ │ ├── src │ │ │ ├── doc_loader.rs │ │ │ ├── file_type.rs │ │ │ ├── hashcash.rs │ │ │ ├── html_sanitize.rs │ │ │ ├── lib.rs │ │ │ ├── tiktoken.rs │ │ │ └── utils.rs │ │ └── tsconfig.json │ └── server │ │ ├── .dockerignore │ │ ├── .env.example │ │ ├── .gitignore │ │ ├── LICENSE │ │ ├── README.md │ │ ├── ava.config.js │ │ ├── config.example.json │ │ ├── migrations │ │ ├── 20230425035217_init │ │ │ └── migration.sql │ │ ├── 20230621052642_next_auth_integrate │ │ │ └── migration.sql │ │ ├── 20230628074203_workspace │ │ │ └── migration.sql │ │ ├── 20230705025556_workspace_id_fkey │ │ │ └── migration.sql │ │ ├── 20230706065816_workspace_subpage │ │ │ └── migration.sql │ │ ├── 20230706090316_change_avatar_url_field_name │ │ │ └── migration.sql │ │ ├── 20230709091238_fix_blob_types │ │ │ └── migration.sql │ │ ├── 20230713022301_update_manager │ │ │ └── migration.sql │ │ ├── 20230714065216_snapshot_id │ │ │ └── migration.sql │ │ ├── 20230717084417_remove_update_fkey │ │ │ └── migration.sql │ │ ├── 20230822071646_add_new_features_waiting_list │ │ │ └── migration.sql │ │ ├── 20230824091506_euser_email_is_not_nullable │ │ │ └── migration.sql │ │ ├── 20230906100042_user_feature_gates │ │ │ └── migration.sql │ │ ├── 20231009081826_updates_manager │ │ │ └── migration.sql │ │ ├── 20231018074747_payment │ │ │ └── migration.sql │ │ ├── 20231019094615_add_inovice_link │ │ │ └── migration.sql │ │ ├── 20231024095005_updates_pkey │ │ │ └── migration.sql │ │ ├── 20231027090128_data_migration │ │ │ └── migration.sql │ │ ├── 20231030104009_user_features │ │ │ └── migration.sql │ │ ├── 20231103080802_permission │ │ │ └── migration.sql │ │ ├── 20231121033532_history │ │ │ └── migration.sql │ │ ├── 20231124091123_soft_delete_opt_blobs │ │ │ └── migration.sql │ │ ├── 20240103092238_add_workspace_features │ │ │ └── migration.sql │ │ ├── 20240228065558_new_auth │ │ │ └── migration.sql │ │ ├── 20240313033631_user_registered_flag │ │ │ └── migration.sql │ │ ├── 20240319104623_user_subscriptions │ │ │ └── migration.sql │ │ ├── 20240321065017_ai_prompts │ │ │ └── migration.sql │ │ ├── 20240325125057_ai_sessions │ │ │ └── migration.sql │ │ ├── 20240402100608_ai_prompt_session_metadata │ │ │ └── migration.sql │ │ ├── 20240416042935_lifetime_subscription │ │ │ └── migration.sql │ │ ├── 20240506051856_add_user_and_features_index │ │ │ └── migration.sql │ │ ├── 20240520055805_runtime_setting │ │ │ └── migration.sql │ │ ├── 20240521100307_add_copilot_cost │ │ │ └── migration.sql │ │ ├── 20240527095524_fix_prompt_schema │ │ │ └── migration.sql │ │ ├── 20240625052649_add_fork_session │ │ │ └── migration.sql │ │ ├── 20240708034904_prompt_level_config │ │ │ └── migration.sql │ │ ├── 20240731043837_standardize_table_columns │ │ │ └── migration.sql │ │ ├── 20240813053919_use_timestamp_with_timezone │ │ │ └── migration.sql │ │ ├── 20240813095727_prompt_updated_field │ │ │ └── migration.sql │ │ ├── 20240815064332_userspace │ │ │ └── migration.sql │ │ ├── 20240815084618_update_doc_tables │ │ │ └── migration.sql │ │ ├── 20240826033024_editor_record │ │ │ └── migration.sql │ │ ├── 20240903033137_workspace_url_preview │ │ │ └── migration.sql │ │ ├── 20240908111944_index_permission_user_id │ │ │ └── migration.sql │ │ ├── 20240908130725_add_workspace_level_snapshot_index │ │ │ └── migration.sql │ │ ├── 20240909090850_ai_table_index │ │ │ └── migration.sql │ │ ├── 20240909100000_lower_index_user_email │ │ │ └── migration.sql │ │ ├── 20240924024058_onetime_payment_subscription │ │ │ └── migration.sql │ │ ├── 20241023065619_blobs │ │ │ └── migration.sql │ │ ├── 20241125035804_opt_user_invoices │ │ │ └── migration.sql │ │ ├── 20241129062332_workspace_invite_status │ │ │ └── migration.sql │ │ ├── 20241202070358_universal_subscription │ │ │ └── migration.sql │ │ ├── 20241204081412_add_workspace_level_feature_flags │ │ │ └── migration.sql │ │ ├── 20250110034441_licenses │ │ │ └── migration.sql │ │ ├── 20250202080920_record_onetime_subscription_invoices │ │ │ └── migration.sql │ │ ├── 20250203112209_data_migration_table_unique_name │ │ │ └── migration.sql │ │ ├── 20250203142831_standardize_features │ │ │ └── migration.sql │ │ ├── 20250206082414_break_update_used_page_permission_table │ │ │ └── migration.sql │ │ ├── 20250207025335_page_default_role_for_workspace_members │ │ │ └── migration.sql │ │ ├── 20250210083416_ai_context │ │ │ └── migration.sql │ │ ├── 20250210090228_ai_context_embedding │ │ │ └── migration.sql │ │ ├── 20250303102501_add_workspace_doc_title_and_summary │ │ │ └── migration.sql │ │ ├── 20250303104449_add_workspace_name_and_avatar_key │ │ │ └── migration.sql │ │ ├── 20250303105325-notification │ │ │ └── migration.sql │ │ ├── 20250303121921_ai_jobs │ │ │ └── migration.sql │ │ ├── 20250303194905_add_blocked_to_workspace_docs │ │ │ └── migration.sql │ │ ├── 20250307123308_add_more_notification_types │ │ │ └── migration.sql │ │ ├── 20250311072215_disable_account │ │ │ └── migration.sql │ │ ├── 20250311143215_add_settings │ │ │ └── migration.sql │ │ ├── 20250325075341_new_app_config │ │ │ └── migration.sql │ │ ├── 20250326074140_ai_jobs_unique_index │ │ │ └── migration.sql │ │ ├── 20250417062046_workspace_level_embed_file_doc │ │ │ └── migration.sql │ │ ├── 20250417063749_workspace_enable_embedding │ │ │ └── migration.sql │ │ ├── 20250425101411_update_workspace_members │ │ │ └── migration.sql │ │ ├── 20250429113337_workspace_file_blob_id │ │ │ └── migration.sql │ │ ├── 20250508073308_installable_license │ │ │ └── migration.sql │ │ ├── 20250509070728_add_workspace_sid_and_indexed │ │ │ └── migration.sql │ │ ├── 20250512031140_add_optional_models │ │ │ └── migration.sql │ │ ├── 20250521083048_fix_workspace_embedding_chunk_primary_key │ │ │ └── migration.sql │ │ ├── 20250609050058_add_comment │ │ │ └── migration.sql │ │ ├── 20250609063353_ai_session_independence │ │ │ └── migration.sql │ │ ├── 20250617004240_ai_stream_objects_message │ │ │ └── migration.sql │ │ ├── 20250624051534_add_comment_attachments │ │ │ └── migration.sql │ │ ├── 20250625012447_add_comment_type_to_notification │ │ │ └── migration.sql │ │ ├── 20250625070609_ai_session_updated_at │ │ │ └── migration.sql │ │ ├── 20250630094158_session_title │ │ │ └── migration.sql │ │ ├── 20250728033348_workspace_blob_embedding │ │ │ └── migration.sql │ │ ├── 20250730104457_access_token │ │ │ └── migration.sql │ │ ├── 20250805074035_workspace_last_check_embeddings │ │ │ └── migration.sql │ │ ├── 20250917092818_payment_rc_fields │ │ │ └── migration.sql │ │ └── migration_lock.toml │ │ ├── package.json │ │ ├── schema.prisma │ │ ├── scripts │ │ ├── genconfig.ts │ │ └── self-host-predeploy.js │ │ ├── src │ │ ├── __tests__ │ │ │ ├── __fixtures__ │ │ │ │ ├── test-doc-with-blob.snapshot.bin │ │ │ │ ├── test-doc.snapshot.bin │ │ │ │ └── test-root-doc.snapshot.bin │ │ │ ├── __snapshots__ │ │ │ │ ├── copilot.e2e.ts.md │ │ │ │ ├── copilot.e2e.ts.snap │ │ │ │ ├── copilot.spec.ts.md │ │ │ │ ├── copilot.spec.ts.snap │ │ │ │ ├── mails.spec.ts.md │ │ │ │ ├── mails.spec.ts.snap │ │ │ │ ├── worker.e2e.ts.md │ │ │ │ └── worker.e2e.ts.snap │ │ │ ├── app │ │ │ │ └── selfhost.e2e.ts │ │ │ ├── auth │ │ │ │ ├── auth.e2e.ts │ │ │ │ ├── controller.spec.ts │ │ │ │ ├── guard.spec.ts │ │ │ │ ├── job.spec.ts │ │ │ │ └── service.spec.ts │ │ │ ├── cache.spec.ts │ │ │ ├── copilot-provider.spec.ts │ │ │ ├── copilot.e2e.ts │ │ │ ├── copilot.spec.ts │ │ │ ├── create-module.ts │ │ │ ├── doc │ │ │ │ ├── cron.spec.ts │ │ │ │ ├── history.spec.ts │ │ │ │ ├── renderer.spec.ts │ │ │ │ ├── userspace.spec.ts │ │ │ │ └── workspace.spec.ts │ │ │ ├── e2e │ │ │ │ ├── apps │ │ │ │ │ ├── app.spec.ts │ │ │ │ │ └── flavors.spec.ts │ │ │ │ ├── comment │ │ │ │ │ └── resolver.spec.ts │ │ │ │ ├── config │ │ │ │ │ └── resolver.spec.ts │ │ │ │ ├── create-app.ts │ │ │ │ ├── doc-renderer │ │ │ │ │ └── controller.spec.ts │ │ │ │ ├── doc-service │ │ │ │ │ ├── __snapshots__ │ │ │ │ │ │ ├── controller.spec.ts.md │ │ │ │ │ │ └── controller.spec.ts.snap │ │ │ │ │ └── controller.spec.ts │ │ │ │ ├── doc │ │ │ │ │ └── resolver.spec.ts │ │ │ │ ├── indexer │ │ │ │ │ ├── __snapshots__ │ │ │ │ │ │ ├── aggregate.spec.ts.md │ │ │ │ │ │ ├── aggregate.spec.ts.snap │ │ │ │ │ │ ├── search-docs.spec.ts.md │ │ │ │ │ │ ├── search-docs.spec.ts.snap │ │ │ │ │ │ ├── search.spec.ts.md │ │ │ │ │ │ └── search.spec.ts.snap │ │ │ │ │ ├── aggregate.spec.ts │ │ │ │ │ ├── search-docs.spec.ts │ │ │ │ │ └── search.spec.ts │ │ │ │ ├── license │ │ │ │ │ ├── __fixtures__ │ │ │ │ │ │ ├── expired-end-at.license │ │ │ │ │ │ ├── expired.license │ │ │ │ │ │ └── valid.license │ │ │ │ │ └── resolver.spec.ts │ │ │ │ ├── notification │ │ │ │ │ └── resolver.spec.ts │ │ │ │ ├── oauth │ │ │ │ │ ├── __snapshots__ │ │ │ │ │ │ ├── resolver.spec.ts.md │ │ │ │ │ │ └── resolver.spec.ts.snap │ │ │ │ │ └── resolver.spec.ts │ │ │ │ ├── prelude.ts │ │ │ │ ├── test.ts │ │ │ │ ├── user │ │ │ │ │ └── account.spec.ts │ │ │ │ └── workspace │ │ │ │ │ ├── controller.spec.ts │ │ │ │ │ ├── member.spec.ts │ │ │ │ │ └── team.spec.ts │ │ │ ├── env.spec.ts │ │ │ ├── event │ │ │ │ ├── cluster.spec.ts │ │ │ │ ├── eventbus.spec.ts │ │ │ │ └── provider.ts │ │ │ ├── mails.spec.ts │ │ │ ├── mocks │ │ │ │ ├── access-token.mock.ts │ │ │ │ ├── copilot.mock.ts │ │ │ │ ├── doc-meta.mock.ts │ │ │ │ ├── doc-snapshot.mock.ts │ │ │ │ ├── doc-user.mock.ts │ │ │ │ ├── eventbus.mock.ts │ │ │ │ ├── factory.ts │ │ │ │ ├── index.ts │ │ │ │ ├── mailer.mock.ts │ │ │ │ ├── queue.mock.ts │ │ │ │ ├── team-workspace.mock.ts │ │ │ │ ├── user-settings.mock.ts │ │ │ │ ├── user.mock.ts │ │ │ │ ├── workspace-user.mock.ts │ │ │ │ └── workspace.mock.ts │ │ │ ├── models │ │ │ │ ├── __snapshots__ │ │ │ │ │ ├── copilot-context.spec.ts.md │ │ │ │ │ ├── copilot-context.spec.ts.snap │ │ │ │ │ ├── copilot-session.spec.ts.md │ │ │ │ │ ├── copilot-session.spec.ts.snap │ │ │ │ │ ├── copilot-workspace.spec.ts.md │ │ │ │ │ ├── copilot-workspace.spec.ts.snap │ │ │ │ │ ├── feature-user.spec.ts.md │ │ │ │ │ ├── feature-user.spec.ts.snap │ │ │ │ │ ├── feature-workspace.spec.ts.md │ │ │ │ │ ├── feature-workspace.spec.ts.snap │ │ │ │ │ ├── feature.spec.ts.md │ │ │ │ │ └── feature.spec.ts.snap │ │ │ │ ├── copilot-context.spec.ts │ │ │ │ ├── copilot-job.spec.ts │ │ │ │ ├── copilot-session.spec.ts │ │ │ │ ├── copilot-workspace.spec.ts │ │ │ │ ├── doc-user.spec.ts │ │ │ │ ├── doc.spec.ts │ │ │ │ ├── feature-user.spec.ts │ │ │ │ ├── feature-workspace.spec.ts │ │ │ │ ├── feature.spec.ts │ │ │ │ ├── session.spec.ts │ │ │ │ ├── user-doc.spec.ts │ │ │ │ ├── user.spec.ts │ │ │ │ ├── verification-token.spec.ts │ │ │ │ ├── workspace-user.spec.ts │ │ │ │ └── workspace.spec.ts │ │ │ ├── mutex.spec.ts │ │ │ ├── nestjs │ │ │ │ ├── error-handler.spec.ts │ │ │ │ └── throttler.spec.ts │ │ │ ├── oauth │ │ │ │ └── controller.spec.ts │ │ │ ├── payment │ │ │ │ ├── __snapshots__ │ │ │ │ │ ├── revenuecat.spec.ts.md │ │ │ │ │ ├── revenuecat.spec.ts.snap │ │ │ │ │ ├── service.spec.ts.md │ │ │ │ │ └── service.spec.ts.snap │ │ │ │ ├── revenuecat.spec.ts │ │ │ │ └── service.spec.ts │ │ │ ├── sync │ │ │ │ └── gateway.spec.ts │ │ │ ├── user.e2e.ts │ │ │ ├── user │ │ │ │ └── user.e2e.ts │ │ │ ├── utils │ │ │ │ ├── blobs.ts │ │ │ │ ├── copilot.ts │ │ │ │ ├── feature.ts │ │ │ │ ├── index.ts │ │ │ │ ├── invite.ts │ │ │ │ ├── notification.ts │ │ │ │ ├── permission.ts │ │ │ │ ├── testing-app.ts │ │ │ │ ├── testing-module.ts │ │ │ │ ├── user-settings.ts │ │ │ │ ├── user.ts │ │ │ │ ├── utils.ts │ │ │ │ └── workspace.ts │ │ │ ├── version.spec.ts │ │ │ ├── worker.e2e.ts │ │ │ ├── workspace.e2e.ts │ │ │ └── workspace │ │ │ │ ├── blobs.e2e.ts │ │ │ │ └── controller.spec.ts │ │ ├── app.controller.ts │ │ ├── app.module.ts │ │ ├── base │ │ │ ├── cache │ │ │ │ ├── index.ts │ │ │ │ ├── instances.ts │ │ │ │ ├── interceptor.ts │ │ │ │ └── provider.ts │ │ │ ├── config │ │ │ │ ├── __tests__ │ │ │ │ │ └── config.spec.ts │ │ │ │ ├── config.ts │ │ │ │ ├── env.ts │ │ │ │ ├── factory.ts │ │ │ │ ├── index.ts │ │ │ │ ├── provider.ts │ │ │ │ ├── register.ts │ │ │ │ └── types.ts │ │ │ ├── error │ │ │ │ ├── def.ts │ │ │ │ ├── errors.gen.ts │ │ │ │ └── index.ts │ │ │ ├── event │ │ │ │ ├── def.ts │ │ │ │ ├── eventbus.ts │ │ │ │ ├── index.ts │ │ │ │ └── scanner.ts │ │ │ ├── graphql │ │ │ │ ├── __tests__ │ │ │ │ │ ├── __snapshots__ │ │ │ │ │ │ ├── pagination.spec.ts.md │ │ │ │ │ │ └── pagination.spec.ts.snap │ │ │ │ │ └── pagination.spec.ts │ │ │ │ ├── config.ts │ │ │ │ ├── index.ts │ │ │ │ ├── logger-plugin.ts │ │ │ │ ├── pagination.ts │ │ │ │ └── register.ts │ │ │ ├── guard │ │ │ │ ├── guard.ts │ │ │ │ ├── index.ts │ │ │ │ └── provider.ts │ │ │ ├── helpers │ │ │ │ ├── __tests__ │ │ │ │ │ ├── crypto.spec.ts │ │ │ │ │ └── url.spec.ts │ │ │ │ ├── config.ts │ │ │ │ ├── crypto.ts │ │ │ │ ├── index.ts │ │ │ │ └── url.ts │ │ │ ├── index.ts │ │ │ ├── job │ │ │ │ ├── index.ts │ │ │ │ └── queue │ │ │ │ │ ├── __tests__ │ │ │ │ │ ├── __snapshots__ │ │ │ │ │ │ ├── queue.spec.ts.md │ │ │ │ │ │ └── queue.spec.ts.snap │ │ │ │ │ └── queue.spec.ts │ │ │ │ │ ├── config.ts │ │ │ │ │ ├── def.ts │ │ │ │ │ ├── executor.ts │ │ │ │ │ ├── index.ts │ │ │ │ │ ├── queue.ts │ │ │ │ │ └── scanner.ts │ │ │ ├── logger │ │ │ │ ├── __tests__ │ │ │ │ │ └── service.spec.ts │ │ │ │ ├── index.ts │ │ │ │ └── service.ts │ │ │ ├── metrics │ │ │ │ ├── config.ts │ │ │ │ ├── index.ts │ │ │ │ ├── metrics.ts │ │ │ │ ├── opentelemetry.ts │ │ │ │ ├── prisma.ts │ │ │ │ └── utils.ts │ │ │ ├── mutex │ │ │ │ ├── index.ts │ │ │ │ ├── lock.ts │ │ │ │ ├── locker.ts │ │ │ │ └── mutex.ts │ │ │ ├── nestjs │ │ │ │ ├── decorator.ts │ │ │ │ ├── exception.ts │ │ │ │ ├── index.ts │ │ │ │ └── scanner.ts │ │ │ ├── prisma │ │ │ │ ├── config.ts │ │ │ │ ├── factory.ts │ │ │ │ └── index.ts │ │ │ ├── redis │ │ │ │ ├── config.ts │ │ │ │ ├── index.ts │ │ │ │ └── instances.ts │ │ │ ├── storage │ │ │ │ ├── __tests__ │ │ │ │ │ └── fs.spec.ts │ │ │ │ ├── factory.ts │ │ │ │ ├── index.ts │ │ │ │ └── providers │ │ │ │ │ ├── fs.ts │ │ │ │ │ ├── index.ts │ │ │ │ │ ├── provider.ts │ │ │ │ │ ├── r2.ts │ │ │ │ │ ├── s3.ts │ │ │ │ │ └── utils.ts │ │ │ ├── throttler │ │ │ │ ├── config.ts │ │ │ │ ├── decorators.ts │ │ │ │ └── index.ts │ │ │ ├── utils │ │ │ │ ├── __tests__ │ │ │ │ │ ├── __snapshots__ │ │ │ │ │ │ ├── duration.spec.ts.md │ │ │ │ │ │ └── duration.spec.ts.snap │ │ │ │ │ ├── duration.spec.ts │ │ │ │ │ └── request.spec.ts │ │ │ │ ├── duration.ts │ │ │ │ ├── index.ts │ │ │ │ ├── promise.ts │ │ │ │ ├── request.ts │ │ │ │ ├── stream.ts │ │ │ │ ├── types.ts │ │ │ │ └── unit.ts │ │ │ └── websocket │ │ │ │ ├── adapter.ts │ │ │ │ ├── config.ts │ │ │ │ ├── index.ts │ │ │ │ └── options.ts │ │ ├── cli.ts │ │ ├── core │ │ │ ├── access-token │ │ │ │ ├── index.ts │ │ │ │ └── resolver.ts │ │ │ ├── auth │ │ │ │ ├── config.ts │ │ │ │ ├── controller.ts │ │ │ │ ├── dev.ts │ │ │ │ ├── guard.ts │ │ │ │ ├── index.ts │ │ │ │ ├── job.ts │ │ │ │ ├── resolver.ts │ │ │ │ ├── service.ts │ │ │ │ └── session.ts │ │ │ ├── comment │ │ │ │ ├── __tests__ │ │ │ │ │ ├── __snapshots__ │ │ │ │ │ │ ├── service.spec.ts.md │ │ │ │ │ │ └── service.spec.ts.snap │ │ │ │ │ └── service.spec.ts │ │ │ │ ├── index.ts │ │ │ │ ├── resolver.ts │ │ │ │ ├── service.ts │ │ │ │ └── types.ts │ │ │ ├── common │ │ │ │ ├── admin-guard.ts │ │ │ │ └── index.ts │ │ │ ├── config │ │ │ │ ├── __tests__ │ │ │ │ │ └── service.spec.ts │ │ │ │ ├── config.ts │ │ │ │ ├── index.ts │ │ │ │ ├── resolver.ts │ │ │ │ ├── service.ts │ │ │ │ └── types.ts │ │ │ ├── doc-renderer │ │ │ │ ├── __tests__ │ │ │ │ │ └── controller.spec.ts │ │ │ │ ├── controller.ts │ │ │ │ └── index.ts │ │ │ ├── doc-service │ │ │ │ ├── __tests__ │ │ │ │ │ └── controller.spec.ts │ │ │ │ ├── config.ts │ │ │ │ ├── controller.ts │ │ │ │ ├── index.ts │ │ │ │ └── job.ts │ │ │ ├── doc │ │ │ │ ├── __tests__ │ │ │ │ │ ├── __snapshots__ │ │ │ │ │ │ ├── reader-from-database.spec.ts.md │ │ │ │ │ │ ├── reader-from-database.spec.ts.snap │ │ │ │ │ │ ├── reader-from-rpc.spec.ts.md │ │ │ │ │ │ └── reader-from-rpc.spec.ts.snap │ │ │ │ │ ├── event.spec.ts │ │ │ │ │ ├── reader-from-database.spec.ts │ │ │ │ │ └── reader-from-rpc.spec.ts │ │ │ │ ├── adapters │ │ │ │ │ ├── userspace.ts │ │ │ │ │ └── workspace.ts │ │ │ │ ├── config.ts │ │ │ │ ├── event.ts │ │ │ │ ├── index.ts │ │ │ │ ├── job.ts │ │ │ │ ├── options.ts │ │ │ │ ├── reader.ts │ │ │ │ └── storage │ │ │ │ │ ├── blob.ts │ │ │ │ │ ├── connection.ts │ │ │ │ │ ├── doc.ts │ │ │ │ │ ├── index.ts │ │ │ │ │ └── lock.ts │ │ │ ├── features │ │ │ │ ├── index.ts │ │ │ │ ├── resolver.ts │ │ │ │ ├── service.ts │ │ │ │ └── types.ts │ │ │ ├── index.ts │ │ │ ├── mail │ │ │ │ ├── config.ts │ │ │ │ ├── index.ts │ │ │ │ ├── job.ts │ │ │ │ ├── mailer.ts │ │ │ │ ├── resolver.ts │ │ │ │ └── sender.ts │ │ │ ├── monitor │ │ │ │ ├── index.ts │ │ │ │ └── service.ts │ │ │ ├── notification │ │ │ │ ├── __tests__ │ │ │ │ │ ├── job.spec.ts │ │ │ │ │ └── service.spec.ts │ │ │ │ ├── index.ts │ │ │ │ ├── job.ts │ │ │ │ ├── resolver.ts │ │ │ │ ├── service.ts │ │ │ │ └── types.ts │ │ │ ├── permission │ │ │ │ ├── __tests__ │ │ │ │ │ ├── __snapshots__ │ │ │ │ │ │ ├── actions.spec.ts.md │ │ │ │ │ │ ├── actions.spec.ts.snap │ │ │ │ │ │ ├── docs.spec.ts.md │ │ │ │ │ │ └── docs.spec.ts.snap │ │ │ │ │ ├── actions.spec.ts │ │ │ │ │ ├── builder.spec.ts │ │ │ │ │ ├── doc.spec.ts │ │ │ │ │ ├── docs.spec.ts │ │ │ │ │ └── workspace.spec.ts │ │ │ │ ├── builder.ts │ │ │ │ ├── controller.ts │ │ │ │ ├── doc.ts │ │ │ │ ├── event.ts │ │ │ │ ├── index.ts │ │ │ │ ├── resource.ts │ │ │ │ ├── types.ts │ │ │ │ └── workspace.ts │ │ │ ├── quota │ │ │ │ ├── index.ts │ │ │ │ ├── resolver.ts │ │ │ │ ├── service.ts │ │ │ │ ├── types.ts │ │ │ │ └── utils.ts │ │ │ ├── selfhost │ │ │ │ ├── controller.ts │ │ │ │ ├── guard.ts │ │ │ │ ├── index.ts │ │ │ │ ├── setup.ts │ │ │ │ └── static.ts │ │ │ ├── storage │ │ │ │ ├── __tests__ │ │ │ │ │ └── comment-attachment.spec.ts │ │ │ │ ├── config.ts │ │ │ │ ├── index.ts │ │ │ │ └── wrappers │ │ │ │ │ ├── avatar.ts │ │ │ │ │ ├── blob.ts │ │ │ │ │ ├── comment-attachment.ts │ │ │ │ │ └── index.ts │ │ │ ├── sync │ │ │ │ ├── gateway.ts │ │ │ │ └── index.ts │ │ │ ├── user │ │ │ │ ├── __tests__ │ │ │ │ │ └── resolver.e2e.ts │ │ │ │ ├── controller.ts │ │ │ │ ├── index.ts │ │ │ │ ├── resolver.ts │ │ │ │ └── types.ts │ │ │ ├── utils │ │ │ │ ├── __tests__ │ │ │ │ │ ├── __snapshots__ │ │ │ │ │ │ ├── blocksute.spec.ts.md │ │ │ │ │ │ └── blocksute.spec.ts.snap │ │ │ │ │ ├── blocksute.spec.ts │ │ │ │ │ └── doc.spec.ts │ │ │ │ ├── blocksuite.ts │ │ │ │ ├── doc.ts │ │ │ │ ├── validators.ts │ │ │ │ └── workspace.ts │ │ │ ├── version │ │ │ │ ├── config.ts │ │ │ │ ├── guard.ts │ │ │ │ ├── index.ts │ │ │ │ └── service.ts │ │ │ └── workspaces │ │ │ │ ├── controller.ts │ │ │ │ ├── event.ts │ │ │ │ ├── index.ts │ │ │ │ ├── resolvers │ │ │ │ ├── blob.ts │ │ │ │ ├── doc.ts │ │ │ │ ├── history.ts │ │ │ │ ├── index.ts │ │ │ │ ├── member.ts │ │ │ │ └── workspace.ts │ │ │ │ ├── service.ts │ │ │ │ └── types.ts │ │ ├── data │ │ │ ├── app.ts │ │ │ ├── commands │ │ │ │ ├── create.ts │ │ │ │ ├── import.ts │ │ │ │ └── run.ts │ │ │ └── migrations │ │ │ │ ├── 0001-refresh-features.ts │ │ │ │ ├── 1698398506533-guid.ts │ │ │ │ ├── 1703756315970-unamed-account.ts │ │ │ │ ├── 1721299086340-refresh-unnamed-user.ts │ │ │ │ ├── 1732861452428-migrate-invite-status.ts │ │ │ │ ├── 1733125339942-universal-subscription.ts │ │ │ │ ├── 1738590347632-feature-redundant.ts │ │ │ │ ├── 1745211351719-create-indexer-tables.ts │ │ │ │ ├── 1751966744168-correct-session-update-time.ts │ │ │ │ ├── index.ts │ │ │ │ └── utils │ │ │ │ └── loop.ts │ │ ├── env.ts │ │ ├── global.d.ts │ │ ├── index.ts │ │ ├── mails │ │ │ ├── common.ts │ │ │ ├── components │ │ │ │ ├── common.ts │ │ │ │ ├── date.tsx │ │ │ │ ├── doc.tsx │ │ │ │ ├── footer.tsx │ │ │ │ ├── index.ts │ │ │ │ ├── template.tsx │ │ │ │ ├── user.tsx │ │ │ │ └── workspace.tsx │ │ │ ├── docs │ │ │ │ ├── comment-mention.tsx │ │ │ │ ├── comment.tsx │ │ │ │ ├── index.ts │ │ │ │ └── mention.tsx │ │ │ ├── index.tsx │ │ │ ├── teams │ │ │ │ ├── become-admin.tsx │ │ │ │ ├── become-collaborator.tsx │ │ │ │ ├── delete-in-1m.tsx │ │ │ │ ├── delete-in-24h.tsx │ │ │ │ ├── deleted.tsx │ │ │ │ ├── expire-soon.tsx │ │ │ │ ├── expired.tsx │ │ │ │ ├── index.ts │ │ │ │ ├── license.tsx │ │ │ │ └── workspace-upgraded.tsx │ │ │ ├── test-mail.tsx │ │ │ ├── users │ │ │ │ ├── email-change-notification.tsx │ │ │ │ ├── email-change-verify.tsx │ │ │ │ ├── email-change.tsx │ │ │ │ ├── email-verify.tsx │ │ │ │ ├── index.ts │ │ │ │ ├── password-change.tsx │ │ │ │ ├── password-set.tsx │ │ │ │ ├── sign-in.tsx │ │ │ │ └── sign-up.tsx │ │ │ └── workspaces │ │ │ │ ├── index.ts │ │ │ │ ├── invitation-accepted.tsx │ │ │ │ ├── invitation.tsx │ │ │ │ ├── member-leave.tsx │ │ │ │ ├── member-removed.tsx │ │ │ │ ├── ownership-received.tsx │ │ │ │ ├── ownership-transferred.tsx │ │ │ │ ├── review-approved.tsx │ │ │ │ ├── review-declined.tsx │ │ │ │ └── review-request.tsx │ │ ├── middleware │ │ │ └── timing.ts │ │ ├── models │ │ │ ├── __tests__ │ │ │ │ ├── __snapshots__ │ │ │ │ │ ├── comment.spec.ts.md │ │ │ │ │ ├── comment.spec.ts.snap │ │ │ │ │ ├── user-settings.spec.ts.md │ │ │ │ │ └── user-settings.spec.ts.snap │ │ │ │ ├── access-token.spec.ts │ │ │ │ ├── blob.spec.ts │ │ │ │ ├── comment-attachment.spec.ts │ │ │ │ ├── comment.spec.ts │ │ │ │ ├── doc.spec.ts │ │ │ │ ├── history.spec.ts │ │ │ │ ├── notification.spec.ts │ │ │ │ └── user-settings.spec.ts │ │ │ ├── access-token.ts │ │ │ ├── base.ts │ │ │ ├── blob.ts │ │ │ ├── comment-attachment.ts │ │ │ ├── comment.ts │ │ │ ├── common │ │ │ │ ├── copilot.ts │ │ │ │ ├── doc.ts │ │ │ │ ├── feature.ts │ │ │ │ ├── index.ts │ │ │ │ ├── role.ts │ │ │ │ ├── schema.ts │ │ │ │ ├── user.ts │ │ │ │ └── workspace.ts │ │ │ ├── config.ts │ │ │ ├── copilot-context.ts │ │ │ ├── copilot-job.ts │ │ │ ├── copilot-session.ts │ │ │ ├── copilot-workspace.ts │ │ │ ├── doc-user.ts │ │ │ ├── doc.ts │ │ │ ├── feature.ts │ │ │ ├── history.ts │ │ │ ├── index.ts │ │ │ ├── notification.ts │ │ │ ├── provider.ts │ │ │ ├── session.ts │ │ │ ├── user-doc.ts │ │ │ ├── user-feature.ts │ │ │ ├── user-settings.ts │ │ │ ├── user.ts │ │ │ ├── verification-token.ts │ │ │ ├── workspace-feature.ts │ │ │ ├── workspace-user.ts │ │ │ └── workspace.ts │ │ ├── native.ts │ │ ├── plugins │ │ │ ├── captcha │ │ │ │ ├── config.ts │ │ │ │ ├── controller.ts │ │ │ │ ├── guard.ts │ │ │ │ ├── index.ts │ │ │ │ ├── service.ts │ │ │ │ └── types.ts │ │ │ ├── copilot │ │ │ │ ├── config.ts │ │ │ │ ├── context │ │ │ │ │ ├── index.ts │ │ │ │ │ ├── resolver.ts │ │ │ │ │ ├── service.ts │ │ │ │ │ └── session.ts │ │ │ │ ├── controller.ts │ │ │ │ ├── cron.ts │ │ │ │ ├── embedding │ │ │ │ │ ├── client.ts │ │ │ │ │ ├── index.ts │ │ │ │ │ ├── job.ts │ │ │ │ │ └── types.ts │ │ │ │ ├── index.ts │ │ │ │ ├── mcp │ │ │ │ │ ├── controller.ts │ │ │ │ │ └── provider.ts │ │ │ │ ├── message.ts │ │ │ │ ├── prompt │ │ │ │ │ ├── chat-prompt.ts │ │ │ │ │ ├── index.ts │ │ │ │ │ ├── prompts.ts │ │ │ │ │ └── service.ts │ │ │ │ ├── providers │ │ │ │ │ ├── anthropic │ │ │ │ │ │ ├── anthropic.ts │ │ │ │ │ │ ├── index.ts │ │ │ │ │ │ ├── official.ts │ │ │ │ │ │ └── vertex.ts │ │ │ │ │ ├── factory.ts │ │ │ │ │ ├── fal.ts │ │ │ │ │ ├── gemini │ │ │ │ │ │ ├── gemini.ts │ │ │ │ │ │ ├── generative.ts │ │ │ │ │ │ ├── index.ts │ │ │ │ │ │ └── vertex.ts │ │ │ │ │ ├── index.ts │ │ │ │ │ ├── morph.ts │ │ │ │ │ ├── openai.ts │ │ │ │ │ ├── perplexity.ts │ │ │ │ │ ├── provider.ts │ │ │ │ │ ├── types.ts │ │ │ │ │ └── utils.ts │ │ │ │ ├── resolver.ts │ │ │ │ ├── session.ts │ │ │ │ ├── storage.ts │ │ │ │ ├── tools │ │ │ │ │ ├── blob-read.ts │ │ │ │ │ ├── code-artifact.ts │ │ │ │ │ ├── conversation-summary.ts │ │ │ │ │ ├── doc-compose.ts │ │ │ │ │ ├── doc-edit.ts │ │ │ │ │ ├── doc-keyword-search.ts │ │ │ │ │ ├── doc-read.ts │ │ │ │ │ ├── doc-semantic-search.ts │ │ │ │ │ ├── error.ts │ │ │ │ │ ├── exa-crawl.ts │ │ │ │ │ ├── exa-search.ts │ │ │ │ │ ├── index.ts │ │ │ │ │ └── section-edit.ts │ │ │ │ ├── transcript │ │ │ │ │ ├── index.ts │ │ │ │ │ ├── resolver.ts │ │ │ │ │ ├── service.ts │ │ │ │ │ ├── types.ts │ │ │ │ │ └── utils.ts │ │ │ │ ├── types.ts │ │ │ │ ├── utils.ts │ │ │ │ ├── workflow │ │ │ │ │ ├── executor │ │ │ │ │ │ ├── chat-image.ts │ │ │ │ │ │ ├── chat-text.ts │ │ │ │ │ │ ├── check-html.ts │ │ │ │ │ │ ├── check-json.ts │ │ │ │ │ │ ├── index.ts │ │ │ │ │ │ ├── types.ts │ │ │ │ │ │ └── utils.ts │ │ │ │ │ ├── graph │ │ │ │ │ │ ├── brainstorm.ts │ │ │ │ │ │ ├── image-filter.ts │ │ │ │ │ │ ├── index.ts │ │ │ │ │ │ └── presentation.ts │ │ │ │ │ ├── index.ts │ │ │ │ │ ├── node.ts │ │ │ │ │ ├── service.ts │ │ │ │ │ ├── types.ts │ │ │ │ │ ├── worker.mjs │ │ │ │ │ └── workflow.ts │ │ │ │ └── workspace │ │ │ │ │ ├── index.ts │ │ │ │ │ ├── resolver.ts │ │ │ │ │ ├── service.ts │ │ │ │ │ └── types.ts │ │ │ ├── customerio │ │ │ │ ├── config.ts │ │ │ │ ├── index.ts │ │ │ │ └── service.ts │ │ │ ├── gcloud │ │ │ │ ├── index.ts │ │ │ │ ├── logging │ │ │ │ │ ├── index.ts │ │ │ │ │ ├── logger.ts │ │ │ │ │ └── service.ts │ │ │ │ └── metrics.ts │ │ │ ├── indexer │ │ │ │ ├── __tests__ │ │ │ │ │ ├── __fixtures__ │ │ │ │ │ │ ├── test-blocks.json │ │ │ │ │ │ └── test-docs.json │ │ │ │ │ ├── __snapshots__ │ │ │ │ │ │ ├── service.spec.ts.md │ │ │ │ │ │ └── service.spec.ts.snap │ │ │ │ │ ├── event.spec.ts │ │ │ │ │ ├── job.spec.ts │ │ │ │ │ ├── providers │ │ │ │ │ │ ├── __snapshots__ │ │ │ │ │ │ │ ├── elasticsearch.spec.ts.md │ │ │ │ │ │ │ ├── elasticsearch.spec.ts.snap │ │ │ │ │ │ │ ├── manticoresearch.spec.ts.md │ │ │ │ │ │ │ └── manticoresearch.spec.ts.snap │ │ │ │ │ │ ├── elasticsearch.spec.ts │ │ │ │ │ │ └── manticoresearch.spec.ts │ │ │ │ │ └── service.spec.ts │ │ │ │ ├── config.ts │ │ │ │ ├── event.ts │ │ │ │ ├── factory.ts │ │ │ │ ├── index.ts │ │ │ │ ├── job.ts │ │ │ │ ├── providers │ │ │ │ │ ├── def.ts │ │ │ │ │ ├── elasticsearch.ts │ │ │ │ │ ├── index.ts │ │ │ │ │ └── manticoresearch.ts │ │ │ │ ├── resolver.ts │ │ │ │ ├── service.ts │ │ │ │ ├── tables │ │ │ │ │ ├── block.ts │ │ │ │ │ ├── doc.ts │ │ │ │ │ └── index.ts │ │ │ │ └── types.ts │ │ │ ├── license │ │ │ │ ├── index.ts │ │ │ │ ├── resolver.ts │ │ │ │ └── service.ts │ │ │ ├── oauth │ │ │ │ ├── config.ts │ │ │ │ ├── controller.ts │ │ │ │ ├── factory.ts │ │ │ │ ├── index.ts │ │ │ │ ├── providers │ │ │ │ │ ├── apple.ts │ │ │ │ │ ├── def.ts │ │ │ │ │ ├── github.ts │ │ │ │ │ ├── google.ts │ │ │ │ │ ├── index.ts │ │ │ │ │ └── oidc.ts │ │ │ │ ├── resolver.ts │ │ │ │ ├── service.ts │ │ │ │ └── types.ts │ │ │ ├── payment │ │ │ │ ├── config.ts │ │ │ │ ├── controller.ts │ │ │ │ ├── cron.ts │ │ │ │ ├── event.ts │ │ │ │ ├── index.ts │ │ │ │ ├── license │ │ │ │ │ └── controller.ts │ │ │ │ ├── manager │ │ │ │ │ ├── common.ts │ │ │ │ │ ├── index.ts │ │ │ │ │ ├── selfhost.ts │ │ │ │ │ ├── user.ts │ │ │ │ │ └── workspace.ts │ │ │ │ ├── resolver.ts │ │ │ │ ├── revenuecat │ │ │ │ │ ├── controller.ts │ │ │ │ │ ├── index.ts │ │ │ │ │ ├── map.ts │ │ │ │ │ ├── service.ts │ │ │ │ │ └── webhook.ts │ │ │ │ ├── schedule.ts │ │ │ │ ├── service.ts │ │ │ │ ├── stripe.ts │ │ │ │ ├── types.ts │ │ │ │ └── webhook.ts │ │ │ └── worker │ │ │ │ ├── config.ts │ │ │ │ ├── controller.ts │ │ │ │ ├── index.ts │ │ │ │ ├── service.ts │ │ │ │ ├── types.ts │ │ │ │ └── utils │ │ │ │ ├── encoding.ts │ │ │ │ ├── headers.ts │ │ │ │ ├── index.ts │ │ │ │ └── url.ts │ │ ├── prelude.ts │ │ ├── schema.gql │ │ ├── seed │ │ │ └── index.ts │ │ └── server.ts │ │ └── tsconfig.json ├── common │ ├── debug │ │ ├── README.md │ │ ├── package.json │ │ ├── src │ │ │ ├── __tests__ │ │ │ │ └── index.spec.ts │ │ │ └── index.ts │ │ └── tsconfig.json │ ├── env │ │ ├── package.json │ │ ├── src │ │ │ ├── __tests__ │ │ │ │ └── is-valid-ip-address.spec.ts │ │ │ ├── automation.ts │ │ │ ├── constant.ts │ │ │ ├── filter.ts │ │ │ ├── global.ts │ │ │ ├── is-valid-ip-address.ts │ │ │ ├── page-info.ts │ │ │ ├── ua-helper.ts │ │ │ ├── worker.ts │ │ │ └── workspace │ │ │ │ └── legacy-cloud │ │ │ │ └── index.ts │ │ └── tsconfig.json │ ├── error │ │ ├── README.md │ │ ├── package.json │ │ ├── src │ │ │ ├── __tests__ │ │ │ │ └── index.spec.ts │ │ │ └── index.ts │ │ └── tsconfig.json │ ├── graphql │ │ ├── README.md │ │ ├── codegen.yml │ │ ├── export-gql-plugin.cjs │ │ ├── package.json │ │ ├── src │ │ │ ├── __tests__ │ │ │ │ └── fetcher.spec.ts │ │ │ ├── fetcher.ts │ │ │ ├── graphql │ │ │ │ ├── access-token │ │ │ │ │ ├── create.gql │ │ │ │ │ ├── list.gql │ │ │ │ │ └── revoke.gql │ │ │ │ ├── admin │ │ │ │ │ ├── admin-server-config.gql │ │ │ │ │ ├── change-password-url.gql │ │ │ │ │ ├── config.gql │ │ │ │ │ ├── copilot-prompt-list.gql │ │ │ │ │ ├── copilot-prompt-update.gql │ │ │ │ │ ├── create-user.gql │ │ │ │ │ ├── delete-user.gql │ │ │ │ │ ├── disable-user.gql │ │ │ │ │ ├── enable-user.gql │ │ │ │ │ ├── get-user-by-email.gql │ │ │ │ │ ├── import-users.gql │ │ │ │ │ ├── list-users.gql │ │ │ │ │ ├── send-test-email.gql │ │ │ │ │ ├── update-account-features.gql │ │ │ │ │ ├── update-account.gql │ │ │ │ │ ├── update-config.gql │ │ │ │ │ └── validate-config.gql │ │ │ │ ├── blob-delete.gql │ │ │ │ ├── blob-list.gql │ │ │ │ ├── blob-release-deleted.gql │ │ │ │ ├── blob-set.gql │ │ │ │ ├── cancel-subscription.gql │ │ │ │ ├── change-email.gql │ │ │ │ ├── change-password.gql │ │ │ │ ├── comment-change-list.gql │ │ │ │ ├── comment-create.gql │ │ │ │ ├── comment-delete.gql │ │ │ │ ├── comment-list.gql │ │ │ │ ├── comment-reply-create.gql │ │ │ │ ├── comment-reply-delete.gql │ │ │ │ ├── comment-reply-update.gql │ │ │ │ ├── comment-resolve.gql │ │ │ │ ├── comment-update.gql │ │ │ │ ├── comment-upload-attachment.gql │ │ │ │ ├── copilot-apply-doc-updates.gql │ │ │ │ ├── copilot-context-blob-add.gql │ │ │ │ ├── copilot-context-blob-remove.gql │ │ │ │ ├── copilot-context-category-add.gql │ │ │ │ ├── copilot-context-category-remove.gql │ │ │ │ ├── copilot-context-create.gql │ │ │ │ ├── copilot-context-doc-add.gql │ │ │ │ ├── copilot-context-doc-remove.gql │ │ │ │ ├── copilot-context-file-add.gql │ │ │ │ ├── copilot-context-file-remove.gql │ │ │ │ ├── copilot-context-list-object.gql │ │ │ │ ├── copilot-context-list.gql │ │ │ │ ├── copilot-context-match-all.gql │ │ │ │ ├── copilot-context-match-docs.gql │ │ │ │ ├── copilot-context-match-files.gql │ │ │ │ ├── copilot-context-workspace-query.gql │ │ │ │ ├── copilot-context-workspace-queue.gql │ │ │ │ ├── copilot-history-get-ids.gql │ │ │ │ ├── copilot-history-list-doc-sessions.gql │ │ │ │ ├── copilot-history-list-pinned-session.gql │ │ │ │ ├── copilot-history-list-workspace-sessions.gql │ │ │ │ ├── copilot-history-list.gql │ │ │ │ ├── copilot-jobs-transcription-add.gql │ │ │ │ ├── copilot-jobs-transcription-claim.gql │ │ │ │ ├── copilot-jobs-transcription-list.gql │ │ │ │ ├── copilot-jobs-transcription-retry.gql │ │ │ │ ├── copilot-message-create.gql │ │ │ │ ├── copilot-models-get.gql │ │ │ │ ├── copilot-quota.gql │ │ │ │ ├── copilot-session-cleanup.gql │ │ │ │ ├── copilot-session-create.gql │ │ │ │ ├── copilot-session-fork.gql │ │ │ │ ├── copilot-session-get-latest-doc.gql │ │ │ │ ├── copilot-session-get.gql │ │ │ │ ├── copilot-session-list-recent.gql │ │ │ │ ├── copilot-session-update.gql │ │ │ │ ├── copilot-sessions-get.gql │ │ │ │ ├── copilot-workspace-file-add.gql │ │ │ │ ├── copilot-workspace-file-get.gql │ │ │ │ ├── copilot-workspace-file-remove.gql │ │ │ │ ├── copilot-workspace-ignored-docs-add.gql │ │ │ │ ├── copilot-workspace-ignored-docs-get-all.gql │ │ │ │ ├── copilot-workspace-ignored-docs-get.gql │ │ │ │ ├── copilot-workspace-ignored-docs-remove.gql │ │ │ │ ├── create-checkout-link.gql │ │ │ │ ├── create-customer-portal.gql │ │ │ │ ├── create-self-host-customer-portal.gql │ │ │ │ ├── create-workspace.gql │ │ │ │ ├── delete-account.gql │ │ │ │ ├── delete-workspace.gql │ │ │ │ ├── doc-role-permissions.gql │ │ │ │ ├── fragments │ │ │ │ │ ├── copilot.gql │ │ │ │ │ ├── credentials-requirement.gql │ │ │ │ │ └── password-limits.gql │ │ │ │ ├── generate-license-key.gql │ │ │ │ ├── get-current-user-features.gql │ │ │ │ ├── get-current-user.gql │ │ │ │ ├── get-doc-created-by-updated-by-list.gql │ │ │ │ ├── get-doc-default-role.gql │ │ │ │ ├── get-doc-summary.gql │ │ │ │ ├── get-invite-info.gql │ │ │ │ ├── get-member-count-by-workspace-id.gql │ │ │ │ ├── get-members-by-workspace-id.gql │ │ │ │ ├── get-oauth-providers.gql │ │ │ │ ├── get-page-granted-users-list.gql │ │ │ │ ├── get-public-user-by-id.gql │ │ │ │ ├── get-recently-update-docs.gql │ │ │ │ ├── get-user-features.gql │ │ │ │ ├── get-user-settings.gql │ │ │ │ ├── get-user.gql │ │ │ │ ├── get-workspace-info.gql │ │ │ │ ├── get-workspace-page-by-id.gql │ │ │ │ ├── get-workspace-page-meta.gql │ │ │ │ ├── get-workspace-public-by-id.gql │ │ │ │ ├── get-workspace-public-pages.gql │ │ │ │ ├── get-workspace-subscription.gql │ │ │ │ ├── get-workspace.gql │ │ │ │ ├── get-workspaces.gql │ │ │ │ ├── grant-doc-user-roles.gql │ │ │ │ ├── histories.gql │ │ │ │ ├── index.ts │ │ │ │ ├── indexer-aggregate.gql │ │ │ │ ├── indexer-search-docs.gql │ │ │ │ ├── indexer-search.gql │ │ │ │ ├── invoices-count.gql │ │ │ │ ├── invoices.gql │ │ │ │ ├── leave-workspace.gql │ │ │ │ ├── license │ │ │ │ │ ├── activate-license.gql │ │ │ │ │ ├── deactivate-license.gql │ │ │ │ │ ├── get-license.gql │ │ │ │ │ ├── install-license.gql │ │ │ │ │ └── license-body.gql │ │ │ │ ├── list-notifications.gql │ │ │ │ ├── mention-user.gql │ │ │ │ ├── notification-count.gql │ │ │ │ ├── prices.gql │ │ │ │ ├── public-page.gql │ │ │ │ ├── quota.gql │ │ │ │ ├── read-all-notifications.gql │ │ │ │ ├── read-notification.gql │ │ │ │ ├── recover-doc.gql │ │ │ │ ├── remove-avatar.gql │ │ │ │ ├── resume-subscription.gql │ │ │ │ ├── revoke-doc-user-roles.gql │ │ │ │ ├── revoke-member-permission.gql │ │ │ │ ├── revoke-public-page.gql │ │ │ │ ├── send-change-email.gql │ │ │ │ ├── send-change-password-email.gql │ │ │ │ ├── send-set-password-email.gql │ │ │ │ ├── send-verify-change-email.gql │ │ │ │ ├── send-verify-email.gql │ │ │ │ ├── server-config.gql │ │ │ │ ├── set-workspace-public-by-id.gql │ │ │ │ ├── subscription-refresh.gql │ │ │ │ ├── subscription-request.gql │ │ │ │ ├── subscription.gql │ │ │ │ ├── update-doc-default-role.gql │ │ │ │ ├── update-doc-user-role.gql │ │ │ │ ├── update-subscription-billing.gql │ │ │ │ ├── update-user-profile.gql │ │ │ │ ├── update-user-settings.gql │ │ │ │ ├── upload-avatar.gql │ │ │ │ ├── verify-email.gql │ │ │ │ ├── workspace-blob-quota.gql │ │ │ │ ├── workspace-config.gql │ │ │ │ ├── workspace-enable-ai.gql │ │ │ │ ├── workspace-enable-doc-embedding.gql │ │ │ │ ├── workspace-enable-url-preview.gql │ │ │ │ ├── workspace-intive-by-emails.gql │ │ │ │ ├── workspace-invite-accept-by-invite-id.gql │ │ │ │ ├── workspace-invite-link.gql │ │ │ │ ├── workspace-invite-revoke-link.gql │ │ │ │ ├── workspace-invoices.gql │ │ │ │ ├── workspace-quota.gql │ │ │ │ ├── workspace-role-permissions.gql │ │ │ │ ├── workspace-team-approve.gql │ │ │ │ └── workspace-team-grant.gql │ │ │ ├── index.ts │ │ │ └── schema.ts │ │ └── tsconfig.json │ ├── infra │ │ ├── package.json │ │ ├── src │ │ │ ├── app-config-storage.ts │ │ │ ├── atom │ │ │ │ ├── index.ts │ │ │ │ ├── root-store.ts │ │ │ │ └── settings.ts │ │ │ ├── framework │ │ │ │ ├── __tests__ │ │ │ │ │ └── framework.spec.ts │ │ │ │ ├── core │ │ │ │ │ ├── components │ │ │ │ │ │ ├── component.ts │ │ │ │ │ │ ├── entity.ts │ │ │ │ │ │ ├── scope.ts │ │ │ │ │ │ ├── service.ts │ │ │ │ │ │ └── store.ts │ │ │ │ │ ├── constructor-context.ts │ │ │ │ │ ├── consts.ts │ │ │ │ │ ├── error.ts │ │ │ │ │ ├── event.ts │ │ │ │ │ ├── framework.ts │ │ │ │ │ ├── identifier.ts │ │ │ │ │ ├── index.ts │ │ │ │ │ ├── provider.ts │ │ │ │ │ ├── scope.ts │ │ │ │ │ └── types.ts │ │ │ │ ├── index.ts │ │ │ │ └── react │ │ │ │ │ └── index.tsx │ │ │ ├── index.ts │ │ │ ├── livedata │ │ │ │ ├── __tests__ │ │ │ │ │ ├── livedata.spec.ts │ │ │ │ │ └── react.spec.tsx │ │ │ │ ├── effect │ │ │ │ │ ├── __tests__ │ │ │ │ │ │ └── effect.spec.ts │ │ │ │ │ └── index.ts │ │ │ │ ├── index.ts │ │ │ │ ├── livedata.ts │ │ │ │ ├── ops.ts │ │ │ │ └── react.ts │ │ │ ├── media │ │ │ │ ├── index.ts │ │ │ │ └── types.ts │ │ │ ├── op │ │ │ │ ├── README.md │ │ │ │ ├── __tests__ │ │ │ │ │ ├── client.spec.ts │ │ │ │ │ ├── consumer.spec.ts │ │ │ │ │ └── message.spec.ts │ │ │ │ ├── client.ts │ │ │ │ ├── consumer.ts │ │ │ │ ├── index.ts │ │ │ │ ├── message.ts │ │ │ │ └── types.ts │ │ │ ├── orm │ │ │ │ ├── core │ │ │ │ │ ├── __tests__ │ │ │ │ │ │ ├── doc.spec.ts │ │ │ │ │ │ ├── entity.spec.ts │ │ │ │ │ │ ├── hook.spec.ts │ │ │ │ │ │ ├── schema.spec.ts │ │ │ │ │ │ └── yjs.spec.ts │ │ │ │ │ ├── adapters │ │ │ │ │ │ ├── index.ts │ │ │ │ │ │ ├── memory │ │ │ │ │ │ │ ├── db.ts │ │ │ │ │ │ │ └── table.ts │ │ │ │ │ │ ├── mixins │ │ │ │ │ │ │ ├── hook.ts │ │ │ │ │ │ │ └── index.ts │ │ │ │ │ │ ├── types.ts │ │ │ │ │ │ └── yjs │ │ │ │ │ │ │ ├── db.ts │ │ │ │ │ │ │ └── table.ts │ │ │ │ │ ├── client.ts │ │ │ │ │ ├── index.ts │ │ │ │ │ ├── schema.ts │ │ │ │ │ ├── table.ts │ │ │ │ │ ├── types.ts │ │ │ │ │ └── validators │ │ │ │ │ │ ├── data.ts │ │ │ │ │ │ ├── index.ts │ │ │ │ │ │ ├── schema.ts │ │ │ │ │ │ ├── types.ts │ │ │ │ │ │ └── yjs.ts │ │ │ │ └── index.ts │ │ │ ├── storage │ │ │ │ ├── __tests__ │ │ │ │ │ └── memento.spec.ts │ │ │ │ ├── async-memento.ts │ │ │ │ ├── index.ts │ │ │ │ ├── kv.ts │ │ │ │ └── memento.ts │ │ │ └── utils │ │ │ │ ├── __tests__ │ │ │ │ ├── async-lock.spec.ts │ │ │ │ ├── async-queue.spec.ts │ │ │ │ ├── fractional-indexing.spec.ts │ │ │ │ ├── throw-if-aborted.spec.ts │ │ │ │ └── yjs-observable.spec.ts │ │ │ │ ├── async-lock.ts │ │ │ │ ├── async-queue.ts │ │ │ │ ├── exhaustmap-with-trailing.ts │ │ │ │ ├── fractional-indexing.ts │ │ │ │ ├── index.ts │ │ │ │ ├── merge-updates.ts │ │ │ │ ├── object-pool.ts │ │ │ │ ├── shallow-equal.ts │ │ │ │ ├── stable-hash.ts │ │ │ │ ├── throw-if-aborted.ts │ │ │ │ └── yjs-observable.ts │ │ ├── tsconfig.json │ │ └── typedoc.json │ ├── native │ │ ├── Cargo.toml │ │ ├── benches │ │ │ └── hashcash.rs │ │ ├── fixtures │ │ │ ├── demo.docx │ │ │ ├── demo.docx.0.md │ │ │ ├── demo.docx.md │ │ │ ├── demo.ydoc │ │ │ ├── demo.ydoc.json │ │ │ ├── sample.c │ │ │ ├── sample.c.0.md │ │ │ ├── sample.c.1.md │ │ │ ├── sample.html │ │ │ ├── sample.html.0.md │ │ │ ├── sample.pdf │ │ │ ├── sample.pdf.0.md │ │ │ ├── sample.pdf.1.md │ │ │ ├── sample.pdf.2.md │ │ │ ├── sample.rs │ │ │ ├── sample.rs.0.md │ │ │ ├── sample.rs.1.md │ │ │ ├── sample.ts │ │ │ └── sample.ts.0.md │ │ └── src │ │ │ ├── doc_loader │ │ │ ├── document.rs │ │ │ ├── error.rs │ │ │ ├── loader │ │ │ │ ├── docx.rs │ │ │ │ ├── html.rs │ │ │ │ ├── mod.rs │ │ │ │ ├── pdf.rs │ │ │ │ ├── source │ │ │ │ │ ├── mod.rs │ │ │ │ │ └── parser.rs │ │ │ │ └── text.rs │ │ │ ├── mod.rs │ │ │ ├── splitter │ │ │ │ ├── error.rs │ │ │ │ ├── markdown.rs │ │ │ │ ├── mod.rs │ │ │ │ ├── options.rs │ │ │ │ └── token.rs │ │ │ └── types.rs │ │ │ ├── doc_parser.rs │ │ │ ├── hashcash.rs │ │ │ └── lib.rs │ ├── nbstore │ │ ├── README.md │ │ ├── package.json │ │ ├── src │ │ │ ├── __tests__ │ │ │ │ ├── frontend.spec.ts │ │ │ │ ├── sync.spec.ts │ │ │ │ └── utils.ts │ │ │ ├── connection │ │ │ │ ├── __tests__ │ │ │ │ │ └── auto-reconnection.spec.ts │ │ │ │ ├── connection.ts │ │ │ │ ├── index.ts │ │ │ │ └── shared-connection.ts │ │ │ ├── frontend │ │ │ │ ├── awareness.ts │ │ │ │ ├── blob.ts │ │ │ │ ├── doc.ts │ │ │ │ ├── index.ts │ │ │ │ └── indexer.ts │ │ │ ├── impls │ │ │ │ ├── broadcast-channel │ │ │ │ │ ├── awareness.ts │ │ │ │ │ ├── channel.ts │ │ │ │ │ └── index.ts │ │ │ │ ├── cloud │ │ │ │ │ ├── awareness.ts │ │ │ │ │ ├── blob.ts │ │ │ │ │ ├── doc-static.ts │ │ │ │ │ ├── doc.ts │ │ │ │ │ ├── http.ts │ │ │ │ │ ├── index.ts │ │ │ │ │ ├── indexer.ts │ │ │ │ │ └── socket.ts │ │ │ │ ├── idb │ │ │ │ │ ├── blob-sync.ts │ │ │ │ │ ├── blob.ts │ │ │ │ │ ├── db.ts │ │ │ │ │ ├── doc-sync.ts │ │ │ │ │ ├── doc.ts │ │ │ │ │ ├── index.ts │ │ │ │ │ ├── indexer-sync.ts │ │ │ │ │ ├── indexer │ │ │ │ │ │ ├── __tests__ │ │ │ │ │ │ │ ├── bm25.spec.ts │ │ │ │ │ │ │ ├── highlighter.spec.ts │ │ │ │ │ │ │ └── tokenizer.spec.ts │ │ │ │ │ │ ├── bm25.ts │ │ │ │ │ │ ├── data-struct.ts │ │ │ │ │ │ ├── highlighter.ts │ │ │ │ │ │ ├── index.ts │ │ │ │ │ │ ├── inverted-index.ts │ │ │ │ │ │ ├── match.ts │ │ │ │ │ │ ├── tokenizer.ts │ │ │ │ │ │ └── utils.ts │ │ │ │ │ ├── lock.ts │ │ │ │ │ ├── schema.ts │ │ │ │ │ └── v1 │ │ │ │ │ │ ├── blob.ts │ │ │ │ │ │ ├── db.ts │ │ │ │ │ │ ├── doc.ts │ │ │ │ │ │ └── index.ts │ │ │ │ ├── index.ts │ │ │ │ └── sqlite │ │ │ │ │ ├── blob-sync.ts │ │ │ │ │ ├── blob.ts │ │ │ │ │ ├── db.ts │ │ │ │ │ ├── doc-sync.ts │ │ │ │ │ ├── doc.ts │ │ │ │ │ ├── index.ts │ │ │ │ │ ├── indexer │ │ │ │ │ ├── index.ts │ │ │ │ │ ├── match.ts │ │ │ │ │ ├── node-builder.ts │ │ │ │ │ ├── query.ts │ │ │ │ │ └── utils.ts │ │ │ │ │ └── v1 │ │ │ │ │ ├── blob.ts │ │ │ │ │ ├── db.ts │ │ │ │ │ ├── doc.ts │ │ │ │ │ └── index.ts │ │ │ ├── index.ts │ │ │ ├── storage │ │ │ │ ├── awareness.ts │ │ │ │ ├── blob-sync.ts │ │ │ │ ├── blob.ts │ │ │ │ ├── doc-sync.ts │ │ │ │ ├── doc.ts │ │ │ │ ├── dummy │ │ │ │ │ ├── awareness.ts │ │ │ │ │ ├── blob-sync.ts │ │ │ │ │ ├── blob.ts │ │ │ │ │ ├── doc-sync.ts │ │ │ │ │ ├── doc.ts │ │ │ │ │ ├── indexer-sync.ts │ │ │ │ │ └── indexer.ts │ │ │ │ ├── errors │ │ │ │ │ ├── index.ts │ │ │ │ │ ├── over-capacity.ts │ │ │ │ │ └── over-size.ts │ │ │ │ ├── history.ts │ │ │ │ ├── index.ts │ │ │ │ ├── indexer-sync.ts │ │ │ │ ├── indexer.ts │ │ │ │ ├── indexer │ │ │ │ │ ├── document.ts │ │ │ │ │ ├── field-type.ts │ │ │ │ │ ├── query.ts │ │ │ │ │ └── schema.ts │ │ │ │ ├── lock.ts │ │ │ │ └── storage.ts │ │ │ ├── sync │ │ │ │ ├── awareness │ │ │ │ │ └── index.ts │ │ │ │ ├── blob │ │ │ │ │ ├── index.ts │ │ │ │ │ └── peer.ts │ │ │ │ ├── doc │ │ │ │ │ ├── index.ts │ │ │ │ │ └── peer.ts │ │ │ │ ├── index.ts │ │ │ │ ├── indexer │ │ │ │ │ ├── crawler.ts │ │ │ │ │ └── index.ts │ │ │ │ └── types.ts │ │ │ ├── utils │ │ │ │ ├── __tests__ │ │ │ │ │ ├── __snapshots__ │ │ │ │ │ │ └── storage.spec.ts.snap │ │ │ │ │ ├── binary-search-tree.spec.ts │ │ │ │ │ ├── id-converter.spec.ts │ │ │ │ │ ├── priority-queue.spec.ts │ │ │ │ │ └── storage.spec.ts │ │ │ │ ├── async-priority-queue.ts │ │ │ │ ├── binary-search-tree.ts │ │ │ │ ├── clock.ts │ │ │ │ ├── from-promise.ts │ │ │ │ ├── id-converter.ts │ │ │ │ ├── is-empty-update.ts │ │ │ │ ├── priority-queue.ts │ │ │ │ ├── shallow-equal.ts │ │ │ │ ├── take-until-abort.ts │ │ │ │ ├── throw-if-aborted.ts │ │ │ │ └── universal-id.ts │ │ │ └── worker │ │ │ │ ├── client.ts │ │ │ │ ├── consumer.ts │ │ │ │ └── ops.ts │ │ └── tsconfig.json │ ├── reader │ │ ├── README.md │ │ ├── __tests__ │ │ │ ├── __fixtures__ │ │ │ │ ├── test-doc-with-ai-editable.snapshot.bin │ │ │ │ ├── test-doc.snapshot.bin │ │ │ │ └── test-root-doc.snapshot.bin │ │ │ ├── __snapshots__ │ │ │ │ └── reader.spec.ts.snap │ │ │ └── reader.spec.ts │ │ ├── esbuild.config.js │ │ ├── package.json │ │ ├── src │ │ │ ├── bs-store.ts │ │ │ ├── doc-parser │ │ │ │ ├── delta-to-md │ │ │ │ │ ├── README.md │ │ │ │ │ ├── delta-converters.ts │ │ │ │ │ ├── delta-to-md.ts │ │ │ │ │ ├── index.ts │ │ │ │ │ └── utils │ │ │ │ │ │ ├── node.ts │ │ │ │ │ │ └── url.ts │ │ │ │ ├── parser.ts │ │ │ │ └── types.ts │ │ │ ├── index.ts │ │ │ └── reader.ts │ │ └── tsconfig.json │ ├── theme │ │ └── README.md │ └── y-octo │ │ ├── core │ │ ├── Cargo.toml │ │ ├── LICENSE │ │ ├── README.md │ │ ├── benches │ │ │ ├── apply_benchmarks.rs │ │ │ ├── array_ops_benchmarks.rs │ │ │ ├── codec_benchmarks.rs │ │ │ ├── map_ops_benchmarks.rs │ │ │ ├── text_ops_benchmarks.rs │ │ │ ├── update_benchmarks.rs │ │ │ └── utils │ │ │ │ ├── files.rs │ │ │ │ └── mod.rs │ │ └── src │ │ │ ├── codec │ │ │ ├── buffer.rs │ │ │ ├── integer.rs │ │ │ ├── mod.rs │ │ │ └── string.rs │ │ │ ├── doc │ │ │ ├── awareness.rs │ │ │ ├── codec │ │ │ │ ├── any.rs │ │ │ │ ├── content.rs │ │ │ │ ├── delete_set.rs │ │ │ │ ├── id.rs │ │ │ │ ├── io │ │ │ │ │ ├── codec_v1.rs │ │ │ │ │ ├── mod.rs │ │ │ │ │ ├── reader.rs │ │ │ │ │ └── writer.rs │ │ │ │ ├── item.rs │ │ │ │ ├── item_flag.rs │ │ │ │ ├── mod.rs │ │ │ │ ├── refs.rs │ │ │ │ ├── update.rs │ │ │ │ └── utils │ │ │ │ │ ├── items.rs │ │ │ │ │ └── mod.rs │ │ │ ├── common │ │ │ │ ├── mod.rs │ │ │ │ ├── range.rs │ │ │ │ ├── somr.rs │ │ │ │ └── state.rs │ │ │ ├── document.rs │ │ │ ├── hasher.rs │ │ │ ├── history.rs │ │ │ ├── mod.rs │ │ │ ├── publisher.rs │ │ │ ├── store.rs │ │ │ ├── types │ │ │ │ ├── array.rs │ │ │ │ ├── list │ │ │ │ │ ├── iterator.rs │ │ │ │ │ ├── mod.rs │ │ │ │ │ └── search_marker.rs │ │ │ │ ├── map.rs │ │ │ │ ├── mod.rs │ │ │ │ ├── text.rs │ │ │ │ ├── value.rs │ │ │ │ └── xml.rs │ │ │ └── utils.rs │ │ │ ├── fixtures │ │ │ ├── basic.bin │ │ │ ├── database.bin │ │ │ ├── edge-case-left-right-same-node.bin │ │ │ ├── large.bin │ │ │ ├── local_docs.json │ │ │ └── with-subdoc.bin │ │ │ ├── lib.rs │ │ │ ├── protocol │ │ │ ├── awareness.rs │ │ │ ├── doc.rs │ │ │ ├── mod.rs │ │ │ ├── scanner.rs │ │ │ └── sync.rs │ │ │ └── sync.rs │ │ ├── node │ │ ├── .gitignore │ │ ├── Cargo.toml │ │ ├── build.rs │ │ ├── index.d.ts │ │ ├── index.js │ │ ├── package.json │ │ ├── scripts │ │ │ └── run-test.mts │ │ ├── src │ │ │ ├── array.rs │ │ │ ├── doc.rs │ │ │ ├── lib.rs │ │ │ ├── map.rs │ │ │ ├── text.rs │ │ │ └── utils.rs │ │ ├── tests │ │ │ ├── array.spec.mts │ │ │ ├── doc.spec.mts │ │ │ ├── map.spec.mts │ │ │ └── text.spec.mts │ │ └── tsconfig.json │ │ └── utils │ │ ├── Cargo.toml │ │ ├── benches │ │ ├── apply_benchmarks.rs │ │ ├── array_ops_benchmarks.rs │ │ ├── codec_benchmarks.rs │ │ ├── map_ops_benchmarks.rs │ │ ├── text_ops_benchmarks.rs │ │ ├── update_benchmarks.rs │ │ └── utils │ │ │ ├── files.rs │ │ │ └── mod.rs │ │ ├── bin │ │ ├── bench_result_render.rs │ │ ├── doc_merger.rs │ │ └── memory_leak_test.rs │ │ ├── fuzz │ │ ├── .gitignore │ │ ├── Cargo.lock │ │ ├── Cargo.toml │ │ └── fuzz_targets │ │ │ ├── apply_update.rs │ │ │ ├── codec_doc_any.rs │ │ │ ├── codec_doc_any_struct.rs │ │ │ ├── decode_bytes.rs │ │ │ ├── i32_decode.rs │ │ │ ├── i32_encode.rs │ │ │ ├── ins_del_text.rs │ │ │ ├── sync_message.rs │ │ │ ├── u64_decode.rs │ │ │ └── u64_encode.rs │ │ └── src │ │ ├── codec.rs │ │ ├── doc.rs │ │ ├── doc_operation │ │ ├── mod.rs │ │ ├── types.rs │ │ └── yrs_op │ │ │ ├── array.rs │ │ │ ├── map.rs │ │ │ ├── mod.rs │ │ │ ├── text.rs │ │ │ ├── xml_element.rs │ │ │ ├── xml_fragment.rs │ │ │ └── xml_text.rs │ │ └── lib.rs └── frontend │ ├── admin │ ├── components.json │ ├── package.json │ ├── src │ │ ├── app.tsx │ │ ├── components │ │ │ └── ui │ │ │ │ ├── accordion.tsx │ │ │ │ ├── alert-dialog.tsx │ │ │ │ ├── alert.tsx │ │ │ │ ├── aspect-ratio.tsx │ │ │ │ ├── avatar.tsx │ │ │ │ ├── badge.tsx │ │ │ │ ├── breadcrumb.tsx │ │ │ │ ├── button.tsx │ │ │ │ ├── calendar.tsx │ │ │ │ ├── card.tsx │ │ │ │ ├── carousel.tsx │ │ │ │ ├── checkbox.tsx │ │ │ │ ├── collapsible.tsx │ │ │ │ ├── command.tsx │ │ │ │ ├── context-menu.tsx │ │ │ │ ├── dialog.tsx │ │ │ │ ├── drawer.tsx │ │ │ │ ├── dropdown-menu.tsx │ │ │ │ ├── form.tsx │ │ │ │ ├── hover-card.tsx │ │ │ │ ├── input-otp.tsx │ │ │ │ ├── input.tsx │ │ │ │ ├── label.tsx │ │ │ │ ├── menubar.tsx │ │ │ │ ├── navigation-menu.tsx │ │ │ │ ├── pagination.tsx │ │ │ │ ├── popover.tsx │ │ │ │ ├── progress.tsx │ │ │ │ ├── radio-group.tsx │ │ │ │ ├── resizable.tsx │ │ │ │ ├── scroll-area.tsx │ │ │ │ ├── select.tsx │ │ │ │ ├── separator.tsx │ │ │ │ ├── sheet.tsx │ │ │ │ ├── skeleton.tsx │ │ │ │ ├── slider.tsx │ │ │ │ ├── sonner.tsx │ │ │ │ ├── switch.tsx │ │ │ │ ├── table.tsx │ │ │ │ ├── tabs.tsx │ │ │ │ ├── textarea.tsx │ │ │ │ ├── toast.tsx │ │ │ │ ├── toaster.tsx │ │ │ │ ├── toggle-group.tsx │ │ │ │ ├── toggle.tsx │ │ │ │ ├── tooltip.tsx │ │ │ │ └── use-toast.ts │ │ ├── config.json │ │ ├── fetch-utils.ts │ │ ├── global.css │ │ ├── global.d.ts │ │ ├── index.tsx │ │ ├── modules │ │ │ ├── about │ │ │ │ ├── about.tsx │ │ │ │ └── index.tsx │ │ │ ├── accounts │ │ │ │ ├── components │ │ │ │ │ ├── columns.tsx │ │ │ │ │ ├── data-table-column-header.tsx │ │ │ │ │ ├── data-table-pagination.tsx │ │ │ │ │ ├── data-table-row-actions.tsx │ │ │ │ │ ├── data-table-toolbar.tsx │ │ │ │ │ ├── data-table.tsx │ │ │ │ │ ├── delete-account.tsx │ │ │ │ │ ├── disable-account.tsx │ │ │ │ │ ├── discard-changes.tsx │ │ │ │ │ ├── enable-account.tsx │ │ │ │ │ ├── export-users-dialog.tsx │ │ │ │ │ ├── import-users │ │ │ │ │ │ ├── csv-format-guidance.tsx │ │ │ │ │ │ ├── file-upload-area.tsx │ │ │ │ │ │ ├── import-content.tsx │ │ │ │ │ │ ├── import-footer.tsx │ │ │ │ │ │ ├── index.tsx │ │ │ │ │ │ └── use-import-users-state.ts │ │ │ │ │ ├── logo.tsx │ │ │ │ │ ├── reset-password.tsx │ │ │ │ │ ├── use-user-management.ts │ │ │ │ │ ├── user-form.tsx │ │ │ │ │ └── user-table.tsx │ │ │ │ ├── index.tsx │ │ │ │ ├── schema.ts │ │ │ │ ├── use-user-list.ts │ │ │ │ └── utils │ │ │ │ │ └── csv-utils.ts │ │ │ ├── ai │ │ │ │ ├── discard-changes.tsx │ │ │ │ ├── edit-prompt.tsx │ │ │ │ ├── index.tsx │ │ │ │ ├── keys.tsx │ │ │ │ ├── prompts.tsx │ │ │ │ └── use-prompt.ts │ │ │ ├── auth │ │ │ │ ├── index.tsx │ │ │ │ └── logo.svg │ │ │ ├── common.ts │ │ │ ├── header.tsx │ │ │ ├── layout.tsx │ │ │ ├── nav │ │ │ │ ├── collapsible-item.tsx │ │ │ │ ├── context.ts │ │ │ │ ├── nav-item.tsx │ │ │ │ ├── nav.tsx │ │ │ │ ├── server-version.tsx │ │ │ │ ├── settings-item.tsx │ │ │ │ └── user-dropdown.tsx │ │ │ ├── panel │ │ │ │ └── context.ts │ │ │ ├── settings │ │ │ │ ├── config-input-row.tsx │ │ │ │ ├── config.ts │ │ │ │ ├── index.tsx │ │ │ │ ├── operations │ │ │ │ │ └── send-test-email.tsx │ │ │ │ ├── use-app-config.ts │ │ │ │ └── utils.tsx │ │ │ └── setup │ │ │ │ ├── create-admin.tsx │ │ │ │ ├── form.tsx │ │ │ │ ├── index.tsx │ │ │ │ └── logo.svg │ │ ├── setup.ts │ │ ├── use-mutation.ts │ │ ├── use-query.ts │ │ └── utils.ts │ ├── tailwind.config.js │ └── tsconfig.json │ ├── apps │ ├── android │ │ ├── .gitignore │ │ ├── App │ │ │ ├── .gitignore │ │ │ ├── app │ │ │ │ ├── .gitignore │ │ │ │ ├── build.gradle │ │ │ │ ├── capacitor.build.gradle │ │ │ │ ├── proguard-rules.pro │ │ │ │ └── src │ │ │ │ │ ├── androidTest │ │ │ │ │ └── java │ │ │ │ │ │ └── com │ │ │ │ │ │ └── getcapacitor │ │ │ │ │ │ └── myapp │ │ │ │ │ │ └── ExampleInstrumentedTest.java │ │ │ │ │ ├── main │ │ │ │ │ ├── AndroidManifest.xml │ │ │ │ │ ├── ic_launcher-playstore.png │ │ │ │ │ ├── java │ │ │ │ │ │ ├── app │ │ │ │ │ │ │ └── affine │ │ │ │ │ │ │ │ └── pro │ │ │ │ │ │ │ │ ├── AFFiNEApp.kt │ │ │ │ │ │ │ │ ├── AuthInitializer.kt │ │ │ │ │ │ │ │ ├── CapacitorConfig.kt │ │ │ │ │ │ │ │ ├── Constants.kt │ │ │ │ │ │ │ │ ├── MainActivity.kt │ │ │ │ │ │ │ │ ├── ai │ │ │ │ │ │ │ │ ├── AIActivity.kt │ │ │ │ │ │ │ │ └── chat │ │ │ │ │ │ │ │ │ ├── ChatUiState.kt │ │ │ │ │ │ │ │ │ ├── ChatViewModel.kt │ │ │ │ │ │ │ │ │ └── ui │ │ │ │ │ │ │ │ │ ├── ChatAppBar.kt │ │ │ │ │ │ │ │ │ ├── Message.kt │ │ │ │ │ │ │ │ │ └── UserInput.kt │ │ │ │ │ │ │ │ ├── components │ │ │ │ │ │ │ │ ├── AFFiNEAppBar.kt │ │ │ │ │ │ │ │ ├── AFFiNEIcon.kt │ │ │ │ │ │ │ │ └── Markdown.kt │ │ │ │ │ │ │ │ ├── plugin │ │ │ │ │ │ │ │ ├── AFFiNEThemePlugin.kt │ │ │ │ │ │ │ │ ├── AIButtonPlugin.kt │ │ │ │ │ │ │ │ ├── AuthPlugin.kt │ │ │ │ │ │ │ │ ├── HashCashPlugin.kt │ │ │ │ │ │ │ │ ├── NbStorePlugin.kt │ │ │ │ │ │ │ │ └── PluginExt.kt │ │ │ │ │ │ │ │ ├── service │ │ │ │ │ │ │ │ ├── GraphQLService.kt │ │ │ │ │ │ │ │ ├── OkHttp.kt │ │ │ │ │ │ │ │ ├── SSEService.kt │ │ │ │ │ │ │ │ └── WebService.kt │ │ │ │ │ │ │ │ ├── theme │ │ │ │ │ │ │ │ ├── Colors.kt │ │ │ │ │ │ │ │ ├── Theme.kt │ │ │ │ │ │ │ │ └── Typography.kt │ │ │ │ │ │ │ │ └── utils │ │ │ │ │ │ │ │ ├── DataStore.kt │ │ │ │ │ │ │ │ ├── DensityUtil.kt │ │ │ │ │ │ │ │ ├── WebExt.kt │ │ │ │ │ │ │ │ └── logger │ │ │ │ │ │ │ │ ├── AffineDebugTree.kt │ │ │ │ │ │ │ │ ├── CrashlyticsTree.kt │ │ │ │ │ │ │ │ └── FileTree.kt │ │ │ │ │ │ └── uniffi │ │ │ │ │ │ │ └── affine_mobile_native │ │ │ │ │ │ │ └── affine_mobile_native.kt │ │ │ │ │ └── res │ │ │ │ │ │ ├── drawable │ │ │ │ │ │ ├── ic_ai.xml │ │ │ │ │ │ ├── ic_arrow_down_small.xml │ │ │ │ │ │ ├── ic_arrow_up_big.xml │ │ │ │ │ │ ├── ic_broom.xml │ │ │ │ │ │ ├── ic_bubble.xml │ │ │ │ │ │ ├── ic_bulleted_list_01.xml │ │ │ │ │ │ ├── ic_bulleted_list_02.xml │ │ │ │ │ │ ├── ic_bulleted_list_03.xml │ │ │ │ │ │ ├── ic_bulleted_list_04.xml │ │ │ │ │ │ ├── ic_camera.xml │ │ │ │ │ │ ├── ic_close.xml │ │ │ │ │ │ ├── ic_image.xml │ │ │ │ │ │ ├── ic_launcher_background.xml │ │ │ │ │ │ ├── ic_launcher_foreground.xml │ │ │ │ │ │ ├── ic_more_horizontal.xml │ │ │ │ │ │ └── ic_send.xml │ │ │ │ │ │ ├── layout │ │ │ │ │ │ └── activity_main.xml │ │ │ │ │ │ ├── mipmap-anydpi-v26 │ │ │ │ │ │ ├── ic_launcher.xml │ │ │ │ │ │ └── ic_launcher_round.xml │ │ │ │ │ │ ├── mipmap-hdpi │ │ │ │ │ │ ├── ic_launcher.webp │ │ │ │ │ │ └── ic_launcher_round.webp │ │ │ │ │ │ ├── mipmap-mdpi │ │ │ │ │ │ ├── ic_launcher.webp │ │ │ │ │ │ └── ic_launcher_round.webp │ │ │ │ │ │ ├── mipmap-xhdpi │ │ │ │ │ │ ├── ic_launcher.webp │ │ │ │ │ │ └── ic_launcher_round.webp │ │ │ │ │ │ ├── mipmap-xxhdpi │ │ │ │ │ │ ├── ic_launcher.webp │ │ │ │ │ │ └── ic_launcher_round.webp │ │ │ │ │ │ ├── mipmap-xxxhdpi │ │ │ │ │ │ ├── ic_launcher.webp │ │ │ │ │ │ └── ic_launcher_round.webp │ │ │ │ │ │ ├── values │ │ │ │ │ │ ├── colors.xml │ │ │ │ │ │ ├── strings.xml │ │ │ │ │ │ └── styles.xml │ │ │ │ │ │ └── xml │ │ │ │ │ │ └── file_paths.xml │ │ │ │ │ └── test │ │ │ │ │ └── java │ │ │ │ │ └── com │ │ │ │ │ └── getcapacitor │ │ │ │ │ └── myapp │ │ │ │ │ └── ExampleUnitTest.java │ │ │ ├── build.gradle │ │ │ ├── buildscripts │ │ │ │ └── toml-updater-config.gradle │ │ │ ├── capacitor-cordova-android-plugins │ │ │ │ ├── build.gradle │ │ │ │ ├── cordova.variables.gradle │ │ │ │ └── src │ │ │ │ │ └── main │ │ │ │ │ ├── AndroidManifest.xml │ │ │ │ │ ├── java │ │ │ │ │ └── .gitkeep │ │ │ │ │ └── res │ │ │ │ │ └── .gitkeep │ │ │ ├── capacitor.settings.gradle │ │ │ ├── gradle.properties │ │ │ ├── gradle │ │ │ │ ├── libs.versions.toml │ │ │ │ └── wrapper │ │ │ │ │ ├── gradle-wrapper.jar │ │ │ │ │ └── gradle-wrapper.properties │ │ │ ├── gradlew │ │ │ ├── gradlew.bat │ │ │ ├── service │ │ │ │ ├── .gitignore │ │ │ │ └── build.gradle │ │ │ ├── settings.gradle │ │ │ └── variables.gradle │ │ ├── README.md │ │ ├── capacitor.config.ts │ │ ├── package.json │ │ ├── src │ │ │ ├── app.tsx │ │ │ ├── index.tsx │ │ │ ├── nbstore.worker.ts │ │ │ ├── plugins │ │ │ │ ├── affine-theme │ │ │ │ │ ├── definitions.ts │ │ │ │ │ └── index.ts │ │ │ │ ├── ai-button │ │ │ │ │ ├── definitions.ts │ │ │ │ │ └── index.ts │ │ │ │ ├── auth │ │ │ │ │ ├── definitions.ts │ │ │ │ │ └── index.ts │ │ │ │ ├── hashcash │ │ │ │ │ ├── definitions.ts │ │ │ │ │ └── index.ts │ │ │ │ └── nbstore │ │ │ │ │ ├── definitions.ts │ │ │ │ │ └── index.ts │ │ │ ├── proxy.ts │ │ │ ├── setup-worker.ts │ │ │ └── setup.ts │ │ └── tsconfig.json │ ├── electron-renderer │ │ ├── package.json │ │ ├── src │ │ │ ├── app │ │ │ │ ├── app.css.ts │ │ │ │ ├── app.tsx │ │ │ │ ├── effects │ │ │ │ │ ├── events.ts │ │ │ │ │ ├── index.ts │ │ │ │ │ ├── modules.ts │ │ │ │ │ ├── recording.ts │ │ │ │ │ ├── store-manager.ts │ │ │ │ │ └── utils.ts │ │ │ │ ├── global.css │ │ │ │ ├── index.tsx │ │ │ │ ├── language-sync.ts │ │ │ │ ├── setup.ts │ │ │ │ └── theme-sync.ts │ │ │ ├── background-worker │ │ │ │ └── index.ts │ │ │ ├── popup │ │ │ │ ├── app.css.ts │ │ │ │ ├── app.tsx │ │ │ │ ├── index.tsx │ │ │ │ ├── recording │ │ │ │ │ ├── index.tsx │ │ │ │ │ └── styles.css.ts │ │ │ │ └── setup.ts │ │ │ └── shell │ │ │ │ ├── app.css.ts │ │ │ │ ├── app.tsx │ │ │ │ ├── index.tsx │ │ │ │ └── setup.ts │ │ └── tsconfig.json │ ├── electron │ │ ├── .gitignore │ │ ├── README.md │ │ ├── dev-app-update.yml │ │ ├── forge.config.mjs │ │ ├── package.json │ │ ├── resources │ │ │ ├── affine.metainfo.xml │ │ │ ├── app-update.yml │ │ │ ├── deb │ │ │ │ ├── postinst │ │ │ │ └── prerm │ │ │ └── icons │ │ │ │ ├── affine_installing.gif │ │ │ │ ├── dmg-background.png │ │ │ │ ├── dmg-background@2x.png │ │ │ │ ├── doc-edgeless.png │ │ │ │ ├── doc-page.png │ │ │ │ ├── icon.icns │ │ │ │ ├── icon.ico │ │ │ │ ├── icon.png │ │ │ │ ├── icon_beta.icns │ │ │ │ ├── icon_beta.ico │ │ │ │ ├── icon_beta.png │ │ │ │ ├── icon_beta_512x512.png │ │ │ │ ├── icon_beta_64x64.png │ │ │ │ ├── icon_canary.icns │ │ │ │ ├── icon_canary.ico │ │ │ │ ├── icon_canary.png │ │ │ │ ├── icon_canary_512x512.png │ │ │ │ ├── icon_canary_64x64.png │ │ │ │ ├── icon_internal.icns │ │ │ │ ├── icon_internal.ico │ │ │ │ ├── icon_internal_512x512.png │ │ │ │ ├── icon_internal_64x64.png │ │ │ │ ├── icon_stable_512x512.png │ │ │ │ ├── icon_stable_64x64.png │ │ │ │ ├── journal-today.png │ │ │ │ ├── monitor.png │ │ │ │ ├── nsis-sidebar.bmp │ │ │ │ ├── pause.png │ │ │ │ ├── stop.png │ │ │ │ ├── tray-icon.png │ │ │ │ ├── waveform-recording.png │ │ │ │ └── waveform.png │ │ ├── scripts │ │ │ ├── build-layers.ts │ │ │ ├── common.ts │ │ │ ├── dev.ts │ │ │ ├── generate-assets.ts │ │ │ ├── macos-arm64-output-check.ts │ │ │ ├── make-env.ts │ │ │ ├── make-nsis.ts │ │ │ ├── make-squirrel.ts │ │ │ ├── nsis-installer.nsh │ │ │ └── package.json │ │ ├── src │ │ │ ├── helper │ │ │ │ ├── dialog │ │ │ │ │ ├── dialog.ts │ │ │ │ │ └── index.ts │ │ │ │ ├── exposed.ts │ │ │ │ ├── index.ts │ │ │ │ ├── logger.ts │ │ │ │ ├── main-rpc.ts │ │ │ │ ├── nbstore │ │ │ │ │ ├── handlers.ts │ │ │ │ │ ├── index.ts │ │ │ │ │ └── v1 │ │ │ │ │ │ ├── db-adapter.ts │ │ │ │ │ │ ├── ensure-db.ts │ │ │ │ │ │ ├── index.ts │ │ │ │ │ │ ├── merge-update.ts │ │ │ │ │ │ └── workspace-db-adapter.ts │ │ │ │ ├── provide.ts │ │ │ │ ├── type.ts │ │ │ │ └── workspace │ │ │ │ │ ├── handlers.ts │ │ │ │ │ ├── index.ts │ │ │ │ │ ├── meta.ts │ │ │ │ │ └── subjects.ts │ │ │ ├── main │ │ │ │ ├── application-menu │ │ │ │ │ ├── create.ts │ │ │ │ │ ├── index.ts │ │ │ │ │ └── subject.ts │ │ │ │ ├── cleanup.ts │ │ │ │ ├── clipboard │ │ │ │ │ └── index.ts │ │ │ │ ├── config-storage │ │ │ │ │ ├── handlers.ts │ │ │ │ │ ├── index.ts │ │ │ │ │ └── persist.ts │ │ │ │ ├── config.ts │ │ │ │ ├── constants.ts │ │ │ │ ├── deep-link.ts │ │ │ │ ├── events.ts │ │ │ │ ├── exposed.ts │ │ │ │ ├── find-in-page │ │ │ │ │ ├── handlers.ts │ │ │ │ │ └── index.ts │ │ │ │ ├── handlers.ts │ │ │ │ ├── helper-process.ts │ │ │ │ ├── index.ts │ │ │ │ ├── logger.ts │ │ │ │ ├── protocol.ts │ │ │ │ ├── recording │ │ │ │ │ ├── allow-list.ts │ │ │ │ │ ├── feature.ts │ │ │ │ │ ├── index.ts │ │ │ │ │ ├── state-machine.ts │ │ │ │ │ ├── state-transitions.md │ │ │ │ │ └── types.ts │ │ │ │ ├── security-restrictions.ts │ │ │ │ ├── security │ │ │ │ │ └── open-external.ts │ │ │ │ ├── shared-state-schema.ts │ │ │ │ ├── shared-storage │ │ │ │ │ ├── events.ts │ │ │ │ │ ├── handlers.ts │ │ │ │ │ ├── index.ts │ │ │ │ │ ├── json-file.ts │ │ │ │ │ └── storage.ts │ │ │ │ ├── tray │ │ │ │ │ ├── icons.ts │ │ │ │ │ └── index.ts │ │ │ │ ├── type.ts │ │ │ │ ├── ui │ │ │ │ │ ├── challenge.ts │ │ │ │ │ ├── events.ts │ │ │ │ │ ├── handlers.ts │ │ │ │ │ ├── index.ts │ │ │ │ │ └── subject.ts │ │ │ │ ├── updater │ │ │ │ │ ├── affine-update-provider.ts │ │ │ │ │ ├── electron-updater.ts │ │ │ │ │ ├── event.ts │ │ │ │ │ ├── index.ts │ │ │ │ │ ├── utils.ts │ │ │ │ │ └── windows-updater.ts │ │ │ │ ├── utils.ts │ │ │ │ ├── windows-manager │ │ │ │ │ ├── authentication.ts │ │ │ │ │ ├── context-menu.ts │ │ │ │ │ ├── custom-theme-window.ts │ │ │ │ │ ├── index.ts │ │ │ │ │ ├── launcher.ts │ │ │ │ │ ├── main-window.ts │ │ │ │ │ ├── onboarding.ts │ │ │ │ │ ├── popup.ts │ │ │ │ │ ├── stage.ts │ │ │ │ │ ├── tab-views.ts │ │ │ │ │ ├── types.ts │ │ │ │ │ └── utils.ts │ │ │ │ └── worker │ │ │ │ │ ├── handlers.ts │ │ │ │ │ └── pool.ts │ │ │ ├── preload │ │ │ │ ├── bootstrap.ts │ │ │ │ ├── electron-api.ts │ │ │ │ ├── index.ts │ │ │ │ ├── shared-storage.ts │ │ │ │ └── worker.ts │ │ │ └── shared │ │ │ │ ├── type.ts │ │ │ │ └── utils.ts │ │ ├── test │ │ │ ├── main │ │ │ │ ├── __snapshots__ │ │ │ │ │ └── updater.spec.ts.snap │ │ │ │ ├── fixtures │ │ │ │ │ ├── candidates │ │ │ │ │ │ ├── beta.json │ │ │ │ │ │ ├── canary.json │ │ │ │ │ │ └── stable.json │ │ │ │ │ └── releases │ │ │ │ │ │ ├── 0.16.3-beta.2 │ │ │ │ │ │ ├── latest-linux.yml │ │ │ │ │ │ ├── latest-mac.yml │ │ │ │ │ │ └── latest.yml │ │ │ │ │ │ ├── 0.17.0-canary.7 │ │ │ │ │ │ ├── latest-linux.yml │ │ │ │ │ │ ├── latest-mac.yml │ │ │ │ │ │ └── latest.yml │ │ │ │ │ │ └── 0.18.0 │ │ │ │ │ │ └── latest.yml │ │ │ │ ├── mocks │ │ │ │ │ ├── app-adapter.ts │ │ │ │ │ ├── http-executor.ts │ │ │ │ │ ├── index.ts │ │ │ │ │ └── updater.ts │ │ │ │ └── updater.spec.ts │ │ │ └── workspace │ │ │ │ └── handlers.spec.ts │ │ ├── tsconfig.json │ │ ├── tsconfig.node.json │ │ └── vitest.config.ts │ ├── ios │ │ ├── .claude │ │ │ └── settings.local.json │ │ ├── .gitignore │ │ ├── AGENTS.md │ │ ├── App │ │ │ ├── App.xcodeproj │ │ │ │ ├── project.pbxproj │ │ │ │ └── xcshareddata │ │ │ │ │ └── xcschemes │ │ │ │ │ ├── AFFiNE.xcscheme │ │ │ │ │ └── App.xcscheme │ │ │ ├── App.xcworkspace │ │ │ │ ├── contents.xcworkspacedata │ │ │ │ └── xcshareddata │ │ │ │ │ ├── IDEWorkspaceChecks.plist │ │ │ │ │ └── swiftpm │ │ │ │ │ └── Package.resolved │ │ │ ├── App │ │ │ │ ├── AffineViewController+AIButton.swift │ │ │ │ ├── AffineViewController.swift │ │ │ │ ├── AppConfigManager.swift │ │ │ │ ├── AppDelegate.swift │ │ │ │ ├── ApplicationBridgedWindowScript.swift │ │ │ │ ├── Assets.xcassets │ │ │ │ │ ├── AppIcon.appiconset │ │ │ │ │ │ ├── Contents.json │ │ │ │ │ │ ├── dark@1024.png │ │ │ │ │ │ ├── dark@trans.png │ │ │ │ │ │ └── light.png │ │ │ │ │ ├── Contents.json │ │ │ │ │ └── Splash.imageset │ │ │ │ │ │ ├── Contents.json │ │ │ │ │ │ ├── affine@png-1.png │ │ │ │ │ │ ├── affine@png-2.png │ │ │ │ │ │ ├── affine@png-3.png │ │ │ │ │ │ ├── dark@128.png │ │ │ │ │ │ ├── dark@256.png │ │ │ │ │ │ └── dark@512.png │ │ │ │ ├── Base.lproj │ │ │ │ │ └── Main.storyboard │ │ │ │ ├── Info.plist │ │ │ │ ├── InfoPlist.xcstrings │ │ │ │ ├── JSValueContainerExt.swift │ │ │ │ ├── Localizable.xcstrings │ │ │ │ ├── Mutex.swift │ │ │ │ ├── Plugins │ │ │ │ │ ├── Auth │ │ │ │ │ │ └── AuthPlugin.swift │ │ │ │ │ ├── Cookie │ │ │ │ │ │ ├── CookieManager.swift │ │ │ │ │ │ ├── CookiePlugin.swift │ │ │ │ │ │ └── HashcashPlugin.swift │ │ │ │ │ ├── NBStore │ │ │ │ │ │ └── NBStorePlugin.swift │ │ │ │ │ ├── NavigationGesture │ │ │ │ │ │ └── NavigationGesturePlugin.swift │ │ │ │ │ └── PayWall │ │ │ │ │ │ └── PayWallPlugin.swift │ │ │ │ ├── Products.storekit │ │ │ │ ├── RootViewController.swift │ │ │ │ ├── SafeWKURLSchemeTask.swift │ │ │ │ ├── Tools.swift │ │ │ │ └── uniffi │ │ │ │ │ ├── affine_mobile_native.swift │ │ │ │ │ ├── affine_mobile_nativeFFI.h │ │ │ │ │ └── affine_mobile_nativeFFI.modulemap │ │ │ ├── Gemfile │ │ │ ├── IOSApp-Bridging-Header.h │ │ │ ├── Packages │ │ │ │ ├── AffineGraphQL │ │ │ │ │ ├── .gitignore │ │ │ │ │ ├── Package.swift │ │ │ │ │ └── Sources │ │ │ │ │ │ ├── Fragments │ │ │ │ │ │ ├── CopilotChatHistory.graphql.swift │ │ │ │ │ │ ├── CopilotChatMessage.graphql.swift │ │ │ │ │ │ ├── CredentialsRequirements.graphql.swift │ │ │ │ │ │ ├── LicenseBody.graphql.swift │ │ │ │ │ │ ├── PaginatedCopilotChats.graphql.swift │ │ │ │ │ │ └── PasswordLimits.graphql.swift │ │ │ │ │ │ ├── Operations │ │ │ │ │ │ ├── Mutations │ │ │ │ │ │ │ ├── AcceptInviteByInviteIdMutation.graphql.swift │ │ │ │ │ │ │ ├── ActivateLicenseMutation.graphql.swift │ │ │ │ │ │ │ ├── AddContextBlobMutation.graphql.swift │ │ │ │ │ │ │ ├── AddContextCategoryMutation.graphql.swift │ │ │ │ │ │ │ ├── AddContextDocMutation.graphql.swift │ │ │ │ │ │ │ ├── AddContextFileMutation.graphql.swift │ │ │ │ │ │ │ ├── AddWorkspaceEmbeddingFilesMutation.graphql.swift │ │ │ │ │ │ │ ├── AddWorkspaceEmbeddingIgnoredDocsMutation.graphql.swift │ │ │ │ │ │ │ ├── ApproveWorkspaceTeamMemberMutation.graphql.swift │ │ │ │ │ │ │ ├── CancelSubscriptionMutation.graphql.swift │ │ │ │ │ │ │ ├── ChangeEmailMutation.graphql.swift │ │ │ │ │ │ │ ├── ChangePasswordMutation.graphql.swift │ │ │ │ │ │ │ ├── ClaimAudioTranscriptionMutation.graphql.swift │ │ │ │ │ │ │ ├── CleanupCopilotSessionMutation.graphql.swift │ │ │ │ │ │ │ ├── CreateChangePasswordUrlMutation.graphql.swift │ │ │ │ │ │ │ ├── CreateCheckoutSessionMutation.graphql.swift │ │ │ │ │ │ │ ├── CreateCommentMutation.graphql.swift │ │ │ │ │ │ │ ├── CreateCopilotContextMutation.graphql.swift │ │ │ │ │ │ │ ├── CreateCopilotMessageMutation.graphql.swift │ │ │ │ │ │ │ ├── CreateCopilotSessionMutation.graphql.swift │ │ │ │ │ │ │ ├── CreateCustomerPortalMutation.graphql.swift │ │ │ │ │ │ │ ├── CreateInviteLinkMutation.graphql.swift │ │ │ │ │ │ │ ├── CreateReplyMutation.graphql.swift │ │ │ │ │ │ │ ├── CreateSelfhostCustomerPortalMutation.graphql.swift │ │ │ │ │ │ │ ├── CreateUserMutation.graphql.swift │ │ │ │ │ │ │ ├── CreateWorkspaceMutation.graphql.swift │ │ │ │ │ │ │ ├── DeactivateLicenseMutation.graphql.swift │ │ │ │ │ │ │ ├── DeleteAccountMutation.graphql.swift │ │ │ │ │ │ │ ├── DeleteBlobMutation.graphql.swift │ │ │ │ │ │ │ ├── DeleteCommentMutation.graphql.swift │ │ │ │ │ │ │ ├── DeleteReplyMutation.graphql.swift │ │ │ │ │ │ │ ├── DeleteUserMutation.graphql.swift │ │ │ │ │ │ │ ├── DeleteWorkspaceMutation.graphql.swift │ │ │ │ │ │ │ ├── DisableUserMutation.graphql.swift │ │ │ │ │ │ │ ├── EnableUserMutation.graphql.swift │ │ │ │ │ │ │ ├── ForkCopilotSessionMutation.graphql.swift │ │ │ │ │ │ │ ├── GenerateLicenseKeyMutation.graphql.swift │ │ │ │ │ │ │ ├── GenerateUserAccessTokenMutation.graphql.swift │ │ │ │ │ │ │ ├── GrantDocUserRolesMutation.graphql.swift │ │ │ │ │ │ │ ├── GrantWorkspaceTeamMemberMutation.graphql.swift │ │ │ │ │ │ │ ├── ImportUsersMutation.graphql.swift │ │ │ │ │ │ │ ├── InstallLicenseMutation.graphql.swift │ │ │ │ │ │ │ ├── InviteByEmailsMutation.graphql.swift │ │ │ │ │ │ │ ├── LeaveWorkspaceMutation.graphql.swift │ │ │ │ │ │ │ ├── MentionUserMutation.graphql.swift │ │ │ │ │ │ │ ├── PublishPageMutation.graphql.swift │ │ │ │ │ │ │ ├── QueueWorkspaceEmbeddingMutation.graphql.swift │ │ │ │ │ │ │ ├── ReadAllNotificationsMutation.graphql.swift │ │ │ │ │ │ │ ├── ReadNotificationMutation.graphql.swift │ │ │ │ │ │ │ ├── RecoverDocMutation.graphql.swift │ │ │ │ │ │ │ ├── RefreshSubscriptionMutation.graphql.swift │ │ │ │ │ │ │ ├── ReleaseDeletedBlobsMutation.graphql.swift │ │ │ │ │ │ │ ├── RemoveAvatarMutation.graphql.swift │ │ │ │ │ │ │ ├── RemoveContextBlobMutation.graphql.swift │ │ │ │ │ │ │ ├── RemoveContextCategoryMutation.graphql.swift │ │ │ │ │ │ │ ├── RemoveContextDocMutation.graphql.swift │ │ │ │ │ │ │ ├── RemoveContextFileMutation.graphql.swift │ │ │ │ │ │ │ ├── RemoveWorkspaceEmbeddingFilesMutation.graphql.swift │ │ │ │ │ │ │ ├── RemoveWorkspaceEmbeddingIgnoredDocsMutation.graphql.swift │ │ │ │ │ │ │ ├── RequestApplySubscriptionMutation.graphql.swift │ │ │ │ │ │ │ ├── ResolveCommentMutation.graphql.swift │ │ │ │ │ │ │ ├── ResumeSubscriptionMutation.graphql.swift │ │ │ │ │ │ │ ├── RetryAudioTranscriptionMutation.graphql.swift │ │ │ │ │ │ │ ├── RevokeDocUserRolesMutation.graphql.swift │ │ │ │ │ │ │ ├── RevokeInviteLinkMutation.graphql.swift │ │ │ │ │ │ │ ├── RevokeMemberPermissionMutation.graphql.swift │ │ │ │ │ │ │ ├── RevokePublicPageMutation.graphql.swift │ │ │ │ │ │ │ ├── RevokeUserAccessTokenMutation.graphql.swift │ │ │ │ │ │ │ ├── SendChangeEmailMutation.graphql.swift │ │ │ │ │ │ │ ├── SendChangePasswordEmailMutation.graphql.swift │ │ │ │ │ │ │ ├── SendSetPasswordEmailMutation.graphql.swift │ │ │ │ │ │ │ ├── SendTestEmailMutation.graphql.swift │ │ │ │ │ │ │ ├── SendVerifyChangeEmailMutation.graphql.swift │ │ │ │ │ │ │ ├── SendVerifyEmailMutation.graphql.swift │ │ │ │ │ │ │ ├── SetBlobMutation.graphql.swift │ │ │ │ │ │ │ ├── SetEnableAiMutation.graphql.swift │ │ │ │ │ │ │ ├── SetEnableDocEmbeddingMutation.graphql.swift │ │ │ │ │ │ │ ├── SetEnableUrlPreviewMutation.graphql.swift │ │ │ │ │ │ │ ├── SetWorkspacePublicByIdMutation.graphql.swift │ │ │ │ │ │ │ ├── SubmitAudioTranscriptionMutation.graphql.swift │ │ │ │ │ │ │ ├── UpdateAccountFeaturesMutation.graphql.swift │ │ │ │ │ │ │ ├── UpdateAccountMutation.graphql.swift │ │ │ │ │ │ │ ├── UpdateAppConfigMutation.graphql.swift │ │ │ │ │ │ │ ├── UpdateCommentMutation.graphql.swift │ │ │ │ │ │ │ ├── UpdateCopilotSessionMutation.graphql.swift │ │ │ │ │ │ │ ├── UpdateDocDefaultRoleMutation.graphql.swift │ │ │ │ │ │ │ ├── UpdateDocUserRoleMutation.graphql.swift │ │ │ │ │ │ │ ├── UpdatePromptMutation.graphql.swift │ │ │ │ │ │ │ ├── UpdateReplyMutation.graphql.swift │ │ │ │ │ │ │ ├── UpdateSubscriptionMutation.graphql.swift │ │ │ │ │ │ │ ├── UpdateUserProfileMutation.graphql.swift │ │ │ │ │ │ │ ├── UpdateUserSettingsMutation.graphql.swift │ │ │ │ │ │ │ ├── UploadAvatarMutation.graphql.swift │ │ │ │ │ │ │ ├── UploadCommentAttachmentMutation.graphql.swift │ │ │ │ │ │ │ ├── ValidateConfigMutation.graphql.swift │ │ │ │ │ │ │ └── VerifyEmailMutation.graphql.swift │ │ │ │ │ │ └── Queries │ │ │ │ │ │ │ ├── AdminServerConfigQuery.graphql.swift │ │ │ │ │ │ │ ├── AppConfigQuery.graphql.swift │ │ │ │ │ │ │ ├── ApplyDocUpdatesQuery.graphql.swift │ │ │ │ │ │ │ ├── CopilotQuotaQuery.graphql.swift │ │ │ │ │ │ │ ├── GetAllWorkspaceEmbeddingIgnoredDocsQuery.graphql.swift │ │ │ │ │ │ │ ├── GetAudioTranscriptionQuery.graphql.swift │ │ │ │ │ │ │ ├── GetCopilotDocSessionsQuery.graphql.swift │ │ │ │ │ │ │ ├── GetCopilotHistoriesQuery.graphql.swift │ │ │ │ │ │ │ ├── GetCopilotHistoryIdsQuery.graphql.swift │ │ │ │ │ │ │ ├── GetCopilotLatestDocSessionQuery.graphql.swift │ │ │ │ │ │ │ ├── GetCopilotPinnedSessionsQuery.graphql.swift │ │ │ │ │ │ │ ├── GetCopilotRecentSessionsQuery.graphql.swift │ │ │ │ │ │ │ ├── GetCopilotSessionQuery.graphql.swift │ │ │ │ │ │ │ ├── GetCopilotSessionsQuery.graphql.swift │ │ │ │ │ │ │ ├── GetCopilotWorkspaceSessionsQuery.graphql.swift │ │ │ │ │ │ │ ├── GetCurrentUserFeaturesQuery.graphql.swift │ │ │ │ │ │ │ ├── GetCurrentUserQuery.graphql.swift │ │ │ │ │ │ │ ├── GetDocCreatedByUpdatedByListQuery.graphql.swift │ │ │ │ │ │ │ ├── GetDocDefaultRoleQuery.graphql.swift │ │ │ │ │ │ │ ├── GetDocRolePermissionsQuery.graphql.swift │ │ │ │ │ │ │ ├── GetDocSummaryQuery.graphql.swift │ │ │ │ │ │ │ ├── GetInviteInfoQuery.graphql.swift │ │ │ │ │ │ │ ├── GetInvoicesCountQuery.graphql.swift │ │ │ │ │ │ │ ├── GetLicenseQuery.graphql.swift │ │ │ │ │ │ │ ├── GetMemberCountByWorkspaceIdQuery.graphql.swift │ │ │ │ │ │ │ ├── GetMembersByWorkspaceIdQuery.graphql.swift │ │ │ │ │ │ │ ├── GetPageGrantedUsersListQuery.graphql.swift │ │ │ │ │ │ │ ├── GetPromptModelsQuery.graphql.swift │ │ │ │ │ │ │ ├── GetPromptsQuery.graphql.swift │ │ │ │ │ │ │ ├── GetPublicUserByIdQuery.graphql.swift │ │ │ │ │ │ │ ├── GetRecentlyUpdatedDocsQuery.graphql.swift │ │ │ │ │ │ │ ├── GetUserByEmailQuery.graphql.swift │ │ │ │ │ │ │ ├── GetUserFeaturesQuery.graphql.swift │ │ │ │ │ │ │ ├── GetUserQuery.graphql.swift │ │ │ │ │ │ │ ├── GetUserSettingsQuery.graphql.swift │ │ │ │ │ │ │ ├── GetWorkspaceConfigQuery.graphql.swift │ │ │ │ │ │ │ ├── GetWorkspaceEmbeddingFilesQuery.graphql.swift │ │ │ │ │ │ │ ├── GetWorkspaceEmbeddingIgnoredDocsQuery.graphql.swift │ │ │ │ │ │ │ ├── GetWorkspaceEmbeddingStatusQuery.graphql.swift │ │ │ │ │ │ │ ├── GetWorkspaceInfoQuery.graphql.swift │ │ │ │ │ │ │ ├── GetWorkspacePageByIdQuery.graphql.swift │ │ │ │ │ │ │ ├── GetWorkspacePageMetaByIdQuery.graphql.swift │ │ │ │ │ │ │ ├── GetWorkspacePublicByIdQuery.graphql.swift │ │ │ │ │ │ │ ├── GetWorkspacePublicPagesQuery.graphql.swift │ │ │ │ │ │ │ ├── GetWorkspaceQuery.graphql.swift │ │ │ │ │ │ │ ├── GetWorkspaceRolePermissionsQuery.graphql.swift │ │ │ │ │ │ │ ├── GetWorkspaceSubscriptionQuery.graphql.swift │ │ │ │ │ │ │ ├── GetWorkspacesQuery.graphql.swift │ │ │ │ │ │ │ ├── IndexerAggregateQuery.graphql.swift │ │ │ │ │ │ │ ├── IndexerSearchDocsQuery.graphql.swift │ │ │ │ │ │ │ ├── IndexerSearchQuery.graphql.swift │ │ │ │ │ │ │ ├── InvoicesQuery.graphql.swift │ │ │ │ │ │ │ ├── ListBlobsQuery.graphql.swift │ │ │ │ │ │ │ ├── ListCommentChangesQuery.graphql.swift │ │ │ │ │ │ │ ├── ListCommentsQuery.graphql.swift │ │ │ │ │ │ │ ├── ListContextObjectQuery.graphql.swift │ │ │ │ │ │ │ ├── ListContextQuery.graphql.swift │ │ │ │ │ │ │ ├── ListHistoryQuery.graphql.swift │ │ │ │ │ │ │ ├── ListNotificationsQuery.graphql.swift │ │ │ │ │ │ │ ├── ListUserAccessTokensQuery.graphql.swift │ │ │ │ │ │ │ ├── ListUsersQuery.graphql.swift │ │ │ │ │ │ │ ├── MatchContextQuery.graphql.swift │ │ │ │ │ │ │ ├── MatchFilesQuery.graphql.swift │ │ │ │ │ │ │ ├── MatchWorkspaceDocsQuery.graphql.swift │ │ │ │ │ │ │ ├── NotificationCountQuery.graphql.swift │ │ │ │ │ │ │ ├── OauthProvidersQuery.graphql.swift │ │ │ │ │ │ │ ├── PricesQuery.graphql.swift │ │ │ │ │ │ │ ├── QuotaQuery.graphql.swift │ │ │ │ │ │ │ ├── ServerConfigQuery.graphql.swift │ │ │ │ │ │ │ ├── SubscriptionQuery.graphql.swift │ │ │ │ │ │ │ ├── WorkspaceBlobQuotaQuery.graphql.swift │ │ │ │ │ │ │ ├── WorkspaceInvoicesQuery.graphql.swift │ │ │ │ │ │ │ └── WorkspaceQuotaQuery.graphql.swift │ │ │ │ │ │ └── Schema │ │ │ │ │ │ ├── CustomScalars │ │ │ │ │ │ ├── DateTime.swift │ │ │ │ │ │ ├── ID.swift │ │ │ │ │ │ ├── JSON.swift │ │ │ │ │ │ ├── JSONObject.swift │ │ │ │ │ │ ├── SafeInt.swift │ │ │ │ │ │ └── Upload.swift │ │ │ │ │ │ ├── Enums │ │ │ │ │ │ ├── AiJobStatus.graphql.swift │ │ │ │ │ │ ├── ChatHistoryOrder.graphql.swift │ │ │ │ │ │ ├── CommentChangeAction.graphql.swift │ │ │ │ │ │ ├── ContextCategories.graphql.swift │ │ │ │ │ │ ├── ContextEmbedStatus.graphql.swift │ │ │ │ │ │ ├── CopilotPromptMessageRole.graphql.swift │ │ │ │ │ │ ├── DocMode.graphql.swift │ │ │ │ │ │ ├── DocRole.graphql.swift │ │ │ │ │ │ ├── FeatureType.graphql.swift │ │ │ │ │ │ ├── InvoiceStatus.graphql.swift │ │ │ │ │ │ ├── NotificationLevel.graphql.swift │ │ │ │ │ │ ├── NotificationType.graphql.swift │ │ │ │ │ │ ├── OAuthProviderType.graphql.swift │ │ │ │ │ │ ├── Permission.graphql.swift │ │ │ │ │ │ ├── PublicDocMode.graphql.swift │ │ │ │ │ │ ├── SearchQueryOccur.graphql.swift │ │ │ │ │ │ ├── SearchQueryType.graphql.swift │ │ │ │ │ │ ├── SearchTable.graphql.swift │ │ │ │ │ │ ├── ServerDeploymentType.graphql.swift │ │ │ │ │ │ ├── ServerFeature.graphql.swift │ │ │ │ │ │ ├── SubscriptionPlan.graphql.swift │ │ │ │ │ │ ├── SubscriptionRecurring.graphql.swift │ │ │ │ │ │ ├── SubscriptionStatus.graphql.swift │ │ │ │ │ │ ├── SubscriptionVariant.graphql.swift │ │ │ │ │ │ ├── WorkspaceInviteLinkExpireTime.graphql.swift │ │ │ │ │ │ └── WorkspaceMemberStatus.graphql.swift │ │ │ │ │ │ ├── InputObjects │ │ │ │ │ │ ├── AddContextBlobInput.graphql.swift │ │ │ │ │ │ ├── AddContextCategoryInput.graphql.swift │ │ │ │ │ │ ├── AddContextDocInput.graphql.swift │ │ │ │ │ │ ├── AddContextFileInput.graphql.swift │ │ │ │ │ │ ├── AggregateHitsOptions.graphql.swift │ │ │ │ │ │ ├── AggregateHitsPagination.graphql.swift │ │ │ │ │ │ ├── AggregateInput.graphql.swift │ │ │ │ │ │ ├── AggregateOptions.graphql.swift │ │ │ │ │ │ ├── CommentCreateInput.graphql.swift │ │ │ │ │ │ ├── CommentResolveInput.graphql.swift │ │ │ │ │ │ ├── CommentUpdateInput.graphql.swift │ │ │ │ │ │ ├── CopilotPromptMessageInput.graphql.swift │ │ │ │ │ │ ├── CreateChatMessageInput.graphql.swift │ │ │ │ │ │ ├── CreateChatSessionInput.graphql.swift │ │ │ │ │ │ ├── CreateCheckoutSessionInput.graphql.swift │ │ │ │ │ │ ├── CreateUserInput.graphql.swift │ │ │ │ │ │ ├── DeleteSessionInput.graphql.swift │ │ │ │ │ │ ├── ForkChatSessionInput.graphql.swift │ │ │ │ │ │ ├── GenerateAccessTokenInput.graphql.swift │ │ │ │ │ │ ├── GrantDocUserRolesInput.graphql.swift │ │ │ │ │ │ ├── ImportUsersInput.graphql.swift │ │ │ │ │ │ ├── ListUserInput.graphql.swift │ │ │ │ │ │ ├── ManageUserInput.graphql.swift │ │ │ │ │ │ ├── MentionDocInput.graphql.swift │ │ │ │ │ │ ├── MentionInput.graphql.swift │ │ │ │ │ │ ├── PaginationInput.graphql.swift │ │ │ │ │ │ ├── QueryChatHistoriesInput.graphql.swift │ │ │ │ │ │ ├── RemoveContextBlobInput.graphql.swift │ │ │ │ │ │ ├── RemoveContextCategoryInput.graphql.swift │ │ │ │ │ │ ├── RemoveContextDocInput.graphql.swift │ │ │ │ │ │ ├── RemoveContextFileInput.graphql.swift │ │ │ │ │ │ ├── ReplyCreateInput.graphql.swift │ │ │ │ │ │ ├── ReplyUpdateInput.graphql.swift │ │ │ │ │ │ ├── RevokeDocUserRoleInput.graphql.swift │ │ │ │ │ │ ├── SearchDocsInput.graphql.swift │ │ │ │ │ │ ├── SearchHighlight.graphql.swift │ │ │ │ │ │ ├── SearchInput.graphql.swift │ │ │ │ │ │ ├── SearchOptions.graphql.swift │ │ │ │ │ │ ├── SearchPagination.graphql.swift │ │ │ │ │ │ ├── SearchQuery.graphql.swift │ │ │ │ │ │ ├── UpdateAppConfigInput.graphql.swift │ │ │ │ │ │ ├── UpdateChatSessionInput.graphql.swift │ │ │ │ │ │ ├── UpdateDocDefaultRoleInput.graphql.swift │ │ │ │ │ │ ├── UpdateDocUserRoleInput.graphql.swift │ │ │ │ │ │ ├── UpdateUserInput.graphql.swift │ │ │ │ │ │ └── UpdateUserSettingsInput.graphql.swift │ │ │ │ │ │ ├── Objects │ │ │ │ │ │ ├── AggregateBucketHitsObjectType.graphql.swift │ │ │ │ │ │ ├── AggregateBucketObjectType.graphql.swift │ │ │ │ │ │ ├── AggregateResultObjectType.graphql.swift │ │ │ │ │ │ ├── AppConfigValidateResult.graphql.swift │ │ │ │ │ │ ├── ChatMessage.graphql.swift │ │ │ │ │ │ ├── CommentChangeObjectType.graphql.swift │ │ │ │ │ │ ├── CommentChangeObjectTypeEdge.graphql.swift │ │ │ │ │ │ ├── CommentObjectType.graphql.swift │ │ │ │ │ │ ├── CommentObjectTypeEdge.graphql.swift │ │ │ │ │ │ ├── ContextMatchedDocChunk.graphql.swift │ │ │ │ │ │ ├── ContextMatchedFileChunk.graphql.swift │ │ │ │ │ │ ├── ContextWorkspaceEmbeddingStatus.graphql.swift │ │ │ │ │ │ ├── Copilot.graphql.swift │ │ │ │ │ │ ├── CopilotContext.graphql.swift │ │ │ │ │ │ ├── CopilotContextBlob.graphql.swift │ │ │ │ │ │ ├── CopilotContextCategory.graphql.swift │ │ │ │ │ │ ├── CopilotContextDoc.graphql.swift │ │ │ │ │ │ ├── CopilotContextFile.graphql.swift │ │ │ │ │ │ ├── CopilotHistories.graphql.swift │ │ │ │ │ │ ├── CopilotHistoriesTypeEdge.graphql.swift │ │ │ │ │ │ ├── CopilotModelType.graphql.swift │ │ │ │ │ │ ├── CopilotModelsType.graphql.swift │ │ │ │ │ │ ├── CopilotPromptConfigType.graphql.swift │ │ │ │ │ │ ├── CopilotPromptMessageType.graphql.swift │ │ │ │ │ │ ├── CopilotPromptType.graphql.swift │ │ │ │ │ │ ├── CopilotQuota.graphql.swift │ │ │ │ │ │ ├── CopilotWorkspaceConfig.graphql.swift │ │ │ │ │ │ ├── CopilotWorkspaceFile.graphql.swift │ │ │ │ │ │ ├── CopilotWorkspaceFileTypeEdge.graphql.swift │ │ │ │ │ │ ├── CopilotWorkspaceIgnoredDoc.graphql.swift │ │ │ │ │ │ ├── CopilotWorkspaceIgnoredDocTypeEdge.graphql.swift │ │ │ │ │ │ ├── CredentialsRequirementType.graphql.swift │ │ │ │ │ │ ├── DeleteAccount.graphql.swift │ │ │ │ │ │ ├── DocHistoryType.graphql.swift │ │ │ │ │ │ ├── DocPermissions.graphql.swift │ │ │ │ │ │ ├── DocType.graphql.swift │ │ │ │ │ │ ├── DocTypeEdge.graphql.swift │ │ │ │ │ │ ├── EditorType.graphql.swift │ │ │ │ │ │ ├── GrantedDocUserType.graphql.swift │ │ │ │ │ │ ├── GrantedDocUserTypeEdge.graphql.swift │ │ │ │ │ │ ├── InvitationType.graphql.swift │ │ │ │ │ │ ├── InvitationWorkspaceType.graphql.swift │ │ │ │ │ │ ├── InviteLink.graphql.swift │ │ │ │ │ │ ├── InviteResult.graphql.swift │ │ │ │ │ │ ├── InviteUserType.graphql.swift │ │ │ │ │ │ ├── InvoiceType.graphql.swift │ │ │ │ │ │ ├── License.graphql.swift │ │ │ │ │ │ ├── LimitedUserType.graphql.swift │ │ │ │ │ │ ├── ListedBlob.graphql.swift │ │ │ │ │ │ ├── Mutation.graphql.swift │ │ │ │ │ │ ├── NotificationObjectType.graphql.swift │ │ │ │ │ │ ├── NotificationObjectTypeEdge.graphql.swift │ │ │ │ │ │ ├── PageInfo.graphql.swift │ │ │ │ │ │ ├── PaginatedCommentChangeObjectType.graphql.swift │ │ │ │ │ │ ├── PaginatedCommentObjectType.graphql.swift │ │ │ │ │ │ ├── PaginatedCopilotHistoriesType.graphql.swift │ │ │ │ │ │ ├── PaginatedCopilotWorkspaceFileType.graphql.swift │ │ │ │ │ │ ├── PaginatedDocType.graphql.swift │ │ │ │ │ │ ├── PaginatedGrantedDocUserType.graphql.swift │ │ │ │ │ │ ├── PaginatedIgnoredDocsType.graphql.swift │ │ │ │ │ │ ├── PaginatedNotificationObjectType.graphql.swift │ │ │ │ │ │ ├── PasswordLimitsType.graphql.swift │ │ │ │ │ │ ├── PublicUserType.graphql.swift │ │ │ │ │ │ ├── Query.graphql.swift │ │ │ │ │ │ ├── ReleaseVersionType.graphql.swift │ │ │ │ │ │ ├── RemoveAvatar.graphql.swift │ │ │ │ │ │ ├── ReplyObjectType.graphql.swift │ │ │ │ │ │ ├── RevealedAccessToken.graphql.swift │ │ │ │ │ │ ├── SearchDocObjectType.graphql.swift │ │ │ │ │ │ ├── SearchNodeObjectType.graphql.swift │ │ │ │ │ │ ├── SearchResultObjectType.graphql.swift │ │ │ │ │ │ ├── SearchResultPagination.graphql.swift │ │ │ │ │ │ ├── ServerConfigType.graphql.swift │ │ │ │ │ │ ├── StreamObject.graphql.swift │ │ │ │ │ │ ├── SubscriptionPrice.graphql.swift │ │ │ │ │ │ ├── SubscriptionType.graphql.swift │ │ │ │ │ │ ├── TokenType.graphql.swift │ │ │ │ │ │ ├── TranscriptionItemType.graphql.swift │ │ │ │ │ │ ├── TranscriptionResultType.graphql.swift │ │ │ │ │ │ ├── UserImportFailedType.graphql.swift │ │ │ │ │ │ ├── UserQuotaHumanReadableType.graphql.swift │ │ │ │ │ │ ├── UserQuotaType.graphql.swift │ │ │ │ │ │ ├── UserQuotaUsageType.graphql.swift │ │ │ │ │ │ ├── UserSettingsType.graphql.swift │ │ │ │ │ │ ├── UserType.graphql.swift │ │ │ │ │ │ ├── WorkspaceDocMeta.graphql.swift │ │ │ │ │ │ ├── WorkspacePermissions.graphql.swift │ │ │ │ │ │ ├── WorkspaceQuotaHumanReadableType.graphql.swift │ │ │ │ │ │ ├── WorkspaceQuotaType.graphql.swift │ │ │ │ │ │ ├── WorkspaceRolePermissions.graphql.swift │ │ │ │ │ │ ├── WorkspaceType.graphql.swift │ │ │ │ │ │ └── WorkspaceUserType.graphql.swift │ │ │ │ │ │ ├── SchemaConfiguration.swift │ │ │ │ │ │ ├── SchemaMetadata.graphql.swift │ │ │ │ │ │ └── Unions │ │ │ │ │ │ ├── UserImportResultType.graphql.swift │ │ │ │ │ │ └── UserOrLimitedUser.graphql.swift │ │ │ │ ├── AffinePaywall │ │ │ │ │ ├── .gitignore │ │ │ │ │ ├── Package.swift │ │ │ │ │ └── Sources │ │ │ │ │ │ └── AffinePaywall │ │ │ │ │ │ ├── Components │ │ │ │ │ │ ├── AI │ │ │ │ │ │ │ ├── IntelligentFeatureView.swift │ │ │ │ │ │ │ ├── OffsetObservingScrollView.swift │ │ │ │ │ │ │ ├── PositionObservingView.swift │ │ │ │ │ │ │ ├── SKUnitIntelligentDetailView+Feature.swift │ │ │ │ │ │ │ └── SKUnitIntelligentDetailView.swift │ │ │ │ │ │ ├── Components │ │ │ │ │ │ │ ├── CategorySelectionView.swift │ │ │ │ │ │ │ ├── HeadlineView.swift │ │ │ │ │ │ │ ├── PackageOptionView.swift │ │ │ │ │ │ │ ├── PageDotsView.swift │ │ │ │ │ │ │ ├── PurchaseFooterView.swift │ │ │ │ │ │ │ └── TheGiveMeMoneyButtonView.swift │ │ │ │ │ │ └── Pro │ │ │ │ │ │ │ ├── ProFeatureRowView.swift │ │ │ │ │ │ │ └── SKUnitProDetailView.swift │ │ │ │ │ │ ├── Model │ │ │ │ │ │ ├── Feature.swift │ │ │ │ │ │ ├── PricingConfiguration.swift │ │ │ │ │ │ ├── SKUnit+AI.swift │ │ │ │ │ │ ├── SKUnit+Pro.swift │ │ │ │ │ │ ├── SKUnit.swift │ │ │ │ │ │ ├── SKUnitCategory.swift │ │ │ │ │ │ ├── SKUnitPackageOption.swift │ │ │ │ │ │ ├── SKUnitSubcategorizable.swift │ │ │ │ │ │ ├── SKUnitSubcategoryProPlan.swift │ │ │ │ │ │ ├── Store.swift │ │ │ │ │ │ ├── ViewModel+Action.swift │ │ │ │ │ │ ├── ViewModel+Preview.swift │ │ │ │ │ │ └── ViewModel.swift │ │ │ │ │ │ ├── Page │ │ │ │ │ │ └── AffinePaywallPageView.swift │ │ │ │ │ │ ├── Paywall.swift │ │ │ │ │ │ └── Resources │ │ │ │ │ │ └── Media.xcassets │ │ │ │ │ │ ├── AI_CHECK.imageset │ │ │ │ │ │ ├── AI_CHECK.svg │ │ │ │ │ │ └── Contents.json │ │ │ │ │ │ ├── AI_PEN.imageset │ │ │ │ │ │ ├── AI_PEN.svg │ │ │ │ │ │ └── Contents.json │ │ │ │ │ │ ├── AI_PREVIEW_DRAW.imageset │ │ │ │ │ │ ├── AI_PREVIEW_B 1.png │ │ │ │ │ │ ├── AI_PREVIEW_B.png │ │ │ │ │ │ └── Contents.json │ │ │ │ │ │ ├── AI_PREVIEW_PLAN.imageset │ │ │ │ │ │ ├── AI_PREVIEW_C 1.png │ │ │ │ │ │ ├── AI_PREVIEW_C.png │ │ │ │ │ │ └── Contents.json │ │ │ │ │ │ ├── AI_PREVIEW_WRITE.imageset │ │ │ │ │ │ ├── AI_PREVIEW_A 1.png │ │ │ │ │ │ ├── AI_PREVIEW_A.png │ │ │ │ │ │ └── Contents.json │ │ │ │ │ │ ├── AI_TEXT.imageset │ │ │ │ │ │ ├── AI_TEXT.svg │ │ │ │ │ │ └── Contents.json │ │ │ │ │ │ ├── BELIVER_ICON.imageset │ │ │ │ │ │ ├── BELIVER_ICON.png │ │ │ │ │ │ ├── Contents.json │ │ │ │ │ │ └── Image.png │ │ │ │ │ │ └── Contents.json │ │ │ │ ├── AffineResources │ │ │ │ │ ├── .gitignore │ │ │ │ │ ├── Package.swift │ │ │ │ │ └── Sources │ │ │ │ │ │ └── AffineResources │ │ │ │ │ │ ├── AffineResources.swift │ │ │ │ │ │ └── Resources │ │ │ │ │ │ ├── Colors.xcassets │ │ │ │ │ │ ├── Contents.json │ │ │ │ │ │ ├── affine.button.primary.colorset │ │ │ │ │ │ │ └── Contents.json │ │ │ │ │ │ ├── affine.icon.activated.colorset │ │ │ │ │ │ │ └── Contents.json │ │ │ │ │ │ ├── affine.icon.primary.colorset │ │ │ │ │ │ │ └── Contents.json │ │ │ │ │ │ ├── affine.layer.background.primary.colorset │ │ │ │ │ │ │ └── Contents.json │ │ │ │ │ │ ├── affine.layer.background.secondary.colorset │ │ │ │ │ │ │ └── Contents.json │ │ │ │ │ │ ├── affine.layer.border.colorset │ │ │ │ │ │ │ └── Contents.json │ │ │ │ │ │ ├── affine.layer.pureWhite.colorset │ │ │ │ │ │ │ └── Contents.json │ │ │ │ │ │ ├── affine.text.emphasis.colorset │ │ │ │ │ │ │ └── Contents.json │ │ │ │ │ │ ├── affine.text.link.colorset │ │ │ │ │ │ │ └── Contents.json │ │ │ │ │ │ ├── affine.text.listDotAndNumber.colorset │ │ │ │ │ │ │ └── Contents.json │ │ │ │ │ │ ├── affine.text.placeholder.colorset │ │ │ │ │ │ │ └── Contents.json │ │ │ │ │ │ ├── affine.text.primary.colorset │ │ │ │ │ │ │ └── Contents.json │ │ │ │ │ │ ├── affine.text.pureWhite.colorset │ │ │ │ │ │ │ └── Contents.json │ │ │ │ │ │ ├── affine.text.secondary.colorset │ │ │ │ │ │ │ └── Contents.json │ │ │ │ │ │ └── affine.text.tertiary.colorset │ │ │ │ │ │ │ └── Contents.json │ │ │ │ │ │ └── Icons.xcassets │ │ │ │ │ │ ├── ArrowDown.imageset │ │ │ │ │ │ ├── Contents.json │ │ │ │ │ │ └── More Options Icon.pdf │ │ │ │ │ │ ├── ArrowUpBig.imageset │ │ │ │ │ │ ├── ArrowUpBig.pdf │ │ │ │ │ │ └── Contents.json │ │ │ │ │ │ ├── Box.imageset │ │ │ │ │ │ ├── Contents.json │ │ │ │ │ │ └── Left icon-5.pdf │ │ │ │ │ │ ├── Broom.imageset │ │ │ │ │ │ ├── Broom.pdf │ │ │ │ │ │ └── Contents.json │ │ │ │ │ │ ├── Bubble.imageset │ │ │ │ │ │ ├── Bubble.pdf │ │ │ │ │ │ └── Contents.json │ │ │ │ │ │ ├── Calendar.imageset │ │ │ │ │ │ ├── Contents.json │ │ │ │ │ │ └── Left icon-1.pdf │ │ │ │ │ │ ├── Camera.imageset │ │ │ │ │ │ ├── Camera.pdf │ │ │ │ │ │ └── Contents.json │ │ │ │ │ │ ├── CheckCircle.imageset │ │ │ │ │ │ ├── Contents.json │ │ │ │ │ │ └── Left icon.pdf │ │ │ │ │ │ ├── Close.imageset │ │ │ │ │ │ ├── Close.pdf │ │ │ │ │ │ └── Contents.json │ │ │ │ │ │ ├── Contents.json │ │ │ │ │ │ ├── Image.imageset │ │ │ │ │ │ ├── Contents.json │ │ │ │ │ │ └── Image.pdf │ │ │ │ │ │ ├── More.imageset │ │ │ │ │ │ ├── Contents.json │ │ │ │ │ │ └── More Options Icon-1.pdf │ │ │ │ │ │ ├── Page.imageset │ │ │ │ │ │ ├── Contents.json │ │ │ │ │ │ └── Page.pdf │ │ │ │ │ │ ├── Plus.imageset │ │ │ │ │ │ ├── Contents.json │ │ │ │ │ │ └── Plus.pdf │ │ │ │ │ │ ├── Settings.imageset │ │ │ │ │ │ ├── Contents.json │ │ │ │ │ │ └── Settings.pdf │ │ │ │ │ │ ├── Think.imageset │ │ │ │ │ │ ├── Contents.json │ │ │ │ │ │ └── icon-2.pdf │ │ │ │ │ │ ├── Tools.imageset │ │ │ │ │ │ ├── Contents.json │ │ │ │ │ │ └── icon.pdf │ │ │ │ │ │ ├── Upload.imageset │ │ │ │ │ │ ├── Contents.json │ │ │ │ │ │ └── Upload.pdf │ │ │ │ │ │ └── Web.imageset │ │ │ │ │ │ ├── Contents.json │ │ │ │ │ │ └── icon-1.pdf │ │ │ │ └── Intelligents │ │ │ │ │ ├── .gitignore │ │ │ │ │ ├── Package.swift │ │ │ │ │ └── Sources │ │ │ │ │ └── Intelligents │ │ │ │ │ ├── ChatManager │ │ │ │ │ ├── ChatError.swift │ │ │ │ │ ├── ChatManager+CURD.swift │ │ │ │ │ ├── ChatManager+Closable.swift │ │ │ │ │ ├── ChatManager+Stream.swift │ │ │ │ │ ├── ChatManager.swift │ │ │ │ │ ├── ChatSessionObject.swift │ │ │ │ │ └── PromptName.swift │ │ │ │ │ ├── Extension │ │ │ │ │ ├── BridgedWindowScript.swift │ │ │ │ │ ├── Color+Affine.swift │ │ │ │ │ ├── DateTime.swift │ │ │ │ │ ├── Image+Affine.swift │ │ │ │ │ ├── Then.swift │ │ │ │ │ ├── UIColor+Affine.swift │ │ │ │ │ ├── UIColor.swift │ │ │ │ │ ├── UIImage+Affine.swift │ │ │ │ │ └── ViewPreview.swift │ │ │ │ │ ├── IntelligentContext │ │ │ │ │ ├── IntelligentContext+CreateSession.swift │ │ │ │ │ ├── IntelligentContext+GraphQL.swift │ │ │ │ │ ├── IntelligentContext+Markdown.swift │ │ │ │ │ ├── IntelligentContext+WebView.swift │ │ │ │ │ ├── IntelligentContext.swift │ │ │ │ │ ├── QLService+URLSessionCookieClient.swift │ │ │ │ │ └── QLService.swift │ │ │ │ │ ├── Intelligents.swift │ │ │ │ │ ├── Interface │ │ │ │ │ ├── Controller │ │ │ │ │ │ ├── AttachmentManagementController │ │ │ │ │ │ │ ├── AttachmentIcon.xcassets │ │ │ │ │ │ │ │ ├── Contents.json │ │ │ │ │ │ │ │ ├── FileAttachment.imageset │ │ │ │ │ │ │ │ │ ├── Contents.json │ │ │ │ │ │ │ │ │ └── Page.pdf │ │ │ │ │ │ │ │ ├── FileAttachment_json.imageset │ │ │ │ │ │ │ │ │ ├── AiFileClip attachment icon.pdf │ │ │ │ │ │ │ │ │ └── Contents.json │ │ │ │ │ │ │ │ ├── FileAttachment_md.imageset │ │ │ │ │ │ │ │ │ ├── AiFileClip attachment icon.pdf │ │ │ │ │ │ │ │ │ └── Contents.json │ │ │ │ │ │ │ │ ├── FileAttachment_pdf.imageset │ │ │ │ │ │ │ │ │ ├── AiFileClip attachment icon.pdf │ │ │ │ │ │ │ │ │ └── Contents.json │ │ │ │ │ │ │ │ └── FileAttachment_txt.imageset │ │ │ │ │ │ │ │ │ ├── AiFileClip attachment icon.pdf │ │ │ │ │ │ │ │ │ └── Contents.json │ │ │ │ │ │ │ ├── AttachmentManagementController.swift │ │ │ │ │ │ │ └── AttachmentManagementControllerDelegate.swift │ │ │ │ │ │ ├── IntelligentsController │ │ │ │ │ │ │ ├── BlurTransition.swift │ │ │ │ │ │ │ └── IntelligentsController.swift │ │ │ │ │ │ └── MainViewController │ │ │ │ │ │ │ ├── MainViewController+Header.swift │ │ │ │ │ │ │ ├── MainViewController+Input.swift │ │ │ │ │ │ │ └── MainViewController.swift │ │ │ │ │ ├── Effect │ │ │ │ │ │ ├── ParticleView+Removal.swift │ │ │ │ │ │ ├── ParticleView+Renderer.swift │ │ │ │ │ │ ├── ParticleView.swift │ │ │ │ │ │ └── UIView+createViewSnapshot.swift │ │ │ │ │ ├── Supplement │ │ │ │ │ │ ├── AccentColor.swift │ │ │ │ │ │ └── Animation.swift │ │ │ │ │ └── View │ │ │ │ │ │ ├── ChatCell │ │ │ │ │ │ ├── AssistantMessageCell.swift │ │ │ │ │ │ ├── ChatBaseCell.swift │ │ │ │ │ │ ├── ErrorCell.swift │ │ │ │ │ │ ├── LoadingCell.swift │ │ │ │ │ │ ├── SystemMessageCell.swift │ │ │ │ │ │ ├── UserHintCell.swift │ │ │ │ │ │ ├── UserMessageCell.swift │ │ │ │ │ │ └── ViewModel │ │ │ │ │ │ │ ├── CCVM+Assistant.swift │ │ │ │ │ │ │ ├── CCVM+Error.swift │ │ │ │ │ │ │ ├── CCVM+Loading.swift │ │ │ │ │ │ │ ├── CCVM+System.swift │ │ │ │ │ │ │ ├── CCVM+User.swift │ │ │ │ │ │ │ ├── ChatCellType.swift │ │ │ │ │ │ │ └── ChatCellViewModel.swift │ │ │ │ │ │ ├── ChatList │ │ │ │ │ │ ├── ChatItemEntity.swift │ │ │ │ │ │ ├── ChatListView+Adapter.swift │ │ │ │ │ │ └── ChatListView.swift │ │ │ │ │ │ ├── DocumentPickerView │ │ │ │ │ │ ├── DocumentItem.swift │ │ │ │ │ │ ├── DocumentPickerView.swift │ │ │ │ │ │ ├── DocumentPickerViewDelegate.swift │ │ │ │ │ │ └── DocumentTableViewCell.swift │ │ │ │ │ │ ├── FileAttachmentHeader │ │ │ │ │ │ ├── FileAttachmentHeaderView.swift │ │ │ │ │ │ └── FileAttachmentHeaderViewDelegate.swift │ │ │ │ │ │ ├── ImageAttachmentBar │ │ │ │ │ │ ├── ImageAttachmentBar.swift │ │ │ │ │ │ ├── ImageAttachmentBarDelegate.swift │ │ │ │ │ │ └── ImageCollectionViewCell.swift │ │ │ │ │ │ ├── InputBox │ │ │ │ │ │ ├── InputBox+Delegates.swift │ │ │ │ │ │ ├── InputBox.swift │ │ │ │ │ │ ├── InputBox.xcassets │ │ │ │ │ │ │ └── InputBoxBackground.colorset │ │ │ │ │ │ │ │ └── Contents.json │ │ │ │ │ │ ├── InputBoxDelegate.swift │ │ │ │ │ │ ├── InputBoxFunctionBar.swift │ │ │ │ │ │ ├── InputBoxFunctionBarDelegate.swift │ │ │ │ │ │ └── ViewModel │ │ │ │ │ │ │ ├── DocumentAttachment.swift │ │ │ │ │ │ │ ├── FileAttachment.swift │ │ │ │ │ │ │ ├── ImageAttachment.swift │ │ │ │ │ │ │ └── InputBoxViewModel.swift │ │ │ │ │ │ ├── IntelligentsButton │ │ │ │ │ │ ├── IntelligentsButton+Control.swift │ │ │ │ │ │ ├── IntelligentsButton+Delegate.swift │ │ │ │ │ │ └── IntelligentsButton.swift │ │ │ │ │ │ ├── MainHeaderView │ │ │ │ │ │ ├── MainHeaderView.swift │ │ │ │ │ │ └── MainHeaderViewDelegate.swift │ │ │ │ │ │ └── SupplementView │ │ │ │ │ │ ├── CircleImageView.swift │ │ │ │ │ │ ├── DarkActionButton.swift │ │ │ │ │ │ └── DeleteButtonView.swift │ │ │ │ │ └── Resources │ │ │ │ │ ├── Media.xcassets │ │ │ │ │ ├── Contents.json │ │ │ │ │ ├── close.imageset │ │ │ │ │ │ ├── Contents.json │ │ │ │ │ │ └── close.svg │ │ │ │ │ └── spark.imageset │ │ │ │ │ │ ├── Contents.json │ │ │ │ │ │ └── spark.svg │ │ │ │ │ └── main.metal │ │ │ ├── Podfile │ │ │ ├── Podfile.lock │ │ │ ├── fastlane │ │ │ │ ├── Appfile │ │ │ │ ├── Fastfile │ │ │ │ └── README.md │ │ │ └── xc-universal-binary.sh │ │ ├── README.md │ │ ├── apollo-codegen-chore.sh │ │ ├── apollo-codegen-config.json │ │ ├── capacitor.config.ts │ │ ├── codegen.ts │ │ ├── package.json │ │ ├── setup.sh │ │ ├── src │ │ │ ├── app.tsx │ │ │ ├── bs-menu-config.tsx │ │ │ ├── index.tsx │ │ │ ├── modal-config.tsx │ │ │ ├── nbstore.worker.ts │ │ │ ├── plugins │ │ │ │ ├── auth │ │ │ │ │ ├── definitions.ts │ │ │ │ │ └── index.ts │ │ │ │ ├── hashcash │ │ │ │ │ ├── definitions.ts │ │ │ │ │ └── index.ts │ │ │ │ ├── navigation-gesture │ │ │ │ │ ├── definitions.ts │ │ │ │ │ └── index.ts │ │ │ │ ├── nbstore │ │ │ │ │ ├── definitions.ts │ │ │ │ │ └── index.ts │ │ │ │ └── paywall │ │ │ │ │ ├── definitions.ts │ │ │ │ │ └── index.ts │ │ │ ├── proxy.ts │ │ │ ├── setup-worker.ts │ │ │ ├── setup.ts │ │ │ └── web-navigation-control.tsx │ │ ├── tsconfig.json │ │ └── update_code_sign_identity.sh │ ├── mobile │ │ ├── README.md │ │ ├── package.json │ │ ├── src │ │ │ ├── app.tsx │ │ │ ├── index.tsx │ │ │ ├── nbstore.worker.ts │ │ │ └── setup.ts │ │ └── tsconfig.json │ └── web │ │ ├── README.md │ │ ├── package.json │ │ ├── src │ │ ├── app.tsx │ │ ├── index.tsx │ │ ├── nbstore.worker.ts │ │ └── setup.ts │ │ └── tsconfig.json │ ├── component │ ├── .storybook │ │ ├── main.ts │ │ ├── polyfill.ts │ │ ├── preview.css.ts │ │ ├── preview.html │ │ └── preview.tsx │ ├── package.json │ ├── src │ │ ├── components │ │ │ ├── affine-banner │ │ │ │ ├── browser-warning.tsx │ │ │ │ ├── index.css.ts │ │ │ │ ├── index.tsx │ │ │ │ └── local-demo-tips.tsx │ │ │ ├── affine-other-page-layout │ │ │ │ ├── assets │ │ │ │ │ ├── dot-bg.dark.png │ │ │ │ │ ├── dot-bg.light.png │ │ │ │ │ ├── other-page.dark.png │ │ │ │ │ └── other-page.light.png │ │ │ │ ├── desktop-navbar.tsx │ │ │ │ ├── index.css.ts │ │ │ │ ├── index.tsx │ │ │ │ ├── layout.tsx │ │ │ │ ├── mobile-navbar.tsx │ │ │ │ └── use-nav-config.ts │ │ │ ├── auth-components │ │ │ │ ├── auth-container.tsx │ │ │ │ ├── auth-content.tsx │ │ │ │ ├── auth-footer.tsx │ │ │ │ ├── auth-header.tsx │ │ │ │ ├── auth-input.tsx │ │ │ │ ├── auth-page-container.tsx │ │ │ │ ├── back-button.tsx │ │ │ │ ├── change-email-page.tsx │ │ │ │ ├── change-password-page.tsx │ │ │ │ ├── index.tsx │ │ │ │ ├── logo.tsx │ │ │ │ ├── onboarding-page.css.ts │ │ │ │ ├── onboarding-page.tsx │ │ │ │ ├── password-input │ │ │ │ │ ├── error.tsx │ │ │ │ │ ├── index.tsx │ │ │ │ │ ├── style.css.ts │ │ │ │ │ ├── success.tsx │ │ │ │ │ └── tag.tsx │ │ │ │ ├── set-password-page.tsx │ │ │ │ ├── set-password.tsx │ │ │ │ ├── share.css.ts │ │ │ │ ├── sign-in-page-container.tsx │ │ │ │ ├── sign-in-success-page.tsx │ │ │ │ ├── sign-up-page.tsx │ │ │ │ ├── type.ts │ │ │ │ └── utils.ts │ │ │ ├── card │ │ │ │ └── block-card │ │ │ │ │ ├── index.tsx │ │ │ │ │ └── styles.css.ts │ │ │ ├── global-loading │ │ │ │ ├── index.jotai.ts │ │ │ │ └── index.tsx │ │ │ ├── import-page │ │ │ │ ├── index.css.ts │ │ │ │ └── index.tsx │ │ │ ├── internal-lottie │ │ │ │ └── index.tsx │ │ │ ├── member-components │ │ │ │ ├── accept-invite-page.tsx │ │ │ │ ├── expired.tsx │ │ │ │ ├── failed-to-send-page.tsx │ │ │ │ ├── index.tsx │ │ │ │ ├── invite-modal.tsx │ │ │ │ ├── invite-team-modal │ │ │ │ │ ├── email-invite.tsx │ │ │ │ │ ├── index.tsx │ │ │ │ │ ├── link-invite.tsx │ │ │ │ │ ├── modal-content.tsx │ │ │ │ │ └── styles.css.ts │ │ │ │ ├── join-failed-page.tsx │ │ │ │ ├── member-limit-modal.css.ts │ │ │ │ ├── member-limit-modal.tsx │ │ │ │ ├── request-to-join-page.tsx │ │ │ │ ├── sent-request-page.tsx │ │ │ │ └── styles.css.ts │ │ │ ├── not-found-page │ │ │ │ ├── index.tsx │ │ │ │ ├── not-found-page.tsx │ │ │ │ └── styles.css.ts │ │ │ ├── notification-center │ │ │ │ ├── icons.tsx │ │ │ │ ├── index.css.ts │ │ │ │ ├── index.jotai.ts │ │ │ │ └── index.tsx │ │ │ ├── page-detail-skeleton │ │ │ │ ├── assets │ │ │ │ │ ├── loading.dark.png │ │ │ │ │ └── loading.light.png │ │ │ │ ├── index.css.ts │ │ │ │ └── index.tsx │ │ │ ├── provider-composer │ │ │ │ ├── __tests__ │ │ │ │ │ ├── __snapshots__ │ │ │ │ │ │ └── provider-composer.spec.tsx.snap │ │ │ │ │ └── provider-composer.spec.tsx │ │ │ │ └── index.tsx │ │ │ ├── rename-modal │ │ │ │ └── index.tsx │ │ │ ├── resize-panel │ │ │ │ ├── index.tsx │ │ │ │ ├── resize-panel.css.ts │ │ │ │ └── resize-panel.tsx │ │ │ └── setting-components │ │ │ │ ├── index.tsx │ │ │ │ ├── pagination.css.ts │ │ │ │ ├── pagination.tsx │ │ │ │ ├── setting-header.tsx │ │ │ │ ├── setting-row.tsx │ │ │ │ ├── share.css.ts │ │ │ │ ├── workspace-detail-skeleton.tsx │ │ │ │ ├── workspace-list-skeleton.tsx │ │ │ │ └── wrapper.tsx │ │ ├── fonts │ │ │ ├── ibm-plex-mono │ │ │ │ ├── IBMPlexMono-Bold.ttf │ │ │ │ ├── IBMPlexMono-BoldItalic.ttf │ │ │ │ ├── IBMPlexMono-Italic.ttf │ │ │ │ ├── IBMPlexMono-Regular.ttf │ │ │ │ └── OFL.txt │ │ │ ├── inter │ │ │ │ ├── Inter-VariableFont_slnt,wght.ttf │ │ │ │ └── OFL.txt │ │ │ ├── kalam │ │ │ │ ├── Kalam-Bold.ttf │ │ │ │ ├── Kalam-Light.ttf │ │ │ │ ├── Kalam-Regular.ttf │ │ │ │ └── OFL.txt │ │ │ ├── source-code-pro │ │ │ │ ├── OFL.txt │ │ │ │ ├── SourceCodePro-Italic-VariableFont_wght.ttf │ │ │ │ └── SourceCodePro-VariableFont_wght.ttf │ │ │ ├── source-serif-4 │ │ │ │ ├── OFL.txt │ │ │ │ ├── SourceSerif4-Bold.ttf │ │ │ │ ├── SourceSerif4-BoldItalic.ttf │ │ │ │ ├── SourceSerif4-Italic-VariableFont_opsz,wght.ttf │ │ │ │ ├── SourceSerif4-Italic.ttf │ │ │ │ ├── SourceSerif4-Light.ttf │ │ │ │ ├── SourceSerif4-LightItalic.ttf │ │ │ │ ├── SourceSerif4-Medium.ttf │ │ │ │ ├── SourceSerif4-MediumItalic.ttf │ │ │ │ ├── SourceSerif4-Regular.ttf │ │ │ │ ├── SourceSerif4-SemiBold.ttf │ │ │ │ ├── SourceSerif4-SemiBoldItalic.ttf │ │ │ │ └── SourceSerif4-VariableFont_opsz,wght.ttf │ │ │ └── space-mono │ │ │ │ ├── OFL.txt │ │ │ │ ├── SpaceMono-Bold.ttf │ │ │ │ ├── SpaceMono-BoldItalic.ttf │ │ │ │ ├── SpaceMono-Italic.ttf │ │ │ │ └── SpaceMono-Regular.ttf │ │ ├── hooks │ │ │ ├── focus-and-select.ts │ │ │ ├── index.ts │ │ │ ├── use-debounce-callback.ts │ │ │ ├── use-disposable.ts │ │ │ ├── use-ref-effect.ts │ │ │ ├── use-theme-color-meta.ts │ │ │ └── use-theme-value.ts │ │ ├── index.ts │ │ ├── lit-react │ │ │ ├── create-component.ts │ │ │ ├── index.ts │ │ │ ├── lit-portal │ │ │ │ ├── index.ts │ │ │ │ ├── lit-portal.tsx │ │ │ │ └── uni-component.tsx │ │ │ ├── readme.md │ │ │ ├── to-react-node.ts │ │ │ └── utils.ts │ │ ├── styles │ │ │ ├── helper.ts │ │ │ ├── index.ts │ │ │ └── styled.tsx │ │ ├── theme │ │ │ ├── fonts.css │ │ │ ├── global.css │ │ │ ├── index.ts │ │ │ ├── noise.avif │ │ │ └── theme.css.ts │ │ ├── type.d.ts │ │ ├── ui │ │ │ ├── audio-player │ │ │ │ ├── audio-player.css.ts │ │ │ │ ├── audio-player.stories.tsx │ │ │ │ ├── audio-player.tsx │ │ │ │ ├── audio-waveform.css.ts │ │ │ │ ├── audio-waveform.tsx │ │ │ │ └── index.ts │ │ │ ├── avatar │ │ │ │ ├── avatar.stories.tsx │ │ │ │ ├── avatar.tsx │ │ │ │ ├── colorful-fallback.tsx │ │ │ │ ├── index.ts │ │ │ │ └── style.css.ts │ │ │ ├── button │ │ │ │ ├── button.css.ts │ │ │ │ ├── button.stories.css.ts │ │ │ │ ├── button.stories.tsx │ │ │ │ ├── button.tsx │ │ │ │ ├── dropdown-button.tsx │ │ │ │ ├── icon-button.stories.tsx │ │ │ │ ├── icon-button.tsx │ │ │ │ ├── index.ts │ │ │ │ ├── radio.tsx │ │ │ │ └── styles.css.ts │ │ │ ├── checkbox │ │ │ │ ├── checkbox.stories.tsx │ │ │ │ ├── checkbox.tsx │ │ │ │ ├── icons.tsx │ │ │ │ ├── index.css.ts │ │ │ │ └── index.ts │ │ │ ├── date-picker │ │ │ │ ├── calendar │ │ │ │ │ ├── calendar.css.ts │ │ │ │ │ ├── calendar.stories.tsx │ │ │ │ │ ├── calendar.tsx │ │ │ │ │ ├── constants.ts │ │ │ │ │ ├── day-picker.tsx │ │ │ │ │ ├── helpers.ts │ │ │ │ │ ├── index.ts │ │ │ │ │ ├── items.tsx │ │ │ │ │ ├── month-picker.tsx │ │ │ │ │ ├── types.tsx │ │ │ │ │ └── year-picker.tsx │ │ │ │ ├── index.css.ts │ │ │ │ ├── index.ts │ │ │ │ ├── week-date-picker.css.tsx │ │ │ │ ├── week-date-picker.stories.tsx │ │ │ │ └── week-date-picker.tsx │ │ │ ├── divider │ │ │ │ ├── divider.stories.tsx │ │ │ │ ├── divider.tsx │ │ │ │ ├── index.ts │ │ │ │ └── style.css.ts │ │ │ ├── dnd │ │ │ │ ├── common.ts │ │ │ │ ├── context.ts │ │ │ │ ├── dnd.stories.tsx │ │ │ │ ├── draggable.ts │ │ │ │ ├── drop-indicator.css.ts │ │ │ │ ├── drop-indicator.tsx │ │ │ │ ├── drop-target.ts │ │ │ │ ├── index.ts │ │ │ │ ├── monitor.tsx │ │ │ │ └── types.ts │ │ │ ├── drag-handle │ │ │ │ ├── index.css.ts │ │ │ │ └── index.tsx │ │ │ ├── editable │ │ │ │ ├── index.ts │ │ │ │ ├── inline-edit.css.ts │ │ │ │ ├── inline-edit.stories.tsx │ │ │ │ └── inline-edit.tsx │ │ │ ├── empty │ │ │ │ ├── empty-svg.tsx │ │ │ │ ├── empty.stories.tsx │ │ │ │ ├── empty.tsx │ │ │ │ ├── index.css.ts │ │ │ │ └── index.ts │ │ │ ├── error-message │ │ │ │ ├── error-message.tsx │ │ │ │ ├── index.ts │ │ │ │ └── style.css.ts │ │ │ ├── icon-name-editor │ │ │ │ ├── icon-name-editor.css.ts │ │ │ │ ├── icon-name-editor.stories.tsx │ │ │ │ ├── icon-name-editor.tsx │ │ │ │ └── index.ts │ │ │ ├── icon-picker │ │ │ │ ├── icon-picker.css.ts │ │ │ │ ├── icon-picker.stories.tsx │ │ │ │ ├── icon-picker.tsx │ │ │ │ ├── index.ts │ │ │ │ ├── picker │ │ │ │ │ ├── affine-icon │ │ │ │ │ │ ├── affine-icon-picker.css.ts │ │ │ │ │ │ └── affine-icon-picker.tsx │ │ │ │ │ ├── emoji │ │ │ │ │ │ ├── constants.ts │ │ │ │ │ │ ├── data │ │ │ │ │ │ │ └── en.json │ │ │ │ │ │ ├── emoji-button.tsx │ │ │ │ │ │ ├── emoji-picker.css.ts │ │ │ │ │ │ ├── emoji-picker.tsx │ │ │ │ │ │ ├── gen-data.ts │ │ │ │ │ │ ├── groups.tsx │ │ │ │ │ │ ├── icons │ │ │ │ │ │ │ ├── activity.tsx │ │ │ │ │ │ │ ├── animal.tsx │ │ │ │ │ │ │ ├── flag.tsx │ │ │ │ │ │ │ ├── food.tsx │ │ │ │ │ │ │ ├── object.tsx │ │ │ │ │ │ │ ├── smile.tsx │ │ │ │ │ │ │ ├── symbol.tsx │ │ │ │ │ │ │ └── travel.tsx │ │ │ │ │ │ ├── recent.ts │ │ │ │ │ │ └── type.ts │ │ │ │ │ └── picker.css.ts │ │ │ │ ├── renderer.tsx │ │ │ │ ├── renderer │ │ │ │ │ └── affine-icon.tsx │ │ │ │ └── type.ts │ │ │ ├── input │ │ │ │ ├── index.ts │ │ │ │ ├── input.stories.tsx │ │ │ │ ├── input.tsx │ │ │ │ ├── row-input.tsx │ │ │ │ └── style.css.ts │ │ │ ├── layout │ │ │ │ ├── content.tsx │ │ │ │ ├── index.ts │ │ │ │ └── wrapper.tsx │ │ │ ├── loading │ │ │ │ ├── index.ts │ │ │ │ ├── loading.stories.tsx │ │ │ │ ├── loading.tsx │ │ │ │ └── styles.css.ts │ │ │ ├── lottie │ │ │ │ ├── animated-play-icon.stories.tsx │ │ │ │ ├── animated-play-icon.tsx │ │ │ │ ├── animated-transcribe-icon.stories.tsx │ │ │ │ ├── animated-transcribe-icon.tsx │ │ │ │ ├── collections-icon.json │ │ │ │ ├── collections-icon.stories.tsx │ │ │ │ ├── collections-icon.tsx │ │ │ │ ├── delete-icon.json │ │ │ │ ├── delete-icon.stories.tsx │ │ │ │ ├── delete-icon.tsx │ │ │ │ ├── folder-icon.json │ │ │ │ ├── folder-icon.tsx │ │ │ │ ├── index.ts │ │ │ │ ├── playandpause.json │ │ │ │ ├── styles.css.ts │ │ │ │ └── transcribe.json │ │ │ ├── masonry │ │ │ │ ├── index.ts │ │ │ │ ├── masonry.stories.tsx │ │ │ │ ├── masonry.tsx │ │ │ │ ├── styles.css.ts │ │ │ │ ├── type.ts │ │ │ │ └── utils.ts │ │ │ ├── menu │ │ │ │ ├── desktop │ │ │ │ │ ├── context-menu.tsx │ │ │ │ │ ├── context.ts │ │ │ │ │ ├── item.tsx │ │ │ │ │ ├── root.tsx │ │ │ │ │ ├── separator.tsx │ │ │ │ │ ├── styles.css.ts │ │ │ │ │ └── sub.tsx │ │ │ │ ├── index.ts │ │ │ │ ├── menu-trigger.tsx │ │ │ │ ├── menu.stories.tsx │ │ │ │ ├── menu.types.ts │ │ │ │ ├── mobile │ │ │ │ │ ├── context.ts │ │ │ │ │ ├── hook.ts │ │ │ │ │ ├── item.tsx │ │ │ │ │ ├── root.tsx │ │ │ │ │ ├── separator.tsx │ │ │ │ │ ├── styles.css.ts │ │ │ │ │ └── sub.tsx │ │ │ │ ├── styles.css.ts │ │ │ │ └── use-menu-item.tsx │ │ │ ├── modal │ │ │ │ ├── confirm-modal.css.ts │ │ │ │ ├── confirm-modal.stories.tsx │ │ │ │ ├── confirm-modal.tsx │ │ │ │ ├── context.ts │ │ │ │ ├── index.ts │ │ │ │ ├── modal.stories.tsx │ │ │ │ ├── modal.tsx │ │ │ │ ├── overlay-modal.css.ts │ │ │ │ ├── overlay-modal.tsx │ │ │ │ ├── prompt-modal.css.ts │ │ │ │ ├── prompt-modal.tsx │ │ │ │ └── styles.css.ts │ │ │ ├── notification │ │ │ │ ├── desktop │ │ │ │ │ ├── notification-card.tsx │ │ │ │ │ ├── notification-center.tsx │ │ │ │ │ └── styles.css.ts │ │ │ │ ├── index.ts │ │ │ │ ├── mobile │ │ │ │ │ ├── notification-card.tsx │ │ │ │ │ ├── notification-center.tsx │ │ │ │ │ └── styles.css.ts │ │ │ │ ├── notification-center.stories.tsx │ │ │ │ ├── notify.tsx │ │ │ │ ├── types.ts │ │ │ │ └── utils.ts │ │ │ ├── popover │ │ │ │ ├── index.ts │ │ │ │ ├── popover.tsx │ │ │ │ └── styles.css.ts │ │ │ ├── progress │ │ │ │ ├── index.ts │ │ │ │ ├── progress.css.ts │ │ │ │ ├── progress.stories.tsx │ │ │ │ └── progress.tsx │ │ │ ├── property │ │ │ │ ├── index.ts │ │ │ │ ├── property.css.ts │ │ │ │ ├── property.stories.tsx │ │ │ │ └── property.tsx │ │ │ ├── radio │ │ │ │ ├── index.ts │ │ │ │ ├── radio.stories.tsx │ │ │ │ ├── radio.tsx │ │ │ │ ├── styles.css.ts │ │ │ │ └── types.ts │ │ │ ├── resize-panel │ │ │ │ ├── resize-panel.tsx │ │ │ │ └── styles.css.ts │ │ │ ├── safe-area │ │ │ │ ├── index.tsx │ │ │ │ └── style.css.ts │ │ │ ├── scrollbar │ │ │ │ ├── index.css.ts │ │ │ │ ├── index.ts │ │ │ │ ├── scrollable.tsx │ │ │ │ ├── scrollbar.stories.tsx │ │ │ │ ├── scrollbar.tsx │ │ │ │ └── use-has-scroll-top.tsx │ │ │ ├── skeleton │ │ │ │ ├── index.css.ts │ │ │ │ ├── index.ts │ │ │ │ ├── skeleton.stories.tsx │ │ │ │ ├── skeleton.tsx │ │ │ │ └── types.ts │ │ │ ├── slider │ │ │ │ ├── index.css.ts │ │ │ │ ├── index.ts │ │ │ │ ├── slider.stories.tsx │ │ │ │ └── slider.tsx │ │ │ ├── switch │ │ │ │ ├── index.css.ts │ │ │ │ ├── index.ts │ │ │ │ ├── switch.stories.tsx │ │ │ │ └── switch.tsx │ │ │ ├── table │ │ │ │ ├── index.ts │ │ │ │ ├── interface.ts │ │ │ │ ├── styles.ts │ │ │ │ ├── table-body.tsx │ │ │ │ ├── table-cell.tsx │ │ │ │ ├── table-head.tsx │ │ │ │ ├── table-row.tsx │ │ │ │ ├── table.stories.tsx │ │ │ │ └── table.tsx │ │ │ ├── tabs │ │ │ │ ├── index.ts │ │ │ │ ├── tabs.css.ts │ │ │ │ └── tabs.tsx │ │ │ ├── themed-img │ │ │ │ └── index.tsx │ │ │ ├── toast │ │ │ │ ├── index.ts │ │ │ │ ├── toast.stories.tsx │ │ │ │ └── toast.ts │ │ │ └── tooltip │ │ │ │ ├── index.ts │ │ │ │ ├── styles.css.ts │ │ │ │ ├── tooltip.stories.tsx │ │ │ │ └── tooltip.tsx │ │ └── utils │ │ │ ├── index.ts │ │ │ ├── keyboard-mapping.ts │ │ │ ├── observe-intersection.ts │ │ │ ├── observe-resize.ts │ │ │ ├── platform.ts │ │ │ ├── shallow-equal.ts │ │ │ ├── view-transition.ts │ │ │ └── with-unit.ts │ └── tsconfig.json │ ├── core │ ├── package.json │ ├── public │ │ ├── .gitignore │ │ ├── apple-touch-icon.png │ │ ├── favicon-144.png │ │ ├── favicon-192.png │ │ ├── favicon-32.png │ │ ├── favicon-36.png │ │ ├── favicon-48.png │ │ ├── favicon-72.png │ │ ├── favicon-96.png │ │ ├── favicon.ico │ │ ├── fonts │ │ │ ├── BebasNeue-Light.woff2 │ │ │ ├── BebasNeue-Regular.woff2 │ │ │ ├── Inter-Italic.woff2 │ │ │ ├── Inter-Light-BETA.woff2 │ │ │ ├── Inter-LightItalic-BETA.woff2 │ │ │ ├── Inter-Regular.woff2 │ │ │ ├── Inter-SemiBold.woff2 │ │ │ ├── Inter-SemiBoldItalic.woff2 │ │ │ ├── Kalam-Bold.woff2 │ │ │ ├── Kalam-Light.woff2 │ │ │ ├── Kalam-Regular.woff2 │ │ │ ├── Lora-Bold.woff2 │ │ │ ├── Lora-BoldItalic.woff2 │ │ │ ├── Lora-Italic.woff2 │ │ │ ├── Lora-Regular.woff2 │ │ │ ├── OrelegaOne-Regular.woff2 │ │ │ ├── Poppins-Italic.woff2 │ │ │ ├── Poppins-Light.woff2 │ │ │ ├── Poppins-LightItalic.woff2 │ │ │ ├── Poppins-Medium.woff2 │ │ │ ├── Poppins-Regular.woff2 │ │ │ ├── Poppins-SemiBold.woff2 │ │ │ ├── Poppins-SemiBoldItalic.woff2 │ │ │ ├── Satoshi-Bold.woff2 │ │ │ ├── Satoshi-BoldItalic.woff2 │ │ │ ├── Satoshi-Italic.woff2 │ │ │ ├── Satoshi-Light.woff2 │ │ │ ├── Satoshi-LightItalic.woff2 │ │ │ └── Satoshi-Regular.woff2 │ │ ├── imgs │ │ │ ├── affine-text-logo.png │ │ │ ├── app-icon-beta.ico │ │ │ ├── app-icon-canary.ico │ │ │ ├── app-icon-internal.ico │ │ │ ├── app-icon-stable.ico │ │ │ ├── invite-error.svg │ │ │ ├── invite-success.svg │ │ │ ├── no-result.svg │ │ │ ├── screenshot1.png │ │ │ ├── screenshot2.png │ │ │ └── screenshot3.png │ │ ├── manifest.json │ │ ├── onboarding │ │ │ ├── ai-onboarding.general.1.mp4 │ │ │ ├── ai-onboarding.general.2.mp4 │ │ │ ├── ai-onboarding.general.3.mp4 │ │ │ ├── ai-onboarding.general.4.mp4 │ │ │ └── ai-onboarding.general.5.mp4 │ │ ├── robots.txt │ │ └── static │ │ │ ├── 047ebf2c9a5c7c9d8521c2ea5e6140ff7732ef9e28a9f944e9bf3ca4.png │ │ │ ├── 1326bc48553a572c6756d9ee1b30a0dfdda26222fc2d2c872b14e609.gif │ │ │ ├── 27f983d0765289c19d10ee0b51c00c3c7665236a1a82406370d46e0a.gif │ │ │ ├── 28516717d63e469cd98729ff46be6595711898bab3dc43302319a987.gif │ │ │ ├── 6aa785ee927547ce9dd9d7b43e01eac948337fe57571443e87bc3a60.png │ │ │ ├── 9288be57321c8772d04e05dbb69a22742372b3534442607a2d6a9998.gif │ │ │ ├── c820edeeba50006b531883903f5bb0b96bf523c9a6b3ce5868f03db5.gif │ │ │ ├── e93536e1be97e3b5206d43bf0793fdef24e60044d174f0abdefebe08.gif │ │ │ ├── githubStar.mp4 │ │ │ └── newIssue.mp4 │ ├── src │ │ ├── __tests__ │ │ │ ├── ai │ │ │ │ └── utils │ │ │ │ │ └── apply-model │ │ │ │ │ ├── apply-patch-to-doc.spec.ts │ │ │ │ │ ├── generate-render-diff.spec.ts │ │ │ │ │ └── markdown-diff.spec.ts │ │ │ └── data-view-actions.spec.ts │ │ ├── blocksuite │ │ │ ├── __tests__ │ │ │ │ └── pan-tool-middle-mouse.spec.ts │ │ │ ├── ai │ │ │ │ ├── _common │ │ │ │ │ ├── chat-actions-handle.ts │ │ │ │ │ ├── config.ts │ │ │ │ │ └── icons.ts │ │ │ │ ├── actions │ │ │ │ │ ├── answer-renderer.ts │ │ │ │ │ ├── consts.ts │ │ │ │ │ ├── doc-handler.ts │ │ │ │ │ ├── edgeless-handler.ts │ │ │ │ │ ├── edgeless-response.ts │ │ │ │ │ ├── index.ts │ │ │ │ │ ├── page-response.ts │ │ │ │ │ └── types.ts │ │ │ │ ├── adapters │ │ │ │ │ └── block-tag.ts │ │ │ │ ├── ai-panel.ts │ │ │ │ ├── blocks │ │ │ │ │ ├── ai-chat-block │ │ │ │ │ │ ├── ai-chat-block.ts │ │ │ │ │ │ ├── ai-chat-edgeless-block.ts │ │ │ │ │ │ ├── ai-chat-spec.ts │ │ │ │ │ │ ├── ai-transcription-block.ts │ │ │ │ │ │ ├── components │ │ │ │ │ │ │ ├── ai-chat-messages.ts │ │ │ │ │ │ │ ├── chat-images.ts │ │ │ │ │ │ │ ├── icon.ts │ │ │ │ │ │ │ ├── image-placeholder.ts │ │ │ │ │ │ │ └── user-info.ts │ │ │ │ │ │ ├── index.ts │ │ │ │ │ │ ├── model │ │ │ │ │ │ │ ├── ai-chat-model.ts │ │ │ │ │ │ │ ├── consts.ts │ │ │ │ │ │ │ └── index.ts │ │ │ │ │ │ └── styles.ts │ │ │ │ │ ├── index.ts │ │ │ │ │ └── transcription-block │ │ │ │ │ │ └── model.ts │ │ │ │ ├── chat-panel │ │ │ │ │ ├── actions │ │ │ │ │ │ ├── action-wrapper.ts │ │ │ │ │ │ ├── image-to-text.ts │ │ │ │ │ │ ├── image.ts │ │ │ │ │ │ ├── make-real.ts │ │ │ │ │ │ ├── mindmap.ts │ │ │ │ │ │ ├── slides.ts │ │ │ │ │ │ └── text.ts │ │ │ │ │ ├── ai-loading.ts │ │ │ │ │ ├── ai-title.ts │ │ │ │ │ ├── chat-config.ts │ │ │ │ │ ├── const.ts │ │ │ │ │ ├── index.ts │ │ │ │ │ ├── message │ │ │ │ │ │ ├── action.ts │ │ │ │ │ │ ├── assistant.ts │ │ │ │ │ │ └── user.ts │ │ │ │ │ ├── preload-config.ts │ │ │ │ │ ├── split-view.ts │ │ │ │ │ └── templates │ │ │ │ │ │ ├── TidyMindMapV3.zip │ │ │ │ │ │ ├── completeWritingWithAI.zip │ │ │ │ │ │ ├── freelyCommunicateWithAI.zip │ │ │ │ │ │ ├── readAforeign.zip │ │ │ │ │ │ └── redHat.zip │ │ │ │ ├── components │ │ │ │ │ ├── ai-artifact-skeleton │ │ │ │ │ │ └── index.ts │ │ │ │ │ ├── ai-chat-add-context │ │ │ │ │ │ ├── ai-chat-add-context.ts │ │ │ │ │ │ ├── index.ts │ │ │ │ │ │ └── type.ts │ │ │ │ │ ├── ai-chat-chips │ │ │ │ │ │ ├── add-popover.ts │ │ │ │ │ │ ├── attachment-chip.ts │ │ │ │ │ │ ├── candidates-popover.ts │ │ │ │ │ │ ├── chat-panel-chips.ts │ │ │ │ │ │ ├── chip.ts │ │ │ │ │ │ ├── collection-chip.ts │ │ │ │ │ │ ├── doc-chip.ts │ │ │ │ │ │ ├── file-chip.ts │ │ │ │ │ │ ├── index.ts │ │ │ │ │ │ ├── selected-chip.ts │ │ │ │ │ │ ├── tag-chip.ts │ │ │ │ │ │ ├── type.ts │ │ │ │ │ │ └── utils.ts │ │ │ │ │ ├── ai-chat-composer │ │ │ │ │ │ ├── ai-chat-composer-tip.ts │ │ │ │ │ │ ├── ai-chat-composer.ts │ │ │ │ │ │ └── index.ts │ │ │ │ │ ├── ai-chat-content │ │ │ │ │ │ ├── ai-chat-content.ts │ │ │ │ │ │ ├── index.ts │ │ │ │ │ │ └── type.ts │ │ │ │ │ ├── ai-chat-input │ │ │ │ │ │ ├── ai-chat-input.ts │ │ │ │ │ │ ├── const.ts │ │ │ │ │ │ ├── embedding-status-tooltip.ts │ │ │ │ │ │ ├── index.ts │ │ │ │ │ │ ├── preference-popup.ts │ │ │ │ │ │ └── type.ts │ │ │ │ │ ├── ai-chat-messages │ │ │ │ │ │ ├── ai-chat-messages.ts │ │ │ │ │ │ ├── index.ts │ │ │ │ │ │ └── type.ts │ │ │ │ │ ├── ai-chat-toolbar │ │ │ │ │ │ ├── ai-chat-toolbar.ts │ │ │ │ │ │ ├── ai-session-history.ts │ │ │ │ │ │ └── index.ts │ │ │ │ │ ├── ai-history-clear │ │ │ │ │ │ ├── ai-history-clear.ts │ │ │ │ │ │ └── index.ts │ │ │ │ │ ├── ai-item │ │ │ │ │ │ ├── ai-item-list.ts │ │ │ │ │ │ ├── ai-item.ts │ │ │ │ │ │ ├── ai-sub-item-list.ts │ │ │ │ │ │ ├── const.ts │ │ │ │ │ │ ├── index.ts │ │ │ │ │ │ ├── styles.ts │ │ │ │ │ │ └── types.ts │ │ │ │ │ ├── ai-message-content │ │ │ │ │ │ ├── assistant-avatar.ts │ │ │ │ │ │ ├── images.ts │ │ │ │ │ │ ├── pure-text.ts │ │ │ │ │ │ ├── rich-text.ts │ │ │ │ │ │ └── stream-objects.ts │ │ │ │ │ ├── ai-scrollable-text-renderer.ts │ │ │ │ │ ├── ai-tools │ │ │ │ │ │ ├── artifact-tool.ts │ │ │ │ │ │ ├── artifacts-preview-panel.ts │ │ │ │ │ │ ├── code-artifact.ts │ │ │ │ │ │ ├── doc-compose.ts │ │ │ │ │ │ ├── doc-edit.ts │ │ │ │ │ │ ├── doc-keyword-search-result.ts │ │ │ │ │ │ ├── doc-read-result.ts │ │ │ │ │ │ ├── doc-semantic-search-result.ts │ │ │ │ │ │ ├── section-edit.ts │ │ │ │ │ │ ├── tool-call-card.ts │ │ │ │ │ │ ├── tool-failed-card.ts │ │ │ │ │ │ ├── tool-result-card.ts │ │ │ │ │ │ ├── type.ts │ │ │ │ │ │ ├── web-crawl.ts │ │ │ │ │ │ └── web-search.ts │ │ │ │ │ ├── ask-ai-button.ts │ │ │ │ │ ├── ask-ai-icon.ts │ │ │ │ │ ├── ask-ai-panel.ts │ │ │ │ │ ├── ask-ai-toolbar.ts │ │ │ │ │ ├── chat-action-list.ts │ │ │ │ │ ├── copy-more.ts │ │ │ │ │ ├── image-preview-grid.ts │ │ │ │ │ ├── playground │ │ │ │ │ │ ├── chat.ts │ │ │ │ │ │ ├── content.ts │ │ │ │ │ │ ├── index.ts │ │ │ │ │ │ └── modal.ts │ │ │ │ │ └── text-renderer.ts │ │ │ │ ├── effects.ts │ │ │ │ ├── entries │ │ │ │ │ ├── code-toolbar │ │ │ │ │ │ └── setup-code-toolbar.ts │ │ │ │ │ ├── edgeless │ │ │ │ │ │ ├── actions-config.ts │ │ │ │ │ │ └── index.ts │ │ │ │ │ ├── format-bar │ │ │ │ │ │ └── setup-format-bar.ts │ │ │ │ │ ├── image-toolbar │ │ │ │ │ │ └── setup-image-toolbar.ts │ │ │ │ │ ├── index.ts │ │ │ │ │ └── space │ │ │ │ │ │ └── setup-space.ts │ │ │ │ ├── extensions │ │ │ │ │ ├── ai-code.ts │ │ │ │ │ ├── ai-edgeless-root.ts │ │ │ │ │ ├── ai-page-root.ts │ │ │ │ │ └── ai-slash-menu.ts │ │ │ │ ├── index.ts │ │ │ │ ├── messages │ │ │ │ │ ├── error.ts │ │ │ │ │ ├── index.ts │ │ │ │ │ ├── mindmap.ts │ │ │ │ │ ├── slides-renderer.ts │ │ │ │ │ └── wrapper.ts │ │ │ │ ├── mini-mindmap │ │ │ │ │ ├── __tests__ │ │ │ │ │ │ └── mindmap-preview.unit.spec.ts │ │ │ │ │ ├── index.ts │ │ │ │ │ ├── mindmap-preview.ts │ │ │ │ │ ├── mindmap-root-block.ts │ │ │ │ │ ├── mindmap-service.ts │ │ │ │ │ ├── spec.ts │ │ │ │ │ ├── surface-block.ts │ │ │ │ │ └── surface-service.ts │ │ │ │ ├── peek-view │ │ │ │ │ ├── chat-block-peek-view.ts │ │ │ │ │ ├── date-time.ts │ │ │ │ │ ├── styles.ts │ │ │ │ │ ├── types.ts │ │ │ │ │ └── utils.ts │ │ │ │ ├── provider │ │ │ │ │ ├── ai-provider.ts │ │ │ │ │ ├── copilot-client.ts │ │ │ │ │ ├── error.ts │ │ │ │ │ ├── event-source.ts │ │ │ │ │ ├── index.ts │ │ │ │ │ ├── prompt.ts │ │ │ │ │ ├── request.ts │ │ │ │ │ ├── setup-provider.tsx │ │ │ │ │ └── tracker.ts │ │ │ │ ├── services │ │ │ │ │ └── block-diff.ts │ │ │ │ ├── slides │ │ │ │ │ ├── index.ts │ │ │ │ │ ├── template.ts │ │ │ │ │ └── templates │ │ │ │ │ │ ├── cover.json │ │ │ │ │ │ ├── four.json │ │ │ │ │ │ ├── one.json │ │ │ │ │ │ ├── three.json │ │ │ │ │ │ └── two.json │ │ │ │ ├── tool │ │ │ │ │ └── copilot-tool.ts │ │ │ │ ├── utils │ │ │ │ │ ├── action-reporter.ts │ │ │ │ │ ├── ai-widgets.ts │ │ │ │ │ ├── apply-model │ │ │ │ │ │ ├── apply-patch-to-doc.ts │ │ │ │ │ │ ├── generate-render-diff.ts │ │ │ │ │ │ └── markdown-diff.ts │ │ │ │ │ ├── attachment.ts │ │ │ │ │ ├── context.ts │ │ │ │ │ ├── edgeless.ts │ │ │ │ │ ├── editor-actions.ts │ │ │ │ │ ├── extract.ts │ │ │ │ │ ├── get-edgeless-copilot-widget.ts │ │ │ │ │ ├── html.ts │ │ │ │ │ ├── image.ts │ │ │ │ │ ├── selection-utils.ts │ │ │ │ │ └── stream-objects.ts │ │ │ │ └── widgets │ │ │ │ │ ├── ai-panel │ │ │ │ │ ├── ai-panel.ts │ │ │ │ │ ├── components │ │ │ │ │ │ ├── divider.ts │ │ │ │ │ │ ├── finish-tip.ts │ │ │ │ │ │ ├── generating-placeholder.ts │ │ │ │ │ │ ├── index.ts │ │ │ │ │ │ └── state │ │ │ │ │ │ │ ├── answer.ts │ │ │ │ │ │ │ ├── error.ts │ │ │ │ │ │ │ ├── generating.ts │ │ │ │ │ │ │ ├── index.ts │ │ │ │ │ │ │ └── input.ts │ │ │ │ │ ├── type.ts │ │ │ │ │ └── utils.ts │ │ │ │ │ ├── block-diff │ │ │ │ │ ├── block.ts │ │ │ │ │ ├── options.ts │ │ │ │ │ ├── page.ts │ │ │ │ │ └── playground.ts │ │ │ │ │ ├── edgeless-copilot-panel │ │ │ │ │ ├── index.ts │ │ │ │ │ └── toolbar-entry.ts │ │ │ │ │ └── edgeless-copilot │ │ │ │ │ ├── constant.ts │ │ │ │ │ └── index.ts │ │ │ ├── attachment-viewer │ │ │ │ ├── attachment-embed-preview.tsx │ │ │ │ ├── audio │ │ │ │ │ ├── audio-block.css.ts │ │ │ │ │ ├── audio-block.tsx │ │ │ │ │ ├── transcription-block.css.ts │ │ │ │ │ └── transcription-block.tsx │ │ │ │ ├── error.css.ts │ │ │ │ ├── error.tsx │ │ │ │ ├── index.tsx │ │ │ │ ├── pdf │ │ │ │ │ ├── pdf-viewer-embedded.tsx │ │ │ │ │ ├── pdf-viewer.tsx │ │ │ │ │ ├── styles.css.ts │ │ │ │ │ └── utils.ts │ │ │ │ ├── types.ts │ │ │ │ ├── utils.ts │ │ │ │ ├── viewer.css.ts │ │ │ │ └── viewer.tsx │ │ │ ├── block-suite-editor │ │ │ │ ├── bi-directional-link-panel.css.ts │ │ │ │ ├── bi-directional-link-panel.tsx │ │ │ │ ├── blocksuite-editor.tsx │ │ │ │ ├── doc-icon-picker.css.ts │ │ │ │ ├── doc-icon-picker.tsx │ │ │ │ ├── index.ts │ │ │ │ ├── journal-doc-title.tsx │ │ │ │ ├── lit-adaper.tsx │ │ │ │ ├── no-page-error.ts │ │ │ │ ├── register-templates.ts │ │ │ │ ├── starter-bar.css.ts │ │ │ │ ├── starter-bar.tsx │ │ │ │ └── styles.css.ts │ │ │ ├── block-suite-header │ │ │ │ ├── favorite │ │ │ │ │ └── index.tsx │ │ │ │ ├── info │ │ │ │ │ └── index.tsx │ │ │ │ ├── journal │ │ │ │ │ ├── date-picker.tsx │ │ │ │ │ └── today-button.tsx │ │ │ │ ├── menu │ │ │ │ │ ├── history-tips-modal │ │ │ │ │ │ ├── index.tsx │ │ │ │ │ │ └── top-svg.tsx │ │ │ │ │ ├── index.tsx │ │ │ │ │ └── style.css.ts │ │ │ │ ├── present │ │ │ │ │ └── detail-header-present-button.tsx │ │ │ │ └── title │ │ │ │ │ ├── index.tsx │ │ │ │ │ └── style.css.ts │ │ │ ├── block-suite-mode-switch │ │ │ │ ├── animation-data │ │ │ │ │ ├── edgeless-hover.json │ │ │ │ │ └── page-hover.json │ │ │ │ ├── index.tsx │ │ │ │ ├── style.css.ts │ │ │ │ └── switch-items.tsx │ │ │ ├── block-suite-page-list │ │ │ │ ├── index.css.ts │ │ │ │ └── utils.tsx │ │ │ ├── database-block │ │ │ │ ├── components │ │ │ │ │ ├── loading.css.ts │ │ │ │ │ └── loading.tsx │ │ │ │ ├── group-by │ │ │ │ │ └── index.tsx │ │ │ │ ├── hooks │ │ │ │ │ └── use-member-info.ts │ │ │ │ └── properties │ │ │ │ │ ├── created-by │ │ │ │ │ ├── define.ts │ │ │ │ │ └── view.tsx │ │ │ │ │ ├── file │ │ │ │ │ ├── define.ts │ │ │ │ │ ├── style.css.ts │ │ │ │ │ └── view.tsx │ │ │ │ │ ├── index.ts │ │ │ │ │ └── member │ │ │ │ │ ├── define.ts │ │ │ │ │ ├── multi-member-select │ │ │ │ │ ├── index.tsx │ │ │ │ │ └── style.css.ts │ │ │ │ │ ├── style.css.ts │ │ │ │ │ └── view.tsx │ │ │ ├── editors │ │ │ │ ├── edgeless-editor.ts │ │ │ │ ├── index.ts │ │ │ │ └── page-editor.ts │ │ │ ├── initialization │ │ │ │ └── index.ts │ │ │ ├── manager │ │ │ │ ├── store.ts │ │ │ │ └── view.ts │ │ │ ├── outline-viewer │ │ │ │ ├── index.tsx │ │ │ │ └── outline-viewer.css.ts │ │ │ ├── store-extensions │ │ │ │ ├── ai │ │ │ │ │ └── index.ts │ │ │ │ └── feature-flag │ │ │ │ │ ├── feature-flag-syncer.ts │ │ │ │ │ └── index.ts │ │ │ ├── utils │ │ │ │ ├── index.ts │ │ │ │ └── markdown-utils.ts │ │ │ └── view-extensions │ │ │ │ ├── ai │ │ │ │ ├── edgeless-clipboard.ts │ │ │ │ └── index.ts │ │ │ │ ├── cloud │ │ │ │ ├── index.ts │ │ │ │ ├── user-list.ts │ │ │ │ └── user.ts │ │ │ │ ├── code-block-preview │ │ │ │ ├── html-preview.ts │ │ │ │ ├── iframe-container.ts │ │ │ │ ├── index.ts │ │ │ │ └── mermaid-preview.ts │ │ │ │ ├── comment │ │ │ │ ├── comment-provider.ts │ │ │ │ └── index.ts │ │ │ │ ├── database │ │ │ │ ├── database-block-config-service.ts │ │ │ │ └── index.ts │ │ │ │ ├── edgeless-block-header │ │ │ │ ├── common.tsx │ │ │ │ ├── edgeless-block-header.css.ts │ │ │ │ ├── edgeless-embed-synced-doc-header.tsx │ │ │ │ ├── edgeless-note-header.tsx │ │ │ │ ├── index.tsx │ │ │ │ └── patch.tsx │ │ │ │ ├── editor-config │ │ │ │ ├── database.ts │ │ │ │ ├── get-config.ts │ │ │ │ ├── index.ts │ │ │ │ ├── linked.ts │ │ │ │ └── toolbar │ │ │ │ │ ├── copy-as-image.ts │ │ │ │ │ └── index.ts │ │ │ │ ├── editor-view │ │ │ │ ├── audio │ │ │ │ │ └── audio-view.tsx │ │ │ │ ├── display-meta.ts │ │ │ │ ├── doc-mode-service.ts │ │ │ │ ├── doc-url.ts │ │ │ │ ├── editor-view.tsx │ │ │ │ ├── file-size-limit.ts │ │ │ │ ├── notification-service.tsx │ │ │ │ ├── open-doc.ts │ │ │ │ ├── quick-search-service.ts │ │ │ │ ├── reference-renderer.ts │ │ │ │ └── side-bar-service.ts │ │ │ │ ├── electron │ │ │ │ ├── electron-clipboard.ts │ │ │ │ └── index.ts │ │ │ │ ├── icon-picker │ │ │ │ ├── icon-picker-service.ts │ │ │ │ └── index.ts │ │ │ │ ├── link-preview-service │ │ │ │ ├── index.ts │ │ │ │ └── link-preview-service.ts │ │ │ │ ├── mobile │ │ │ │ ├── index.ts │ │ │ │ ├── keyboard-toolbar-extension.ts │ │ │ │ └── mobile-feature-flag-control.ts │ │ │ │ ├── pdf │ │ │ │ ├── index.ts │ │ │ │ └── pdf-view.tsx │ │ │ │ ├── theme │ │ │ │ ├── index.ts │ │ │ │ ├── preview-theme.ts │ │ │ │ └── theme.ts │ │ │ │ └── turbo-renderer │ │ │ │ ├── index.ts │ │ │ │ ├── turbo-painter.worker.ts │ │ │ │ └── turbo-renderer.ts │ │ ├── bootstrap │ │ │ ├── browser.ts │ │ │ ├── cleanup.ts │ │ │ ├── electron.ts │ │ │ ├── env.ts │ │ │ ├── polyfill │ │ │ │ ├── array.ts │ │ │ │ ├── browser.ts │ │ │ │ ├── dispose.ts │ │ │ │ ├── electron.ts │ │ │ │ ├── iterator-helpers.ts │ │ │ │ ├── promise-with-resolvers.ts │ │ │ │ ├── request-idle-callback.ts │ │ │ │ ├── resize-observer.ts │ │ │ │ └── set.ts │ │ │ ├── public-path.ts │ │ │ └── telemetry.ts │ │ ├── commands │ │ │ ├── affine-creation.tsx │ │ │ ├── affine-help.tsx │ │ │ ├── affine-i18n.tsx │ │ │ ├── affine-layout.tsx │ │ │ ├── affine-navigation.tsx │ │ │ ├── affine-settings.tsx │ │ │ ├── affine-updates.tsx │ │ │ ├── index.ts │ │ │ └── registry │ │ │ │ ├── README.md │ │ │ │ ├── command.ts │ │ │ │ ├── index.ts │ │ │ │ └── registry.ts │ │ ├── components │ │ │ ├── affine │ │ │ │ ├── README.md │ │ │ │ ├── affine-error-boundary │ │ │ │ │ ├── affine-error-fallback.css.ts │ │ │ │ │ ├── affine-error-fallback.tsx │ │ │ │ │ ├── error-assets │ │ │ │ │ │ ├── 404.dark.png │ │ │ │ │ │ ├── 404.light.png │ │ │ │ │ │ ├── 500.dark.png │ │ │ │ │ │ └── 500.light.png │ │ │ │ │ ├── error-basic │ │ │ │ │ │ ├── error-detail.css.ts │ │ │ │ │ │ ├── error-detail.tsx │ │ │ │ │ │ ├── fallback-creator.tsx │ │ │ │ │ │ └── info-logger.tsx │ │ │ │ │ ├── error-fallbacks │ │ │ │ │ │ ├── any-error-fallback.tsx │ │ │ │ │ │ ├── no-page-root-fallback.tsx │ │ │ │ │ │ └── page-not-found-fallback.tsx │ │ │ │ │ ├── error-status.assets.svg │ │ │ │ │ └── index.tsx │ │ │ │ ├── ai-onboarding │ │ │ │ │ ├── apis.ts │ │ │ │ │ ├── base-style.css.ts │ │ │ │ │ ├── edgeless.dialog.css.ts │ │ │ │ │ ├── edgeless.dialog.tsx │ │ │ │ │ ├── general.dialog.css.ts │ │ │ │ │ ├── general.dialog.tsx │ │ │ │ │ ├── index.tsx │ │ │ │ │ ├── local.dialog.css.ts │ │ │ │ │ ├── local.dialog.tsx │ │ │ │ │ ├── lottie │ │ │ │ │ │ └── edgeless │ │ │ │ │ │ │ ├── mouse-track-dark.json │ │ │ │ │ │ │ └── mouse-track-light.json │ │ │ │ │ ├── slider.css.ts │ │ │ │ │ ├── slider.tsx │ │ │ │ │ ├── state.ts │ │ │ │ │ └── type.ts │ │ │ │ ├── auth │ │ │ │ │ ├── ai-login-required.tsx │ │ │ │ │ ├── oauth.tsx │ │ │ │ │ ├── style.css.ts │ │ │ │ │ └── user-plan-button.tsx │ │ │ │ ├── empty │ │ │ │ │ ├── action-button.tsx │ │ │ │ │ ├── assets │ │ │ │ │ │ ├── collection-detail.dark.png │ │ │ │ │ │ ├── collection-detail.light.png │ │ │ │ │ │ ├── collection-list.dark.png │ │ │ │ │ │ ├── collection-list.light.png │ │ │ │ │ │ ├── denied.dark.png │ │ │ │ │ │ ├── denied.light.png │ │ │ │ │ │ ├── docs.dark.png │ │ │ │ │ │ ├── docs.light.png │ │ │ │ │ │ ├── tag-list.dark.png │ │ │ │ │ │ └── tag-list.light.png │ │ │ │ │ ├── collection-detail.tsx │ │ │ │ │ ├── collections.tsx │ │ │ │ │ ├── docs.tsx │ │ │ │ │ ├── index.ts │ │ │ │ │ ├── layout.tsx │ │ │ │ │ ├── style.css.ts │ │ │ │ │ ├── tags.tsx │ │ │ │ │ └── types.ts │ │ │ │ ├── language-menu │ │ │ │ │ ├── index.tsx │ │ │ │ │ └── style.css.ts │ │ │ │ ├── onboarding │ │ │ │ │ ├── animate-in-tooltip.css.tsx │ │ │ │ │ ├── animate-in-tooltip.tsx │ │ │ │ │ ├── articles │ │ │ │ │ │ ├── article-0.tsx │ │ │ │ │ │ ├── article-1.tsx │ │ │ │ │ │ ├── article-2.tsx │ │ │ │ │ │ ├── article-3.tsx │ │ │ │ │ │ ├── article-4.tsx │ │ │ │ │ │ ├── assets │ │ │ │ │ │ │ ├── article-0-bookmark-1.png │ │ │ │ │ │ │ ├── article-0-bookmark-2.png │ │ │ │ │ │ │ ├── article-0-embed-1.png │ │ │ │ │ │ │ ├── article-1-bookmark-1.png │ │ │ │ │ │ │ ├── article-1-illustration-1.png │ │ │ │ │ │ │ ├── article-1-illustration-2.tsx │ │ │ │ │ │ │ ├── article-2-embed-1.png │ │ │ │ │ │ │ ├── article-2-illustration-1.jpg │ │ │ │ │ │ │ ├── article-2-illustration-2.jpg │ │ │ │ │ │ │ ├── article-2-note-1.png │ │ │ │ │ │ │ ├── article-2-note-2.png │ │ │ │ │ │ │ ├── article-3-bookmark-1.png │ │ │ │ │ │ │ ├── article-3-illustration-1.jpg │ │ │ │ │ │ │ ├── article-3-illustration-2.jpg │ │ │ │ │ │ │ ├── article-3-illustration-3.jpg │ │ │ │ │ │ │ ├── article-3-illustration-4.jpg │ │ │ │ │ │ │ ├── article-3-illustration-5.jpg │ │ │ │ │ │ │ ├── article-4-bookmark-1.png │ │ │ │ │ │ │ ├── article-4-bookmark-2.png │ │ │ │ │ │ │ ├── article-4-illustration-1.jpg │ │ │ │ │ │ │ └── article-4-illustration-2.jpg │ │ │ │ │ │ ├── blocks.css.ts │ │ │ │ │ │ ├── blog-link.tsx │ │ │ │ │ │ └── index.tsx │ │ │ │ │ ├── assets │ │ │ │ │ │ └── logo.tsx │ │ │ │ │ ├── curve-paper │ │ │ │ │ │ ├── paper.css.ts │ │ │ │ │ │ ├── paper.tsx │ │ │ │ │ │ ├── segment.tsx │ │ │ │ │ │ └── segments.tsx │ │ │ │ │ ├── onboarding.tsx │ │ │ │ │ ├── paper-steps.tsx │ │ │ │ │ ├── steps │ │ │ │ │ │ ├── animate-in.css.ts │ │ │ │ │ │ ├── animate-in.tsx │ │ │ │ │ │ ├── edgeless-switch.css.ts │ │ │ │ │ │ ├── edgeless-switch.tsx │ │ │ │ │ │ ├── unfolding.css.ts │ │ │ │ │ │ └── unfolding.tsx │ │ │ │ │ ├── style.css.ts │ │ │ │ │ ├── switch-widgets │ │ │ │ │ │ ├── block.tsx │ │ │ │ │ │ ├── counter-note.css.tsx │ │ │ │ │ │ ├── counter-note.tsx │ │ │ │ │ │ ├── page-link.tsx │ │ │ │ │ │ ├── shadow-sticker.tsx │ │ │ │ │ │ ├── style.css.tsx │ │ │ │ │ │ ├── switch.tsx │ │ │ │ │ │ └── toolbar.tsx │ │ │ │ │ └── types.ts │ │ │ │ ├── page-history-modal │ │ │ │ │ ├── data.ts │ │ │ │ │ ├── empty-history-shape.tsx │ │ │ │ │ ├── history-modal.tsx │ │ │ │ │ ├── index.tsx │ │ │ │ │ └── styles.css.ts │ │ │ │ ├── reference-link │ │ │ │ │ ├── index.tsx │ │ │ │ │ └── styles.css.ts │ │ │ │ ├── sign-out-modal │ │ │ │ │ └── index.tsx │ │ │ │ └── subscription-landing │ │ │ │ │ ├── notify.css.ts │ │ │ │ │ ├── notify.tsx │ │ │ │ │ └── styles.css.ts │ │ │ ├── atoms │ │ │ │ ├── index.ts │ │ │ │ ├── page-history.ts │ │ │ │ └── trash-modal.ts │ │ │ ├── cloud │ │ │ │ └── share-header-right-item │ │ │ │ │ ├── import-template.tsx │ │ │ │ │ ├── index.tsx │ │ │ │ │ ├── present.tsx │ │ │ │ │ ├── sign-in.tsx │ │ │ │ │ ├── styles.css.ts │ │ │ │ │ └── user-avatar.tsx │ │ │ ├── comment │ │ │ │ ├── comment-editor │ │ │ │ │ ├── index.tsx │ │ │ │ │ ├── linked-widget-config.ts │ │ │ │ │ ├── specs.ts │ │ │ │ │ └── style.css.ts │ │ │ │ └── sidebar │ │ │ │ │ ├── index.tsx │ │ │ │ │ └── style.css.ts │ │ │ ├── context │ │ │ │ └── index.tsx │ │ │ ├── explorer │ │ │ │ ├── context.ts │ │ │ │ ├── display-menu │ │ │ │ │ ├── group.tsx │ │ │ │ │ ├── index.tsx │ │ │ │ │ ├── order.tsx │ │ │ │ │ ├── properties.css.ts │ │ │ │ │ ├── properties.tsx │ │ │ │ │ ├── quick-actions.tsx │ │ │ │ │ ├── styles.css.ts │ │ │ │ │ ├── view-toggle.css.ts │ │ │ │ │ └── view-toggle.tsx │ │ │ │ ├── docs-view │ │ │ │ │ ├── doc-list-item.css.ts │ │ │ │ │ ├── doc-list-item.tsx │ │ │ │ │ ├── docs-list.css.ts │ │ │ │ │ ├── docs-list.tsx │ │ │ │ │ ├── group-header.css.ts │ │ │ │ │ ├── group-header.tsx │ │ │ │ │ ├── more-menu.tsx │ │ │ │ │ ├── properties.css.ts │ │ │ │ │ ├── properties.tsx │ │ │ │ │ ├── quick-actions.tsx │ │ │ │ │ └── stack-property.tsx │ │ │ │ ├── header │ │ │ │ │ ├── navigation.css.ts │ │ │ │ │ └── navigation.tsx │ │ │ │ ├── properties.ts │ │ │ │ ├── quick-actions.constants.tsx │ │ │ │ └── types.ts │ │ │ ├── filter-container.css.ts │ │ │ ├── filter │ │ │ │ ├── add-filter.tsx │ │ │ │ ├── conditions │ │ │ │ │ ├── condition.tsx │ │ │ │ │ ├── property.tsx │ │ │ │ │ ├── styles.css.ts │ │ │ │ │ ├── system.tsx │ │ │ │ │ └── unknown.tsx │ │ │ │ ├── filter-value-menu.tsx │ │ │ │ ├── filter.tsx │ │ │ │ ├── filters.tsx │ │ │ │ ├── index.ts │ │ │ │ ├── options.tsx │ │ │ │ └── styles.css.ts │ │ │ ├── guard │ │ │ │ ├── guard.tsx │ │ │ │ ├── index.ts │ │ │ │ └── use-guard.tsx │ │ │ ├── hooks │ │ │ │ ├── __tests__ │ │ │ │ │ └── use-system-online.spec.ts │ │ │ │ ├── affine-async-hooks.ts │ │ │ │ ├── affine │ │ │ │ │ ├── README.md │ │ │ │ │ ├── __tests__ │ │ │ │ │ │ └── use-sign-out.spec.ts │ │ │ │ │ ├── use-ai-chat-config.ts │ │ │ │ │ ├── use-ai-specs.ts │ │ │ │ │ ├── use-ai-subscribe.ts │ │ │ │ │ ├── use-app-setting-helper.ts │ │ │ │ │ ├── use-block-suite-meta-helper.ts │ │ │ │ │ ├── use-enable-ai.ts │ │ │ │ │ ├── use-enable-cloud.tsx │ │ │ │ │ ├── use-export-page.ts │ │ │ │ │ ├── use-mutate-cloud.ts │ │ │ │ │ ├── use-reference-link-helper.ts │ │ │ │ │ ├── use-register-blocksuite-editor-commands.tsx │ │ │ │ │ ├── use-register-copy-link-commands.tsx │ │ │ │ │ ├── use-register-find-in-page-commands.ts │ │ │ │ │ ├── use-selfhost-login-version-guard.tsx │ │ │ │ │ ├── use-share-url.ts │ │ │ │ │ ├── use-shortcuts.ts │ │ │ │ │ ├── use-sign-out.ts │ │ │ │ │ ├── use-subscription-notify.tsx │ │ │ │ │ └── use-toggle-cloud-public.ts │ │ │ │ ├── use-all-block-suite-page-meta.ts │ │ │ │ ├── use-app-config-storage.ts │ │ │ │ ├── use-app-updater.ts │ │ │ │ ├── use-block-suite-editor.ts │ │ │ │ ├── use-block-suite-page-meta.ts │ │ │ │ ├── use-block-suite-workspace-helper.ts │ │ │ │ ├── use-block-suite-workspace-page.ts │ │ │ │ ├── use-blur-root.ts │ │ │ │ ├── use-catch-event-hook.ts │ │ │ │ ├── use-journal.ts │ │ │ │ ├── use-mutation.ts │ │ │ │ ├── use-navigate-helper.ts │ │ │ │ ├── use-query.ts │ │ │ │ ├── use-register-workspace-commands.ts │ │ │ │ ├── use-responsive-siedebar.ts │ │ │ │ ├── use-seek-time.ts │ │ │ │ ├── use-system-online.ts │ │ │ │ ├── use-workspace-info.ts │ │ │ │ └── use-workspace.ts │ │ │ ├── member-selector │ │ │ │ ├── index.tsx │ │ │ │ ├── inline-member-list.tsx │ │ │ │ ├── item.tsx │ │ │ │ └── styles.css.ts │ │ │ ├── mobile │ │ │ │ ├── config-modal │ │ │ │ │ ├── index.tsx │ │ │ │ │ └── styles.css.ts │ │ │ │ └── index.ts │ │ │ ├── notification │ │ │ │ ├── list.style.css.ts │ │ │ │ └── list.tsx │ │ │ ├── over-capacity │ │ │ │ └── index.tsx │ │ │ ├── page-detail-editor.css.ts │ │ │ ├── page-detail-editor.tsx │ │ │ ├── page-list │ │ │ │ ├── __tests__ │ │ │ │ │ └── use-block-suite-page-preview.spec.ts │ │ │ │ ├── collections │ │ │ │ │ ├── collection-list-header.css.ts │ │ │ │ │ ├── collection-list-header.tsx │ │ │ │ │ ├── collection-list-item.css.ts │ │ │ │ │ ├── collection-list-item.tsx │ │ │ │ │ ├── index.ts │ │ │ │ │ └── virtualized-collection-list.tsx │ │ │ │ ├── components │ │ │ │ │ ├── favorite-tag.tsx │ │ │ │ │ ├── favorited-animation │ │ │ │ │ │ └── data.json │ │ │ │ │ ├── floating-toolbar.css.ts │ │ │ │ │ ├── floating-toolbar.tsx │ │ │ │ │ ├── list-floating-toolbar.css.ts │ │ │ │ │ ├── list-floating-toolbar.tsx │ │ │ │ │ ├── list-header-cell.css.ts │ │ │ │ │ ├── list-header-cell.tsx │ │ │ │ │ ├── new-page-button.css.ts │ │ │ │ │ ├── new-page-button.tsx │ │ │ │ │ ├── page-display-menu.css.ts │ │ │ │ │ └── page-display-menu.tsx │ │ │ │ ├── docs │ │ │ │ │ ├── index.ts │ │ │ │ │ ├── page-list-new-page-button.css.ts │ │ │ │ │ ├── page-list-new-page-button.tsx │ │ │ │ │ ├── page-tags.css.ts │ │ │ │ │ ├── page-tags.tsx │ │ │ │ │ ├── select-page.css.ts │ │ │ │ │ └── select-page.tsx │ │ │ │ ├── group-definitions.css.ts │ │ │ │ ├── group-definitions.tsx │ │ │ │ ├── header-col-def.tsx │ │ │ │ ├── index.tsx │ │ │ │ ├── items-to-item-group.tsx │ │ │ │ ├── list.css.ts │ │ │ │ ├── list.tsx │ │ │ │ ├── operation-cell.tsx │ │ │ │ ├── operation-menu-items │ │ │ │ │ ├── disable-public-sharing.tsx │ │ │ │ │ ├── export.tsx │ │ │ │ │ ├── index.css.ts │ │ │ │ │ ├── index.ts │ │ │ │ │ ├── move-to-trash.tsx │ │ │ │ │ └── types.ts │ │ │ │ ├── page-content-preview.tsx │ │ │ │ ├── page-group.css.ts │ │ │ │ ├── page-group.tsx │ │ │ │ ├── page-header.css.ts │ │ │ │ ├── page-header.tsx │ │ │ │ ├── readme.md │ │ │ │ ├── scoped-atoms.tsx │ │ │ │ ├── selector │ │ │ │ │ ├── selector-layout.css.ts │ │ │ │ │ └── selector-layout.tsx │ │ │ │ ├── tags │ │ │ │ │ ├── create-tag.css.ts │ │ │ │ │ ├── create-tag.tsx │ │ │ │ │ ├── index.ts │ │ │ │ │ ├── tag-list-header.css.ts │ │ │ │ │ ├── tag-list-header.tsx │ │ │ │ │ ├── tag-list-item.css.ts │ │ │ │ │ ├── tag-list-item.tsx │ │ │ │ │ └── virtualized-tag-list.tsx │ │ │ │ ├── types.ts │ │ │ │ ├── use-all-doc-display-properties.ts │ │ │ │ ├── use-block-suite-page-preview.ts │ │ │ │ ├── use-block-suite-workspace-page.ts │ │ │ │ ├── use-page-selection-events.ts │ │ │ │ ├── utils.tsx │ │ │ │ ├── view │ │ │ │ │ ├── affine-shape.tsx │ │ │ │ │ ├── collection-operations.css.ts │ │ │ │ │ ├── collection-operations.tsx │ │ │ │ │ ├── create-collection.css.ts │ │ │ │ │ ├── create-collection.tsx │ │ │ │ │ ├── index.ts │ │ │ │ │ ├── save-as-collection-button.css.ts │ │ │ │ │ ├── save-as-collection-button.tsx │ │ │ │ │ └── use-action.tsx │ │ │ │ └── virtualized-list.tsx │ │ │ ├── properties │ │ │ │ ├── icons │ │ │ │ │ ├── constant.ts │ │ │ │ │ ├── icons-selector.css.ts │ │ │ │ │ ├── icons-selector.tsx │ │ │ │ │ └── workspace-property-icon.tsx │ │ │ │ ├── index.ts │ │ │ │ ├── manager │ │ │ │ │ ├── index.tsx │ │ │ │ │ └── styles.css.ts │ │ │ │ ├── menu │ │ │ │ │ ├── create-doc-property.css.ts │ │ │ │ │ ├── create-doc-property.tsx │ │ │ │ │ ├── edit-doc-property.css.ts │ │ │ │ │ └── edit-doc-property.tsx │ │ │ │ ├── name.tsx │ │ │ │ ├── sidebar │ │ │ │ │ ├── index.tsx │ │ │ │ │ ├── section.css.ts │ │ │ │ │ ├── section.tsx │ │ │ │ │ └── styles.css.ts │ │ │ │ ├── table.css.ts │ │ │ │ ├── table.tsx │ │ │ │ ├── types.ts │ │ │ │ └── widgets │ │ │ │ │ ├── radio-group.css.ts │ │ │ │ │ └── radio-group.tsx │ │ │ ├── providers │ │ │ │ ├── current-server-scope.tsx │ │ │ │ ├── current-workspace-scope.tsx │ │ │ │ ├── swr-config-provider.tsx │ │ │ │ └── workspace-side-effects.tsx │ │ │ ├── pure │ │ │ │ ├── file-upload │ │ │ │ │ └── index.tsx │ │ │ │ ├── header-drop-down-button │ │ │ │ │ ├── index.tsx │ │ │ │ │ └── styles.css.ts │ │ │ │ ├── header │ │ │ │ │ ├── index.tsx │ │ │ │ │ ├── style.css.tsx │ │ │ │ │ └── windows-app-controls.tsx │ │ │ │ ├── help-island │ │ │ │ │ ├── icons.tsx │ │ │ │ │ ├── index.tsx │ │ │ │ │ └── style.ts │ │ │ │ ├── icons │ │ │ │ │ ├── favorite-icon.tsx │ │ │ │ │ └── index.tsx │ │ │ │ ├── swr-error-bundary.tsx │ │ │ │ ├── trash-page-footer │ │ │ │ │ ├── index.tsx │ │ │ │ │ └── styles.css.ts │ │ │ │ └── workspace-mode-filter-tab │ │ │ │ │ ├── index.css.ts │ │ │ │ │ └── index.tsx │ │ │ ├── root-app-sidebar │ │ │ │ ├── index.css.ts │ │ │ │ ├── index.tsx │ │ │ │ ├── invite-members-button.tsx │ │ │ │ ├── journal-button.tsx │ │ │ │ ├── notification-button.style.css.ts │ │ │ │ ├── notification-button.tsx │ │ │ │ ├── sidebar-audio-player.css.ts │ │ │ │ ├── sidebar-audio-player.tsx │ │ │ │ ├── template-doc-entrance.tsx │ │ │ │ ├── trash-button.tsx │ │ │ │ ├── updater-button.tsx │ │ │ │ └── user-info │ │ │ │ │ ├── account-menu.tsx │ │ │ │ │ ├── account.tsx │ │ │ │ │ ├── ai-usage.tsx │ │ │ │ │ ├── cloud-usage.tsx │ │ │ │ │ ├── index.css.ts │ │ │ │ │ ├── index.tsx │ │ │ │ │ ├── team-list.tsx │ │ │ │ │ └── unknow-user.tsx │ │ │ ├── server-selector │ │ │ │ ├── index.tsx │ │ │ │ └── style.css.ts │ │ │ ├── sign-in │ │ │ │ ├── add-selfhosted.tsx │ │ │ │ ├── back.tsx │ │ │ │ ├── background-arts │ │ │ │ │ ├── art-dark.inline.svg │ │ │ │ │ ├── art-light.inline.svg │ │ │ │ │ ├── index.tsx │ │ │ │ │ └── style.css.ts │ │ │ │ ├── captcha.tsx │ │ │ │ ├── index.tsx │ │ │ │ ├── sign-in-with-email.tsx │ │ │ │ ├── sign-in-with-password.tsx │ │ │ │ ├── sign-in.tsx │ │ │ │ └── style.css.ts │ │ │ ├── system-property-types │ │ │ │ ├── created-updated-at.tsx │ │ │ │ ├── created-updated-by.tsx │ │ │ │ ├── edgeless-theme.tsx │ │ │ │ ├── favorite.tsx │ │ │ │ ├── index.ts │ │ │ │ ├── integration-type.tsx │ │ │ │ ├── page-width.tsx │ │ │ │ ├── shared.tsx │ │ │ │ ├── tags.tsx │ │ │ │ └── template.tsx │ │ │ ├── tags │ │ │ │ ├── index.ts │ │ │ │ ├── inline-tag-list.css.ts │ │ │ │ ├── inline-tag-list.tsx │ │ │ │ ├── readme.md │ │ │ │ ├── styles.css.ts │ │ │ │ ├── tag-edit-menu.css.ts │ │ │ │ ├── tag-edit-menu.tsx │ │ │ │ ├── tag.css.ts │ │ │ │ ├── tag.tsx │ │ │ │ ├── tags-editor.tsx │ │ │ │ └── types.ts │ │ │ ├── telemetry │ │ │ │ └── index.tsx │ │ │ ├── theme-provider │ │ │ │ └── index.tsx │ │ │ ├── top-tip.tsx │ │ │ ├── workspace-avatar │ │ │ │ └── index.tsx │ │ │ ├── workspace-property-types │ │ │ │ ├── checkbox.css.ts │ │ │ │ ├── checkbox.tsx │ │ │ │ ├── created-updated-at.css.ts │ │ │ │ ├── created-updated-at.tsx │ │ │ │ ├── created-updated-by.css.ts │ │ │ │ ├── created-updated-by.tsx │ │ │ │ ├── date.css.ts │ │ │ │ ├── date.tsx │ │ │ │ ├── doc-primary-mode.css.ts │ │ │ │ ├── doc-primary-mode.tsx │ │ │ │ ├── edgeless-theme.css.ts │ │ │ │ ├── edgeless-theme.tsx │ │ │ │ ├── index.ts │ │ │ │ ├── journal.css.ts │ │ │ │ ├── journal.tsx │ │ │ │ ├── number.css.ts │ │ │ │ ├── number.tsx │ │ │ │ ├── page-width.css.ts │ │ │ │ ├── page-width.tsx │ │ │ │ ├── tags.css.ts │ │ │ │ ├── tags.tsx │ │ │ │ ├── template.css.ts │ │ │ │ ├── template.tsx │ │ │ │ ├── text.css.ts │ │ │ │ └── text.tsx │ │ │ └── workspace-selector │ │ │ │ ├── enable-cloud │ │ │ │ ├── enable-cloud.css.ts │ │ │ │ ├── enable-cloud.tsx │ │ │ │ └── index.ts │ │ │ │ ├── index.tsx │ │ │ │ ├── user-with-workspace-list │ │ │ │ ├── add-server │ │ │ │ │ ├── index.css.ts │ │ │ │ │ └── index.tsx │ │ │ │ ├── add-workspace │ │ │ │ │ ├── index.css.ts │ │ │ │ │ └── index.tsx │ │ │ │ ├── index.css.ts │ │ │ │ ├── index.tsx │ │ │ │ ├── user-account │ │ │ │ │ ├── index.css.ts │ │ │ │ │ └── index.tsx │ │ │ │ └── workspace-list │ │ │ │ │ ├── index.css.ts │ │ │ │ │ └── index.tsx │ │ │ │ └── workspace-card │ │ │ │ ├── index.tsx │ │ │ │ ├── pure-workspace-card.tsx │ │ │ │ └── styles.css.ts │ │ ├── desktop │ │ │ ├── components │ │ │ │ ├── ai-island │ │ │ │ │ ├── container.css.ts │ │ │ │ │ ├── container.tsx │ │ │ │ │ ├── icons.tsx │ │ │ │ │ ├── index.tsx │ │ │ │ │ └── styles.css.ts │ │ │ │ ├── app-container │ │ │ │ │ ├── index.tsx │ │ │ │ │ └── styles.css.ts │ │ │ │ ├── document-title │ │ │ │ │ └── index.tsx │ │ │ │ └── navigation-panel │ │ │ │ │ ├── index.ts │ │ │ │ │ ├── layouts │ │ │ │ │ ├── collapsible-section.css.ts │ │ │ │ │ ├── collapsible-section.tsx │ │ │ │ │ ├── empty-node-children.css.ts │ │ │ │ │ ├── empty-node-children.tsx │ │ │ │ │ ├── empty-section.css.ts │ │ │ │ │ └── empty-section.tsx │ │ │ │ │ ├── nodes │ │ │ │ │ ├── collection │ │ │ │ │ │ ├── empty.tsx │ │ │ │ │ │ ├── index.tsx │ │ │ │ │ │ └── operations.tsx │ │ │ │ │ ├── doc │ │ │ │ │ │ ├── empty.tsx │ │ │ │ │ │ ├── index.tsx │ │ │ │ │ │ ├── operations.tsx │ │ │ │ │ │ └── styles.css.ts │ │ │ │ │ ├── folder │ │ │ │ │ │ ├── empty.css.ts │ │ │ │ │ │ ├── empty.tsx │ │ │ │ │ │ ├── index.tsx │ │ │ │ │ │ └── operations.tsx │ │ │ │ │ ├── tag │ │ │ │ │ │ ├── empty.tsx │ │ │ │ │ │ ├── index.tsx │ │ │ │ │ │ ├── operations.tsx │ │ │ │ │ │ └── styles.css.ts │ │ │ │ │ └── types.ts │ │ │ │ │ ├── sections │ │ │ │ │ ├── collections │ │ │ │ │ │ ├── empty.tsx │ │ │ │ │ │ ├── index.css.ts │ │ │ │ │ │ └── index.tsx │ │ │ │ │ ├── favorites │ │ │ │ │ │ ├── dnd.ts │ │ │ │ │ │ ├── empty.tsx │ │ │ │ │ │ └── index.tsx │ │ │ │ │ ├── migration-favorites │ │ │ │ │ │ ├── index.tsx │ │ │ │ │ │ └── styles.css.ts │ │ │ │ │ ├── organize │ │ │ │ │ │ ├── dnd.ts │ │ │ │ │ │ ├── empty.tsx │ │ │ │ │ │ └── index.tsx │ │ │ │ │ └── tags │ │ │ │ │ │ ├── empty.tsx │ │ │ │ │ │ ├── index.tsx │ │ │ │ │ │ └── styles.css.ts │ │ │ │ │ └── tree │ │ │ │ │ ├── context.tsx │ │ │ │ │ ├── drop-effect.css.ts │ │ │ │ │ ├── drop-effect.tsx │ │ │ │ │ ├── index.tsx │ │ │ │ │ ├── node.css.ts │ │ │ │ │ ├── node.tsx │ │ │ │ │ ├── root.css.ts │ │ │ │ │ ├── root.tsx │ │ │ │ │ └── types.ts │ │ │ ├── dialogs │ │ │ │ ├── change-password │ │ │ │ │ └── index.tsx │ │ │ │ ├── collection-editor │ │ │ │ │ ├── edit-collection.css.ts │ │ │ │ │ ├── edit-collection.tsx │ │ │ │ │ ├── index.tsx │ │ │ │ │ └── rules-mode.tsx │ │ │ │ ├── create-workspace │ │ │ │ │ ├── index.css.ts │ │ │ │ │ ├── index.tsx │ │ │ │ │ ├── server-selector.css.ts │ │ │ │ │ └── server-selector.tsx │ │ │ │ ├── deleted-account │ │ │ │ │ ├── index.css.ts │ │ │ │ │ └── index.tsx │ │ │ │ ├── doc-info │ │ │ │ │ ├── index.tsx │ │ │ │ │ ├── info-modal.css.ts │ │ │ │ │ ├── info-modal.tsx │ │ │ │ │ ├── links-row.css.ts │ │ │ │ │ ├── links-row.tsx │ │ │ │ │ ├── styles.css.ts │ │ │ │ │ ├── time-row.css.ts │ │ │ │ │ └── time-row.tsx │ │ │ │ ├── enable-cloud │ │ │ │ │ ├── dialog.css.ts │ │ │ │ │ └── index.tsx │ │ │ │ ├── import-template │ │ │ │ │ ├── dialog.css.ts │ │ │ │ │ └── index.tsx │ │ │ │ ├── import-workspace │ │ │ │ │ ├── dialog.css.ts │ │ │ │ │ └── index.tsx │ │ │ │ ├── import │ │ │ │ │ ├── index.tsx │ │ │ │ │ └── styles.css.ts │ │ │ │ ├── index.tsx │ │ │ │ ├── selectors │ │ │ │ │ ├── collection.tsx │ │ │ │ │ ├── date.tsx │ │ │ │ │ ├── doc.tsx │ │ │ │ │ └── tag.tsx │ │ │ │ ├── setting │ │ │ │ │ ├── account-setting │ │ │ │ │ │ ├── ai-usage-panel.tsx │ │ │ │ │ │ ├── delete-account.tsx │ │ │ │ │ │ ├── index.tsx │ │ │ │ │ │ ├── storage-progress.css.ts │ │ │ │ │ │ ├── storage-progress.tsx │ │ │ │ │ │ └── style.css.ts │ │ │ │ │ ├── general-setting │ │ │ │ │ │ ├── about │ │ │ │ │ │ │ ├── config.tsx │ │ │ │ │ │ │ ├── icons.tsx │ │ │ │ │ │ │ ├── index.tsx │ │ │ │ │ │ │ ├── style.css.ts │ │ │ │ │ │ │ └── update-check-section.tsx │ │ │ │ │ │ ├── appearance │ │ │ │ │ │ │ ├── index.tsx │ │ │ │ │ │ │ ├── links.css.ts │ │ │ │ │ │ │ ├── links.tsx │ │ │ │ │ │ │ ├── style.css.ts │ │ │ │ │ │ │ └── theme-editor-setting.tsx │ │ │ │ │ │ ├── backup │ │ │ │ │ │ │ ├── index.tsx │ │ │ │ │ │ │ └── styles.css.ts │ │ │ │ │ │ ├── billing │ │ │ │ │ │ │ ├── ai-plan-card.tsx │ │ │ │ │ │ │ ├── biliever-identifier.tsx │ │ │ │ │ │ │ ├── billing-history.tsx │ │ │ │ │ │ │ ├── card-name-label-row.tsx │ │ │ │ │ │ │ ├── index.tsx │ │ │ │ │ │ │ ├── payment-method.tsx │ │ │ │ │ │ │ ├── pro-plan-card.tsx │ │ │ │ │ │ │ ├── style.css.ts │ │ │ │ │ │ │ └── typeform-link.tsx │ │ │ │ │ │ ├── editor │ │ │ │ │ │ │ ├── edgeless │ │ │ │ │ │ │ │ ├── connector.tsx │ │ │ │ │ │ │ │ ├── docs │ │ │ │ │ │ │ │ │ ├── connector.json │ │ │ │ │ │ │ │ │ ├── flow.json │ │ │ │ │ │ │ │ │ ├── frame.json │ │ │ │ │ │ │ │ │ ├── index.ts │ │ │ │ │ │ │ │ │ ├── mindmap.json │ │ │ │ │ │ │ │ │ ├── note.json │ │ │ │ │ │ │ │ │ ├── pen.json │ │ │ │ │ │ │ │ │ ├── shape.json │ │ │ │ │ │ │ │ │ └── text.json │ │ │ │ │ │ │ │ ├── edgeless.tsx │ │ │ │ │ │ │ │ ├── frame.tsx │ │ │ │ │ │ │ │ ├── general.tsx │ │ │ │ │ │ │ │ ├── index.ts │ │ │ │ │ │ │ │ ├── mind-map.tsx │ │ │ │ │ │ │ │ ├── note.tsx │ │ │ │ │ │ │ │ ├── pen.tsx │ │ │ │ │ │ │ │ ├── point.tsx │ │ │ │ │ │ │ │ ├── shape.tsx │ │ │ │ │ │ │ │ ├── snapshot.tsx │ │ │ │ │ │ │ │ ├── text.tsx │ │ │ │ │ │ │ │ └── utils.ts │ │ │ │ │ │ │ ├── general.tsx │ │ │ │ │ │ │ ├── index.tsx │ │ │ │ │ │ │ ├── menu.tsx │ │ │ │ │ │ │ ├── page.tsx │ │ │ │ │ │ │ ├── preferences.tsx │ │ │ │ │ │ │ ├── style.css.ts │ │ │ │ │ │ │ └── utils.ts │ │ │ │ │ │ ├── experimental-features │ │ │ │ │ │ │ ├── arts.css.ts │ │ │ │ │ │ │ ├── arts.tsx │ │ │ │ │ │ │ ├── dark-art-svg.ts │ │ │ │ │ │ │ ├── index.css.ts │ │ │ │ │ │ │ ├── index.tsx │ │ │ │ │ │ │ └── light-art-svg.ts │ │ │ │ │ │ ├── icons.tsx │ │ │ │ │ │ ├── index.tsx │ │ │ │ │ │ ├── meetings │ │ │ │ │ │ │ ├── index.tsx │ │ │ │ │ │ │ ├── meeting-apps.dark.assets.svg │ │ │ │ │ │ │ ├── meeting-apps.light.assets.svg │ │ │ │ │ │ │ ├── styles.css.ts │ │ │ │ │ │ │ ├── use-enable-recording.ts │ │ │ │ │ │ │ ├── welcome-page.css.ts │ │ │ │ │ │ │ └── welcome-page.tsx │ │ │ │ │ │ ├── notifications │ │ │ │ │ │ │ ├── index.tsx │ │ │ │ │ │ │ └── style.css.ts │ │ │ │ │ │ ├── plans │ │ │ │ │ │ │ ├── actions.tsx │ │ │ │ │ │ │ ├── ai │ │ │ │ │ │ │ │ ├── actions │ │ │ │ │ │ │ │ │ ├── cancel.tsx │ │ │ │ │ │ │ │ │ ├── index.ts │ │ │ │ │ │ │ │ │ ├── login.tsx │ │ │ │ │ │ │ │ │ ├── redeem.tsx │ │ │ │ │ │ │ │ │ ├── resume.tsx │ │ │ │ │ │ │ │ │ └── subscribe.tsx │ │ │ │ │ │ │ │ ├── ai-plan.css.ts │ │ │ │ │ │ │ │ ├── ai-plan.tsx │ │ │ │ │ │ │ │ ├── benefits.tsx │ │ │ │ │ │ │ │ └── layout.tsx │ │ │ │ │ │ │ ├── checkout-slot.tsx │ │ │ │ │ │ │ ├── cloud-plans.tsx │ │ │ │ │ │ │ ├── icons │ │ │ │ │ │ │ │ └── bulled-list.tsx │ │ │ │ │ │ │ ├── index.tsx │ │ │ │ │ │ │ ├── layout.css.ts │ │ │ │ │ │ │ ├── layout.tsx │ │ │ │ │ │ │ ├── lifetime │ │ │ │ │ │ │ │ ├── assets.ts │ │ │ │ │ │ │ │ ├── believer-card.css.ts │ │ │ │ │ │ │ │ ├── believer-card.tsx │ │ │ │ │ │ │ │ ├── benefits.css.ts │ │ │ │ │ │ │ │ ├── benefits.tsx │ │ │ │ │ │ │ │ ├── lifetime-plan.tsx │ │ │ │ │ │ │ │ └── style.css.ts │ │ │ │ │ │ │ ├── modals.tsx │ │ │ │ │ │ │ ├── plan-card.tsx │ │ │ │ │ │ │ ├── skeleton.css.ts │ │ │ │ │ │ │ ├── skeleton.tsx │ │ │ │ │ │ │ └── style.css.ts │ │ │ │ │ │ └── shortcuts │ │ │ │ │ │ │ ├── index.tsx │ │ │ │ │ │ │ └── style.css.ts │ │ │ │ │ ├── index.tsx │ │ │ │ │ ├── issue-feedback-modal │ │ │ │ │ │ └── index.tsx │ │ │ │ │ ├── setting-sidebar │ │ │ │ │ │ ├── index.tsx │ │ │ │ │ │ └── style.css.ts │ │ │ │ │ ├── star-affine-modal │ │ │ │ │ │ └── index.tsx │ │ │ │ │ ├── style.css.ts │ │ │ │ │ ├── sub-page.css.ts │ │ │ │ │ ├── sub-page.tsx │ │ │ │ │ ├── types.ts │ │ │ │ │ └── workspace-setting │ │ │ │ │ │ ├── billing │ │ │ │ │ │ ├── billing-history.tsx │ │ │ │ │ │ ├── card-name-label-row.tsx │ │ │ │ │ │ ├── index.tsx │ │ │ │ │ │ ├── payment-method.tsx │ │ │ │ │ │ ├── styles.css.ts │ │ │ │ │ │ ├── team-card.tsx │ │ │ │ │ │ └── typeform-link.tsx │ │ │ │ │ │ ├── index.tsx │ │ │ │ │ │ ├── integration │ │ │ │ │ │ ├── calendar │ │ │ │ │ │ │ ├── setting-panel.css.ts │ │ │ │ │ │ │ ├── setting-panel.tsx │ │ │ │ │ │ │ ├── subscription-setting.css.ts │ │ │ │ │ │ │ └── subscription-setting.tsx │ │ │ │ │ │ ├── card.css.ts │ │ │ │ │ │ ├── card.tsx │ │ │ │ │ │ ├── constants.tsx │ │ │ │ │ │ ├── index.css.ts │ │ │ │ │ │ ├── index.tsx │ │ │ │ │ │ ├── mcp-server │ │ │ │ │ │ │ ├── MCP.inline.svg │ │ │ │ │ │ │ ├── setting-panel.css.ts │ │ │ │ │ │ │ └── setting-panel.tsx │ │ │ │ │ │ ├── readwise │ │ │ │ │ │ │ ├── connect.tsx │ │ │ │ │ │ │ ├── connected.css.ts │ │ │ │ │ │ │ ├── connected.tsx │ │ │ │ │ │ │ ├── import-dialog.css.ts │ │ │ │ │ │ │ ├── import-dialog.tsx │ │ │ │ │ │ │ ├── index.css.ts │ │ │ │ │ │ │ ├── setting-panel.css.ts │ │ │ │ │ │ │ ├── setting-panel.tsx │ │ │ │ │ │ │ └── track.ts │ │ │ │ │ │ ├── setting.css.ts │ │ │ │ │ │ └── setting.tsx │ │ │ │ │ │ ├── license │ │ │ │ │ │ ├── index.tsx │ │ │ │ │ │ ├── self-host-team-card.tsx │ │ │ │ │ │ ├── self-host-team-plan.css.ts │ │ │ │ │ │ ├── self-host-team-plan.tsx │ │ │ │ │ │ ├── styles.css.ts │ │ │ │ │ │ ├── upload-license-modal.css.ts │ │ │ │ │ │ └── upload-license-modal.tsx │ │ │ │ │ │ ├── members │ │ │ │ │ │ ├── cloud-members-panel.tsx │ │ │ │ │ │ ├── confirm-assign-modal.tsx │ │ │ │ │ │ ├── index.tsx │ │ │ │ │ │ ├── member-list.tsx │ │ │ │ │ │ ├── member-option.tsx │ │ │ │ │ │ └── styles.css.ts │ │ │ │ │ │ ├── preference │ │ │ │ │ │ ├── ai.tsx │ │ │ │ │ │ ├── delete-leave-workspace │ │ │ │ │ │ │ ├── delete │ │ │ │ │ │ │ │ ├── index.tsx │ │ │ │ │ │ │ │ └── style.css.ts │ │ │ │ │ │ │ └── index.tsx │ │ │ │ │ │ ├── enable-cloud.tsx │ │ │ │ │ │ ├── index.tsx │ │ │ │ │ │ ├── labels.tsx │ │ │ │ │ │ ├── profile.tsx │ │ │ │ │ │ ├── sharing.tsx │ │ │ │ │ │ ├── style.css.ts │ │ │ │ │ │ ├── template.css.ts │ │ │ │ │ │ ├── template.tsx │ │ │ │ │ │ └── types.ts │ │ │ │ │ │ ├── properties │ │ │ │ │ │ ├── index.tsx │ │ │ │ │ │ └── styles.css.ts │ │ │ │ │ │ └── storage │ │ │ │ │ │ ├── blob-management.tsx │ │ │ │ │ │ ├── export.tsx │ │ │ │ │ │ ├── index.tsx │ │ │ │ │ │ ├── style.css.ts │ │ │ │ │ │ └── workspace-quota.tsx │ │ │ │ ├── sign-in │ │ │ │ │ └── index.tsx │ │ │ │ └── verify-email │ │ │ │ │ └── index.tsx │ │ │ ├── pages │ │ │ │ ├── 404 │ │ │ │ │ └── index.tsx │ │ │ │ ├── ai-upgrade-success │ │ │ │ │ ├── index.tsx │ │ │ │ │ └── styles.css.ts │ │ │ │ ├── auth │ │ │ │ │ ├── auth.tsx │ │ │ │ │ ├── common.ts │ │ │ │ │ ├── confirm-change-email.tsx │ │ │ │ │ ├── email-verified-email.tsx │ │ │ │ │ ├── magic-link.tsx │ │ │ │ │ ├── oauth-callback.tsx │ │ │ │ │ ├── oauth-login.tsx │ │ │ │ │ └── sign-in.tsx │ │ │ │ ├── expired │ │ │ │ │ └── index.tsx │ │ │ │ ├── import-clipper │ │ │ │ │ ├── index.tsx │ │ │ │ │ └── style.css.ts │ │ │ │ ├── import-template │ │ │ │ │ └── index.tsx │ │ │ │ ├── index │ │ │ │ │ └── index.tsx │ │ │ │ ├── invite │ │ │ │ │ └── index.tsx │ │ │ │ ├── onboarding │ │ │ │ │ └── index.tsx │ │ │ │ ├── open-app │ │ │ │ │ ├── index.tsx │ │ │ │ │ └── open-app.css.ts │ │ │ │ ├── redirect │ │ │ │ │ └── index.tsx │ │ │ │ ├── root │ │ │ │ │ ├── custom-theme │ │ │ │ │ │ └── index.tsx │ │ │ │ │ ├── find-in-page │ │ │ │ │ │ ├── find-in-page-popup.css.ts │ │ │ │ │ │ └── find-in-page-popup.tsx │ │ │ │ │ ├── global-loading │ │ │ │ │ │ ├── index.css.ts │ │ │ │ │ │ └── index.tsx │ │ │ │ │ └── index.tsx │ │ │ │ ├── subscribe │ │ │ │ │ ├── index.tsx │ │ │ │ │ └── subscribe.css.ts │ │ │ │ ├── theme-editor │ │ │ │ │ ├── components │ │ │ │ │ │ ├── color-cell.tsx │ │ │ │ │ │ ├── empty.tsx │ │ │ │ │ │ ├── simple-color-picker.css.ts │ │ │ │ │ │ ├── simple-color-picker.tsx │ │ │ │ │ │ ├── string-cell.css.ts │ │ │ │ │ │ ├── string-cell.tsx │ │ │ │ │ │ ├── tree-node.tsx │ │ │ │ │ │ └── variable-list.tsx │ │ │ │ │ ├── index.tsx │ │ │ │ │ ├── resource.ts │ │ │ │ │ ├── theme-editor.css.ts │ │ │ │ │ ├── theme-editor.tsx │ │ │ │ │ └── utils.ts │ │ │ │ ├── upgrade-success │ │ │ │ │ ├── index.tsx │ │ │ │ │ ├── self-host-team │ │ │ │ │ │ ├── index.tsx │ │ │ │ │ │ └── styles.css.ts │ │ │ │ │ ├── styles.css.ts │ │ │ │ │ └── team │ │ │ │ │ │ ├── index.tsx │ │ │ │ │ │ └── styles.css.ts │ │ │ │ ├── upgrade-to-team │ │ │ │ │ ├── index.tsx │ │ │ │ │ └── styles.css.ts │ │ │ │ └── workspace │ │ │ │ │ ├── all-collection │ │ │ │ │ ├── header.css.ts │ │ │ │ │ ├── header.tsx │ │ │ │ │ ├── index.css.ts │ │ │ │ │ └── index.tsx │ │ │ │ │ ├── all-page │ │ │ │ │ ├── all-page-header.css.ts │ │ │ │ │ ├── all-page-header.tsx │ │ │ │ │ ├── all-page.css.ts │ │ │ │ │ ├── all-page.tsx │ │ │ │ │ ├── dark-migration.png │ │ │ │ │ ├── light-migration.png │ │ │ │ │ ├── migration-data.css.ts │ │ │ │ │ ├── migration-data.tsx │ │ │ │ │ ├── pinned-collections.css.ts │ │ │ │ │ └── pinned-collections.tsx │ │ │ │ │ ├── all-tag │ │ │ │ │ ├── all-tag.css.ts │ │ │ │ │ ├── header.tsx │ │ │ │ │ └── index.tsx │ │ │ │ │ ├── attachment │ │ │ │ │ ├── index.css.ts │ │ │ │ │ └── index.tsx │ │ │ │ │ ├── chat │ │ │ │ │ ├── index.css.ts │ │ │ │ │ └── index.tsx │ │ │ │ │ ├── collection │ │ │ │ │ ├── collection.css.ts │ │ │ │ │ ├── header.tsx │ │ │ │ │ ├── index.css.ts │ │ │ │ │ ├── index.tsx │ │ │ │ │ └── list-header.tsx │ │ │ │ │ ├── detail-page │ │ │ │ │ ├── detail-page-header.css.ts │ │ │ │ │ ├── detail-page-header.tsx │ │ │ │ │ ├── detail-page-wrapper.tsx │ │ │ │ │ ├── detail-page.css.ts │ │ │ │ │ ├── detail-page.tsx │ │ │ │ │ ├── index.ts │ │ │ │ │ ├── tabs │ │ │ │ │ │ ├── adapter.css.ts │ │ │ │ │ │ ├── adapter.tsx │ │ │ │ │ │ ├── chat.css.ts │ │ │ │ │ │ ├── chat.tsx │ │ │ │ │ │ ├── frame.css.ts │ │ │ │ │ │ ├── frame.tsx │ │ │ │ │ │ ├── journal │ │ │ │ │ │ │ ├── assets.ts │ │ │ │ │ │ │ ├── calendar-events.css.ts │ │ │ │ │ │ │ ├── calendar-events.tsx │ │ │ │ │ │ │ ├── index.tsx │ │ │ │ │ │ │ ├── journal.css.ts │ │ │ │ │ │ │ ├── template-onboarding.css.ts │ │ │ │ │ │ │ ├── template-onboarding.tsx │ │ │ │ │ │ │ ├── template-setting.css.ts │ │ │ │ │ │ │ └── template-setting.tsx │ │ │ │ │ │ ├── outline.css.ts │ │ │ │ │ │ └── outline.tsx │ │ │ │ │ └── use-header-responsive.ts │ │ │ │ │ ├── index.tsx │ │ │ │ │ ├── journals │ │ │ │ │ ├── index.css.ts │ │ │ │ │ └── index.tsx │ │ │ │ │ ├── layouts │ │ │ │ │ ├── all-doc-sidebar-tabs.tsx │ │ │ │ │ └── workspace-layout.tsx │ │ │ │ │ ├── page-list-empty.css.ts │ │ │ │ │ ├── page-list-empty.tsx │ │ │ │ │ ├── settings │ │ │ │ │ └── index.tsx │ │ │ │ │ ├── share │ │ │ │ │ ├── share-footer.css.ts │ │ │ │ │ ├── share-footer.tsx │ │ │ │ │ ├── share-header.css.ts │ │ │ │ │ ├── share-header.tsx │ │ │ │ │ ├── share-page.css.ts │ │ │ │ │ └── share-page.tsx │ │ │ │ │ ├── tag │ │ │ │ │ ├── header.tsx │ │ │ │ │ ├── index.css.ts │ │ │ │ │ ├── index.tsx │ │ │ │ │ ├── list-header.css.ts │ │ │ │ │ └── list-header.tsx │ │ │ │ │ ├── trash-page.css.ts │ │ │ │ │ └── trash-page.tsx │ │ │ ├── router.tsx │ │ │ ├── storage.ts │ │ │ └── workbench-router.ts │ │ ├── mobile │ │ │ ├── components │ │ │ │ ├── README.md │ │ │ │ ├── app-fallback │ │ │ │ │ └── index.tsx │ │ │ │ ├── app-tabs │ │ │ │ │ ├── constants.ts │ │ │ │ │ ├── create.tsx │ │ │ │ │ ├── data.tsx │ │ │ │ │ ├── index.tsx │ │ │ │ │ ├── journal.tsx │ │ │ │ │ ├── styles.css.ts │ │ │ │ │ ├── tab-item.tsx │ │ │ │ │ └── type.ts │ │ │ │ ├── doc-card │ │ │ │ │ ├── index.tsx │ │ │ │ │ ├── styles.css.tsx │ │ │ │ │ ├── tag.css.ts │ │ │ │ │ └── tag.tsx │ │ │ │ ├── doc-info │ │ │ │ │ ├── doc-info.css.ts │ │ │ │ │ ├── doc-info.tsx │ │ │ │ │ ├── doc-scope.tsx │ │ │ │ │ └── index.ts │ │ │ │ ├── index.ts │ │ │ │ ├── navigation-back │ │ │ │ │ └── index.tsx │ │ │ │ ├── navigation │ │ │ │ │ ├── index.ts │ │ │ │ │ ├── layouts │ │ │ │ │ │ ├── add-item-placeholder.css.ts │ │ │ │ │ │ ├── add-item-placeholder.tsx │ │ │ │ │ │ ├── collapsible-section.css.ts │ │ │ │ │ │ └── collapsible-section.tsx │ │ │ │ │ ├── nodes │ │ │ │ │ │ ├── collection │ │ │ │ │ │ │ ├── dialog.tsx │ │ │ │ │ │ │ ├── index.tsx │ │ │ │ │ │ │ └── operations.tsx │ │ │ │ │ │ ├── doc │ │ │ │ │ │ │ ├── dialog.tsx │ │ │ │ │ │ │ ├── index.tsx │ │ │ │ │ │ │ ├── operations.tsx │ │ │ │ │ │ │ └── styles.css.ts │ │ │ │ │ │ ├── folder │ │ │ │ │ │ │ ├── dialog.tsx │ │ │ │ │ │ │ ├── index.tsx │ │ │ │ │ │ │ └── operations.tsx │ │ │ │ │ │ └── tag │ │ │ │ │ │ │ ├── dialog.css.ts │ │ │ │ │ │ │ ├── dialog.tsx │ │ │ │ │ │ │ ├── index.tsx │ │ │ │ │ │ │ ├── operations.tsx │ │ │ │ │ │ │ └── styles.css.ts │ │ │ │ │ ├── sections │ │ │ │ │ │ ├── collections │ │ │ │ │ │ │ ├── index.css.ts │ │ │ │ │ │ │ └── index.tsx │ │ │ │ │ │ ├── favorites │ │ │ │ │ │ │ ├── index.tsx │ │ │ │ │ │ │ └── loading.tsx │ │ │ │ │ │ ├── organize │ │ │ │ │ │ │ └── index.tsx │ │ │ │ │ │ └── tags │ │ │ │ │ │ │ └── index.tsx │ │ │ │ │ └── tree │ │ │ │ │ │ ├── node.css.ts │ │ │ │ │ │ ├── node.tsx │ │ │ │ │ │ ├── root.css.ts │ │ │ │ │ │ └── root.tsx │ │ │ │ ├── page-header │ │ │ │ │ ├── index.tsx │ │ │ │ │ └── styles.css.ts │ │ │ │ ├── page │ │ │ │ │ ├── index.tsx │ │ │ │ │ └── styles.css.ts │ │ │ │ ├── rename │ │ │ │ │ ├── content.css.ts │ │ │ │ │ ├── content.tsx │ │ │ │ │ ├── dialog.css.ts │ │ │ │ │ ├── dialog.tsx │ │ │ │ │ ├── index.tsx │ │ │ │ │ ├── sub-menu.tsx │ │ │ │ │ └── type.ts │ │ │ │ ├── search-input │ │ │ │ │ ├── index.tsx │ │ │ │ │ └── style.css.ts │ │ │ │ ├── search-result │ │ │ │ │ ├── index.ts │ │ │ │ │ ├── search-res-label.tsx │ │ │ │ │ ├── universal-item.css.ts │ │ │ │ │ └── universal-item.tsx │ │ │ │ ├── sign-in │ │ │ │ │ ├── art-dark.inline.svg │ │ │ │ │ ├── art-light.inline.svg │ │ │ │ │ ├── background.css.ts │ │ │ │ │ ├── background.tsx │ │ │ │ │ ├── index.tsx │ │ │ │ │ ├── layout.css.ts │ │ │ │ │ └── layout.tsx │ │ │ │ ├── swipe-menu │ │ │ │ │ ├── index.tsx │ │ │ │ │ └── styles.css.ts │ │ │ │ ├── toc-menu │ │ │ │ │ └── index.tsx │ │ │ │ ├── user-plan-tag │ │ │ │ │ ├── index.tsx │ │ │ │ │ └── style.css.ts │ │ │ │ └── workspace-selector │ │ │ │ │ ├── card.css.ts │ │ │ │ │ ├── current-card.tsx │ │ │ │ │ ├── index.tsx │ │ │ │ │ ├── menu.css.ts │ │ │ │ │ └── menu.tsx │ │ │ ├── dialogs │ │ │ │ ├── index.tsx │ │ │ │ ├── selectors │ │ │ │ │ ├── collection-selector.tsx │ │ │ │ │ ├── date-selector.tsx │ │ │ │ │ ├── doc-selector.tsx │ │ │ │ │ ├── generic-selector.tsx │ │ │ │ │ ├── generic.css.ts │ │ │ │ │ └── tag-selector.tsx │ │ │ │ ├── setting │ │ │ │ │ ├── about │ │ │ │ │ │ └── index.tsx │ │ │ │ │ ├── appearance │ │ │ │ │ │ ├── font.tsx │ │ │ │ │ │ ├── index.tsx │ │ │ │ │ │ ├── language.tsx │ │ │ │ │ │ └── theme.tsx │ │ │ │ │ ├── dropdown-select.css.ts │ │ │ │ │ ├── dropdown-select.tsx │ │ │ │ │ ├── experimental │ │ │ │ │ │ ├── index.tsx │ │ │ │ │ │ └── styles.css.ts │ │ │ │ │ ├── group.css.ts │ │ │ │ │ ├── group.tsx │ │ │ │ │ ├── index.tsx │ │ │ │ │ ├── others │ │ │ │ │ │ ├── delete-account.css.ts │ │ │ │ │ │ ├── delete-account.tsx │ │ │ │ │ │ ├── index.css.ts │ │ │ │ │ │ └── index.tsx │ │ │ │ │ ├── row.layout.tsx │ │ │ │ │ ├── style.css.ts │ │ │ │ │ ├── subscription │ │ │ │ │ │ ├── index.tsx │ │ │ │ │ │ └── styles.css.ts │ │ │ │ │ ├── swipe-dialog.css.ts │ │ │ │ │ ├── swipe-dialog.tsx │ │ │ │ │ ├── user-profile │ │ │ │ │ │ ├── index.tsx │ │ │ │ │ │ └── style.css.ts │ │ │ │ │ └── user-usage │ │ │ │ │ │ ├── index.tsx │ │ │ │ │ │ └── style.css.ts │ │ │ │ └── sign-in │ │ │ │ │ └── index.tsx │ │ │ ├── hooks │ │ │ │ └── use-global-events.ts │ │ │ ├── modules │ │ │ │ ├── haptics │ │ │ │ │ ├── index.ts │ │ │ │ │ ├── providers │ │ │ │ │ │ └── haptic.ts │ │ │ │ │ └── services │ │ │ │ │ │ └── haptics.ts │ │ │ │ ├── index.ts │ │ │ │ ├── navigation-gesture │ │ │ │ │ ├── index.ts │ │ │ │ │ ├── providers │ │ │ │ │ │ └── navigation-gesture.ts │ │ │ │ │ └── services │ │ │ │ │ │ └── navigation-gesture.ts │ │ │ │ ├── search │ │ │ │ │ ├── index.ts │ │ │ │ │ └── service │ │ │ │ │ │ └── search.ts │ │ │ │ └── virtual-keyboard │ │ │ │ │ ├── index.ts │ │ │ │ │ ├── providers │ │ │ │ │ └── virtual-keyboard.ts │ │ │ │ │ └── services │ │ │ │ │ └── virtual-keyboard.ts │ │ │ ├── pages │ │ │ │ ├── 404.tsx │ │ │ │ ├── auth.tsx │ │ │ │ ├── index.tsx │ │ │ │ ├── root │ │ │ │ │ └── index.tsx │ │ │ │ ├── sign-in.tsx │ │ │ │ └── workspace │ │ │ │ │ ├── all.tsx │ │ │ │ │ ├── collection │ │ │ │ │ ├── detail.tsx │ │ │ │ │ └── index.tsx │ │ │ │ │ ├── detail │ │ │ │ │ ├── journal-conflict-block.css.ts │ │ │ │ │ ├── journal-conflict-block.tsx │ │ │ │ │ ├── journal-date-picker │ │ │ │ │ │ ├── constants.ts │ │ │ │ │ │ ├── context.ts │ │ │ │ │ │ ├── day-cell.css.ts │ │ │ │ │ │ ├── day-cell.tsx │ │ │ │ │ │ ├── index.tsx │ │ │ │ │ │ ├── month.css.ts │ │ │ │ │ │ ├── month.tsx │ │ │ │ │ │ ├── utils.ts │ │ │ │ │ │ ├── viewport.css.ts │ │ │ │ │ │ ├── viewport.tsx │ │ │ │ │ │ ├── week.css.ts │ │ │ │ │ │ └── week.tsx │ │ │ │ │ ├── menu │ │ │ │ │ │ ├── journal-conflicts.css.ts │ │ │ │ │ │ ├── journal-conflicts.tsx │ │ │ │ │ │ ├── journal-today-activity.css.ts │ │ │ │ │ │ ├── journal-today-activity.tsx │ │ │ │ │ │ ├── mode-switch.css.ts │ │ │ │ │ │ └── mode-switch.tsx │ │ │ │ │ ├── mobile-detail-page.css.ts │ │ │ │ │ ├── mobile-detail-page.tsx │ │ │ │ │ ├── page-header-more-button.css.ts │ │ │ │ │ ├── page-header-more-button.tsx │ │ │ │ │ ├── page-header-share-button.css.ts │ │ │ │ │ └── page-header-share-button.tsx │ │ │ │ │ ├── home.tsx │ │ │ │ │ ├── index.tsx │ │ │ │ │ ├── journals.css.ts │ │ │ │ │ ├── journals.tsx │ │ │ │ │ ├── layout.tsx │ │ │ │ │ ├── search.tsx │ │ │ │ │ ├── tag │ │ │ │ │ ├── detail.tsx │ │ │ │ │ └── index.tsx │ │ │ │ │ ├── trash.tsx │ │ │ │ │ └── workbench-root.tsx │ │ │ ├── router.tsx │ │ │ ├── styles │ │ │ │ ├── mobile.css.ts │ │ │ │ └── variables.css.ts │ │ │ ├── utils │ │ │ │ ├── index.ts │ │ │ │ └── swipe-helper.ts │ │ │ ├── views │ │ │ │ ├── README.md │ │ │ │ ├── all-docs │ │ │ │ │ ├── collection │ │ │ │ │ │ ├── detail.css.ts │ │ │ │ │ │ ├── detail.tsx │ │ │ │ │ │ ├── empty.tsx │ │ │ │ │ │ ├── index.ts │ │ │ │ │ │ ├── item.tsx │ │ │ │ │ │ ├── list.tsx │ │ │ │ │ │ └── styles.css.ts │ │ │ │ │ ├── header.tsx │ │ │ │ │ ├── index.ts │ │ │ │ │ ├── style.css.ts │ │ │ │ │ ├── tabs.tsx │ │ │ │ │ └── tag │ │ │ │ │ │ ├── detail-header.tsx │ │ │ │ │ │ ├── detail.css.ts │ │ │ │ │ │ ├── detail.tsx │ │ │ │ │ │ ├── empty.tsx │ │ │ │ │ │ ├── index.ts │ │ │ │ │ │ ├── item.tsx │ │ │ │ │ │ ├── list.tsx │ │ │ │ │ │ └── styles.css.ts │ │ │ │ ├── home-header │ │ │ │ │ ├── index.tsx │ │ │ │ │ └── styles.css.ts │ │ │ │ ├── index.ts │ │ │ │ ├── recent-docs │ │ │ │ │ ├── index.tsx │ │ │ │ │ └── styles.css.ts │ │ │ │ └── search │ │ │ │ │ ├── search-results.tsx │ │ │ │ │ └── style.css.ts │ │ │ └── workbench-router.ts │ │ ├── modules │ │ │ ├── ai-button │ │ │ │ ├── index.ts │ │ │ │ ├── provider │ │ │ │ │ └── ai-button.ts │ │ │ │ └── services │ │ │ │ │ ├── ai-button.ts │ │ │ │ │ ├── ai-draft.ts │ │ │ │ │ ├── models.ts │ │ │ │ │ ├── network-search.ts │ │ │ │ │ ├── playground.ts │ │ │ │ │ ├── reasoning.ts │ │ │ │ │ └── tools-config.ts │ │ │ ├── app-sidebar │ │ │ │ ├── entities │ │ │ │ │ ├── __tests__ │ │ │ │ │ │ └── app-sidebar.spec.ts │ │ │ │ │ └── app-sidebar.ts │ │ │ │ ├── impls │ │ │ │ │ └── storage.ts │ │ │ │ ├── index.ts │ │ │ │ ├── providers │ │ │ │ │ └── storage.ts │ │ │ │ ├── services │ │ │ │ │ └── app-sidebar.ts │ │ │ │ └── views │ │ │ │ │ ├── add-page-button │ │ │ │ │ ├── index.css.ts │ │ │ │ │ └── index.tsx │ │ │ │ │ ├── app-download-button │ │ │ │ │ ├── index.css.ts │ │ │ │ │ └── index.tsx │ │ │ │ │ ├── app-updater-button │ │ │ │ │ ├── dot-animation.svg │ │ │ │ │ ├── index.css.ts │ │ │ │ │ └── index.tsx │ │ │ │ │ ├── category-divider │ │ │ │ │ ├── index.css.ts │ │ │ │ │ ├── index.stories.tsx │ │ │ │ │ └── index.tsx │ │ │ │ │ ├── fallback.css.ts │ │ │ │ │ ├── index.css.ts │ │ │ │ │ ├── index.tsx │ │ │ │ │ ├── menu-item │ │ │ │ │ ├── external-menu-link-item.tsx │ │ │ │ │ ├── index.css.ts │ │ │ │ │ ├── index.stories.tsx │ │ │ │ │ └── index.tsx │ │ │ │ │ ├── open-in-app-card │ │ │ │ │ ├── index.tsx │ │ │ │ │ ├── open-in-app-card.css.ts │ │ │ │ │ └── open-in-app-card.tsx │ │ │ │ │ ├── quick-search-input │ │ │ │ │ ├── index.css.ts │ │ │ │ │ ├── index.stories.tsx │ │ │ │ │ └── index.tsx │ │ │ │ │ ├── sidebar-containers │ │ │ │ │ ├── index.css.ts │ │ │ │ │ └── index.tsx │ │ │ │ │ ├── sidebar-header │ │ │ │ │ ├── index.tsx │ │ │ │ │ ├── sidebar-switch.css.ts │ │ │ │ │ └── sidebar-switch.tsx │ │ │ │ │ └── spolight │ │ │ │ │ ├── index.css.ts │ │ │ │ │ ├── index.stories.tsx │ │ │ │ │ └── index.tsx │ │ │ ├── app-tabs-header │ │ │ │ ├── index.ts │ │ │ │ ├── services │ │ │ │ │ └── app-tabs-header-service.ts │ │ │ │ └── views │ │ │ │ │ ├── app-tabs-header.tsx │ │ │ │ │ └── styles.css.ts │ │ │ ├── at-menu-config │ │ │ │ ├── index.ts │ │ │ │ └── services │ │ │ │ │ └── index.ts │ │ │ ├── backup │ │ │ │ ├── index.ts │ │ │ │ └── services │ │ │ │ │ └── index.ts │ │ │ ├── blob-management │ │ │ │ ├── entity │ │ │ │ │ └── unused-blobs.ts │ │ │ │ ├── index.ts │ │ │ │ └── services │ │ │ │ │ └── index.ts │ │ │ ├── cloud │ │ │ │ ├── constant.ts │ │ │ │ ├── entities │ │ │ │ │ ├── cloud-doc-meta.ts │ │ │ │ │ ├── invoices.ts │ │ │ │ │ ├── server.ts │ │ │ │ │ ├── session.ts │ │ │ │ │ ├── subscription-prices.ts │ │ │ │ │ ├── subscription.ts │ │ │ │ │ ├── user-copilot-quota.ts │ │ │ │ │ ├── user-feature.ts │ │ │ │ │ ├── user-quota.ts │ │ │ │ │ ├── workspace-invoices.ts │ │ │ │ │ └── workspace-subscription.ts │ │ │ │ ├── events │ │ │ │ │ ├── account-changed.ts │ │ │ │ │ ├── account-logged-in.ts │ │ │ │ │ ├── account-logged-out.ts │ │ │ │ │ └── server-started.ts │ │ │ │ ├── impl │ │ │ │ │ └── auth.ts │ │ │ │ ├── index.ts │ │ │ │ ├── provider │ │ │ │ │ ├── auth.ts │ │ │ │ │ └── validator.ts │ │ │ │ ├── scopes │ │ │ │ │ └── server.ts │ │ │ │ ├── services │ │ │ │ │ ├── access-token.ts │ │ │ │ │ ├── auth.ts │ │ │ │ │ ├── blocksuite-writer-info.ts │ │ │ │ │ ├── captcha.ts │ │ │ │ │ ├── cloud-doc-meta.ts │ │ │ │ │ ├── default-server.ts │ │ │ │ │ ├── doc-created-by-updated-by-sync.ts │ │ │ │ │ ├── doc-created-by.ts │ │ │ │ │ ├── doc-updated-by.ts │ │ │ │ │ ├── eventsource.ts │ │ │ │ │ ├── fetch.ts │ │ │ │ │ ├── graphql.ts │ │ │ │ │ ├── invitation.ts │ │ │ │ │ ├── invoices.ts │ │ │ │ │ ├── public-user.ts │ │ │ │ │ ├── selfhost-generate-license.ts │ │ │ │ │ ├── selfhost-license.ts │ │ │ │ │ ├── server.ts │ │ │ │ │ ├── servers.ts │ │ │ │ │ ├── subscription.ts │ │ │ │ │ ├── user-copilot-quota.ts │ │ │ │ │ ├── user-feature.ts │ │ │ │ │ ├── user-quota.ts │ │ │ │ │ ├── user-settings.ts │ │ │ │ │ ├── workspace-invoices.ts │ │ │ │ │ ├── workspace-server.ts │ │ │ │ │ └── workspace-subscription.ts │ │ │ │ ├── stores │ │ │ │ │ ├── accept-invite.ts │ │ │ │ │ ├── access-token.ts │ │ │ │ │ ├── auth.ts │ │ │ │ │ ├── cloud-doc-meta.ts │ │ │ │ │ ├── doc-created-by-updated-by-sync.ts │ │ │ │ │ ├── invite-info.ts │ │ │ │ │ ├── invoices.ts │ │ │ │ │ ├── public-user.ts │ │ │ │ │ ├── selfhost-generate-license.ts │ │ │ │ │ ├── selfhost-license.ts │ │ │ │ │ ├── server-config.ts │ │ │ │ │ ├── server-list.ts │ │ │ │ │ ├── subscription.ts │ │ │ │ │ ├── user-copilot-quota.ts │ │ │ │ │ ├── user-feature.ts │ │ │ │ │ ├── user-quota.ts │ │ │ │ │ └── user-settings.ts │ │ │ │ ├── types.ts │ │ │ │ └── views │ │ │ │ │ ├── public-user.css.ts │ │ │ │ │ └── public-user.tsx │ │ │ ├── collection-rules │ │ │ │ ├── impls │ │ │ │ │ ├── filters │ │ │ │ │ │ ├── checkbox.ts │ │ │ │ │ │ ├── created-at.ts │ │ │ │ │ │ ├── created-by.ts │ │ │ │ │ │ ├── date.ts │ │ │ │ │ │ ├── doc-primary-mode.ts │ │ │ │ │ │ ├── edgeless-theme.ts │ │ │ │ │ │ ├── empty-journal.ts │ │ │ │ │ │ ├── favorite.ts │ │ │ │ │ │ ├── integration-type.ts │ │ │ │ │ │ ├── journal.ts │ │ │ │ │ │ ├── number.ts │ │ │ │ │ │ ├── page-width.ts │ │ │ │ │ │ ├── property.ts │ │ │ │ │ │ ├── shared.ts │ │ │ │ │ │ ├── system.ts │ │ │ │ │ │ ├── tags.ts │ │ │ │ │ │ ├── template.ts │ │ │ │ │ │ ├── text.ts │ │ │ │ │ │ ├── title.ts │ │ │ │ │ │ ├── trash.ts │ │ │ │ │ │ ├── updated-at.ts │ │ │ │ │ │ └── updated-by.ts │ │ │ │ │ ├── group-by │ │ │ │ │ │ ├── checkbox.ts │ │ │ │ │ │ ├── created-at.ts │ │ │ │ │ │ ├── created-by.ts │ │ │ │ │ │ ├── date.ts │ │ │ │ │ │ ├── doc-primary-mode.ts │ │ │ │ │ │ ├── edgeless-theme.ts │ │ │ │ │ │ ├── integration-type.ts │ │ │ │ │ │ ├── journal.ts │ │ │ │ │ │ ├── number.ts │ │ │ │ │ │ ├── page-width.ts │ │ │ │ │ │ ├── property.ts │ │ │ │ │ │ ├── system.ts │ │ │ │ │ │ ├── tags.ts │ │ │ │ │ │ ├── template.ts │ │ │ │ │ │ ├── text.ts │ │ │ │ │ │ ├── updated-at.ts │ │ │ │ │ │ └── updated-by.ts │ │ │ │ │ └── order-by │ │ │ │ │ │ ├── checkbox.ts │ │ │ │ │ │ ├── created-at.ts │ │ │ │ │ │ ├── created-by.ts │ │ │ │ │ │ ├── date.ts │ │ │ │ │ │ ├── doc-primary-mode.ts │ │ │ │ │ │ ├── edgeless-theme.ts │ │ │ │ │ │ ├── integration-type.ts │ │ │ │ │ │ ├── journal.ts │ │ │ │ │ │ ├── number.ts │ │ │ │ │ │ ├── page-width.ts │ │ │ │ │ │ ├── property.ts │ │ │ │ │ │ ├── system.ts │ │ │ │ │ │ ├── tags.ts │ │ │ │ │ │ ├── template.ts │ │ │ │ │ │ ├── text.ts │ │ │ │ │ │ ├── title.ts │ │ │ │ │ │ ├── updated-at.ts │ │ │ │ │ │ └── updated-by.ts │ │ │ │ ├── index.ts │ │ │ │ ├── provider │ │ │ │ │ └── index.ts │ │ │ │ ├── services │ │ │ │ │ └── collection-rules.ts │ │ │ │ └── types.ts │ │ │ ├── collection │ │ │ │ ├── entities │ │ │ │ │ └── collection.ts │ │ │ │ ├── index.ts │ │ │ │ ├── services │ │ │ │ │ ├── collection.ts │ │ │ │ │ └── pinned-collection.ts │ │ │ │ └── stores │ │ │ │ │ ├── collection.ts │ │ │ │ │ └── pinned-collection.ts │ │ │ ├── comment │ │ │ │ ├── entities │ │ │ │ │ ├── doc-comment-store.ts │ │ │ │ │ ├── doc-comment.ts │ │ │ │ │ └── utils.ts │ │ │ │ ├── index.ts │ │ │ │ ├── services │ │ │ │ │ ├── comment-panel-service.ts │ │ │ │ │ ├── doc-comment-manager.ts │ │ │ │ │ └── snapshot-helper.ts │ │ │ │ └── types.ts │ │ │ ├── db │ │ │ │ ├── entities │ │ │ │ │ ├── db.ts │ │ │ │ │ └── table.ts │ │ │ │ ├── index.ts │ │ │ │ ├── schema │ │ │ │ │ ├── index.ts │ │ │ │ │ └── schema.ts │ │ │ │ ├── services │ │ │ │ │ └── db.ts │ │ │ │ └── utils.ts │ │ │ ├── desktop-api │ │ │ │ ├── entities │ │ │ │ │ └── electron-api.ts │ │ │ │ ├── impl │ │ │ │ │ └── index.ts │ │ │ │ ├── index.ts │ │ │ │ ├── provider │ │ │ │ │ └── index.ts │ │ │ │ └── service │ │ │ │ │ └── desktop-api.ts │ │ │ ├── dialogs │ │ │ │ ├── constant.ts │ │ │ │ ├── index.ts │ │ │ │ ├── services │ │ │ │ │ ├── dialog.ts │ │ │ │ │ └── workspace-dialog.ts │ │ │ │ └── types.ts │ │ │ ├── dnd │ │ │ │ ├── index.ts │ │ │ │ └── services │ │ │ │ │ └── index.ts │ │ │ ├── doc-display-meta │ │ │ │ ├── index.ts │ │ │ │ └── services │ │ │ │ │ ├── doc-display-meta.ts │ │ │ │ │ └── icon.tsx │ │ │ ├── doc-info │ │ │ │ ├── index.ts │ │ │ │ ├── services │ │ │ │ │ └── doc-database-backlinks.ts │ │ │ │ ├── types.ts │ │ │ │ ├── use-std.ts │ │ │ │ ├── utils.ts │ │ │ │ └── views │ │ │ │ │ └── database-properties │ │ │ │ │ ├── cells │ │ │ │ │ ├── checkbox.tsx │ │ │ │ │ ├── date.tsx │ │ │ │ │ ├── link.css.ts │ │ │ │ │ ├── link.tsx │ │ │ │ │ ├── number.tsx │ │ │ │ │ ├── progress.css.ts │ │ │ │ │ ├── progress.tsx │ │ │ │ │ ├── rich-text.css.ts │ │ │ │ │ ├── rich-text.tsx │ │ │ │ │ ├── select.css.ts │ │ │ │ │ └── select.tsx │ │ │ │ │ ├── constant.tsx │ │ │ │ │ ├── doc-database-backlink-info.css.ts │ │ │ │ │ └── doc-database-backlink-info.tsx │ │ │ ├── doc-link │ │ │ │ ├── entities │ │ │ │ │ ├── doc-backlinks.ts │ │ │ │ │ └── doc-links.ts │ │ │ │ ├── index.ts │ │ │ │ └── services │ │ │ │ │ └── doc-links.ts │ │ │ ├── doc-summary │ │ │ │ ├── index.ts │ │ │ │ ├── services │ │ │ │ │ └── doc-summary.ts │ │ │ │ └── stores │ │ │ │ │ └── doc-summary.ts │ │ │ ├── doc │ │ │ │ ├── entities │ │ │ │ │ ├── doc.ts │ │ │ │ │ ├── record-list.ts │ │ │ │ │ └── record.ts │ │ │ │ ├── events │ │ │ │ │ └── index.ts │ │ │ │ ├── index.ts │ │ │ │ ├── providers │ │ │ │ │ └── doc-create-middleware.ts │ │ │ │ ├── scopes │ │ │ │ │ └── doc.ts │ │ │ │ ├── services │ │ │ │ │ ├── doc.ts │ │ │ │ │ └── docs.ts │ │ │ │ ├── stores │ │ │ │ │ ├── doc-properties.ts │ │ │ │ │ └── docs.ts │ │ │ │ └── types.ts │ │ │ ├── docs-search │ │ │ │ ├── README.md │ │ │ │ ├── index.ts │ │ │ │ └── services │ │ │ │ │ └── docs-search.ts │ │ │ ├── editor-setting │ │ │ │ ├── entities │ │ │ │ │ └── editor-setting.ts │ │ │ │ ├── impls │ │ │ │ │ ├── doc-create-middleware.ts │ │ │ │ │ ├── global-state.ts │ │ │ │ │ └── user-db.ts │ │ │ │ ├── index.ts │ │ │ │ ├── provider │ │ │ │ │ └── editor-setting-provider.ts │ │ │ │ ├── schema.ts │ │ │ │ └── services │ │ │ │ │ ├── editor-setting.ts │ │ │ │ │ ├── spell-check-setting.ts │ │ │ │ │ └── tray-settings.ts │ │ │ ├── editor │ │ │ │ ├── entities │ │ │ │ │ └── editor.ts │ │ │ │ ├── events │ │ │ │ │ └── index.ts │ │ │ │ ├── index.ts │ │ │ │ ├── scopes │ │ │ │ │ └── editor.ts │ │ │ │ ├── services │ │ │ │ │ ├── editor.ts │ │ │ │ │ └── editors.ts │ │ │ │ └── types.ts │ │ │ ├── explorer-icon │ │ │ │ ├── index.ts │ │ │ │ ├── services │ │ │ │ │ └── explorer-icon.ts │ │ │ │ └── store │ │ │ │ │ └── explorer-icon.ts │ │ │ ├── favorite │ │ │ │ ├── constant.ts │ │ │ │ ├── entities │ │ │ │ │ └── favorite-list.ts │ │ │ │ ├── index.ts │ │ │ │ ├── services │ │ │ │ │ ├── favorite.ts │ │ │ │ │ └── old │ │ │ │ │ │ ├── adapter.ts │ │ │ │ │ │ └── schema.ts │ │ │ │ └── stores │ │ │ │ │ └── favorite.ts │ │ │ ├── feature-flag │ │ │ │ ├── constant.ts │ │ │ │ ├── entities │ │ │ │ │ └── flags.ts │ │ │ │ ├── index.ts │ │ │ │ ├── services │ │ │ │ │ └── feature-flag.ts │ │ │ │ └── types.ts │ │ │ ├── find-in-page │ │ │ │ ├── entities │ │ │ │ │ └── find-in-page.ts │ │ │ │ ├── index.ts │ │ │ │ └── services │ │ │ │ │ └── find-in-page.ts │ │ │ ├── global-context │ │ │ │ ├── entities │ │ │ │ │ └── global-context.ts │ │ │ │ ├── index.ts │ │ │ │ └── services │ │ │ │ │ └── global-context.ts │ │ │ ├── i18n │ │ │ │ ├── context.tsx │ │ │ │ ├── entities │ │ │ │ │ └── i18n.ts │ │ │ │ ├── index.ts │ │ │ │ └── services │ │ │ │ │ └── i18n.ts │ │ │ ├── icon-picker │ │ │ │ ├── index.ts │ │ │ │ └── services │ │ │ │ │ └── icon-picker.ts │ │ │ ├── import-clipper │ │ │ │ ├── index.ts │ │ │ │ └── services │ │ │ │ │ └── import.ts │ │ │ ├── import-template │ │ │ │ ├── entities │ │ │ │ │ └── downloader.ts │ │ │ │ ├── index.ts │ │ │ │ ├── services │ │ │ │ │ ├── downloader.ts │ │ │ │ │ └── import.ts │ │ │ │ └── store │ │ │ │ │ └── downloader.ts │ │ │ ├── index.ts │ │ │ ├── integration │ │ │ │ ├── constant.ts │ │ │ │ ├── entities │ │ │ │ │ ├── calendar-subscription.ts │ │ │ │ │ ├── calendar.ts │ │ │ │ │ ├── readwise-crawler.ts │ │ │ │ │ ├── readwise.ts │ │ │ │ │ └── writer.ts │ │ │ │ ├── index.ts │ │ │ │ ├── services │ │ │ │ │ ├── integration-property.ts │ │ │ │ │ └── integration.ts │ │ │ │ ├── store │ │ │ │ │ ├── calendar.ts │ │ │ │ │ ├── integration-ref.ts │ │ │ │ │ └── readwise.ts │ │ │ │ ├── type.ts │ │ │ │ ├── utils │ │ │ │ │ ├── calendar-url-parser.ts │ │ │ │ │ ├── encrypt.ts │ │ │ │ │ └── is-all-day.ts │ │ │ │ └── views │ │ │ │ │ ├── icon.tsx │ │ │ │ │ ├── properties-table.tsx │ │ │ │ │ └── property-values │ │ │ │ │ ├── date-value.tsx │ │ │ │ │ ├── index.tsx │ │ │ │ │ ├── link-value.tsx │ │ │ │ │ ├── source-value.tsx │ │ │ │ │ ├── styles.css.ts │ │ │ │ │ ├── text-value.tsx │ │ │ │ │ └── type.ts │ │ │ ├── journal │ │ │ │ ├── __tests__ │ │ │ │ │ └── suggest-date.spec.ts │ │ │ │ ├── index.ts │ │ │ │ ├── services │ │ │ │ │ ├── journal-doc.ts │ │ │ │ │ └── journal.ts │ │ │ │ ├── store │ │ │ │ │ └── journal.ts │ │ │ │ └── suggest-journal-date.ts │ │ │ ├── lifecycle │ │ │ │ ├── index.ts │ │ │ │ └── service │ │ │ │ │ └── lifecycle.ts │ │ │ ├── media │ │ │ │ ├── audio-sync-diagram.md │ │ │ │ ├── entities │ │ │ │ │ ├── audio-attachment-block.ts │ │ │ │ │ ├── audio-media.ts │ │ │ │ │ ├── audio-transcription-job-store.ts │ │ │ │ │ ├── audio-transcription-job.ts │ │ │ │ │ └── types.ts │ │ │ │ ├── index.ts │ │ │ │ ├── providers │ │ │ │ │ └── global-audio-state.ts │ │ │ │ ├── services │ │ │ │ │ ├── audio-attachment.ts │ │ │ │ │ ├── audio-media-manager.ts │ │ │ │ │ └── meeting-settings.ts │ │ │ │ └── utils.ts │ │ │ ├── navigation-panel │ │ │ │ ├── index.ts │ │ │ │ └── services │ │ │ │ │ └── navigation-panel.ts │ │ │ ├── navigation │ │ │ │ ├── README.md │ │ │ │ ├── __tests__ │ │ │ │ │ └── utils.spec.ts │ │ │ │ ├── entities │ │ │ │ │ └── navigator.ts │ │ │ │ ├── index.ts │ │ │ │ ├── services │ │ │ │ │ └── navigator.ts │ │ │ │ ├── utils.ts │ │ │ │ └── view │ │ │ │ │ ├── navigation-buttons.css.ts │ │ │ │ │ ├── navigation-buttons.tsx │ │ │ │ │ └── use-register-navigation-commands.ts │ │ │ ├── notification │ │ │ │ ├── index.ts │ │ │ │ ├── services │ │ │ │ │ ├── count.ts │ │ │ │ │ ├── list.ts │ │ │ │ │ └── notification.ts │ │ │ │ └── stores │ │ │ │ │ └── notification.ts │ │ │ ├── open-in-app │ │ │ │ ├── index.ts │ │ │ │ ├── services │ │ │ │ │ └── index.ts │ │ │ │ ├── utils.ts │ │ │ │ └── views │ │ │ │ │ ├── open-in-app-guard.tsx │ │ │ │ │ ├── open-in-app-page.css.ts │ │ │ │ │ └── open-in-app-page.tsx │ │ │ ├── organize │ │ │ │ ├── constants.ts │ │ │ │ ├── entities │ │ │ │ │ ├── folder-node.ts │ │ │ │ │ └── folder-tree.ts │ │ │ │ ├── index.ts │ │ │ │ ├── services │ │ │ │ │ └── organize.ts │ │ │ │ ├── stores │ │ │ │ │ └── folder.ts │ │ │ │ └── types.ts │ │ │ ├── paywall │ │ │ │ ├── index.ts │ │ │ │ ├── providers │ │ │ │ │ └── native-paywall.ts │ │ │ │ └── services │ │ │ │ │ └── native-paywall.ts │ │ │ ├── pdf │ │ │ │ ├── entities │ │ │ │ │ ├── pdf-page.ts │ │ │ │ │ └── pdf.ts │ │ │ │ ├── index.ts │ │ │ │ ├── renderer │ │ │ │ │ ├── index.ts │ │ │ │ │ ├── ops.ts │ │ │ │ │ ├── pdf.worker.ts │ │ │ │ │ ├── renderer.ts │ │ │ │ │ └── types.ts │ │ │ │ ├── services │ │ │ │ │ └── pdf.ts │ │ │ │ └── views │ │ │ │ │ ├── components.tsx │ │ │ │ │ ├── index.ts │ │ │ │ │ ├── page-renderer.tsx │ │ │ │ │ └── styles.css.ts │ │ │ ├── peek-view │ │ │ │ ├── entities │ │ │ │ │ └── peek-view.ts │ │ │ │ ├── index.ts │ │ │ │ ├── services │ │ │ │ │ └── peek-view.ts │ │ │ │ └── view │ │ │ │ │ ├── ai-chat-block-peek-view │ │ │ │ │ └── index.tsx │ │ │ │ │ ├── attachment-preview │ │ │ │ │ └── index.tsx │ │ │ │ │ ├── doc-preview │ │ │ │ │ ├── doc-peek-view.css.ts │ │ │ │ │ ├── doc-peek-view.tsx │ │ │ │ │ └── index.ts │ │ │ │ │ ├── image-preview │ │ │ │ │ ├── hooks │ │ │ │ │ │ └── use-zoom.tsx │ │ │ │ │ ├── index.css.ts │ │ │ │ │ └── index.tsx │ │ │ │ │ ├── index.ts │ │ │ │ │ ├── modal-container.css.ts │ │ │ │ │ ├── modal-container.tsx │ │ │ │ │ ├── peek-view-controls.css.ts │ │ │ │ │ ├── peek-view-controls.tsx │ │ │ │ │ ├── peek-view-manager.tsx │ │ │ │ │ └── utils.ts │ │ │ ├── permissions │ │ │ │ ├── entities │ │ │ │ │ ├── members.ts │ │ │ │ │ └── permission.ts │ │ │ │ ├── index.ts │ │ │ │ ├── services │ │ │ │ │ ├── doc-granted-users.ts │ │ │ │ │ ├── guard.ts │ │ │ │ │ ├── member-search.ts │ │ │ │ │ ├── members.ts │ │ │ │ │ └── permission.ts │ │ │ │ └── stores │ │ │ │ │ ├── doc-granted-users.ts │ │ │ │ │ ├── guard.ts │ │ │ │ │ ├── member-search.ts │ │ │ │ │ ├── members.ts │ │ │ │ │ └── permission.ts │ │ │ ├── quicksearch │ │ │ │ ├── entities │ │ │ │ │ └── quick-search.ts │ │ │ │ ├── impls │ │ │ │ │ ├── collections.ts │ │ │ │ │ ├── commands.ts │ │ │ │ │ ├── creation.ts │ │ │ │ │ ├── docs.ts │ │ │ │ │ ├── external-links.ts │ │ │ │ │ ├── journals.ts │ │ │ │ │ ├── links.ts │ │ │ │ │ ├── recent-docs.ts │ │ │ │ │ └── tags.ts │ │ │ │ ├── index.ts │ │ │ │ ├── providers │ │ │ │ │ └── quick-search-provider.ts │ │ │ │ ├── services │ │ │ │ │ ├── cmdk.ts │ │ │ │ │ ├── quick-search.ts │ │ │ │ │ └── recent-pages.ts │ │ │ │ ├── types │ │ │ │ │ ├── group.ts │ │ │ │ │ ├── item.ts │ │ │ │ │ └── options.ts │ │ │ │ ├── utils │ │ │ │ │ └── highlighter.ts │ │ │ │ └── views │ │ │ │ │ ├── cmdk.css.ts │ │ │ │ │ ├── cmdk.tsx │ │ │ │ │ ├── container.tsx │ │ │ │ │ ├── highlight-text.css.ts │ │ │ │ │ ├── highlight-text.tsx │ │ │ │ │ ├── modal.css.ts │ │ │ │ │ ├── modal.tsx │ │ │ │ │ └── tag-icon.tsx │ │ │ ├── quota │ │ │ │ ├── entities │ │ │ │ │ └── quota.ts │ │ │ │ ├── index.ts │ │ │ │ ├── services │ │ │ │ │ └── quota.ts │ │ │ │ ├── stores │ │ │ │ │ └── quota.ts │ │ │ │ └── views │ │ │ │ │ ├── quota-check.tsx │ │ │ │ │ └── styles.css.ts │ │ │ ├── search-menu │ │ │ │ ├── index.ts │ │ │ │ └── services │ │ │ │ │ └── index.ts │ │ │ ├── share-doc │ │ │ │ ├── entities │ │ │ │ │ ├── share-docs-list.ts │ │ │ │ │ └── share-info.ts │ │ │ │ ├── index.ts │ │ │ │ ├── services │ │ │ │ │ ├── share-docs-list.ts │ │ │ │ │ └── share-info.ts │ │ │ │ └── stores │ │ │ │ │ ├── share-docs.ts │ │ │ │ │ └── share.ts │ │ │ ├── share-menu │ │ │ │ ├── index.ts │ │ │ │ └── view │ │ │ │ │ ├── cloud-svg.tsx │ │ │ │ │ ├── index.tsx │ │ │ │ │ └── share-menu │ │ │ │ │ ├── copy-link-button.css.ts │ │ │ │ │ ├── copy-link-button.tsx │ │ │ │ │ ├── general-access │ │ │ │ │ ├── index.ts │ │ │ │ │ ├── members-permission.tsx │ │ │ │ │ ├── public-page-button.tsx │ │ │ │ │ └── styles.css.ts │ │ │ │ │ ├── index.css.ts │ │ │ │ │ ├── index.jotai.ts │ │ │ │ │ ├── index.tsx │ │ │ │ │ ├── invite-member-editor │ │ │ │ │ ├── index.tsx │ │ │ │ │ ├── invite-member-editor.css.ts │ │ │ │ │ ├── invite-member-editor.tsx │ │ │ │ │ ├── member-item.css.ts │ │ │ │ │ ├── member-item.tsx │ │ │ │ │ ├── selected-member-item.css.ts │ │ │ │ │ ├── selected-member-item.tsx │ │ │ │ │ └── styles.css.ts │ │ │ │ │ ├── member-management │ │ │ │ │ ├── index.tsx │ │ │ │ │ ├── member-item.css.ts │ │ │ │ │ ├── member-item.tsx │ │ │ │ │ ├── member-management.css.ts │ │ │ │ │ ├── member-management.tsx │ │ │ │ │ └── styles.css.ts │ │ │ │ │ ├── plan-tag.css.ts │ │ │ │ │ ├── plan-tag.tsx │ │ │ │ │ ├── scroller.css.ts │ │ │ │ │ ├── scroller.tsx │ │ │ │ │ ├── share-export.tsx │ │ │ │ │ ├── share-menu.tsx │ │ │ │ │ └── share-page.tsx │ │ │ ├── share-setting │ │ │ │ ├── entities │ │ │ │ │ └── share-setting.ts │ │ │ │ ├── index.ts │ │ │ │ ├── services │ │ │ │ │ └── share-setting.ts │ │ │ │ └── stores │ │ │ │ │ └── share-setting.ts │ │ │ ├── storage │ │ │ │ ├── impls │ │ │ │ │ ├── electron.ts │ │ │ │ │ └── storage.ts │ │ │ │ ├── index.ts │ │ │ │ ├── providers │ │ │ │ │ ├── global.ts │ │ │ │ │ └── nbstore.ts │ │ │ │ └── services │ │ │ │ │ ├── global.ts │ │ │ │ │ └── nbstore.ts │ │ │ ├── system-font-family │ │ │ │ ├── entities │ │ │ │ │ └── system-font-family.ts │ │ │ │ ├── index.ts │ │ │ │ └── services │ │ │ │ │ └── system-font-family.ts │ │ │ ├── tag │ │ │ │ ├── entities │ │ │ │ │ ├── tag-list.ts │ │ │ │ │ ├── tag.ts │ │ │ │ │ └── utils.ts │ │ │ │ ├── index.ts │ │ │ │ ├── service │ │ │ │ │ └── tag.ts │ │ │ │ ├── stores │ │ │ │ │ └── tag.ts │ │ │ │ └── view │ │ │ │ │ └── delete-tag-modal.tsx │ │ │ ├── telemetry │ │ │ │ ├── index.ts │ │ │ │ └── services │ │ │ │ │ └── telemetry.ts │ │ │ ├── template-doc │ │ │ │ ├── entities │ │ │ │ │ ├── list.ts │ │ │ │ │ └── setting.ts │ │ │ │ ├── index.ts │ │ │ │ ├── services │ │ │ │ │ └── template-doc.ts │ │ │ │ ├── store │ │ │ │ │ ├── list.ts │ │ │ │ │ └── setting.ts │ │ │ │ ├── type.ts │ │ │ │ └── view │ │ │ │ │ ├── styles.css.ts │ │ │ │ │ └── template-list-menu.tsx │ │ │ ├── theme-editor │ │ │ │ ├── index.ts │ │ │ │ ├── services │ │ │ │ │ └── theme-editor.ts │ │ │ │ └── types.ts │ │ │ ├── theme │ │ │ │ ├── entities │ │ │ │ │ └── theme.ts │ │ │ │ ├── index.ts │ │ │ │ └── services │ │ │ │ │ └── theme.ts │ │ │ ├── url │ │ │ │ ├── index.ts │ │ │ │ ├── providers │ │ │ │ │ ├── client-schema.ts │ │ │ │ │ └── popup-window.ts │ │ │ │ └── services │ │ │ │ │ └── url.ts │ │ │ ├── userspace │ │ │ │ ├── entities │ │ │ │ │ ├── current-user-db.ts │ │ │ │ │ ├── user-db-engine.ts │ │ │ │ │ ├── user-db-table.ts │ │ │ │ │ └── user-db.ts │ │ │ │ ├── index.ts │ │ │ │ ├── schema │ │ │ │ │ └── index.ts │ │ │ │ └── services │ │ │ │ │ └── userspace.ts │ │ │ ├── workbench │ │ │ │ ├── README.md │ │ │ │ ├── constants.tsx │ │ │ │ ├── entities │ │ │ │ │ ├── sidebar-tab.ts │ │ │ │ │ ├── view.ts │ │ │ │ │ └── workbench.ts │ │ │ │ ├── index.ts │ │ │ │ ├── scopes │ │ │ │ │ └── view.ts │ │ │ │ ├── services │ │ │ │ │ ├── desktop-state-synchronizer.ts │ │ │ │ │ ├── view.ts │ │ │ │ │ ├── workbench-new-tab-handler.ts │ │ │ │ │ ├── workbench-view-state.ts │ │ │ │ │ └── workbench.ts │ │ │ │ └── view │ │ │ │ │ ├── browser-adapter.ts │ │ │ │ │ ├── desktop-adapter.ts │ │ │ │ │ ├── route-container.css.ts │ │ │ │ │ ├── route-container.tsx │ │ │ │ │ ├── sidebar │ │ │ │ │ ├── sidebar-container.css.ts │ │ │ │ │ ├── sidebar-container.tsx │ │ │ │ │ ├── sidebar-header-switcher.css.ts │ │ │ │ │ ├── sidebar-header-switcher.tsx │ │ │ │ │ ├── sidebar-header.css.ts │ │ │ │ │ └── sidebar-header.tsx │ │ │ │ │ ├── split-view │ │ │ │ │ ├── indicator.css.ts │ │ │ │ │ ├── indicator.tsx │ │ │ │ │ ├── panel.tsx │ │ │ │ │ ├── resize-handle.tsx │ │ │ │ │ ├── split-view.css.ts │ │ │ │ │ ├── split-view.tsx │ │ │ │ │ ├── state.ts │ │ │ │ │ └── types.ts │ │ │ │ │ ├── use-is-active-view.tsx │ │ │ │ │ ├── use-view-position.tsx │ │ │ │ │ ├── view-islands.tsx │ │ │ │ │ ├── view-meta.tsx │ │ │ │ │ ├── view-root.tsx │ │ │ │ │ ├── workbench-link.tsx │ │ │ │ │ ├── workbench-root.css.ts │ │ │ │ │ └── workbench-root.tsx │ │ │ ├── workspace-engine │ │ │ │ ├── impls │ │ │ │ │ ├── cloud.ts │ │ │ │ │ ├── local.ts │ │ │ │ │ ├── out-worker.ts │ │ │ │ │ ├── worker-ops.ts │ │ │ │ │ └── workspace-profile.worker.ts │ │ │ │ ├── index.ts │ │ │ │ └── utils │ │ │ │ │ ├── __tests__ │ │ │ │ │ └── buffer-to-blob.spec.ts │ │ │ │ │ ├── base64.ts │ │ │ │ │ └── buffer-to-blob.ts │ │ │ ├── workspace-indexer-embedding │ │ │ │ ├── constants.ts │ │ │ │ ├── entities │ │ │ │ │ ├── additional-attachments.ts │ │ │ │ │ ├── embedding-enabled.ts │ │ │ │ │ ├── embedding-progress.ts │ │ │ │ │ └── ignored-docs.ts │ │ │ │ ├── index.ts │ │ │ │ ├── services │ │ │ │ │ └── embedding.ts │ │ │ │ ├── stores │ │ │ │ │ └── embedding.ts │ │ │ │ ├── types.ts │ │ │ │ ├── utils.ts │ │ │ │ └── view │ │ │ │ │ ├── attachments.tsx │ │ │ │ │ ├── embedding-progress.tsx │ │ │ │ │ ├── embedding-settings.tsx │ │ │ │ │ ├── ignored-docs.tsx │ │ │ │ │ ├── index.tsx │ │ │ │ │ └── styles-css.ts │ │ │ ├── workspace-property │ │ │ │ ├── constants.ts │ │ │ │ ├── index.ts │ │ │ │ ├── services │ │ │ │ │ └── workspace-property.ts │ │ │ │ ├── stores │ │ │ │ │ └── workspace-property.ts │ │ │ │ └── types.ts │ │ │ └── workspace │ │ │ │ ├── entities │ │ │ │ ├── engine.ts │ │ │ │ ├── list.ts │ │ │ │ ├── profile.ts │ │ │ │ └── workspace.ts │ │ │ │ ├── events │ │ │ │ └── index.ts │ │ │ │ ├── global-schema.ts │ │ │ │ ├── impls │ │ │ │ ├── doc.ts │ │ │ │ ├── meta.ts │ │ │ │ ├── storage.ts │ │ │ │ └── workspace.ts │ │ │ │ ├── index.ts │ │ │ │ ├── metadata.ts │ │ │ │ ├── open-options.ts │ │ │ │ ├── providers │ │ │ │ ├── flavour.ts │ │ │ │ └── storage.ts │ │ │ │ ├── scopes │ │ │ │ └── workspace.ts │ │ │ │ ├── services │ │ │ │ ├── destroy.ts │ │ │ │ ├── engine.ts │ │ │ │ ├── factory.ts │ │ │ │ ├── flavours.ts │ │ │ │ ├── list.ts │ │ │ │ ├── profile.ts │ │ │ │ ├── repo.ts │ │ │ │ ├── transform.ts │ │ │ │ ├── workspace.ts │ │ │ │ └── workspaces.ts │ │ │ │ └── stores │ │ │ │ └── profile-cache.ts │ │ ├── types │ │ │ ├── dnd.ts │ │ │ └── types.d.ts │ │ └── utils │ │ │ ├── __tests__ │ │ │ └── extract-emoji-icon.spec.ts │ │ │ ├── channel.ts │ │ │ ├── clipboard │ │ │ ├── fake.ts │ │ │ └── index.ts │ │ │ ├── create-emotion-cache.ts │ │ │ ├── email-regex.ts │ │ │ ├── event.ts │ │ │ ├── extract-emoji-icon.ts │ │ │ ├── first-app-data.ts │ │ │ ├── fuzzy-match.ts │ │ │ ├── index.ts │ │ │ ├── island.tsx │ │ │ ├── navigable-history.ts │ │ │ ├── opus-encoding.ts │ │ │ ├── reduce-image.ts │ │ │ ├── resource.ts │ │ │ ├── string2color.ts │ │ │ ├── toast.ts │ │ │ ├── unflatten-object.ts │ │ │ ├── unique-name.ts │ │ │ └── user-setting.ts │ └── tsconfig.json │ ├── electron-api │ ├── package.json │ ├── src │ │ └── index.ts │ └── tsconfig.json │ ├── i18n │ ├── .gitignore │ ├── .i18n-codegen.json │ ├── README.md │ ├── build.ts │ ├── cleanup.mjs │ ├── crowdin.yml │ ├── package.json │ ├── src │ │ ├── i18n-completenesses.json │ │ ├── i18n.gen.ts │ │ ├── i18next.ts │ │ ├── index.ts │ │ ├── react.ts │ │ ├── resources │ │ │ ├── ar.json │ │ │ ├── ca.json │ │ │ ├── da.json │ │ │ ├── de.json │ │ │ ├── el-GR.json │ │ │ ├── en.json │ │ │ ├── es-AR.json │ │ │ ├── es-CL.json │ │ │ ├── es.json │ │ │ ├── fa.json │ │ │ ├── fr.json │ │ │ ├── hi.json │ │ │ ├── index.ts │ │ │ ├── it-IT.json │ │ │ ├── it.json │ │ │ ├── ja.json │ │ │ ├── ko.json │ │ │ ├── pl.json │ │ │ ├── pt-BR.json │ │ │ ├── ru.json │ │ │ ├── sv-SE.json │ │ │ ├── uk.json │ │ │ ├── ur.json │ │ │ ├── zh-Hans.json │ │ │ └── zh-Hant.json │ │ └── utils │ │ │ ├── __tests__ │ │ │ └── time.spec.ts │ │ │ ├── index.ts │ │ │ └── time.ts │ └── tsconfig.json │ ├── media-capture-playground │ ├── .gitignore │ ├── package.json │ ├── server │ │ ├── encode.ts │ │ ├── gemini.ts │ │ ├── main.ts │ │ └── types.d.ts │ ├── tsconfg.node.json │ ├── tsconfig.json │ ├── vite.config.ts │ └── web │ │ ├── app.tsx │ │ ├── components │ │ ├── app-item.tsx │ │ ├── app-list.tsx │ │ ├── global-record-button.tsx │ │ ├── icons.tsx │ │ ├── saved-recording-item.tsx │ │ └── saved-recordings.tsx │ │ ├── index.html │ │ ├── main.css │ │ ├── main.tsx │ │ ├── types.ts │ │ └── utils.ts │ ├── mobile-native │ ├── Cargo.toml │ ├── src │ │ └── lib.rs │ └── uniffi-bindgen.rs │ ├── native │ ├── .gitignore │ ├── Cargo.toml │ ├── __tests__ │ │ ├── db.spec.mts │ │ ├── fixtures │ │ │ ├── recording.wav │ │ │ └── test01.affine │ │ └── pool.spec.mts │ ├── build.rs │ ├── index.d.ts │ ├── index.js │ ├── media-capture-exapmle.ts │ ├── media_capture │ │ ├── Cargo.toml │ │ ├── benches │ │ │ └── mix_audio_samples.rs │ │ ├── build.rs │ │ └── src │ │ │ ├── audio_decoder.rs │ │ │ ├── lib.rs │ │ │ ├── macos │ │ │ ├── audio_buffer.rs │ │ │ ├── audio_stream_basic_desc.rs │ │ │ ├── av_audio_file.rs │ │ │ ├── av_audio_format.rs │ │ │ ├── av_audio_pcm_buffer.rs │ │ │ ├── ca_tap_description.rs │ │ │ ├── cf_types.rs │ │ │ ├── device.rs │ │ │ ├── error.rs │ │ │ ├── mod.rs │ │ │ ├── pid.rs │ │ │ ├── queue.rs │ │ │ ├── screen_capture_kit.rs │ │ │ ├── tap_audio.rs │ │ │ └── utils.rs │ │ │ └── windows │ │ │ ├── README.md │ │ │ ├── audio_capture.rs │ │ │ ├── error.rs │ │ │ ├── microphone_listener.rs │ │ │ ├── mod.rs │ │ │ └── screen_capture_kit.rs │ ├── nbstore │ │ ├── Cargo.toml │ │ ├── build.rs │ │ └── src │ │ │ ├── blob.rs │ │ │ ├── blob_sync.rs │ │ │ ├── doc.rs │ │ │ ├── doc_sync.rs │ │ │ ├── error.rs │ │ │ ├── indexer │ │ │ ├── memory_indexer.rs │ │ │ ├── mod.rs │ │ │ ├── tokenizer.rs │ │ │ └── types.rs │ │ │ ├── lib.rs │ │ │ ├── pool.rs │ │ │ └── storage.rs │ ├── package.json │ ├── schema │ │ ├── Cargo.toml │ │ ├── README.md │ │ └── src │ │ │ ├── lib.rs │ │ │ └── v1.rs │ ├── sqlite_v1 │ │ ├── Cargo.toml │ │ ├── build.rs │ │ └── src │ │ │ └── lib.rs │ ├── src │ │ ├── hashcash.rs │ │ └── lib.rs │ └── tsconfig.json │ ├── routes │ ├── README.md │ ├── build.ts │ ├── package.json │ ├── routes.json │ ├── schema.json │ ├── src │ │ ├── __tests__ │ │ │ └── routes.spec.ts │ │ ├── index.ts │ │ ├── lazy.ts │ │ └── routes.ts │ └── tsconfig.json │ ├── templates │ ├── README.md │ ├── build-edgeless.mjs │ ├── build-stickers.mjs │ ├── edgeless-snapshot │ │ ├── Brainstorming │ │ │ ├── 5W2H.svg │ │ │ ├── 5W2H.zip │ │ │ ├── Concept Map.svg │ │ │ ├── Concept Map.zip │ │ │ ├── Flowchart.svg │ │ │ ├── Flowchart.zip │ │ │ ├── SMART.svg │ │ │ ├── SMART.zip │ │ │ ├── SWOT.svg │ │ │ └── SWOT.zip │ │ ├── Marketing │ │ │ ├── 4P Marketing Matrix.svg │ │ │ ├── 4P Marketing Matrix.zip │ │ │ ├── Storyboard.svg │ │ │ ├── Storyboard.zip │ │ │ ├── User Journey Map.svg │ │ │ └── User Journey Map.zip │ │ ├── Presentation │ │ │ ├── Business Proposal.svg │ │ │ ├── Business Proposal.zip │ │ │ ├── Data Analysis.svg │ │ │ ├── Data Analysis.zip │ │ │ ├── Simple Presentation.svg │ │ │ └── Simple Presentation.zip │ │ └── Project Management │ │ │ ├── Fishbone Diagram.svg │ │ │ ├── Fishbone Diagram.zip │ │ │ ├── Gantt Chart.svg │ │ │ ├── Gantt Chart.zip │ │ │ ├── Monthly Calendar.svg │ │ │ ├── Monthly Calendar.zip │ │ │ ├── Project Planning.svg │ │ │ ├── Project Planning.zip │ │ │ ├── Project Tracking Kanban.svg │ │ │ └── Project Tracking Kanban.zip │ ├── edgeless-templates.gen.ts │ ├── onboarding │ │ └── onboarding.zip │ ├── package.json │ ├── stickers-templates.gen.ts │ └── stickers │ │ ├── Arrows │ │ ├── Content │ │ │ ├── arrow-1.svg │ │ │ ├── arrow-10.svg │ │ │ ├── arrow-100.svg │ │ │ ├── arrow-101.svg │ │ │ ├── arrow-102.svg │ │ │ ├── arrow-103.svg │ │ │ ├── arrow-104.svg │ │ │ ├── arrow-105.svg │ │ │ ├── arrow-106.svg │ │ │ ├── arrow-107.svg │ │ │ ├── arrow-108.svg │ │ │ ├── arrow-109.svg │ │ │ ├── arrow-11.svg │ │ │ ├── arrow-110.svg │ │ │ ├── arrow-111.svg │ │ │ ├── arrow-112.svg │ │ │ ├── arrow-113.svg │ │ │ ├── arrow-114.svg │ │ │ ├── arrow-115.svg │ │ │ ├── arrow-116.svg │ │ │ ├── arrow-117.svg │ │ │ ├── arrow-118.svg │ │ │ ├── arrow-119.svg │ │ │ ├── arrow-12.svg │ │ │ ├── arrow-120.svg │ │ │ ├── arrow-121.svg │ │ │ ├── arrow-122.svg │ │ │ ├── arrow-123.svg │ │ │ ├── arrow-124.svg │ │ │ ├── arrow-125.svg │ │ │ ├── arrow-126.svg │ │ │ ├── arrow-127.svg │ │ │ ├── arrow-128.svg │ │ │ ├── arrow-129.svg │ │ │ ├── arrow-13.svg │ │ │ ├── arrow-130.svg │ │ │ ├── arrow-131.svg │ │ │ ├── arrow-132.svg │ │ │ ├── arrow-133.svg │ │ │ ├── arrow-134.svg │ │ │ ├── arrow-135.svg │ │ │ ├── arrow-136.svg │ │ │ ├── arrow-137.svg │ │ │ ├── arrow-138.svg │ │ │ ├── arrow-139.svg │ │ │ ├── arrow-14.svg │ │ │ ├── arrow-140.svg │ │ │ ├── arrow-141.svg │ │ │ ├── arrow-142.svg │ │ │ ├── arrow-143.svg │ │ │ ├── arrow-144.svg │ │ │ ├── arrow-145.svg │ │ │ ├── arrow-146.svg │ │ │ ├── arrow-147.svg │ │ │ ├── arrow-148.svg │ │ │ ├── arrow-149.svg │ │ │ ├── arrow-15.svg │ │ │ ├── arrow-150.svg │ │ │ ├── arrow-151.svg │ │ │ ├── arrow-152.svg │ │ │ ├── arrow-153.svg │ │ │ ├── arrow-154.svg │ │ │ ├── arrow-155.svg │ │ │ ├── arrow-156.svg │ │ │ ├── arrow-157.svg │ │ │ ├── arrow-158.svg │ │ │ ├── arrow-159.svg │ │ │ ├── arrow-16.svg │ │ │ ├── arrow-160.svg │ │ │ ├── arrow-161.svg │ │ │ ├── arrow-162.svg │ │ │ ├── arrow-163.svg │ │ │ ├── arrow-164.svg │ │ │ ├── arrow-165.svg │ │ │ ├── arrow-166.svg │ │ │ ├── arrow-167.svg │ │ │ ├── arrow-168.svg │ │ │ ├── arrow-169.svg │ │ │ ├── arrow-17.svg │ │ │ ├── arrow-170.svg │ │ │ ├── arrow-171.svg │ │ │ ├── arrow-172.svg │ │ │ ├── arrow-173.svg │ │ │ ├── arrow-174.svg │ │ │ ├── arrow-175.svg │ │ │ ├── arrow-176.svg │ │ │ ├── arrow-177.svg │ │ │ ├── arrow-178.svg │ │ │ ├── arrow-179.svg │ │ │ ├── arrow-18.svg │ │ │ ├── arrow-180.svg │ │ │ ├── arrow-181.svg │ │ │ ├── arrow-182.svg │ │ │ ├── arrow-183.svg │ │ │ ├── arrow-184.svg │ │ │ ├── arrow-185.svg │ │ │ ├── arrow-19.svg │ │ │ ├── arrow-2.svg │ │ │ ├── arrow-20.svg │ │ │ ├── arrow-21.svg │ │ │ ├── arrow-22.svg │ │ │ ├── arrow-23.svg │ │ │ ├── arrow-24.svg │ │ │ ├── arrow-25.svg │ │ │ ├── arrow-26.svg │ │ │ ├── arrow-27.svg │ │ │ ├── arrow-28.svg │ │ │ ├── arrow-29.svg │ │ │ ├── arrow-3.svg │ │ │ ├── arrow-30.svg │ │ │ ├── arrow-31.svg │ │ │ ├── arrow-32.svg │ │ │ ├── arrow-33.svg │ │ │ ├── arrow-34.svg │ │ │ ├── arrow-35.svg │ │ │ ├── arrow-36.svg │ │ │ ├── arrow-37.svg │ │ │ ├── arrow-38.svg │ │ │ ├── arrow-39.svg │ │ │ ├── arrow-4.svg │ │ │ ├── arrow-40.svg │ │ │ ├── arrow-41.svg │ │ │ ├── arrow-42.svg │ │ │ ├── arrow-43.svg │ │ │ ├── arrow-44.svg │ │ │ ├── arrow-45.svg │ │ │ ├── arrow-46.svg │ │ │ ├── arrow-47.svg │ │ │ ├── arrow-48.svg │ │ │ ├── arrow-49.svg │ │ │ ├── arrow-5.svg │ │ │ ├── arrow-50.svg │ │ │ ├── arrow-51.svg │ │ │ ├── arrow-52.svg │ │ │ ├── arrow-53.svg │ │ │ ├── arrow-54.svg │ │ │ ├── arrow-55.svg │ │ │ ├── arrow-56.svg │ │ │ ├── arrow-57.svg │ │ │ ├── arrow-58.svg │ │ │ ├── arrow-59.svg │ │ │ ├── arrow-6.svg │ │ │ ├── arrow-60.svg │ │ │ ├── arrow-61.svg │ │ │ ├── arrow-62.svg │ │ │ ├── arrow-63.svg │ │ │ ├── arrow-64.svg │ │ │ ├── arrow-65.svg │ │ │ ├── arrow-66.svg │ │ │ ├── arrow-67.svg │ │ │ ├── arrow-68.svg │ │ │ ├── arrow-69.svg │ │ │ ├── arrow-7.svg │ │ │ ├── arrow-70.svg │ │ │ ├── arrow-71.svg │ │ │ ├── arrow-72.svg │ │ │ ├── arrow-73.svg │ │ │ ├── arrow-74.svg │ │ │ ├── arrow-75.svg │ │ │ ├── arrow-76.svg │ │ │ ├── arrow-77.svg │ │ │ ├── arrow-78.svg │ │ │ ├── arrow-79.svg │ │ │ ├── arrow-8.svg │ │ │ ├── arrow-80.svg │ │ │ ├── arrow-81.svg │ │ │ ├── arrow-82.svg │ │ │ ├── arrow-83.svg │ │ │ ├── arrow-84.svg │ │ │ ├── arrow-85.svg │ │ │ ├── arrow-86.svg │ │ │ ├── arrow-87.svg │ │ │ ├── arrow-88.svg │ │ │ ├── arrow-89.svg │ │ │ ├── arrow-9.svg │ │ │ ├── arrow-90.svg │ │ │ ├── arrow-91.svg │ │ │ ├── arrow-92.svg │ │ │ ├── arrow-93.svg │ │ │ ├── arrow-94.svg │ │ │ ├── arrow-95.svg │ │ │ ├── arrow-96.svg │ │ │ ├── arrow-97.svg │ │ │ ├── arrow-98.svg │ │ │ ├── arrow-99.svg │ │ │ └── source.svg │ │ └── Cover │ │ │ ├── arrow-1.svg │ │ │ ├── arrow-10.svg │ │ │ ├── arrow-100.svg │ │ │ ├── arrow-101.svg │ │ │ ├── arrow-102.svg │ │ │ ├── arrow-103.svg │ │ │ ├── arrow-104.svg │ │ │ ├── arrow-105.svg │ │ │ ├── arrow-106.svg │ │ │ ├── arrow-107.svg │ │ │ ├── arrow-108.svg │ │ │ ├── arrow-109.svg │ │ │ ├── arrow-11.svg │ │ │ ├── arrow-110.svg │ │ │ ├── arrow-111.svg │ │ │ ├── arrow-112.svg │ │ │ ├── arrow-113.svg │ │ │ ├── arrow-114.svg │ │ │ ├── arrow-115.svg │ │ │ ├── arrow-116.svg │ │ │ ├── arrow-117.svg │ │ │ ├── arrow-118.svg │ │ │ ├── arrow-119.svg │ │ │ ├── arrow-12.svg │ │ │ ├── arrow-120.svg │ │ │ ├── arrow-121.svg │ │ │ ├── arrow-122.svg │ │ │ ├── arrow-123.svg │ │ │ ├── arrow-124.svg │ │ │ ├── arrow-125.svg │ │ │ ├── arrow-126.svg │ │ │ ├── arrow-127.svg │ │ │ ├── arrow-128.svg │ │ │ ├── arrow-129.svg │ │ │ ├── arrow-13.svg │ │ │ ├── arrow-130.svg │ │ │ ├── arrow-131.svg │ │ │ ├── arrow-132.svg │ │ │ ├── arrow-133.svg │ │ │ ├── arrow-134.svg │ │ │ ├── arrow-135.svg │ │ │ ├── arrow-136.svg │ │ │ ├── arrow-137.svg │ │ │ ├── arrow-138.svg │ │ │ ├── arrow-139.svg │ │ │ ├── arrow-14.svg │ │ │ ├── arrow-140.svg │ │ │ ├── arrow-141.svg │ │ │ ├── arrow-142.svg │ │ │ ├── arrow-143.svg │ │ │ ├── arrow-144.svg │ │ │ ├── arrow-145.svg │ │ │ ├── arrow-146.svg │ │ │ ├── arrow-147.svg │ │ │ ├── arrow-148.svg │ │ │ ├── arrow-149.svg │ │ │ ├── arrow-15.svg │ │ │ ├── arrow-150.svg │ │ │ ├── arrow-151.svg │ │ │ ├── arrow-152.svg │ │ │ ├── arrow-153.svg │ │ │ ├── arrow-154.svg │ │ │ ├── arrow-155.svg │ │ │ ├── arrow-156.svg │ │ │ ├── arrow-157.svg │ │ │ ├── arrow-158.svg │ │ │ ├── arrow-159.svg │ │ │ ├── arrow-16.svg │ │ │ ├── arrow-160.svg │ │ │ ├── arrow-161.svg │ │ │ ├── arrow-162.svg │ │ │ ├── arrow-163.svg │ │ │ ├── arrow-164.svg │ │ │ ├── arrow-165.svg │ │ │ ├── arrow-166.svg │ │ │ ├── arrow-167.svg │ │ │ ├── arrow-168.svg │ │ │ ├── arrow-169.svg │ │ │ ├── arrow-17.svg │ │ │ ├── arrow-170.svg │ │ │ ├── arrow-171.svg │ │ │ ├── arrow-172.svg │ │ │ ├── arrow-173.svg │ │ │ ├── arrow-174.svg │ │ │ ├── arrow-175.svg │ │ │ ├── arrow-176.svg │ │ │ ├── arrow-177.svg │ │ │ ├── arrow-178.svg │ │ │ ├── arrow-179.svg │ │ │ ├── arrow-18.svg │ │ │ ├── arrow-180.svg │ │ │ ├── arrow-181.svg │ │ │ ├── arrow-182.svg │ │ │ ├── arrow-183.svg │ │ │ ├── arrow-184.svg │ │ │ ├── arrow-185.svg │ │ │ ├── arrow-19.svg │ │ │ ├── arrow-2.svg │ │ │ ├── arrow-20.svg │ │ │ ├── arrow-21.svg │ │ │ ├── arrow-22.svg │ │ │ ├── arrow-23.svg │ │ │ ├── arrow-24.svg │ │ │ ├── arrow-25.svg │ │ │ ├── arrow-26.svg │ │ │ ├── arrow-27.svg │ │ │ ├── arrow-28.svg │ │ │ ├── arrow-29.svg │ │ │ ├── arrow-3.svg │ │ │ ├── arrow-30.svg │ │ │ ├── arrow-31.svg │ │ │ ├── arrow-32.svg │ │ │ ├── arrow-33.svg │ │ │ ├── arrow-34.svg │ │ │ ├── arrow-35.svg │ │ │ ├── arrow-36.svg │ │ │ ├── arrow-37.svg │ │ │ ├── arrow-38.svg │ │ │ ├── arrow-39.svg │ │ │ ├── arrow-4.svg │ │ │ ├── arrow-40.svg │ │ │ ├── arrow-41.svg │ │ │ ├── arrow-42.svg │ │ │ ├── arrow-43.svg │ │ │ ├── arrow-44.svg │ │ │ ├── arrow-45.svg │ │ │ ├── arrow-46.svg │ │ │ ├── arrow-47.svg │ │ │ ├── arrow-48.svg │ │ │ ├── arrow-49.svg │ │ │ ├── arrow-5.svg │ │ │ ├── arrow-50.svg │ │ │ ├── arrow-51.svg │ │ │ ├── arrow-52.svg │ │ │ ├── arrow-53.svg │ │ │ ├── arrow-54.svg │ │ │ ├── arrow-55.svg │ │ │ ├── arrow-56.svg │ │ │ ├── arrow-57.svg │ │ │ ├── arrow-58.svg │ │ │ ├── arrow-59.svg │ │ │ ├── arrow-6.svg │ │ │ ├── arrow-60.svg │ │ │ ├── arrow-61.svg │ │ │ ├── arrow-62.svg │ │ │ ├── arrow-63.svg │ │ │ ├── arrow-64.svg │ │ │ ├── arrow-65.svg │ │ │ ├── arrow-66.svg │ │ │ ├── arrow-67.svg │ │ │ ├── arrow-68.svg │ │ │ ├── arrow-69.svg │ │ │ ├── arrow-7.svg │ │ │ ├── arrow-70.svg │ │ │ ├── arrow-71.svg │ │ │ ├── arrow-72.svg │ │ │ ├── arrow-73.svg │ │ │ ├── arrow-74.svg │ │ │ ├── arrow-75.svg │ │ │ ├── arrow-76.svg │ │ │ ├── arrow-77.svg │ │ │ ├── arrow-78.svg │ │ │ ├── arrow-79.svg │ │ │ ├── arrow-8.svg │ │ │ ├── arrow-80.svg │ │ │ ├── arrow-81.svg │ │ │ ├── arrow-82.svg │ │ │ ├── arrow-83.svg │ │ │ ├── arrow-84.svg │ │ │ ├── arrow-85.svg │ │ │ ├── arrow-86.svg │ │ │ ├── arrow-87.svg │ │ │ ├── arrow-88.svg │ │ │ ├── arrow-89.svg │ │ │ ├── arrow-9.svg │ │ │ ├── arrow-90.svg │ │ │ ├── arrow-91.svg │ │ │ ├── arrow-92.svg │ │ │ ├── arrow-93.svg │ │ │ ├── arrow-94.svg │ │ │ ├── arrow-95.svg │ │ │ ├── arrow-96.svg │ │ │ ├── arrow-97.svg │ │ │ ├── arrow-98.svg │ │ │ ├── arrow-99.svg │ │ │ └── source.svg │ │ ├── Cheeky Piggies │ │ ├── Content │ │ │ ├── Crybaby.svg │ │ │ ├── Drool.svg │ │ │ ├── Fuming.svg │ │ │ ├── Hi~.svg │ │ │ ├── Holding Tears.svg │ │ │ ├── Love Blows.svg │ │ │ ├── Me_ Really_.svg │ │ │ ├── OK.svg │ │ │ ├── Sassy Flick.svg │ │ │ ├── Shockwave.svg │ │ │ ├── Snooze Drool.svg │ │ │ ├── Swag.svg │ │ │ ├── Sweatdrop.svg │ │ │ ├── Thumbs Up.svg │ │ │ └── What_.svg │ │ └── Cover │ │ │ ├── Crybaby.svg │ │ │ ├── Drool.svg │ │ │ ├── Fuming.svg │ │ │ ├── Hi~.svg │ │ │ ├── Holding Tears.svg │ │ │ ├── Love Blows.svg │ │ │ ├── Me_ Really_.svg │ │ │ ├── OK.svg │ │ │ ├── Sassy Flick.svg │ │ │ ├── Shockwave.svg │ │ │ ├── Snooze Drool.svg │ │ │ ├── Swag.svg │ │ │ ├── Sweatdrop.svg │ │ │ ├── Thumbs Up.svg │ │ │ └── What_.svg │ │ ├── Contorted Stickers │ │ ├── Content │ │ │ ├── AFFiNE.svg │ │ │ ├── AI.svg │ │ │ ├── Cat.svg │ │ │ ├── Closed.svg │ │ │ ├── Eyes.svg │ │ │ ├── Fire.svg │ │ │ ├── Info.svg │ │ │ ├── King.svg │ │ │ ├── Love Face.svg │ │ │ ├── Love.svg │ │ │ ├── Notice.svg │ │ │ ├── Pin.svg │ │ │ ├── Question.svg │ │ │ ├── Smile Face.svg │ │ │ └── Stop.svg │ │ └── Cover │ │ │ ├── AFFiNE.svg │ │ │ ├── AI.svg │ │ │ ├── Cat.svg │ │ │ ├── Closed.svg │ │ │ ├── Eyes.svg │ │ │ ├── Fire.svg │ │ │ ├── Info.svg │ │ │ ├── King.svg │ │ │ ├── Love Face.svg │ │ │ ├── Love.svg │ │ │ ├── Notice.svg │ │ │ ├── Pin.svg │ │ │ ├── Question.svg │ │ │ ├── Smile Face.svg │ │ │ └── Stop.svg │ │ └── Paper │ │ ├── Content │ │ ├── +1.svg │ │ ├── A lot of question.svg │ │ ├── AFFiNE AI.svg │ │ ├── Arrow.svg │ │ ├── Atention.svg │ │ ├── Blue Screen.svg │ │ ├── Boom.svg │ │ ├── Cool.svg │ │ ├── Dino.svg │ │ ├── Histogram.svg │ │ ├── Local First.svg │ │ ├── Medal.svg │ │ ├── Notice.svg │ │ ├── Pin.svg │ │ └── Star.svg │ │ └── Cover │ │ ├── +1.svg │ │ ├── A lot of question.svg │ │ ├── AFFiNE AI.svg │ │ ├── Arrow.svg │ │ ├── Atention.svg │ │ ├── Blue Screen.svg │ │ ├── Boom.svg │ │ ├── Cool.svg │ │ ├── Dino.svg │ │ ├── Histogram.svg │ │ ├── Local First.svg │ │ ├── Medal.svg │ │ ├── Notice.svg │ │ ├── Pin.svg │ │ └── Star.svg │ └── track │ ├── package.json │ ├── src │ ├── __tests__ │ │ └── auto.spec.ts │ ├── auto.ts │ ├── events.ts │ ├── index.ts │ ├── mixpanel.ts │ ├── sentry.ts │ └── types.ts │ └── tsconfig.json ├── rust-toolchain.toml ├── rustfmt.toml ├── scripts ├── download-blocksuite-fonts.mjs ├── generate-release-yml.mjs ├── set-version.sh ├── setup │ ├── global.ts │ ├── lit.ts │ ├── polyfill.ts │ └── vi-mock.ts └── vitest-global.js ├── tests ├── affine-cloud-copilot │ ├── README.md │ ├── e2e │ │ ├── ai-action │ │ │ ├── brainstorm-ideas-with-mind-map.spec.ts │ │ │ ├── change-tone.spec.ts │ │ │ ├── check-code-error.spec.ts │ │ │ ├── continue-with-ai.spec.ts │ │ │ ├── continue-writing.spec.ts │ │ │ ├── expand-mindmap-node.spec.ts │ │ │ ├── explain-code.spec.ts │ │ │ ├── explain-image.spec.ts │ │ │ ├── explain-selection.spec.ts │ │ │ ├── find-actions.spec.ts │ │ │ ├── fix-grammar.spec.ts │ │ │ ├── fix-spelling.spec.ts │ │ │ ├── generate-an-image-with-image.spec.ts │ │ │ ├── generate-an-image-with-text.spec.ts │ │ │ ├── generate-headings.spec.ts │ │ │ ├── generate-image-caption.spec.ts │ │ │ ├── generate-outline.spec.ts │ │ │ ├── generate-presentation.spec.ts │ │ │ ├── image-filter.spec.ts │ │ │ ├── image-processing.spec.ts │ │ │ ├── improve-writing.spec.ts │ │ │ ├── make-it-longer.spec.ts │ │ │ ├── make-it-real.spec.ts │ │ │ ├── make-it-shorter.spec.ts │ │ │ ├── regenerate-mindmap.spec.ts │ │ │ ├── summarize.spec.ts │ │ │ ├── translate.spec.ts │ │ │ ├── write-an-article.spec.ts │ │ │ ├── write-an-blog.spec.ts │ │ │ ├── write-an-poem.spec.ts │ │ │ └── write-an-tweet.spec.ts │ │ ├── base │ │ │ └── base-test.ts │ │ ├── basic │ │ │ ├── authority.spec.ts │ │ │ ├── chat.spec.ts │ │ │ ├── guidance.spec.ts │ │ │ └── onboarding.spec.ts │ │ ├── chat-with │ │ │ ├── attachments.spec.ts │ │ │ ├── collections.spec.ts │ │ │ ├── doc.spec.ts │ │ │ ├── edgeless-mindmap.spec.ts │ │ │ ├── edgeless-note-block.spec.ts │ │ │ ├── edgeless-text-block.spec.ts │ │ │ ├── image-block.spec.ts │ │ │ ├── image.spec.ts │ │ │ ├── network.spec.ts │ │ │ ├── reasoning.spec.ts │ │ │ ├── tags.spec.ts │ │ │ └── text.spec.ts │ │ ├── insertion │ │ │ ├── add-to-edgeless-as-note.spec.ts │ │ │ ├── insert.spec.ts │ │ │ ├── save-as-block.spec.ts │ │ │ └── save-as-doc.spec.ts │ │ ├── settings │ │ │ └── embedding.spec.ts │ │ ├── types │ │ │ └── global.d.ts │ │ └── utils │ │ │ ├── chat-panel-utils.ts │ │ │ ├── editor-utils.ts │ │ │ ├── settings-panel-utils.ts │ │ │ └── test-utils.ts │ ├── global-setup.ts │ ├── package.json │ ├── playwright.config.ts │ └── tsconfig.json ├── affine-cloud │ ├── e2e │ │ ├── collaboration.spec.ts │ │ ├── comments.spec.ts │ │ ├── fixtures │ │ │ └── 0.9.0-canary.9-snapshots.sql │ │ ├── login.spec.ts │ │ ├── logo.svg │ │ ├── migration.spec.skip.ts │ │ ├── open-in-app.spec.ts │ │ ├── page-history.spec.ts │ │ ├── share-page-1.spec.ts │ │ ├── share-page-2.spec.ts │ │ ├── storage.spec.ts │ │ ├── template.spec.ts │ │ └── workspace.spec.ts │ ├── package.json │ ├── playwright.config.ts │ └── tsconfig.json ├── affine-desktop-cloud │ ├── e2e │ │ └── basic.spec.ts │ ├── package.json │ ├── playwright.config.ts │ └── tsconfig.json ├── affine-desktop │ ├── e2e │ │ ├── basic.spec.ts │ │ ├── image.spec.ts │ │ ├── split-view.spec.ts │ │ ├── tabs.spec.ts │ │ └── workspace.spec.ts │ ├── package.json │ ├── playwright.config.ts │ └── tsconfig.json ├── affine-local │ ├── e2e │ │ ├── ai-land.spec.ts │ │ ├── all-page.spec.ts │ │ ├── attachment-preview.spec.ts │ │ ├── blocksuite │ │ │ ├── at-menu.spec.ts │ │ │ ├── attachment │ │ │ │ └── toolbar.spec.ts │ │ │ ├── callout │ │ │ │ └── callout.spec.ts │ │ │ ├── clipboard │ │ │ │ └── clipboard.spec.ts │ │ │ ├── code │ │ │ │ ├── crud.spec.ts │ │ │ │ └── utils.ts │ │ │ ├── color-picker.spec.ts │ │ │ ├── database │ │ │ │ ├── clipboard.spec.ts │ │ │ │ ├── rich-text.spec.ts │ │ │ │ └── utils.ts │ │ │ ├── edgeless │ │ │ │ ├── auto-complete.spec.ts │ │ │ │ ├── connector.spec.ts │ │ │ │ ├── embed.spec.ts │ │ │ │ ├── frame.spec.ts │ │ │ │ ├── highlighter.spec.ts │ │ │ │ ├── note.spec.ts │ │ │ │ ├── shape.spec.ts │ │ │ │ └── text.spec.ts │ │ │ ├── editor.spec.ts │ │ │ ├── embed │ │ │ │ ├── embed-iframe.spec.ts │ │ │ │ └── synced.spec.ts │ │ │ ├── list.spec.ts │ │ │ ├── outline │ │ │ │ ├── outline-panel.spec.ts │ │ │ │ ├── outline-viewer.spec.ts │ │ │ │ └── utils.ts │ │ │ ├── paragraph.spec.ts │ │ │ ├── table │ │ │ │ ├── collab.spec.ts │ │ │ │ ├── edge-insertion.spec.ts │ │ │ │ └── insertion.spec.ts │ │ │ └── toolbar.spec.ts │ │ ├── change-page-mode.spec.ts │ │ ├── doc-info-modal.spec.ts │ │ ├── drag-page.spec.ts │ │ ├── duplicate-page.spec.ts │ │ ├── exception-page.spec.ts │ │ ├── image-preview.spec.ts │ │ ├── import-dialog.spec.ts │ │ ├── journal.spec.ts │ │ ├── layout.spec.ts │ │ ├── links.spec.ts │ │ ├── local-first-avatar.spec.ts │ │ ├── local-first-collections-items.spec.ts │ │ ├── local-first-delete-page.spec.ts │ │ ├── local-first-delete-workspace.spec.ts │ │ ├── local-first-export-page.spec.ts │ │ ├── local-first-favorite-page.spec.ts │ │ ├── local-first-favorites-items.spec.ts │ │ ├── local-first-new-page.spec.ts │ │ ├── local-first-openpage-newtab.spec.ts │ │ ├── local-first-restore-page.spec.ts │ │ ├── local-first-show-delete-modal.spec.ts │ │ ├── local-first-trash-page.spec.ts │ │ ├── local-first-workspace-list.spec.ts │ │ ├── local-first-workspace.spec.ts │ │ ├── navigation.spec.ts │ │ ├── open-affine.spec.ts │ │ ├── page-properties.spec.ts │ │ ├── peek-view.spec.ts │ │ ├── quick-search.spec.ts │ │ ├── router.spec.ts │ │ ├── settings.spec.ts │ │ ├── template.spec.ts │ │ ├── theme.spec.ts │ │ └── undo-empty.spec.ts │ ├── package.json │ ├── playwright.config.ts │ └── tsconfig.json ├── affine-mobile │ ├── e2e │ │ ├── back-button-visibility.spec.ts │ │ ├── detail.spec.ts │ │ ├── explorer-favorite.spec.ts │ │ ├── explorer-folder.spec.ts │ │ ├── explorer-tag.spec.ts │ │ ├── home.spec.ts │ │ ├── settings.spec.ts │ │ └── utils.ts │ ├── package.json │ ├── playwright.config.ts │ └── tsconfig.json ├── blocksuite │ ├── e2e │ │ ├── attachment.spec.ts │ │ ├── bookmark.spec.ts │ │ ├── clipboard │ │ │ ├── clipboard.spec.ts │ │ │ ├── image.spec.ts │ │ │ ├── list.spec.ts │ │ │ └── markdown.spec.ts │ │ ├── code │ │ │ ├── copy-paste.spec.ts │ │ │ ├── crud.spec.ts │ │ │ ├── readonly.spec.ts │ │ │ ├── selections.spec.ts │ │ │ └── utils.ts │ │ ├── cross-platform │ │ │ ├── basic.spec.ts │ │ │ └── inline │ │ │ │ └── inline-editor.spec.ts │ │ ├── database │ │ │ ├── actions.ts │ │ │ ├── clipboard.spec.ts │ │ │ ├── column.spec.ts │ │ │ ├── database.spec.ts │ │ │ ├── selection.spec.ts │ │ │ ├── sort.spec.ts │ │ │ ├── statistics.spec.ts │ │ │ └── title.spec.ts │ │ ├── drag.spec.ts │ │ ├── edgeless │ │ │ ├── align.spec.ts │ │ │ ├── auto-complete.spec.ts │ │ │ ├── auto-connect.spec.ts │ │ │ ├── basic.spec.ts │ │ │ ├── brush.spec.ts │ │ │ ├── clipboard.spec.ts │ │ │ ├── color-picker.spec.ts │ │ │ ├── connector │ │ │ │ ├── clipboard.spec.ts │ │ │ │ ├── connector.spec.ts │ │ │ │ ├── elbow.spec.ts │ │ │ │ ├── group.spec.ts │ │ │ │ └── label.spec.ts │ │ │ ├── edgeless-text.spec.ts │ │ │ ├── element-toolbar.spec.ts │ │ │ ├── eraser.spec.ts │ │ │ ├── frame │ │ │ │ ├── clipboard.spec.ts │ │ │ │ ├── frame-mindmap.spec.ts │ │ │ │ ├── frame-title.spec.ts │ │ │ │ ├── frame.spec.ts │ │ │ │ ├── layer.spec.ts │ │ │ │ └── selection.spec.ts │ │ │ ├── group │ │ │ │ ├── clipboard.spec.ts │ │ │ │ ├── group-and-ungroup.spec.ts │ │ │ │ ├── group.spec.ts │ │ │ │ ├── release.spec.ts │ │ │ │ └── title.spec.ts │ │ │ ├── linked-doc.spec.ts │ │ │ ├── lock.spec.ts │ │ │ ├── mindmap.spec.ts │ │ │ ├── note │ │ │ │ ├── drag-handle.spec.ts │ │ │ │ ├── mode.spec.ts │ │ │ │ ├── note.spec.ts │ │ │ │ ├── resize.spec.ts │ │ │ │ ├── scale.spec.ts │ │ │ │ ├── slicer.spec.ts │ │ │ │ └── undo-redo.spec.ts │ │ │ ├── pan.spec.ts │ │ │ ├── paste-block.spec.ts │ │ │ ├── presentation.spec.ts │ │ │ ├── reordering.spec.ts │ │ │ ├── resizing.spec.ts │ │ │ ├── rotation.spec.ts │ │ │ ├── selection │ │ │ │ ├── connector.spec.ts │ │ │ │ ├── keyboard.spec.ts │ │ │ │ └── selection.spec.ts │ │ │ ├── shape.spec.ts │ │ │ ├── shortcut.spec.ts │ │ │ ├── snap.spec.ts │ │ │ └── text.spec.ts │ │ ├── embed-synced-doc │ │ │ ├── edgeless.spec.ts │ │ │ ├── render.spec.ts │ │ │ ├── toolbar.spec.ts │ │ │ └── utils.ts │ │ ├── fixtures │ │ │ └── smile.png │ │ ├── format-bar.spec.ts │ │ ├── fragments │ │ │ └── frame-panel.spec.ts │ │ ├── hotkey │ │ │ ├── bracket.spec.ts │ │ │ ├── hotkey.spec.ts │ │ │ ├── multiline.spec.ts │ │ │ └── title.spec.ts │ │ ├── image │ │ │ ├── image.spec.ts │ │ │ ├── keymap.spec.ts │ │ │ ├── load.spec.ts │ │ │ └── menu.spec.ts │ │ ├── latex │ │ │ ├── block.spec.ts │ │ │ └── inline.spec.ts │ │ ├── link.spec.ts │ │ ├── linked-page.spec.ts │ │ ├── list.spec.ts │ │ ├── markdown.spec.ts │ │ ├── multiple-editors │ │ │ ├── edgeless.spec.ts │ │ │ └── selection.spec.ts │ │ ├── paragraph.spec.ts │ │ ├── quote.spec.ts │ │ ├── selection │ │ │ ├── block.spec.ts │ │ │ └── native.spec.ts │ │ ├── slash-menu.spec.ts │ │ ├── utils │ │ │ ├── actions │ │ │ │ ├── block.ts │ │ │ │ ├── click.ts │ │ │ │ ├── drag.ts │ │ │ │ ├── edgeless.ts │ │ │ │ ├── index.ts │ │ │ │ ├── keyboard.ts │ │ │ │ ├── linked-doc.ts │ │ │ │ ├── misc.ts │ │ │ │ └── selection.ts │ │ │ ├── asserts.ts │ │ │ ├── bs-alternative.ts │ │ │ ├── declare-test-window.ts │ │ │ ├── ignore.ts │ │ │ ├── inline-editor.ts │ │ │ ├── mindmap.ts │ │ │ ├── multiple-editor.ts │ │ │ ├── playwright.ts │ │ │ └── query.ts │ │ ├── worker.spec.ts │ │ └── zero-width.spec.ts │ ├── package.json │ ├── playwright.config.ts │ ├── snapshots │ │ ├── attachment.spec.ts │ │ │ ├── can-insert-attachment-from-slash-menu.json │ │ │ ├── should-attachment-can-be-deleted.json │ │ │ ├── should-turn-attachment-to-image-works-1.json │ │ │ ├── should-turn-attachment-to-image-works-2.json │ │ │ ├── should-undo-redo-works-for-attachment-1.json │ │ │ ├── should-undo-redo-works-for-attachment-2.json │ │ │ ├── should-undo-redo-works-for-attachment-3.json │ │ │ ├── support-dragging-attachment-block-directly-1.json │ │ │ ├── support-dragging-attachment-block-directly-2.json │ │ │ └── support-dragging-attachment-block-directly-3.json │ │ ├── bookmark.spec.ts │ │ │ ├── copy-bookmark-url-by-copy-button-final.json │ │ │ ├── copy-url-to-create-bookmark-in-edgeless-mode-final.json │ │ │ ├── copy-url-to-create-bookmark-in-page-mode-final.json │ │ │ ├── covert-bookmark-block-to-link-text-final.json │ │ │ ├── create-bookmark-by-slash-menu-final.json │ │ │ ├── embed-figma.json │ │ │ ├── embed-youtube.json │ │ │ ├── horizontal-figma.json │ │ │ ├── horizontal-youtube.json │ │ │ ├── support-dragging-bookmark-block-directly-after-add-paragraph.json │ │ │ ├── support-dragging-bookmark-block-directly-after-drag.json │ │ │ └── support-dragging-bookmark-block-directly-init.json │ │ ├── clipboard │ │ │ ├── clipboard.spec.ts │ │ │ │ ├── auto-identify-url-final.json │ │ │ │ ├── clipboard-copy-nested-items-clipboard.html │ │ │ │ ├── clipboard-copy-nested-items-clipboard.json │ │ │ │ ├── clipboard-copy-nested-items-clipboard.md │ │ │ │ ├── clipboard-copy-nested-items-clipboard2.html │ │ │ │ ├── clipboard-copy-nested-items-clipboard2.json │ │ │ │ └── clipboard-copy-nested-items-clipboard2.md │ │ │ └── list.spec.ts │ │ │ │ ├── copy-a-nested-list-by-clicking-button-the-clipboard-data-should-be-complete-clipboard.html │ │ │ │ ├── copy-a-nested-list-by-clicking-button-the-clipboard-data-should-be-complete-clipboard.json │ │ │ │ ├── copy-a-nested-list-by-clicking-button-the-clipboard-data-should-be-complete-clipboard.md │ │ │ │ ├── cut-will-delete-all-content-and-copy-will-reappear-content-after-cut.json │ │ │ │ ├── cut-will-delete-all-content-and-copy-will-reappear-content-after-paste.json │ │ │ │ ├── should-keep-paragraph-block-s-type-when-pasting-at-the-start-of-empty-paragraph-block-except-type-text-after-paste-1.json │ │ │ │ └── should-keep-paragraph-block-s-type-when-pasting-at-the-start-of-empty-paragraph-block-except-type-text-after-paste-2.json │ │ ├── code │ │ │ ├── copy-paste.spec.ts │ │ │ │ ├── code-block-has-content-click-code-block-copy-menu-copy-whole-code-block-pasted.json │ │ │ │ └── code-block-is-empty-click-code-block-copy-menu-copy-the-empty-code-block-pasted.json │ │ │ └── crud.spec.ts │ │ │ │ ├── add-caption-works.json │ │ │ │ ├── change-code-language-can-work-1.json │ │ │ │ ├── change-code-language-can-work-2.json │ │ │ │ ├── delete-code-block-in-more-menu-final.json │ │ │ │ ├── duplicate-code-block-final.json │ │ │ │ ├── format-text-in-code-block-format.json │ │ │ │ ├── format-text-in-code-block-init.json │ │ │ │ ├── format-text-in-code-block-link.json │ │ │ │ ├── toggle-code-block-wrap-can-work-1.json │ │ │ │ ├── toggle-code-block-wrap-can-work-2.json │ │ │ │ ├── toggle-code-block-wrap-can-work-3.json │ │ │ │ ├── undo-code-block-wrap-can-work-1.json │ │ │ │ ├── undo-code-block-wrap-can-work-2.json │ │ │ │ ├── undo-code-block-wrap-can-work-3.json │ │ │ │ ├── use-markdown-syntax-can-create-code-block-init.json │ │ │ │ └── use-markdown-syntax-can-create-code-block-markdown-syntax.json │ │ ├── cross-platform │ │ │ └── basic.spec.ts │ │ │ │ ├── automatic-identify-url-text-final.json │ │ │ │ └── basic-test-default.json │ │ ├── drag.spec.ts │ │ │ ├── move-to-the-last-block-of-each-level-in-multi-level-nesting-drag-3-4.json │ │ │ ├── move-to-the-last-block-of-each-level-in-multi-level-nesting-drag-3-9.json │ │ │ ├── move-to-the-last-block-of-each-level-in-multi-level-nesting-drag-4-3.json │ │ │ ├── move-to-the-last-block-of-each-level-in-multi-level-nesting-init.json │ │ │ ├── should-be-able-to-drag-drop-multiple-blocks-to-nested-block-finial.json │ │ │ └── should-be-able-to-drag-drop-multiple-blocks-to-nested-block-init.json │ │ ├── edgeless │ │ │ └── edgeless-text.spec.ts │ │ │ │ ├── min-width-limit-for-embed-block-add-linked-doc.json │ │ │ │ ├── min-width-limit-for-embed-block-drag.json │ │ │ │ ├── min-width-limit-for-embed-block-init.json │ │ │ │ ├── min-width-limit-for-embed-block-link-to-card-min-width.json │ │ │ │ ├── min-width-limit-for-embed-block-link-to-card.json │ │ │ │ ├── press-backspace-at-the-start-of-first-line-when-edgeless-text-exist-finial.json │ │ │ │ ├── press-backspace-at-the-start-of-first-line-when-edgeless-text-exist-note-empty.json │ │ │ │ └── press-backspace-at-the-start-of-first-line-when-edgeless-text-exist-note-not-empty.json │ │ ├── format-bar.spec.ts │ │ │ ├── create-linked-doc-from-block-selection-with-format-bar.json │ │ │ ├── should-format-quick-bar-be-able-to-change-background-color-default-color.json │ │ │ ├── should-format-quick-bar-be-able-to-change-background-color-init.json │ │ │ ├── should-format-quick-bar-be-able-to-change-background-color-select-all.json │ │ │ ├── should-format-quick-bar-be-able-to-change-to-heading-paragraph-type-bulleted.json │ │ │ ├── should-format-quick-bar-be-able-to-change-to-heading-paragraph-type-finial.json │ │ │ ├── should-format-quick-bar-be-able-to-change-to-heading-paragraph-type-init.json │ │ │ ├── should-format-quick-bar-be-able-to-format-text-finial.json │ │ │ ├── should-format-quick-bar-be-able-to-format-text-init.json │ │ │ ├── should-format-quick-bar-be-able-to-format-text-when-select-multiple-line-finial.json │ │ │ ├── should-format-quick-bar-be-able-to-format-text-when-select-multiple-line-init.json │ │ │ ├── should-format-quick-bar-be-able-to-link-text-finial.json │ │ │ ├── should-format-quick-bar-be-able-to-link-text-init.json │ │ │ ├── should-format-quick-bar-show-after-convert-to-code-block.json │ │ │ ├── should-format-quick-bar-with-block-selection-works-when-update-block-type-final.json │ │ │ ├── should-format-quick-bar-with-block-selection-works-when-update-block-type-init.json │ │ │ ├── should-format-quick-bar-work-in-multiple-block-selection.json │ │ │ └── should-format-quick-bar-work-in-single-block-selection.json │ │ ├── hotkey.spec.ts │ │ │ ├── Enter-key-should-as-expected-after-setting-heading-by-shortkey.json │ │ │ ├── multi-line-rich-text-inline-code-hotkey-init.json │ │ │ ├── multi-line-rich-text-inline-code-hotkey-redo.json │ │ │ ├── multi-line-rich-text-inline-code-hotkey-undo.json │ │ │ ├── should-cut-work-multiple-line-init.json │ │ │ ├── should-cut-work-multiple-line-undo.json │ │ │ ├── should-cut-work-single-line-init.json │ │ │ ├── should-cut-work-single-line-undo.json │ │ │ ├── should-hotkey-work-in-paragraph-init.json │ │ │ ├── should-hotkey-work-in-paragraph-press-0.json │ │ │ ├── should-hotkey-work-in-paragraph-press-6.json │ │ │ ├── should-hotkey-work-in-paragraph-press-8.json │ │ │ ├── should-hotkey-work-in-paragraph-press-9.json │ │ │ ├── should-hotkey-work-in-paragraph-press-d.json │ │ │ ├── should-multiple-line-format-hotkey-work-finial.json │ │ │ ├── should-multiple-line-format-hotkey-work-init.json │ │ │ ├── should-single-line-format-hotkey-work-finial.json │ │ │ ├── should-single-line-format-hotkey-work-init.json │ │ │ ├── use-formatted-cursor-with-hotkey-bold-ggg.json │ │ │ ├── use-formatted-cursor-with-hotkey-bold-hhh.json │ │ │ ├── use-formatted-cursor-with-hotkey-bold.json │ │ │ └── use-formatted-cursor-with-hotkey-init.json │ │ ├── hotkey │ │ │ ├── bracket.spec.ts │ │ │ │ ├── should-bracket-complete-with-backtick-works-undo.json │ │ │ │ └── should-bracket-complete-with-backtick-works.json │ │ │ ├── hotkey.spec.ts │ │ │ │ ├── Enter-key-should-as-expected-after-setting-heading-by-shortkey.json │ │ │ │ ├── should-cut-work-single-line-init.json │ │ │ │ ├── should-cut-work-single-line-undo.json │ │ │ │ ├── should-hotkey-work-in-paragraph-init.json │ │ │ │ ├── should-hotkey-work-in-paragraph-press-0.json │ │ │ │ ├── should-hotkey-work-in-paragraph-press-6.json │ │ │ │ ├── should-hotkey-work-in-paragraph-press-8.json │ │ │ │ ├── should-hotkey-work-in-paragraph-press-9.json │ │ │ │ ├── should-hotkey-work-in-paragraph-press-d.json │ │ │ │ ├── should-single-line-format-hotkey-work-finial.json │ │ │ │ ├── should-single-line-format-hotkey-work-init.json │ │ │ │ ├── type-character-jump-out-code-node-1.json │ │ │ │ ├── type-character-jump-out-code-node-2.json │ │ │ │ ├── use-formatted-cursor-with-hotkey-at-empty-line-bold.json │ │ │ │ ├── use-formatted-cursor-with-hotkey-bold-ggg.json │ │ │ │ ├── use-formatted-cursor-with-hotkey-bold-hhh.json │ │ │ │ ├── use-formatted-cursor-with-hotkey-bold.json │ │ │ │ └── use-formatted-cursor-with-hotkey-init.json │ │ │ └── multiline.spec.ts │ │ │ │ ├── multi-line-rich-text-inline-code-hotkey-init.json │ │ │ │ ├── multi-line-rich-text-inline-code-hotkey-redo.json │ │ │ │ ├── multi-line-rich-text-inline-code-hotkey-undo.json │ │ │ │ ├── should-cut-work-multiple-line-init.json │ │ │ │ ├── should-cut-work-multiple-line-undo.json │ │ │ │ ├── should-multiple-line-format-hotkey-work-finial.json │ │ │ │ └── should-multiple-line-format-hotkey-work-init.json │ │ ├── latex │ │ │ ├── block.spec.ts │ │ │ │ ├── add-latex-block-using-markdown-shortcut-with-enter-finial.json │ │ │ │ ├── add-latex-block-using-markdown-shortcut-with-enter-init.json │ │ │ │ ├── add-latex-block-using-markdown-shortcut-with-space-finial.json │ │ │ │ ├── add-latex-block-using-markdown-shortcut-with-space-init.json │ │ │ │ ├── add-latex-block-using-slash-menu-finial.json │ │ │ │ └── add-latex-block-using-slash-menu-init.json │ │ │ └── inline.spec.ts │ │ │ │ ├── add-inline-latex-at-the-start-of-line.html │ │ │ │ ├── add-inline-latex-in-the-middle-of-text.html │ │ │ │ ├── add-inline-latex-using-slash-menu.html │ │ │ │ └── update-inline-latex-by-clicking-the-node.html │ │ ├── link.spec.ts │ │ │ ├── basic-link.json │ │ │ ├── convert-link-to-card.json │ │ │ ├── convert-link-to-embed.json │ │ │ ├── create-link-with-paste.json │ │ │ ├── should-mock-selection-not-stored.json │ │ │ ├── type-character-after-link-should-not-extend-the-link-attributes.json │ │ │ └── type-character-in-link-should-not-jump-out-link-node.json │ │ ├── linked-page.spec.ts │ │ │ ├── can-create-linked-page-and-jump-final.json │ │ │ ├── can-create-linked-page-and-jump-init.json │ │ │ ├── duplicated-linked-page-should-paste-as-linked-page.json │ │ │ ├── linked-doc-popover-can-show-and-hide-correctly.json │ │ │ ├── paste-linked-page-should-paste-as-linked-page.json │ │ │ ├── should-Selected-text-converted-to-linked-page.json │ │ │ ├── should-create-and-switch-page-work-final.json │ │ │ ├── should-create-and-switch-page-work-init.json │ │ │ ├── should-reference-node-attributes-correctly-1.json │ │ │ ├── should-reference-node-attributes-correctly-2.json │ │ │ ├── should-the-cursor-move-correctly-around-reference-node-1.json │ │ │ ├── should-the-cursor-move-correctly-around-reference-node-2.json │ │ │ ├── text-can-be-inserted-as-expected-when-reference-node-is-in-the-start-or-end-of-line.json │ │ │ └── text-inserted-in-the-between-of-reference-nodes-should-not-be-extend-attributes.json │ │ ├── list.spec.ts │ │ │ ├── basic-indent-and-unindent-after-shift-tab.json │ │ │ ├── basic-indent-and-unindent-after-tab.json │ │ │ ├── basic-indent-and-unindent-init.json │ │ │ ├── can-expand-toggle-in-readonly-mode-before-readonly.json │ │ │ ├── click-toggle-icon-should-collapsed-list-init.json │ │ │ ├── click-toggle-icon-should-collapsed-list-toggle.json │ │ │ ├── convert-nested-paragraph-to-list-final.json │ │ │ ├── convert-nested-paragraph-to-list-init.json │ │ │ ├── enter-list-block-with-empty-text-1.json │ │ │ ├── enter-list-block-with-empty-text-2.json │ │ │ ├── enter-list-block-with-empty-text-3.json │ │ │ ├── enter-list-block-with-empty-text-4.json │ │ │ ├── enter-list-block-with-empty-text-5.json │ │ │ ├── enter-list-block-with-empty-text-init.json │ │ │ ├── indent-item-should-expand-toggle-finial.json │ │ │ ├── indent-item-should-expand-toggle-init.json │ │ │ ├── indent-item-should-expand-toggle-toggle.json │ │ │ ├── nested-list-blocks-finial.json │ │ │ ├── nested-list-blocks-init.json │ │ │ ├── should-indent-todo-block-preserve-todo-status-final.json │ │ │ └── should-indent-todo-block-preserve-todo-status-init.json │ │ ├── paragraph.spec.ts │ │ │ ├── delete-empty-text-paragraph-block-should-keep-children-blocks-when-following-custom-blocks-final.json │ │ │ ├── delete-empty-text-paragraph-block-should-keep-children-blocks-when-following-custom-blocks-init.json │ │ │ ├── paragraph-indent-and-delete-in-line-start-after-press-backspace-2.json │ │ │ ├── paragraph-indent-and-delete-in-line-start-after-press-backspace-3.json │ │ │ ├── paragraph-indent-and-delete-in-line-start-after-press-backspace.json │ │ │ ├── paragraph-indent-and-delete-in-line-start-init.json │ │ │ ├── paragraph-with-child-block-should-work-at-enter-final.json │ │ │ ├── paragraph-with-child-block-should-work-at-enter-init.json │ │ │ ├── should-delete-paragraph-block-child-can-hold-cursor-in-correct-position-final.json │ │ │ ├── should-delete-paragraph-block-child-can-hold-cursor-in-correct-position-init.json │ │ │ ├── should-indent-and-unindent-works-with-children-indent-2.json │ │ │ ├── should-indent-and-unindent-works-with-children-indent-3.json │ │ │ ├── should-indent-and-unindent-works-with-children-indent-4.json │ │ │ ├── should-indent-and-unindent-works-with-children-indent.json │ │ │ ├── should-indent-and-unindent-works-with-children-init.json │ │ │ ├── should-indent-and-unindent-works-with-children-unindent-1.json │ │ │ ├── should-indent-and-unindent-works-with-children-unindent-2.json │ │ │ ├── should-indent-and-unindent-works-with-children-unindent-3.json │ │ │ ├── should-readonly-mode-not-be-able-to-modify-text-1.json │ │ │ └── should-readonly-mode-not-be-able-to-modify-text-2.json │ │ ├── selection │ │ │ ├── block.spec.ts │ │ │ │ ├── click-bottom-of-page-and-if-the-last-is-embed-block-editor-should-insert-a-new-editable-block.json │ │ │ │ ├── should-indent-multi-selection-block.json │ │ │ │ ├── should-not-draw-rect-for-sub-selected-blocks-when-entering-tab-key.json │ │ │ │ ├── should-unindent-multi-selection-block-final.json │ │ │ │ └── should-unindent-multi-selection-block-init.json │ │ │ └── native.spec.ts │ │ │ │ ├── indent-native-multi-selection-block-after-shift-tab.json │ │ │ │ ├── indent-native-multi-selection-block-after-tab.json │ │ │ │ ├── native-range-delete-with-indent-after-backspace.json │ │ │ │ ├── native-range-delete-with-indent-after-redo.json │ │ │ │ ├── native-range-delete-with-indent-after-undo.json │ │ │ │ ├── native-range-delete-with-indent-init.json │ │ │ │ └── should-unindent-native-multi-selection-block-after-tab.json │ │ └── slash-menu.spec.ts │ │ │ ├── delete-block-by-slash-menu-should-remove-children.json │ │ │ ├── delete-the-slash-symbol-should-close-the-slash-menu.json │ │ │ ├── should-clean-slash-string-after-soft-enter.json │ │ │ ├── should-style-empty-line-works.json │ │ │ ├── should-style-text-line-works.json │ │ │ └── slash-menu-should-hide-after-click-away.json │ └── tsconfig.json ├── fixtures │ ├── affine-preview.png │ ├── affine.svg │ ├── blue.png │ ├── large-image.png │ ├── lorem-ipsum.pdf │ └── v1-color-palettes-snapshot.zip └── kit │ ├── package.json │ ├── src │ ├── bs │ │ ├── linked-toolbar.ts │ │ ├── misc.ts │ │ └── table.ts │ ├── electron.ts │ ├── mobile.ts │ ├── playwright.ts │ └── utils │ │ ├── app-tabs.ts │ │ ├── attachment.ts │ │ ├── clipboard.ts │ │ ├── cloud.ts │ │ ├── drop-file.ts │ │ ├── editor.ts │ │ ├── filter.ts │ │ ├── image.ts │ │ ├── keyboard.ts │ │ ├── load-page.ts │ │ ├── page-logic.ts │ │ ├── properties.ts │ │ ├── selection.ts │ │ ├── setting.ts │ │ ├── sidebar.ts │ │ ├── url.ts │ │ ├── utils.ts │ │ └── workspace.ts │ └── tsconfig.json ├── tools ├── @types │ ├── build-config │ │ ├── __all.d.ts │ │ └── package.json │ └── env │ │ ├── __all.d.ts │ │ └── package.json ├── changelog │ ├── index.js │ ├── markdown.js │ └── package.json ├── cli │ ├── README.md │ ├── bin │ │ ├── cli.js │ │ └── runner.js │ ├── hooks.js │ ├── package.json │ ├── register.js │ ├── src │ │ ├── affine.ts │ │ ├── build.ts │ │ ├── bundle.ts │ │ ├── cert.ts │ │ ├── clean.ts │ │ ├── command.ts │ │ ├── context.ts │ │ ├── dev.ts │ │ ├── init.ts │ │ ├── run.ts │ │ └── webpack │ │ │ ├── cache-group.ts │ │ │ ├── error-handler.js │ │ │ ├── html-plugin.ts │ │ │ ├── index.ts │ │ │ ├── node-loader.js │ │ │ ├── s3-plugin.ts │ │ │ ├── template.html │ │ │ └── types.ts │ └── tsconfig.json ├── commitlint │ ├── .commitlintrc.json │ ├── README.md │ └── package.json ├── copilot-result │ ├── index.js │ ├── markdown.js │ └── package.json ├── playstore-auto-bump │ ├── index.ts │ ├── package.json │ └── tsconfig.json └── utils │ ├── package.json │ ├── src │ ├── build-config.ts │ ├── distribution.ts │ ├── format.ts │ ├── index.ts │ ├── logger.ts │ ├── package.ts │ ├── path.ts │ ├── process.ts │ ├── types.ts │ ├── workspace.gen.ts │ ├── workspace.ts │ └── yarn.ts │ └── tsconfig.json ├── tsconfig.eslint.json ├── tsconfig.json ├── tsconfig.node.json ├── tsconfig.web.json ├── typedoc.base.json ├── typedoc.json ├── vitest.config.ts ├── vitest.workspace.ts └── yarn.lock /.cargo/config.toml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/.cargo/config.toml -------------------------------------------------------------------------------- /.codesandbox/task.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/.codesandbox/task.json -------------------------------------------------------------------------------- /.devcontainer/build.sh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/.devcontainer/build.sh -------------------------------------------------------------------------------- /.devcontainer/devcontainer.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/.devcontainer/devcontainer.json -------------------------------------------------------------------------------- /.devcontainer/docker-compose.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/.devcontainer/docker-compose.yml -------------------------------------------------------------------------------- /.devcontainer/setup-user.sh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/.devcontainer/setup-user.sh -------------------------------------------------------------------------------- /.docker/dev/.env.example: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/.docker/dev/.env.example -------------------------------------------------------------------------------- /.docker/dev/.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/.docker/dev/.gitignore -------------------------------------------------------------------------------- /.docker/dev/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/.docker/dev/README.md -------------------------------------------------------------------------------- /.docker/dev/certs/.gitkeep: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /.docker/dev/compose.yml.example: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/.docker/dev/compose.yml.example -------------------------------------------------------------------------------- /.docker/dev/nginx/nginx.conf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/.docker/dev/nginx/nginx.conf -------------------------------------------------------------------------------- /.docker/dev/templates/nginx.conf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/.docker/dev/templates/nginx.conf -------------------------------------------------------------------------------- /.docker/dev/templates/openssl.conf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/.docker/dev/templates/openssl.conf -------------------------------------------------------------------------------- /.docker/selfhost/.env.example: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/.docker/selfhost/.env.example -------------------------------------------------------------------------------- /.docker/selfhost/.gitignore: -------------------------------------------------------------------------------- 1 | .env 2 | -------------------------------------------------------------------------------- /.docker/selfhost/compose.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/.docker/selfhost/compose.yml -------------------------------------------------------------------------------- /.docker/selfhost/config.example.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/.docker/selfhost/config.example.json -------------------------------------------------------------------------------- /.docker/selfhost/schema.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/.docker/selfhost/schema.json -------------------------------------------------------------------------------- /.editorconfig: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/.editorconfig -------------------------------------------------------------------------------- /.gitattributes: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/.gitattributes -------------------------------------------------------------------------------- /.github/CLA.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/.github/CLA.md -------------------------------------------------------------------------------- /.github/CODEOWNERS: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/.github/CODEOWNERS -------------------------------------------------------------------------------- /.github/FUNDING.yml: -------------------------------------------------------------------------------- 1 | github: [toeverything] 2 | -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/BUG-REPORT.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/.github/ISSUE_TEMPLATE/BUG-REPORT.yml -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/FEATURE-REQUEST.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/.github/ISSUE_TEMPLATE/FEATURE-REQUEST.yml -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/config.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/.github/ISSUE_TEMPLATE/config.yml -------------------------------------------------------------------------------- /.github/actions/build-rust/action.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/.github/actions/build-rust/action.yml -------------------------------------------------------------------------------- /.github/actions/cluster-auth/action.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/.github/actions/cluster-auth/action.yml -------------------------------------------------------------------------------- /.github/actions/copilot-test/action.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/.github/actions/copilot-test/action.yml -------------------------------------------------------------------------------- /.github/actions/deploy/action.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/.github/actions/deploy/action.yml -------------------------------------------------------------------------------- /.github/actions/deploy/deploy.mjs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/.github/actions/deploy/deploy.mjs -------------------------------------------------------------------------------- /.github/actions/download-web/action.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/.github/actions/download-web/action.yml -------------------------------------------------------------------------------- /.github/actions/prepare-release/action.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/.github/actions/prepare-release/action.yml -------------------------------------------------------------------------------- /.github/actions/server-test-env/action.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/.github/actions/server-test-env/action.yml -------------------------------------------------------------------------------- /.github/actions/setup-node/action.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/.github/actions/setup-node/action.yml -------------------------------------------------------------------------------- /.github/actions/setup-sentry/action.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/.github/actions/setup-sentry/action.yml -------------------------------------------------------------------------------- /.github/actions/setup-version/action.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/.github/actions/setup-version/action.yml -------------------------------------------------------------------------------- /.github/auto_assign.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/.github/auto_assign.yml -------------------------------------------------------------------------------- /.github/deployment/front/Dockerfile: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/.github/deployment/front/Dockerfile -------------------------------------------------------------------------------- /.github/deployment/front/affine.nginx.conf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/.github/deployment/front/affine.nginx.conf -------------------------------------------------------------------------------- /.github/deployment/front/nginx.conf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/.github/deployment/front/nginx.conf -------------------------------------------------------------------------------- /.github/deployment/node/Dockerfile: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/.github/deployment/node/Dockerfile -------------------------------------------------------------------------------- /.github/helm/affine/.helmignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/.github/helm/affine/.helmignore -------------------------------------------------------------------------------- /.github/helm/affine/Chart.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/.github/helm/affine/Chart.yaml -------------------------------------------------------------------------------- /.github/helm/affine/charts/doc/Chart.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/.github/helm/affine/charts/doc/Chart.yaml -------------------------------------------------------------------------------- /.github/helm/affine/charts/doc/values.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/.github/helm/affine/charts/doc/values.yaml -------------------------------------------------------------------------------- /.github/helm/affine/charts/sync/.helmignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/.github/helm/affine/charts/sync/.helmignore -------------------------------------------------------------------------------- /.github/helm/affine/charts/sync/Chart.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/.github/helm/affine/charts/sync/Chart.yaml -------------------------------------------------------------------------------- /.github/helm/affine/charts/sync/values.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/.github/helm/affine/charts/sync/values.yaml -------------------------------------------------------------------------------- /.github/helm/affine/charts/web/.helmignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/.github/helm/affine/charts/web/.helmignore -------------------------------------------------------------------------------- /.github/helm/affine/charts/web/Chart.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/.github/helm/affine/charts/web/Chart.yaml -------------------------------------------------------------------------------- /.github/helm/affine/charts/web/values.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/.github/helm/affine/charts/web/values.yaml -------------------------------------------------------------------------------- /.github/helm/affine/templates/_helpers.tpl: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/.github/helm/affine/templates/_helpers.tpl -------------------------------------------------------------------------------- /.github/helm/affine/templates/configmap.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/.github/helm/affine/templates/configmap.yaml -------------------------------------------------------------------------------- /.github/helm/affine/templates/ingress.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/.github/helm/affine/templates/ingress.yaml -------------------------------------------------------------------------------- /.github/helm/affine/templates/pg-secret.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/.github/helm/affine/templates/pg-secret.yaml -------------------------------------------------------------------------------- /.github/helm/affine/values.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/.github/helm/affine/values.yaml -------------------------------------------------------------------------------- /.github/helm/releaser.yaml: -------------------------------------------------------------------------------- 1 | owner: toeverything 2 | git-repo: helm-charts 3 | -------------------------------------------------------------------------------- /.github/labeler.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/.github/labeler.yml -------------------------------------------------------------------------------- /.github/renovate.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/.github/renovate.json -------------------------------------------------------------------------------- /.github/workflows/auto-labeler.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/.github/workflows/auto-labeler.yml -------------------------------------------------------------------------------- /.github/workflows/build-images.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/.github/workflows/build-images.yml -------------------------------------------------------------------------------- /.github/workflows/build-test.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/.github/workflows/build-test.yml -------------------------------------------------------------------------------- /.github/workflows/copilot-test.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/.github/workflows/copilot-test.yml -------------------------------------------------------------------------------- /.github/workflows/pr-title-lint.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/.github/workflows/pr-title-lint.yml -------------------------------------------------------------------------------- /.github/workflows/release-cloud.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/.github/workflows/release-cloud.yml -------------------------------------------------------------------------------- /.github/workflows/release-desktop.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/.github/workflows/release-desktop.yml -------------------------------------------------------------------------------- /.github/workflows/release-mobile.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/.github/workflows/release-mobile.yml -------------------------------------------------------------------------------- /.github/workflows/release.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/.github/workflows/release.yml -------------------------------------------------------------------------------- /.github/workflows/sync-i18n.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/.github/workflows/sync-i18n.yml -------------------------------------------------------------------------------- /.github/workflows/windows-signer.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/.github/workflows/windows-signer.yml -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/.gitignore -------------------------------------------------------------------------------- /.husky/pre-commit: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/.husky/pre-commit -------------------------------------------------------------------------------- /.npmrc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/.npmrc -------------------------------------------------------------------------------- /.nvmrc: -------------------------------------------------------------------------------- 1 | 22.16.0 2 | -------------------------------------------------------------------------------- /.prettierignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/.prettierignore -------------------------------------------------------------------------------- /.prettierrc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/.prettierrc -------------------------------------------------------------------------------- /.taplo.toml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/.taplo.toml -------------------------------------------------------------------------------- /.vscode/extensions.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/.vscode/extensions.json -------------------------------------------------------------------------------- /.vscode/launch.template.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/.vscode/launch.template.json -------------------------------------------------------------------------------- /.vscode/settings.template.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/.vscode/settings.template.json -------------------------------------------------------------------------------- /.yarn/releases/yarn-4.9.1.cjs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/.yarn/releases/yarn-4.9.1.cjs -------------------------------------------------------------------------------- /.yarnrc.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/.yarnrc.yml -------------------------------------------------------------------------------- /CHANGELOG.md: -------------------------------------------------------------------------------- 1 | # Changelog 2 | 3 | See the [AFFiNE CHANGELOG](https://affine.pro/blog?tag=Release%20Note) 4 | 5 | --- 6 | -------------------------------------------------------------------------------- /Cargo.lock: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/Cargo.lock -------------------------------------------------------------------------------- /Cargo.toml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/Cargo.toml -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/LICENSE -------------------------------------------------------------------------------- /LICENSE-MIT: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/LICENSE-MIT -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/README.md -------------------------------------------------------------------------------- /SECURITY.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/SECURITY.md -------------------------------------------------------------------------------- /blocksuite/affine/all/package.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/blocksuite/affine/all/package.json -------------------------------------------------------------------------------- /blocksuite/affine/all/src/components/caption.ts: -------------------------------------------------------------------------------- 1 | export * from '@blocksuite/affine-components/caption'; 2 | -------------------------------------------------------------------------------- /blocksuite/affine/all/src/components/citation.ts: -------------------------------------------------------------------------------- 1 | export * from '@blocksuite/affine-components/citation'; 2 | -------------------------------------------------------------------------------- /blocksuite/affine/all/src/components/color-picker.ts: -------------------------------------------------------------------------------- 1 | export * from '@blocksuite/affine-components/color-picker'; 2 | -------------------------------------------------------------------------------- /blocksuite/affine/all/src/components/context-menu.ts: -------------------------------------------------------------------------------- 1 | export * from '@blocksuite/affine-components/context-menu'; 2 | -------------------------------------------------------------------------------- /blocksuite/affine/all/src/components/date-picker.ts: -------------------------------------------------------------------------------- 1 | export * from '@blocksuite/affine-components/date-picker'; 2 | -------------------------------------------------------------------------------- /blocksuite/affine/all/src/components/drop-indicator.ts: -------------------------------------------------------------------------------- 1 | export * from '@blocksuite/affine-components/drop-indicator'; 2 | -------------------------------------------------------------------------------- /blocksuite/affine/all/src/components/embed-card-modal.ts: -------------------------------------------------------------------------------- 1 | export * from '@blocksuite/affine-components/embed-card-modal'; 2 | -------------------------------------------------------------------------------- /blocksuite/affine/all/src/components/filterable-list.ts: -------------------------------------------------------------------------------- 1 | export * from '@blocksuite/affine-components/filterable-list'; 2 | -------------------------------------------------------------------------------- /blocksuite/affine/all/src/components/highlight-dropdown-menu.ts: -------------------------------------------------------------------------------- 1 | export * from '@blocksuite/affine-components/highlight-dropdown-menu'; 2 | -------------------------------------------------------------------------------- /blocksuite/affine/all/src/components/hover.ts: -------------------------------------------------------------------------------- 1 | export * from '@blocksuite/affine-components/hover'; 2 | -------------------------------------------------------------------------------- /blocksuite/affine/all/src/components/icon-button.ts: -------------------------------------------------------------------------------- 1 | export * from '@blocksuite/affine-components/icon-button'; 2 | -------------------------------------------------------------------------------- /blocksuite/affine/all/src/components/icons.ts: -------------------------------------------------------------------------------- 1 | export * from '@blocksuite/affine-components/icons'; 2 | -------------------------------------------------------------------------------- /blocksuite/affine/all/src/components/link-preview.ts: -------------------------------------------------------------------------------- 1 | export * from '@blocksuite/affine-components/link-preview'; 2 | -------------------------------------------------------------------------------- /blocksuite/affine/all/src/components/linked-doc-title.ts: -------------------------------------------------------------------------------- 1 | export * from '@blocksuite/affine-components/linked-doc-title'; 2 | -------------------------------------------------------------------------------- /blocksuite/affine/all/src/components/notification.ts: -------------------------------------------------------------------------------- 1 | export * from '@blocksuite/affine-components/notification'; 2 | -------------------------------------------------------------------------------- /blocksuite/affine/all/src/components/open-doc-dropdown-menu.ts: -------------------------------------------------------------------------------- 1 | export * from '@blocksuite/affine-components/open-doc-dropdown-menu'; 2 | -------------------------------------------------------------------------------- /blocksuite/affine/all/src/components/peek.ts: -------------------------------------------------------------------------------- 1 | export * from '@blocksuite/affine-components/peek'; 2 | -------------------------------------------------------------------------------- /blocksuite/affine/all/src/components/portal.ts: -------------------------------------------------------------------------------- 1 | export * from '@blocksuite/affine-components/portal'; 2 | -------------------------------------------------------------------------------- /blocksuite/affine/all/src/components/resource.ts: -------------------------------------------------------------------------------- 1 | export * from '@blocksuite/affine-components/resource'; 2 | -------------------------------------------------------------------------------- /blocksuite/affine/all/src/components/size-dropdown-menu.ts: -------------------------------------------------------------------------------- 1 | export * from '@blocksuite/affine-components/size-dropdown-menu'; 2 | -------------------------------------------------------------------------------- /blocksuite/affine/all/src/components/smooth-corner.ts: -------------------------------------------------------------------------------- 1 | export * from '@blocksuite/affine-components/smooth-corner'; 2 | -------------------------------------------------------------------------------- /blocksuite/affine/all/src/components/toast.ts: -------------------------------------------------------------------------------- 1 | export * from '@blocksuite/affine-components/toast'; 2 | -------------------------------------------------------------------------------- /blocksuite/affine/all/src/components/toggle-button.ts: -------------------------------------------------------------------------------- 1 | export * from '@blocksuite/affine-components/toggle-button'; 2 | -------------------------------------------------------------------------------- /blocksuite/affine/all/src/components/toggle-switch.ts: -------------------------------------------------------------------------------- 1 | export * from '@blocksuite/affine-components/toggle-switch'; 2 | -------------------------------------------------------------------------------- /blocksuite/affine/all/src/components/toolbar.ts: -------------------------------------------------------------------------------- 1 | export * from '@blocksuite/affine-components/toolbar'; 2 | -------------------------------------------------------------------------------- /blocksuite/affine/all/src/components/tooltip.ts: -------------------------------------------------------------------------------- 1 | export * from '@blocksuite/affine-components/tooltip'; 2 | -------------------------------------------------------------------------------- /blocksuite/affine/all/src/components/view-dropdown-menu.ts: -------------------------------------------------------------------------------- 1 | export * from '@blocksuite/affine-components/view-dropdown-menu'; 2 | -------------------------------------------------------------------------------- /blocksuite/affine/all/src/data-view/effects.ts: -------------------------------------------------------------------------------- 1 | export * from '@blocksuite/data-view/effects'; 2 | -------------------------------------------------------------------------------- /blocksuite/affine/all/src/data-view/index.ts: -------------------------------------------------------------------------------- 1 | export * from '@blocksuite/data-view'; 2 | -------------------------------------------------------------------------------- /blocksuite/affine/all/src/effects.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/blocksuite/affine/all/src/effects.ts -------------------------------------------------------------------------------- /blocksuite/affine/all/src/ext-loader/index.ts: -------------------------------------------------------------------------------- 1 | export * from '@blocksuite/affine-ext-loader'; 2 | -------------------------------------------------------------------------------- /blocksuite/affine/all/src/foundation/clipboard.ts: -------------------------------------------------------------------------------- 1 | export * from '@blocksuite/affine-foundation/clipboard'; 2 | -------------------------------------------------------------------------------- /blocksuite/affine/all/src/foundation/store.ts: -------------------------------------------------------------------------------- 1 | export * from '@blocksuite/affine-foundation/store'; 2 | -------------------------------------------------------------------------------- /blocksuite/affine/all/src/foundation/view.ts: -------------------------------------------------------------------------------- 1 | export * from '@blocksuite/affine-foundation/view'; 2 | -------------------------------------------------------------------------------- /blocksuite/affine/all/src/fragments/adapter-panel/index.ts: -------------------------------------------------------------------------------- 1 | export * from '@blocksuite/affine-fragment-adapter-panel'; 2 | -------------------------------------------------------------------------------- /blocksuite/affine/all/src/fragments/adapter-panel/view.ts: -------------------------------------------------------------------------------- 1 | export * from '@blocksuite/affine-fragment-adapter-panel/view'; 2 | -------------------------------------------------------------------------------- /blocksuite/affine/all/src/fragments/doc-title/index.ts: -------------------------------------------------------------------------------- 1 | export * from '@blocksuite/affine-fragment-doc-title'; 2 | -------------------------------------------------------------------------------- /blocksuite/affine/all/src/fragments/doc-title/view.ts: -------------------------------------------------------------------------------- 1 | export * from '@blocksuite/affine-fragment-doc-title/view'; 2 | -------------------------------------------------------------------------------- /blocksuite/affine/all/src/fragments/outline/index.ts: -------------------------------------------------------------------------------- 1 | export * from '@blocksuite/affine-fragment-outline'; 2 | -------------------------------------------------------------------------------- /blocksuite/affine/all/src/fragments/outline/view.ts: -------------------------------------------------------------------------------- 1 | export * from '@blocksuite/affine-fragment-outline/view'; 2 | -------------------------------------------------------------------------------- /blocksuite/affine/all/src/gfx/brush/index.ts: -------------------------------------------------------------------------------- 1 | export * from '@blocksuite/affine-gfx-brush'; 2 | -------------------------------------------------------------------------------- /blocksuite/affine/all/src/gfx/brush/store.ts: -------------------------------------------------------------------------------- 1 | export * from '@blocksuite/affine-gfx-brush/store'; 2 | -------------------------------------------------------------------------------- /blocksuite/affine/all/src/gfx/brush/view.ts: -------------------------------------------------------------------------------- 1 | export * from '@blocksuite/affine-gfx-brush/view'; 2 | -------------------------------------------------------------------------------- /blocksuite/affine/all/src/gfx/connector/index.ts: -------------------------------------------------------------------------------- 1 | export * from '@blocksuite/affine-gfx-connector'; 2 | -------------------------------------------------------------------------------- /blocksuite/affine/all/src/gfx/connector/store.ts: -------------------------------------------------------------------------------- 1 | export * from '@blocksuite/affine-gfx-connector/store'; 2 | -------------------------------------------------------------------------------- /blocksuite/affine/all/src/gfx/connector/view.ts: -------------------------------------------------------------------------------- 1 | export * from '@blocksuite/affine-gfx-connector/view'; 2 | -------------------------------------------------------------------------------- /blocksuite/affine/all/src/gfx/group/index.ts: -------------------------------------------------------------------------------- 1 | export * from '@blocksuite/affine-gfx-group'; 2 | -------------------------------------------------------------------------------- /blocksuite/affine/all/src/gfx/group/store.ts: -------------------------------------------------------------------------------- 1 | export * from '@blocksuite/affine-gfx-group/store'; 2 | -------------------------------------------------------------------------------- /blocksuite/affine/all/src/gfx/group/view.ts: -------------------------------------------------------------------------------- 1 | export * from '@blocksuite/affine-gfx-group/view'; 2 | -------------------------------------------------------------------------------- /blocksuite/affine/all/src/gfx/link/index.ts: -------------------------------------------------------------------------------- 1 | export * from '@blocksuite/affine-gfx-link'; 2 | -------------------------------------------------------------------------------- /blocksuite/affine/all/src/gfx/link/view.ts: -------------------------------------------------------------------------------- 1 | export * from '@blocksuite/affine-gfx-link/view'; 2 | -------------------------------------------------------------------------------- /blocksuite/affine/all/src/gfx/mindmap/index.ts: -------------------------------------------------------------------------------- 1 | export * from '@blocksuite/affine-gfx-mindmap'; 2 | -------------------------------------------------------------------------------- /blocksuite/affine/all/src/gfx/mindmap/store.ts: -------------------------------------------------------------------------------- 1 | export * from '@blocksuite/affine-gfx-mindmap/store'; 2 | -------------------------------------------------------------------------------- /blocksuite/affine/all/src/gfx/mindmap/view.ts: -------------------------------------------------------------------------------- 1 | export * from '@blocksuite/affine-gfx-mindmap/view'; 2 | -------------------------------------------------------------------------------- /blocksuite/affine/all/src/gfx/note/index.ts: -------------------------------------------------------------------------------- 1 | export * from '@blocksuite/affine-gfx-note'; 2 | -------------------------------------------------------------------------------- /blocksuite/affine/all/src/gfx/note/view.ts: -------------------------------------------------------------------------------- 1 | export * from '@blocksuite/affine-gfx-note/view'; 2 | -------------------------------------------------------------------------------- /blocksuite/affine/all/src/gfx/pointer/index.ts: -------------------------------------------------------------------------------- 1 | export * from '@blocksuite/affine-gfx-pointer'; 2 | -------------------------------------------------------------------------------- /blocksuite/affine/all/src/gfx/pointer/view.ts: -------------------------------------------------------------------------------- 1 | export * from '@blocksuite/affine-gfx-pointer/view'; 2 | -------------------------------------------------------------------------------- /blocksuite/affine/all/src/gfx/shape/index.ts: -------------------------------------------------------------------------------- 1 | export * from '@blocksuite/affine-gfx-shape'; 2 | -------------------------------------------------------------------------------- /blocksuite/affine/all/src/gfx/shape/store.ts: -------------------------------------------------------------------------------- 1 | export * from '@blocksuite/affine-gfx-shape/store'; 2 | -------------------------------------------------------------------------------- /blocksuite/affine/all/src/gfx/shape/view.ts: -------------------------------------------------------------------------------- 1 | export * from '@blocksuite/affine-gfx-shape/view'; 2 | -------------------------------------------------------------------------------- /blocksuite/affine/all/src/gfx/template/index.ts: -------------------------------------------------------------------------------- 1 | export * from '@blocksuite/affine-gfx-template'; 2 | -------------------------------------------------------------------------------- /blocksuite/affine/all/src/gfx/template/view.ts: -------------------------------------------------------------------------------- 1 | export * from '@blocksuite/affine-gfx-template/view'; 2 | -------------------------------------------------------------------------------- /blocksuite/affine/all/src/gfx/text/index.ts: -------------------------------------------------------------------------------- 1 | export * from '@blocksuite/affine-gfx-text'; 2 | -------------------------------------------------------------------------------- /blocksuite/affine/all/src/gfx/text/store.ts: -------------------------------------------------------------------------------- 1 | export * from '@blocksuite/affine-gfx-text/store'; 2 | -------------------------------------------------------------------------------- /blocksuite/affine/all/src/gfx/text/view.ts: -------------------------------------------------------------------------------- 1 | export * from '@blocksuite/affine-gfx-text/view'; 2 | -------------------------------------------------------------------------------- /blocksuite/affine/all/src/gfx/turbo-renderer.ts: -------------------------------------------------------------------------------- 1 | export * from '@blocksuite/affine-gfx-turbo-renderer'; 2 | -------------------------------------------------------------------------------- /blocksuite/affine/all/src/global/di.ts: -------------------------------------------------------------------------------- 1 | export * from '@blocksuite/global/di'; 2 | -------------------------------------------------------------------------------- /blocksuite/affine/all/src/global/disposable.ts: -------------------------------------------------------------------------------- 1 | export * from '@blocksuite/global/disposable'; 2 | -------------------------------------------------------------------------------- /blocksuite/affine/all/src/global/env.ts: -------------------------------------------------------------------------------- 1 | export * from '@blocksuite/global/env'; 2 | -------------------------------------------------------------------------------- /blocksuite/affine/all/src/global/exceptions.ts: -------------------------------------------------------------------------------- 1 | export * from '@blocksuite/global/exceptions'; 2 | -------------------------------------------------------------------------------- /blocksuite/affine/all/src/global/gfx.ts: -------------------------------------------------------------------------------- 1 | export * from '@blocksuite/global/gfx'; 2 | -------------------------------------------------------------------------------- /blocksuite/affine/all/src/global/index.ts: -------------------------------------------------------------------------------- 1 | export * from '@blocksuite/global'; 2 | -------------------------------------------------------------------------------- /blocksuite/affine/all/src/global/lit.ts: -------------------------------------------------------------------------------- 1 | export * from '@blocksuite/global/lit'; 2 | -------------------------------------------------------------------------------- /blocksuite/affine/all/src/global/types.ts: -------------------------------------------------------------------------------- 1 | export * from '@blocksuite/global/types'; 2 | -------------------------------------------------------------------------------- /blocksuite/affine/all/src/global/utils.ts: -------------------------------------------------------------------------------- 1 | export * from '@blocksuite/global/utils'; 2 | -------------------------------------------------------------------------------- /blocksuite/affine/all/src/index.ts: -------------------------------------------------------------------------------- 1 | export {}; 2 | -------------------------------------------------------------------------------- /blocksuite/affine/all/src/model/index.ts: -------------------------------------------------------------------------------- 1 | export * from '@blocksuite/affine-model'; 2 | -------------------------------------------------------------------------------- /blocksuite/affine/all/src/rich-text/effects.ts: -------------------------------------------------------------------------------- 1 | export * from '@blocksuite/affine-rich-text/effects'; 2 | -------------------------------------------------------------------------------- /blocksuite/affine/all/src/rich-text/index.ts: -------------------------------------------------------------------------------- 1 | export * from '@blocksuite/affine-rich-text'; 2 | -------------------------------------------------------------------------------- /blocksuite/affine/all/src/schemas.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/blocksuite/affine/all/src/schemas.ts -------------------------------------------------------------------------------- /blocksuite/affine/all/src/shared/adapters.ts: -------------------------------------------------------------------------------- 1 | export * from '@blocksuite/affine-shared/adapters'; 2 | -------------------------------------------------------------------------------- /blocksuite/affine/all/src/shared/commands.ts: -------------------------------------------------------------------------------- 1 | export * from '@blocksuite/affine-shared/commands'; 2 | -------------------------------------------------------------------------------- /blocksuite/affine/all/src/shared/consts.ts: -------------------------------------------------------------------------------- 1 | export * from '@blocksuite/affine-shared/consts'; 2 | -------------------------------------------------------------------------------- /blocksuite/affine/all/src/shared/selection.ts: -------------------------------------------------------------------------------- 1 | export * from '@blocksuite/affine-shared/selection'; 2 | -------------------------------------------------------------------------------- /blocksuite/affine/all/src/shared/services.ts: -------------------------------------------------------------------------------- 1 | export * from '@blocksuite/affine-shared/services'; 2 | -------------------------------------------------------------------------------- /blocksuite/affine/all/src/shared/styles.ts: -------------------------------------------------------------------------------- 1 | export * from '@blocksuite/affine-shared/styles'; 2 | -------------------------------------------------------------------------------- /blocksuite/affine/all/src/shared/theme.ts: -------------------------------------------------------------------------------- 1 | export * from '@blocksuite/affine-shared/theme'; 2 | -------------------------------------------------------------------------------- /blocksuite/affine/all/src/shared/types.ts: -------------------------------------------------------------------------------- 1 | export * from '@blocksuite/affine-shared/types'; 2 | -------------------------------------------------------------------------------- /blocksuite/affine/all/src/shared/utils.ts: -------------------------------------------------------------------------------- 1 | export * from '@blocksuite/affine-shared/utils'; 2 | -------------------------------------------------------------------------------- /blocksuite/affine/all/src/std/effects.ts: -------------------------------------------------------------------------------- 1 | export * from '@blocksuite/std/effects'; 2 | -------------------------------------------------------------------------------- /blocksuite/affine/all/src/std/gfx.ts: -------------------------------------------------------------------------------- 1 | export * from '@blocksuite/std/gfx'; 2 | -------------------------------------------------------------------------------- /blocksuite/affine/all/src/std/index.ts: -------------------------------------------------------------------------------- 1 | export * from '@blocksuite/std'; 2 | -------------------------------------------------------------------------------- /blocksuite/affine/all/src/std/inline.ts: -------------------------------------------------------------------------------- 1 | export * from '@blocksuite/std/inline'; 2 | -------------------------------------------------------------------------------- /blocksuite/affine/all/src/store/index.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/blocksuite/affine/all/src/store/index.ts -------------------------------------------------------------------------------- /blocksuite/affine/all/src/store/test.ts: -------------------------------------------------------------------------------- 1 | export * from '@blocksuite/store/test'; 2 | -------------------------------------------------------------------------------- /blocksuite/affine/all/src/sync/index.ts: -------------------------------------------------------------------------------- 1 | export * from '@blocksuite/sync'; 2 | -------------------------------------------------------------------------------- /blocksuite/affine/all/src/widgets/drag-handle/index.ts: -------------------------------------------------------------------------------- 1 | export * from '@blocksuite/affine-widget-drag-handle'; 2 | -------------------------------------------------------------------------------- /blocksuite/affine/all/src/widgets/drag-handle/view.ts: -------------------------------------------------------------------------------- 1 | export * from '@blocksuite/affine-widget-drag-handle/view'; 2 | -------------------------------------------------------------------------------- /blocksuite/affine/all/src/widgets/edgeless-auto-connect/index.ts: -------------------------------------------------------------------------------- 1 | export * from '@blocksuite/affine-widget-edgeless-auto-connect'; 2 | -------------------------------------------------------------------------------- /blocksuite/affine/all/src/widgets/edgeless-auto-connect/view.ts: -------------------------------------------------------------------------------- 1 | export * from '@blocksuite/affine-widget-edgeless-auto-connect/view'; 2 | -------------------------------------------------------------------------------- /blocksuite/affine/all/src/widgets/edgeless-dragging-area/index.ts: -------------------------------------------------------------------------------- 1 | export * from '@blocksuite/affine-widget-edgeless-dragging-area'; 2 | -------------------------------------------------------------------------------- /blocksuite/affine/all/src/widgets/edgeless-toolbar/index.ts: -------------------------------------------------------------------------------- 1 | export * from '@blocksuite/affine-widget-edgeless-toolbar'; 2 | -------------------------------------------------------------------------------- /blocksuite/affine/all/src/widgets/edgeless-toolbar/view.ts: -------------------------------------------------------------------------------- 1 | export * from '@blocksuite/affine-widget-edgeless-toolbar/view'; 2 | -------------------------------------------------------------------------------- /blocksuite/affine/all/src/widgets/edgeless-zoom-toolbar/index.ts: -------------------------------------------------------------------------------- 1 | export * from '@blocksuite/affine-widget-edgeless-zoom-toolbar'; 2 | -------------------------------------------------------------------------------- /blocksuite/affine/all/src/widgets/edgeless-zoom-toolbar/view.ts: -------------------------------------------------------------------------------- 1 | export * from '@blocksuite/affine-widget-edgeless-zoom-toolbar/view'; 2 | -------------------------------------------------------------------------------- /blocksuite/affine/all/src/widgets/frame-title/index.ts: -------------------------------------------------------------------------------- 1 | export * from '@blocksuite/affine-widget-frame-title'; 2 | -------------------------------------------------------------------------------- /blocksuite/affine/all/src/widgets/frame-title/view.ts: -------------------------------------------------------------------------------- 1 | export * from '@blocksuite/affine-widget-frame-title/view'; 2 | -------------------------------------------------------------------------------- /blocksuite/affine/all/src/widgets/keyboard-toolbar/index.ts: -------------------------------------------------------------------------------- 1 | export * from '@blocksuite/affine-widget-keyboard-toolbar'; 2 | -------------------------------------------------------------------------------- /blocksuite/affine/all/src/widgets/keyboard-toolbar/view.ts: -------------------------------------------------------------------------------- 1 | export * from '@blocksuite/affine-widget-keyboard-toolbar/view'; 2 | -------------------------------------------------------------------------------- /blocksuite/affine/all/src/widgets/linked-doc/index.ts: -------------------------------------------------------------------------------- 1 | export * from '@blocksuite/affine-widget-linked-doc'; 2 | -------------------------------------------------------------------------------- /blocksuite/affine/all/src/widgets/linked-doc/view.ts: -------------------------------------------------------------------------------- 1 | export * from '@blocksuite/affine-widget-linked-doc/view'; 2 | -------------------------------------------------------------------------------- /blocksuite/affine/all/src/widgets/note-slicer/index.ts: -------------------------------------------------------------------------------- 1 | export * from '@blocksuite/affine-widget-note-slicer'; 2 | -------------------------------------------------------------------------------- /blocksuite/affine/all/src/widgets/note-slicer/view.ts: -------------------------------------------------------------------------------- 1 | export * from '@blocksuite/affine-widget-note-slicer/view'; 2 | -------------------------------------------------------------------------------- /blocksuite/affine/all/src/widgets/page-dragging-area/index.ts: -------------------------------------------------------------------------------- 1 | export * from '@blocksuite/affine-widget-page-dragging-area'; 2 | -------------------------------------------------------------------------------- /blocksuite/affine/all/src/widgets/page-dragging-area/view.ts: -------------------------------------------------------------------------------- 1 | export * from '@blocksuite/affine-widget-page-dragging-area/view'; 2 | -------------------------------------------------------------------------------- /blocksuite/affine/all/src/widgets/remote-selection/index.ts: -------------------------------------------------------------------------------- 1 | export * from '@blocksuite/affine-widget-remote-selection'; 2 | -------------------------------------------------------------------------------- /blocksuite/affine/all/src/widgets/remote-selection/view.ts: -------------------------------------------------------------------------------- 1 | export * from '@blocksuite/affine-widget-remote-selection/view'; 2 | -------------------------------------------------------------------------------- /blocksuite/affine/all/src/widgets/scroll-anchoring/index.ts: -------------------------------------------------------------------------------- 1 | export * from '@blocksuite/affine-widget-scroll-anchoring'; 2 | -------------------------------------------------------------------------------- /blocksuite/affine/all/src/widgets/scroll-anchoring/view.ts: -------------------------------------------------------------------------------- 1 | export * from '@blocksuite/affine-widget-scroll-anchoring/view'; 2 | -------------------------------------------------------------------------------- /blocksuite/affine/all/src/widgets/slash-menu/index.ts: -------------------------------------------------------------------------------- 1 | export * from '@blocksuite/affine-widget-slash-menu'; 2 | -------------------------------------------------------------------------------- /blocksuite/affine/all/src/widgets/slash-menu/view.ts: -------------------------------------------------------------------------------- 1 | export * from '@blocksuite/affine-widget-slash-menu/view'; 2 | -------------------------------------------------------------------------------- /blocksuite/affine/all/src/widgets/toolbar/index.ts: -------------------------------------------------------------------------------- 1 | export * from '@blocksuite/affine-widget-toolbar'; 2 | -------------------------------------------------------------------------------- /blocksuite/affine/all/src/widgets/toolbar/view.ts: -------------------------------------------------------------------------------- 1 | export * from '@blocksuite/affine-widget-toolbar/view'; 2 | -------------------------------------------------------------------------------- /blocksuite/affine/all/src/widgets/viewport-overlay/index.ts: -------------------------------------------------------------------------------- 1 | export * from '@blocksuite/affine-widget-viewport-overlay'; 2 | -------------------------------------------------------------------------------- /blocksuite/affine/all/tsconfig.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/blocksuite/affine/all/tsconfig.json -------------------------------------------------------------------------------- /blocksuite/affine/all/vitest.config.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/blocksuite/affine/all/vitest.config.ts -------------------------------------------------------------------------------- /blocksuite/affine/blocks/bookmark/src/components/index.ts: -------------------------------------------------------------------------------- 1 | export * from './bookmark-card'; 2 | -------------------------------------------------------------------------------- /blocksuite/affine/blocks/code/src/view.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/blocksuite/affine/blocks/code/src/view.ts -------------------------------------------------------------------------------- /blocksuite/affine/blocks/database/src/context/index.ts: -------------------------------------------------------------------------------- 1 | export * from './host-context'; 2 | -------------------------------------------------------------------------------- /blocksuite/affine/blocks/edgeless-text/src/edgeless-toolbar/index.ts: -------------------------------------------------------------------------------- 1 | export * from './config'; 2 | -------------------------------------------------------------------------------- /blocksuite/affine/blocks/embed-doc/src/embed-linked-doc-block/commands/index.ts: -------------------------------------------------------------------------------- 1 | export * from './insert-embed-linked-doc'; 2 | -------------------------------------------------------------------------------- /blocksuite/affine/blocks/list/src/view.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/blocksuite/affine/blocks/list/src/view.ts -------------------------------------------------------------------------------- /blocksuite/affine/blocks/note/src/view.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/blocksuite/affine/blocks/note/src/view.ts -------------------------------------------------------------------------------- /blocksuite/affine/blocks/root/src/view.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/blocksuite/affine/blocks/root/src/view.ts -------------------------------------------------------------------------------- /blocksuite/affine/blocks/surface/src/adapters/index.ts: -------------------------------------------------------------------------------- 1 | export * from './extension.js'; 2 | -------------------------------------------------------------------------------- /blocksuite/affine/components/package.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/blocksuite/affine/components/package.json -------------------------------------------------------------------------------- /blocksuite/affine/components/src/index.ts: -------------------------------------------------------------------------------- 1 | export {}; 2 | -------------------------------------------------------------------------------- /blocksuite/affine/components/src/notification/index.ts: -------------------------------------------------------------------------------- 1 | export * from './linked-doc.js'; 2 | -------------------------------------------------------------------------------- /blocksuite/affine/data-view/package.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/blocksuite/affine/data-view/package.json -------------------------------------------------------------------------------- /blocksuite/affine/data-view/src/core/data-source/index.ts: -------------------------------------------------------------------------------- 1 | export * from './base.js'; 2 | -------------------------------------------------------------------------------- /blocksuite/affine/data-view/src/core/widget/index.ts: -------------------------------------------------------------------------------- 1 | export * from './types.js'; 2 | -------------------------------------------------------------------------------- /blocksuite/affine/data-view/src/index.ts: -------------------------------------------------------------------------------- 1 | export * from './core/index.js'; 2 | -------------------------------------------------------------------------------- /blocksuite/affine/data-view/src/property-presets/number/index.ts: -------------------------------------------------------------------------------- 1 | export * from './types.js'; 2 | -------------------------------------------------------------------------------- /blocksuite/affine/data-view/tsconfig.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/blocksuite/affine/data-view/tsconfig.json -------------------------------------------------------------------------------- /blocksuite/affine/ext-loader/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/blocksuite/affine/ext-loader/README.md -------------------------------------------------------------------------------- /blocksuite/affine/ext-loader/package.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/blocksuite/affine/ext-loader/package.json -------------------------------------------------------------------------------- /blocksuite/affine/ext-loader/src/index.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/blocksuite/affine/ext-loader/src/index.ts -------------------------------------------------------------------------------- /blocksuite/affine/foundation/package.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/blocksuite/affine/foundation/package.json -------------------------------------------------------------------------------- /blocksuite/affine/foundation/src/index.ts: -------------------------------------------------------------------------------- 1 | export {}; 2 | -------------------------------------------------------------------------------- /blocksuite/affine/foundation/src/store.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/blocksuite/affine/foundation/src/store.ts -------------------------------------------------------------------------------- /blocksuite/affine/foundation/src/view.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/blocksuite/affine/foundation/src/view.ts -------------------------------------------------------------------------------- /blocksuite/affine/fragments/frame-panel/src/index.ts: -------------------------------------------------------------------------------- 1 | export * from './frame-panel'; 2 | -------------------------------------------------------------------------------- /blocksuite/affine/gfx/brush/package.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/blocksuite/affine/gfx/brush/package.json -------------------------------------------------------------------------------- /blocksuite/affine/gfx/brush/src/index.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/blocksuite/affine/gfx/brush/src/index.ts -------------------------------------------------------------------------------- /blocksuite/affine/gfx/brush/src/store.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/blocksuite/affine/gfx/brush/src/store.ts -------------------------------------------------------------------------------- /blocksuite/affine/gfx/brush/src/view.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/blocksuite/affine/gfx/brush/src/view.ts -------------------------------------------------------------------------------- /blocksuite/affine/gfx/brush/tsconfig.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/blocksuite/affine/gfx/brush/tsconfig.json -------------------------------------------------------------------------------- /blocksuite/affine/gfx/connector/src/element-transform/index.ts: -------------------------------------------------------------------------------- 1 | export * from './connector-filter'; 2 | -------------------------------------------------------------------------------- /blocksuite/affine/gfx/connector/src/text/index.ts: -------------------------------------------------------------------------------- 1 | export * from './text.js'; 2 | -------------------------------------------------------------------------------- /blocksuite/affine/gfx/connector/src/view/index.ts: -------------------------------------------------------------------------------- 1 | export * from './view'; 2 | -------------------------------------------------------------------------------- /blocksuite/affine/gfx/group/package.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/blocksuite/affine/gfx/group/package.json -------------------------------------------------------------------------------- /blocksuite/affine/gfx/group/src/command/index.ts: -------------------------------------------------------------------------------- 1 | export * from './group-api'; 2 | -------------------------------------------------------------------------------- /blocksuite/affine/gfx/group/src/index.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/blocksuite/affine/gfx/group/src/index.ts -------------------------------------------------------------------------------- /blocksuite/affine/gfx/group/src/store.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/blocksuite/affine/gfx/group/src/store.ts -------------------------------------------------------------------------------- /blocksuite/affine/gfx/group/src/view.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/blocksuite/affine/gfx/group/src/view.ts -------------------------------------------------------------------------------- /blocksuite/affine/gfx/group/tsconfig.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/blocksuite/affine/gfx/group/tsconfig.json -------------------------------------------------------------------------------- /blocksuite/affine/gfx/link/package.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/blocksuite/affine/gfx/link/package.json -------------------------------------------------------------------------------- /blocksuite/affine/gfx/link/src/effects.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/blocksuite/affine/gfx/link/src/effects.ts -------------------------------------------------------------------------------- /blocksuite/affine/gfx/link/src/index.ts: -------------------------------------------------------------------------------- 1 | export {}; 2 | -------------------------------------------------------------------------------- /blocksuite/affine/gfx/link/src/view.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/blocksuite/affine/gfx/link/src/view.ts -------------------------------------------------------------------------------- /blocksuite/affine/gfx/link/tsconfig.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/blocksuite/affine/gfx/link/tsconfig.json -------------------------------------------------------------------------------- /blocksuite/affine/gfx/mindmap/src/interactivity/index.ts: -------------------------------------------------------------------------------- 1 | export * from './mind-map-drag'; 2 | -------------------------------------------------------------------------------- /blocksuite/affine/gfx/mindmap/src/view.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/blocksuite/affine/gfx/mindmap/src/view.ts -------------------------------------------------------------------------------- /blocksuite/affine/gfx/note/package.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/blocksuite/affine/gfx/note/package.json -------------------------------------------------------------------------------- /blocksuite/affine/gfx/note/src/effects.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/blocksuite/affine/gfx/note/src/effects.ts -------------------------------------------------------------------------------- /blocksuite/affine/gfx/note/src/index.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/blocksuite/affine/gfx/note/src/index.ts -------------------------------------------------------------------------------- /blocksuite/affine/gfx/note/src/view.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/blocksuite/affine/gfx/note/src/view.ts -------------------------------------------------------------------------------- /blocksuite/affine/gfx/note/tsconfig.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/blocksuite/affine/gfx/note/tsconfig.json -------------------------------------------------------------------------------- /blocksuite/affine/gfx/pointer/src/index.ts: -------------------------------------------------------------------------------- 1 | export * from './tools'; 2 | -------------------------------------------------------------------------------- /blocksuite/affine/gfx/pointer/src/view.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/blocksuite/affine/gfx/pointer/src/view.ts -------------------------------------------------------------------------------- /blocksuite/affine/gfx/shape/package.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/blocksuite/affine/gfx/shape/package.json -------------------------------------------------------------------------------- /blocksuite/affine/gfx/shape/src/consts.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/blocksuite/affine/gfx/shape/src/consts.ts -------------------------------------------------------------------------------- /blocksuite/affine/gfx/shape/src/element-renderer/index.ts: -------------------------------------------------------------------------------- 1 | export * from './shape'; 2 | -------------------------------------------------------------------------------- /blocksuite/affine/gfx/shape/src/index.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/blocksuite/affine/gfx/shape/src/index.ts -------------------------------------------------------------------------------- /blocksuite/affine/gfx/shape/src/store.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/blocksuite/affine/gfx/shape/src/store.ts -------------------------------------------------------------------------------- /blocksuite/affine/gfx/shape/src/text/index.ts: -------------------------------------------------------------------------------- 1 | export * from './edgeless-shape-text-editor'; 2 | -------------------------------------------------------------------------------- /blocksuite/affine/gfx/shape/src/view.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/blocksuite/affine/gfx/shape/src/view.ts -------------------------------------------------------------------------------- /blocksuite/affine/gfx/shape/tsconfig.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/blocksuite/affine/gfx/shape/tsconfig.json -------------------------------------------------------------------------------- /blocksuite/affine/gfx/text/package.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/blocksuite/affine/gfx/text/package.json -------------------------------------------------------------------------------- /blocksuite/affine/gfx/text/src/effects.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/blocksuite/affine/gfx/text/src/effects.ts -------------------------------------------------------------------------------- /blocksuite/affine/gfx/text/src/index.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/blocksuite/affine/gfx/text/src/index.ts -------------------------------------------------------------------------------- /blocksuite/affine/gfx/text/src/store.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/blocksuite/affine/gfx/text/src/store.ts -------------------------------------------------------------------------------- /blocksuite/affine/gfx/text/src/tool.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/blocksuite/affine/gfx/text/src/tool.ts -------------------------------------------------------------------------------- /blocksuite/affine/gfx/text/src/view.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/blocksuite/affine/gfx/text/src/view.ts -------------------------------------------------------------------------------- /blocksuite/affine/gfx/text/tsconfig.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/blocksuite/affine/gfx/text/tsconfig.json -------------------------------------------------------------------------------- /blocksuite/affine/model/package.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/blocksuite/affine/model/package.json -------------------------------------------------------------------------------- /blocksuite/affine/model/src/blocks/bookmark/index.ts: -------------------------------------------------------------------------------- 1 | export * from './bookmark-model.js'; 2 | -------------------------------------------------------------------------------- /blocksuite/affine/model/src/blocks/callout/index.ts: -------------------------------------------------------------------------------- 1 | export * from './callout-model.js'; 2 | -------------------------------------------------------------------------------- /blocksuite/affine/model/src/blocks/code/index.ts: -------------------------------------------------------------------------------- 1 | export * from './code-model.js'; 2 | -------------------------------------------------------------------------------- /blocksuite/affine/model/src/blocks/divider/index.ts: -------------------------------------------------------------------------------- 1 | export * from './divider-model.js'; 2 | -------------------------------------------------------------------------------- /blocksuite/affine/model/src/blocks/edgeless-text/index.ts: -------------------------------------------------------------------------------- 1 | export * from './edgeless-text-model.js'; 2 | -------------------------------------------------------------------------------- /blocksuite/affine/model/src/blocks/frame/index.ts: -------------------------------------------------------------------------------- 1 | export * from './frame-model.js'; 2 | -------------------------------------------------------------------------------- /blocksuite/affine/model/src/blocks/latex/index.ts: -------------------------------------------------------------------------------- 1 | export * from './latex-model.js'; 2 | -------------------------------------------------------------------------------- /blocksuite/affine/model/src/blocks/list/index.ts: -------------------------------------------------------------------------------- 1 | export * from './list-model.js'; 2 | -------------------------------------------------------------------------------- /blocksuite/affine/model/src/blocks/note/index.ts: -------------------------------------------------------------------------------- 1 | export * from './note-model.js'; 2 | -------------------------------------------------------------------------------- /blocksuite/affine/model/src/blocks/paragraph/index.ts: -------------------------------------------------------------------------------- 1 | export * from './paragraph-model.js'; 2 | -------------------------------------------------------------------------------- /blocksuite/affine/model/src/blocks/root/index.ts: -------------------------------------------------------------------------------- 1 | export * from './root-block-model.js'; 2 | -------------------------------------------------------------------------------- /blocksuite/affine/model/src/blocks/surface-ref/index.ts: -------------------------------------------------------------------------------- 1 | export * from './surface-ref-model.js'; 2 | -------------------------------------------------------------------------------- /blocksuite/affine/model/src/blocks/table/index.ts: -------------------------------------------------------------------------------- 1 | export * from './table-model'; 2 | -------------------------------------------------------------------------------- /blocksuite/affine/model/src/consts/doc.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/blocksuite/affine/model/src/consts/doc.ts -------------------------------------------------------------------------------- /blocksuite/affine/model/src/consts/image.ts: -------------------------------------------------------------------------------- 1 | export const MAX_IMAGE_WIDTH = 460; 2 | -------------------------------------------------------------------------------- /blocksuite/affine/model/src/elements/brush/index.ts: -------------------------------------------------------------------------------- 1 | export * from './brush.js'; 2 | -------------------------------------------------------------------------------- /blocksuite/affine/model/src/elements/group/index.ts: -------------------------------------------------------------------------------- 1 | export * from './group.js'; 2 | -------------------------------------------------------------------------------- /blocksuite/affine/model/src/elements/highlighter/index.ts: -------------------------------------------------------------------------------- 1 | export * from './highlighter'; 2 | -------------------------------------------------------------------------------- /blocksuite/affine/model/src/elements/text/index.ts: -------------------------------------------------------------------------------- 1 | export * from './text.js'; 2 | -------------------------------------------------------------------------------- /blocksuite/affine/model/src/index.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/blocksuite/affine/model/src/index.ts -------------------------------------------------------------------------------- /blocksuite/affine/model/src/utils/enum.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/blocksuite/affine/model/src/utils/enum.ts -------------------------------------------------------------------------------- /blocksuite/affine/model/tsconfig.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/blocksuite/affine/model/tsconfig.json -------------------------------------------------------------------------------- /blocksuite/affine/rich-text/package.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/blocksuite/affine/rich-text/package.json -------------------------------------------------------------------------------- /blocksuite/affine/rich-text/src/align.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/blocksuite/affine/rich-text/src/align.ts -------------------------------------------------------------------------------- /blocksuite/affine/rich-text/src/dom.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/blocksuite/affine/rich-text/src/dom.ts -------------------------------------------------------------------------------- /blocksuite/affine/rich-text/src/hooks.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/blocksuite/affine/rich-text/src/hooks.ts -------------------------------------------------------------------------------- /blocksuite/affine/rich-text/src/index.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/blocksuite/affine/rich-text/src/index.ts -------------------------------------------------------------------------------- /blocksuite/affine/rich-text/src/utils.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/blocksuite/affine/rich-text/src/utils.ts -------------------------------------------------------------------------------- /blocksuite/affine/rich-text/tsconfig.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/blocksuite/affine/rich-text/tsconfig.json -------------------------------------------------------------------------------- /blocksuite/affine/shared/package.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/blocksuite/affine/shared/package.json -------------------------------------------------------------------------------- /blocksuite/affine/shared/src/adapters/markdown/remark-plugins/index.ts: -------------------------------------------------------------------------------- 1 | export * from './remark-callout'; 2 | -------------------------------------------------------------------------------- /blocksuite/affine/shared/src/index.ts: -------------------------------------------------------------------------------- 1 | export {}; 2 | -------------------------------------------------------------------------------- /blocksuite/affine/shared/src/services/citation-service/index.ts: -------------------------------------------------------------------------------- 1 | export * from './citation-service'; 2 | -------------------------------------------------------------------------------- /blocksuite/affine/shared/src/services/icon-picker-service.ts: -------------------------------------------------------------------------------- 1 | export * from './icon-picker-service/index.js'; 2 | -------------------------------------------------------------------------------- /blocksuite/affine/shared/src/theme/index.ts: -------------------------------------------------------------------------------- 1 | export * from './css-variables.js'; 2 | -------------------------------------------------------------------------------- /blocksuite/affine/shared/src/utils/collapsed/index.ts: -------------------------------------------------------------------------------- 1 | export * from './paragraph.js'; 2 | -------------------------------------------------------------------------------- /blocksuite/affine/shared/src/utils/drag-helper/types.ts: -------------------------------------------------------------------------------- 1 | export type OffsetList = number[]; 2 | -------------------------------------------------------------------------------- /blocksuite/affine/shared/src/utils/url.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/blocksuite/affine/shared/src/utils/url.ts -------------------------------------------------------------------------------- /blocksuite/affine/shared/tsconfig.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/blocksuite/affine/shared/tsconfig.json -------------------------------------------------------------------------------- /blocksuite/affine/shared/vitest.config.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/blocksuite/affine/shared/vitest.config.ts -------------------------------------------------------------------------------- /blocksuite/affine/widgets/drag-handle/src/consts.ts: -------------------------------------------------------------------------------- 1 | export const AFFINE_DRAG_HANDLE_WIDGET = 'affine-drag-handle-widget'; 2 | -------------------------------------------------------------------------------- /blocksuite/affine/widgets/edgeless-dragging-area/src/index.ts: -------------------------------------------------------------------------------- 1 | export * from './edgeless-dragging-area-rect'; 2 | -------------------------------------------------------------------------------- /blocksuite/affine/widgets/edgeless-toolbar/src/draggable/index.ts: -------------------------------------------------------------------------------- 1 | export * from './draggable-element.controller.js'; 2 | -------------------------------------------------------------------------------- /blocksuite/affine/widgets/note-slicer/src/index.ts: -------------------------------------------------------------------------------- 1 | export * from './note-slicer'; 2 | -------------------------------------------------------------------------------- /blocksuite/affine/widgets/remote-selection/src/doc/index.ts: -------------------------------------------------------------------------------- 1 | export * from './doc-remote-selection.js'; 2 | -------------------------------------------------------------------------------- /blocksuite/affine/widgets/slash-menu/README.md: -------------------------------------------------------------------------------- 1 | # widget-slash-menu 2 | -------------------------------------------------------------------------------- /blocksuite/docs/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/blocksuite/docs/README.md -------------------------------------------------------------------------------- /blocksuite/docs/api/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/blocksuite/docs/api/README.md -------------------------------------------------------------------------------- /blocksuite/docs/package.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/blocksuite/docs/package.json -------------------------------------------------------------------------------- /blocksuite/docs/tsconfig.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/blocksuite/docs/tsconfig.json -------------------------------------------------------------------------------- /blocksuite/docs/typedoc.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/blocksuite/docs/typedoc.json -------------------------------------------------------------------------------- /blocksuite/framework/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/blocksuite/framework/README.md -------------------------------------------------------------------------------- /blocksuite/framework/global/package.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/blocksuite/framework/global/package.json -------------------------------------------------------------------------------- /blocksuite/framework/global/src/index.ts: -------------------------------------------------------------------------------- 1 | export {}; 2 | -------------------------------------------------------------------------------- /blocksuite/framework/global/src/types/index.ts: -------------------------------------------------------------------------------- 1 | export * from './virtual-keyboard.js'; 2 | -------------------------------------------------------------------------------- /blocksuite/framework/global/tsconfig.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/blocksuite/framework/global/tsconfig.json -------------------------------------------------------------------------------- /blocksuite/framework/std/package.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/blocksuite/framework/std/package.json -------------------------------------------------------------------------------- /blocksuite/framework/std/src/effects.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/blocksuite/framework/std/src/effects.ts -------------------------------------------------------------------------------- /blocksuite/framework/std/src/gfx/grid.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/blocksuite/framework/std/src/gfx/grid.ts -------------------------------------------------------------------------------- /blocksuite/framework/std/src/gfx/index.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/blocksuite/framework/std/src/gfx/index.ts -------------------------------------------------------------------------------- /blocksuite/framework/std/src/gfx/layer.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/blocksuite/framework/std/src/gfx/layer.ts -------------------------------------------------------------------------------- /blocksuite/framework/std/src/index.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/blocksuite/framework/std/src/index.ts -------------------------------------------------------------------------------- /blocksuite/framework/std/src/scope/index.ts: -------------------------------------------------------------------------------- 1 | export * from './std-scope.js'; 2 | -------------------------------------------------------------------------------- /blocksuite/framework/std/src/spec/index.ts: -------------------------------------------------------------------------------- 1 | export * from './type.js'; 2 | -------------------------------------------------------------------------------- /blocksuite/framework/std/src/spec/type.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/blocksuite/framework/std/src/spec/type.ts -------------------------------------------------------------------------------- /blocksuite/framework/std/src/utils/gfx.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/blocksuite/framework/std/src/utils/gfx.ts -------------------------------------------------------------------------------- /blocksuite/framework/std/tsconfig.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/blocksuite/framework/std/tsconfig.json -------------------------------------------------------------------------------- /blocksuite/framework/std/typedoc.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/blocksuite/framework/std/typedoc.json -------------------------------------------------------------------------------- /blocksuite/framework/std/vitest.config.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/blocksuite/framework/std/vitest.config.ts -------------------------------------------------------------------------------- /blocksuite/framework/store/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/blocksuite/framework/store/README.md -------------------------------------------------------------------------------- /blocksuite/framework/store/package.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/blocksuite/framework/store/package.json -------------------------------------------------------------------------------- /blocksuite/framework/store/src/consts.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/blocksuite/framework/store/src/consts.ts -------------------------------------------------------------------------------- /blocksuite/framework/store/src/extension/history/index.ts: -------------------------------------------------------------------------------- 1 | export * from './history-extension'; 2 | -------------------------------------------------------------------------------- /blocksuite/framework/store/src/index.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/blocksuite/framework/store/src/index.ts -------------------------------------------------------------------------------- /blocksuite/framework/store/tsconfig.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/blocksuite/framework/store/tsconfig.json -------------------------------------------------------------------------------- /blocksuite/framework/store/typedoc.json: -------------------------------------------------------------------------------- 1 | { 2 | "entryPoints": ["src/index.ts"] 3 | } 4 | -------------------------------------------------------------------------------- /blocksuite/framework/sync/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/blocksuite/framework/sync/README.md -------------------------------------------------------------------------------- /blocksuite/framework/sync/package.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/blocksuite/framework/sync/package.json -------------------------------------------------------------------------------- /blocksuite/framework/sync/src/awareness/impl/index.ts: -------------------------------------------------------------------------------- 1 | export * from './broadcast.js'; 2 | -------------------------------------------------------------------------------- /blocksuite/framework/sync/src/doc/peer.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/blocksuite/framework/sync/src/doc/peer.ts -------------------------------------------------------------------------------- /blocksuite/framework/sync/src/index.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/blocksuite/framework/sync/src/index.ts -------------------------------------------------------------------------------- /blocksuite/framework/sync/tsconfig.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/blocksuite/framework/sync/tsconfig.json -------------------------------------------------------------------------------- /blocksuite/integration-test/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/blocksuite/integration-test/README.md -------------------------------------------------------------------------------- /blocksuite/integration-test/package.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/blocksuite/integration-test/package.json -------------------------------------------------------------------------------- /blocksuite/integration-test/renderer.html: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/blocksuite/integration-test/renderer.html -------------------------------------------------------------------------------- /blocksuite/integration-test/src/editors/index.ts: -------------------------------------------------------------------------------- 1 | export * from './editor-container.js'; 2 | -------------------------------------------------------------------------------- /blocksuite/integration-test/src/index.ts: -------------------------------------------------------------------------------- 1 | export * from './editors'; 2 | -------------------------------------------------------------------------------- /blocksuite/integration-test/src/store.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/blocksuite/integration-test/src/store.ts -------------------------------------------------------------------------------- /blocksuite/integration-test/src/view.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/blocksuite/integration-test/src/view.ts -------------------------------------------------------------------------------- /blocksuite/integration-test/tsconfig.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/blocksuite/integration-test/tsconfig.json -------------------------------------------------------------------------------- /blocksuite/playground/.env: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/blocksuite/playground/.env -------------------------------------------------------------------------------- /blocksuite/playground/.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/blocksuite/playground/.gitignore -------------------------------------------------------------------------------- /blocksuite/playground/apps/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/blocksuite/playground/apps/README.md -------------------------------------------------------------------------------- /blocksuite/playground/apps/env.d.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/blocksuite/playground/apps/env.d.ts -------------------------------------------------------------------------------- /blocksuite/playground/apps/starter/data/snapshots/put-snapshot-zips-here: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /blocksuite/playground/apps/vite-env.d.ts: -------------------------------------------------------------------------------- 1 | /// 2 | -------------------------------------------------------------------------------- /blocksuite/playground/examples/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/blocksuite/playground/examples/README.md -------------------------------------------------------------------------------- /blocksuite/playground/index.html: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/blocksuite/playground/index.html -------------------------------------------------------------------------------- /blocksuite/playground/package.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/blocksuite/playground/package.json -------------------------------------------------------------------------------- /blocksuite/playground/public/logo.svg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/blocksuite/playground/public/logo.svg -------------------------------------------------------------------------------- /blocksuite/playground/style.css: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/blocksuite/playground/style.css -------------------------------------------------------------------------------- /blocksuite/playground/tsconfig.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/blocksuite/playground/tsconfig.json -------------------------------------------------------------------------------- /blocksuite/playground/tsconfig.node.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/blocksuite/playground/tsconfig.node.json -------------------------------------------------------------------------------- /blocksuite/playground/vite.config.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/blocksuite/playground/vite.config.ts -------------------------------------------------------------------------------- /blocksuite/tsconfig.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/blocksuite/tsconfig.json -------------------------------------------------------------------------------- /codecov.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/codecov.yml -------------------------------------------------------------------------------- /docs/BUILDING.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/docs/BUILDING.md -------------------------------------------------------------------------------- /docs/CODE_OF_CONDUCT.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/docs/CODE_OF_CONDUCT.md -------------------------------------------------------------------------------- /docs/CONTRIBUTING.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/docs/CONTRIBUTING.md -------------------------------------------------------------------------------- /docs/building-desktop-client-app.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/docs/building-desktop-client-app.md -------------------------------------------------------------------------------- /docs/contributing/releases.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/docs/contributing/releases.md -------------------------------------------------------------------------------- /docs/contributing/tutorial.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/docs/contributing/tutorial.md -------------------------------------------------------------------------------- /docs/contributor-add.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/docs/contributor-add.md -------------------------------------------------------------------------------- /docs/developing-server.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/docs/developing-server.md -------------------------------------------------------------------------------- /docs/issue-triaging.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/docs/issue-triaging.md -------------------------------------------------------------------------------- /docs/jobs.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/docs/jobs.md -------------------------------------------------------------------------------- /docs/reference/package.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/docs/reference/package.json -------------------------------------------------------------------------------- /docs/reference/readme.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/docs/reference/readme.md -------------------------------------------------------------------------------- /docs/types-of-contributions.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/docs/types-of-contributions.md -------------------------------------------------------------------------------- /eslint.config.mjs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/eslint.config.mjs -------------------------------------------------------------------------------- /nyc.config.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/nyc.config.js -------------------------------------------------------------------------------- /oxlint.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/oxlint.json -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/package.json -------------------------------------------------------------------------------- /packages/backend/native/Cargo.toml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/packages/backend/native/Cargo.toml -------------------------------------------------------------------------------- /packages/backend/native/build.rs: -------------------------------------------------------------------------------- 1 | fn main() { 2 | napi_build::setup(); 3 | } 4 | -------------------------------------------------------------------------------- /packages/backend/native/index.d.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/packages/backend/native/index.d.ts -------------------------------------------------------------------------------- /packages/backend/native/index.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/packages/backend/native/index.js -------------------------------------------------------------------------------- /packages/backend/native/package.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/packages/backend/native/package.json -------------------------------------------------------------------------------- /packages/backend/native/src/doc_loader.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/packages/backend/native/src/doc_loader.rs -------------------------------------------------------------------------------- /packages/backend/native/src/file_type.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/packages/backend/native/src/file_type.rs -------------------------------------------------------------------------------- /packages/backend/native/src/hashcash.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/packages/backend/native/src/hashcash.rs -------------------------------------------------------------------------------- /packages/backend/native/src/lib.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/packages/backend/native/src/lib.rs -------------------------------------------------------------------------------- /packages/backend/native/src/tiktoken.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/packages/backend/native/src/tiktoken.rs -------------------------------------------------------------------------------- /packages/backend/native/src/utils.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/packages/backend/native/src/utils.rs -------------------------------------------------------------------------------- /packages/backend/native/tsconfig.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/packages/backend/native/tsconfig.json -------------------------------------------------------------------------------- /packages/backend/server/.dockerignore: -------------------------------------------------------------------------------- 1 | # required DATABASE_URL affects app start 2 | schema.prisma -------------------------------------------------------------------------------- /packages/backend/server/.env.example: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/packages/backend/server/.env.example -------------------------------------------------------------------------------- /packages/backend/server/.gitignore: -------------------------------------------------------------------------------- 1 | config.json 2 | .env 3 | static/ 4 | -------------------------------------------------------------------------------- /packages/backend/server/LICENSE: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/packages/backend/server/LICENSE -------------------------------------------------------------------------------- /packages/backend/server/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/packages/backend/server/README.md -------------------------------------------------------------------------------- /packages/backend/server/ava.config.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/packages/backend/server/ava.config.js -------------------------------------------------------------------------------- /packages/backend/server/package.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/packages/backend/server/package.json -------------------------------------------------------------------------------- /packages/backend/server/schema.prisma: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/packages/backend/server/schema.prisma -------------------------------------------------------------------------------- /packages/backend/server/src/app.module.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/packages/backend/server/src/app.module.ts -------------------------------------------------------------------------------- /packages/backend/server/src/base/index.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/packages/backend/server/src/base/index.ts -------------------------------------------------------------------------------- /packages/backend/server/src/cli.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/packages/backend/server/src/cli.ts -------------------------------------------------------------------------------- /packages/backend/server/src/core/common/index.ts: -------------------------------------------------------------------------------- 1 | export * from './admin-guard'; 2 | -------------------------------------------------------------------------------- /packages/backend/server/src/core/index.ts: -------------------------------------------------------------------------------- 1 | export * from './config'; 2 | -------------------------------------------------------------------------------- /packages/backend/server/src/data/app.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/packages/backend/server/src/data/app.ts -------------------------------------------------------------------------------- /packages/backend/server/src/env.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/packages/backend/server/src/env.ts -------------------------------------------------------------------------------- /packages/backend/server/src/global.d.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/packages/backend/server/src/global.d.ts -------------------------------------------------------------------------------- /packages/backend/server/src/index.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/packages/backend/server/src/index.ts -------------------------------------------------------------------------------- /packages/backend/server/src/models/doc.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/packages/backend/server/src/models/doc.ts -------------------------------------------------------------------------------- /packages/backend/server/src/native.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/packages/backend/server/src/native.ts -------------------------------------------------------------------------------- /packages/backend/server/src/prelude.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/packages/backend/server/src/prelude.ts -------------------------------------------------------------------------------- /packages/backend/server/src/schema.gql: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/packages/backend/server/src/schema.gql -------------------------------------------------------------------------------- /packages/backend/server/src/seed/index.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/packages/backend/server/src/seed/index.ts -------------------------------------------------------------------------------- /packages/backend/server/src/server.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/packages/backend/server/src/server.ts -------------------------------------------------------------------------------- /packages/backend/server/tsconfig.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/packages/backend/server/tsconfig.json -------------------------------------------------------------------------------- /packages/common/debug/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/packages/common/debug/README.md -------------------------------------------------------------------------------- /packages/common/debug/package.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/packages/common/debug/package.json -------------------------------------------------------------------------------- /packages/common/debug/src/index.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/packages/common/debug/src/index.ts -------------------------------------------------------------------------------- /packages/common/debug/tsconfig.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/packages/common/debug/tsconfig.json -------------------------------------------------------------------------------- /packages/common/env/package.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/packages/common/env/package.json -------------------------------------------------------------------------------- /packages/common/env/src/automation.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/packages/common/env/src/automation.ts -------------------------------------------------------------------------------- /packages/common/env/src/constant.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/packages/common/env/src/constant.ts -------------------------------------------------------------------------------- /packages/common/env/src/filter.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/packages/common/env/src/filter.ts -------------------------------------------------------------------------------- /packages/common/env/src/global.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/packages/common/env/src/global.ts -------------------------------------------------------------------------------- /packages/common/env/src/page-info.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/packages/common/env/src/page-info.ts -------------------------------------------------------------------------------- /packages/common/env/src/ua-helper.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/packages/common/env/src/ua-helper.ts -------------------------------------------------------------------------------- /packages/common/env/src/worker.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/packages/common/env/src/worker.ts -------------------------------------------------------------------------------- /packages/common/env/tsconfig.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/packages/common/env/tsconfig.json -------------------------------------------------------------------------------- /packages/common/error/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/packages/common/error/README.md -------------------------------------------------------------------------------- /packages/common/error/package.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/packages/common/error/package.json -------------------------------------------------------------------------------- /packages/common/error/src/index.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/packages/common/error/src/index.ts -------------------------------------------------------------------------------- /packages/common/error/tsconfig.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/packages/common/error/tsconfig.json -------------------------------------------------------------------------------- /packages/common/graphql/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/packages/common/graphql/README.md -------------------------------------------------------------------------------- /packages/common/graphql/codegen.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/packages/common/graphql/codegen.yml -------------------------------------------------------------------------------- /packages/common/graphql/package.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/packages/common/graphql/package.json -------------------------------------------------------------------------------- /packages/common/graphql/src/fetcher.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/packages/common/graphql/src/fetcher.ts -------------------------------------------------------------------------------- /packages/common/graphql/src/index.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/packages/common/graphql/src/index.ts -------------------------------------------------------------------------------- /packages/common/graphql/src/schema.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/packages/common/graphql/src/schema.ts -------------------------------------------------------------------------------- /packages/common/graphql/tsconfig.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/packages/common/graphql/tsconfig.json -------------------------------------------------------------------------------- /packages/common/infra/package.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/packages/common/infra/package.json -------------------------------------------------------------------------------- /packages/common/infra/src/atom/index.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/packages/common/infra/src/atom/index.ts -------------------------------------------------------------------------------- /packages/common/infra/src/index.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/packages/common/infra/src/index.ts -------------------------------------------------------------------------------- /packages/common/infra/src/livedata/ops.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/packages/common/infra/src/livedata/ops.ts -------------------------------------------------------------------------------- /packages/common/infra/src/media/index.ts: -------------------------------------------------------------------------------- 1 | export * from './types'; 2 | -------------------------------------------------------------------------------- /packages/common/infra/src/media/types.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/packages/common/infra/src/media/types.ts -------------------------------------------------------------------------------- /packages/common/infra/src/op/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/packages/common/infra/src/op/README.md -------------------------------------------------------------------------------- /packages/common/infra/src/op/client.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/packages/common/infra/src/op/client.ts -------------------------------------------------------------------------------- /packages/common/infra/src/op/consumer.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/packages/common/infra/src/op/consumer.ts -------------------------------------------------------------------------------- /packages/common/infra/src/op/index.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/packages/common/infra/src/op/index.ts -------------------------------------------------------------------------------- /packages/common/infra/src/op/message.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/packages/common/infra/src/op/message.ts -------------------------------------------------------------------------------- /packages/common/infra/src/op/types.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/packages/common/infra/src/op/types.ts -------------------------------------------------------------------------------- /packages/common/infra/src/orm/core/adapters/mixins/index.ts: -------------------------------------------------------------------------------- 1 | export * from './hook'; 2 | -------------------------------------------------------------------------------- /packages/common/infra/src/orm/index.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/packages/common/infra/src/orm/index.ts -------------------------------------------------------------------------------- /packages/common/infra/src/storage/kv.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/packages/common/infra/src/storage/kv.ts -------------------------------------------------------------------------------- /packages/common/infra/src/utils/index.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/packages/common/infra/src/utils/index.ts -------------------------------------------------------------------------------- /packages/common/infra/tsconfig.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/packages/common/infra/tsconfig.json -------------------------------------------------------------------------------- /packages/common/infra/typedoc.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/packages/common/infra/typedoc.json -------------------------------------------------------------------------------- /packages/common/native/Cargo.toml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/packages/common/native/Cargo.toml -------------------------------------------------------------------------------- /packages/common/native/fixtures/demo.docx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/packages/common/native/fixtures/demo.docx -------------------------------------------------------------------------------- /packages/common/native/fixtures/demo.ydoc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/packages/common/native/fixtures/demo.ydoc -------------------------------------------------------------------------------- /packages/common/native/fixtures/sample.c: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/packages/common/native/fixtures/sample.c -------------------------------------------------------------------------------- /packages/common/native/fixtures/sample.c.0.md: -------------------------------------------------------------------------------- 1 | #include -------------------------------------------------------------------------------- /packages/common/native/fixtures/sample.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/packages/common/native/fixtures/sample.rs -------------------------------------------------------------------------------- /packages/common/native/fixtures/sample.rs.1.md: -------------------------------------------------------------------------------- 1 | fn main() { 2 | println!("Hello, world!"); 3 | } -------------------------------------------------------------------------------- /packages/common/native/fixtures/sample.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/packages/common/native/fixtures/sample.ts -------------------------------------------------------------------------------- /packages/common/native/src/doc_parser.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/packages/common/native/src/doc_parser.rs -------------------------------------------------------------------------------- /packages/common/native/src/hashcash.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/packages/common/native/src/hashcash.rs -------------------------------------------------------------------------------- /packages/common/native/src/lib.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/packages/common/native/src/lib.rs -------------------------------------------------------------------------------- /packages/common/nbstore/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/packages/common/nbstore/README.md -------------------------------------------------------------------------------- /packages/common/nbstore/package.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/packages/common/nbstore/package.json -------------------------------------------------------------------------------- /packages/common/nbstore/src/index.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/packages/common/nbstore/src/index.ts -------------------------------------------------------------------------------- /packages/common/nbstore/src/sync/index.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/packages/common/nbstore/src/sync/index.ts -------------------------------------------------------------------------------- /packages/common/nbstore/src/sync/types.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/packages/common/nbstore/src/sync/types.ts -------------------------------------------------------------------------------- /packages/common/nbstore/src/worker/ops.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/packages/common/nbstore/src/worker/ops.ts -------------------------------------------------------------------------------- /packages/common/nbstore/tsconfig.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/packages/common/nbstore/tsconfig.json -------------------------------------------------------------------------------- /packages/common/reader/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/packages/common/reader/README.md -------------------------------------------------------------------------------- /packages/common/reader/esbuild.config.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/packages/common/reader/esbuild.config.js -------------------------------------------------------------------------------- /packages/common/reader/package.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/packages/common/reader/package.json -------------------------------------------------------------------------------- /packages/common/reader/src/bs-store.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/packages/common/reader/src/bs-store.ts -------------------------------------------------------------------------------- /packages/common/reader/src/doc-parser/delta-to-md/README.md: -------------------------------------------------------------------------------- 1 | A fork of https://github.com/frysztak/quill-delta-to-markdown 2 | -------------------------------------------------------------------------------- /packages/common/reader/src/index.ts: -------------------------------------------------------------------------------- 1 | export * from './reader'; 2 | -------------------------------------------------------------------------------- /packages/common/reader/src/reader.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/packages/common/reader/src/reader.ts -------------------------------------------------------------------------------- /packages/common/reader/tsconfig.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/packages/common/reader/tsconfig.json -------------------------------------------------------------------------------- /packages/common/theme/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/packages/common/theme/README.md -------------------------------------------------------------------------------- /packages/common/y-octo/core/Cargo.toml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/packages/common/y-octo/core/Cargo.toml -------------------------------------------------------------------------------- /packages/common/y-octo/core/LICENSE: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/packages/common/y-octo/core/LICENSE -------------------------------------------------------------------------------- /packages/common/y-octo/core/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/packages/common/y-octo/core/README.md -------------------------------------------------------------------------------- /packages/common/y-octo/core/src/fixtures/local_docs.json: -------------------------------------------------------------------------------- 1 | [] 2 | -------------------------------------------------------------------------------- /packages/common/y-octo/core/src/lib.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/packages/common/y-octo/core/src/lib.rs -------------------------------------------------------------------------------- /packages/common/y-octo/core/src/sync.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/packages/common/y-octo/core/src/sync.rs -------------------------------------------------------------------------------- /packages/common/y-octo/node/.gitignore: -------------------------------------------------------------------------------- 1 | *.node 2 | .coverage -------------------------------------------------------------------------------- /packages/common/y-octo/node/Cargo.toml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/packages/common/y-octo/node/Cargo.toml -------------------------------------------------------------------------------- /packages/common/y-octo/node/build.rs: -------------------------------------------------------------------------------- 1 | fn main() { 2 | napi_build::setup(); 3 | } 4 | -------------------------------------------------------------------------------- /packages/common/y-octo/node/index.d.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/packages/common/y-octo/node/index.d.ts -------------------------------------------------------------------------------- /packages/common/y-octo/node/index.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/packages/common/y-octo/node/index.js -------------------------------------------------------------------------------- /packages/common/y-octo/node/package.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/packages/common/y-octo/node/package.json -------------------------------------------------------------------------------- /packages/common/y-octo/node/src/array.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/packages/common/y-octo/node/src/array.rs -------------------------------------------------------------------------------- /packages/common/y-octo/node/src/doc.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/packages/common/y-octo/node/src/doc.rs -------------------------------------------------------------------------------- /packages/common/y-octo/node/src/lib.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/packages/common/y-octo/node/src/lib.rs -------------------------------------------------------------------------------- /packages/common/y-octo/node/src/map.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/packages/common/y-octo/node/src/map.rs -------------------------------------------------------------------------------- /packages/common/y-octo/node/src/text.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/packages/common/y-octo/node/src/text.rs -------------------------------------------------------------------------------- /packages/common/y-octo/node/src/utils.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/packages/common/y-octo/node/src/utils.rs -------------------------------------------------------------------------------- /packages/common/y-octo/node/tsconfig.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/packages/common/y-octo/node/tsconfig.json -------------------------------------------------------------------------------- /packages/common/y-octo/utils/Cargo.toml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/packages/common/y-octo/utils/Cargo.toml -------------------------------------------------------------------------------- /packages/common/y-octo/utils/fuzz/.gitignore: -------------------------------------------------------------------------------- 1 | target 2 | corpus 3 | artifacts 4 | coverage 5 | -------------------------------------------------------------------------------- /packages/common/y-octo/utils/src/codec.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/packages/common/y-octo/utils/src/codec.rs -------------------------------------------------------------------------------- /packages/common/y-octo/utils/src/doc.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/packages/common/y-octo/utils/src/doc.rs -------------------------------------------------------------------------------- /packages/common/y-octo/utils/src/lib.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/packages/common/y-octo/utils/src/lib.rs -------------------------------------------------------------------------------- /packages/frontend/admin/components.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/packages/frontend/admin/components.json -------------------------------------------------------------------------------- /packages/frontend/admin/package.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/packages/frontend/admin/package.json -------------------------------------------------------------------------------- /packages/frontend/admin/src/app.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/packages/frontend/admin/src/app.tsx -------------------------------------------------------------------------------- /packages/frontend/admin/src/config.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/packages/frontend/admin/src/config.json -------------------------------------------------------------------------------- /packages/frontend/admin/src/global.css: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/packages/frontend/admin/src/global.css -------------------------------------------------------------------------------- /packages/frontend/admin/src/global.d.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/packages/frontend/admin/src/global.d.ts -------------------------------------------------------------------------------- /packages/frontend/admin/src/index.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/packages/frontend/admin/src/index.tsx -------------------------------------------------------------------------------- /packages/frontend/admin/src/setup.ts: -------------------------------------------------------------------------------- 1 | import '@affine/core/bootstrap/browser'; 2 | -------------------------------------------------------------------------------- /packages/frontend/admin/src/use-query.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/packages/frontend/admin/src/use-query.ts -------------------------------------------------------------------------------- /packages/frontend/admin/src/utils.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/packages/frontend/admin/src/utils.ts -------------------------------------------------------------------------------- /packages/frontend/admin/tsconfig.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/packages/frontend/admin/tsconfig.json -------------------------------------------------------------------------------- /packages/frontend/apps/android/.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/packages/frontend/apps/android/.gitignore -------------------------------------------------------------------------------- /packages/frontend/apps/android/App/capacitor-cordova-android-plugins/src/main/java/.gitkeep: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /packages/frontend/apps/android/App/capacitor-cordova-android-plugins/src/main/res/.gitkeep: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /packages/frontend/apps/android/App/service/.gitignore: -------------------------------------------------------------------------------- 1 | /build -------------------------------------------------------------------------------- /packages/frontend/apps/android/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/packages/frontend/apps/android/README.md -------------------------------------------------------------------------------- /packages/frontend/apps/electron/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/packages/frontend/apps/electron/README.md -------------------------------------------------------------------------------- /packages/frontend/apps/electron/scripts/nsis-installer.nsh: -------------------------------------------------------------------------------- 1 | ManifestDPIAware true 2 | -------------------------------------------------------------------------------- /packages/frontend/apps/electron/scripts/package.json: -------------------------------------------------------------------------------- 1 | { 2 | "type": "module" 3 | } 4 | -------------------------------------------------------------------------------- /packages/frontend/apps/electron/src/main/config-storage/index.ts: -------------------------------------------------------------------------------- 1 | export * from './handlers'; 2 | -------------------------------------------------------------------------------- /packages/frontend/apps/electron/src/main/find-in-page/index.ts: -------------------------------------------------------------------------------- 1 | export * from './handlers'; 2 | -------------------------------------------------------------------------------- /packages/frontend/apps/electron/src/main/windows-manager/types.ts: -------------------------------------------------------------------------------- 1 | export type LaunchStage = 'main' | 'onboarding'; 2 | -------------------------------------------------------------------------------- /packages/frontend/apps/electron/src/preload/index.ts: -------------------------------------------------------------------------------- 1 | import './bootstrap'; 2 | -------------------------------------------------------------------------------- /packages/frontend/apps/ios/.gitignore: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/packages/frontend/apps/ios/.gitignore -------------------------------------------------------------------------------- /packages/frontend/apps/ios/AGENTS.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/packages/frontend/apps/ios/AGENTS.md -------------------------------------------------------------------------------- /packages/frontend/apps/ios/App/Gemfile: -------------------------------------------------------------------------------- 1 | source "https://rubygems.org" 2 | 3 | gem "fastlane" 4 | -------------------------------------------------------------------------------- /packages/frontend/apps/ios/App/Packages/AffineGraphQL/.gitignore: -------------------------------------------------------------------------------- 1 | .build 2 | apollo-ios-cli 3 | -------------------------------------------------------------------------------- /packages/frontend/apps/ios/App/Podfile: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/packages/frontend/apps/ios/App/Podfile -------------------------------------------------------------------------------- /packages/frontend/apps/ios/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/packages/frontend/apps/ios/README.md -------------------------------------------------------------------------------- /packages/frontend/apps/ios/codegen.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/packages/frontend/apps/ios/codegen.ts -------------------------------------------------------------------------------- /packages/frontend/apps/ios/package.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/packages/frontend/apps/ios/package.json -------------------------------------------------------------------------------- /packages/frontend/apps/ios/setup.sh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/packages/frontend/apps/ios/setup.sh -------------------------------------------------------------------------------- /packages/frontend/apps/ios/src/app.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/packages/frontend/apps/ios/src/app.tsx -------------------------------------------------------------------------------- /packages/frontend/apps/ios/src/index.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/packages/frontend/apps/ios/src/index.tsx -------------------------------------------------------------------------------- /packages/frontend/apps/ios/src/proxy.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/packages/frontend/apps/ios/src/proxy.ts -------------------------------------------------------------------------------- /packages/frontend/apps/ios/src/setup.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/packages/frontend/apps/ios/src/setup.ts -------------------------------------------------------------------------------- /packages/frontend/apps/ios/tsconfig.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/packages/frontend/apps/ios/tsconfig.json -------------------------------------------------------------------------------- /packages/frontend/apps/mobile/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/packages/frontend/apps/mobile/README.md -------------------------------------------------------------------------------- /packages/frontend/apps/mobile/src/app.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/packages/frontend/apps/mobile/src/app.tsx -------------------------------------------------------------------------------- /packages/frontend/apps/web/README.md: -------------------------------------------------------------------------------- 1 | # web 2 | 3 | AFFiNE Desktop Edition Web app. 4 | -------------------------------------------------------------------------------- /packages/frontend/apps/web/package.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/packages/frontend/apps/web/package.json -------------------------------------------------------------------------------- /packages/frontend/apps/web/src/app.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/packages/frontend/apps/web/src/app.tsx -------------------------------------------------------------------------------- /packages/frontend/apps/web/src/index.tsx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/packages/frontend/apps/web/src/index.tsx -------------------------------------------------------------------------------- /packages/frontend/apps/web/src/setup.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/packages/frontend/apps/web/src/setup.ts -------------------------------------------------------------------------------- /packages/frontend/apps/web/tsconfig.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/packages/frontend/apps/web/tsconfig.json -------------------------------------------------------------------------------- /packages/frontend/component/package.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/packages/frontend/component/package.json -------------------------------------------------------------------------------- /packages/frontend/component/src/components/affine-other-page-layout/index.tsx: -------------------------------------------------------------------------------- 1 | export * from './layout'; 2 | -------------------------------------------------------------------------------- /packages/frontend/component/src/components/not-found-page/index.tsx: -------------------------------------------------------------------------------- 1 | export * from './not-found-page'; 2 | -------------------------------------------------------------------------------- /packages/frontend/component/src/components/resize-panel/index.tsx: -------------------------------------------------------------------------------- 1 | export * from './resize-panel'; 2 | -------------------------------------------------------------------------------- /packages/frontend/component/src/index.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/packages/frontend/component/src/index.ts -------------------------------------------------------------------------------- /packages/frontend/component/src/type.d.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/packages/frontend/component/src/type.d.ts -------------------------------------------------------------------------------- /packages/frontend/component/src/ui/avatar/index.ts: -------------------------------------------------------------------------------- 1 | export * from './avatar'; 2 | -------------------------------------------------------------------------------- /packages/frontend/component/src/ui/checkbox/index.ts: -------------------------------------------------------------------------------- 1 | export * from './checkbox'; 2 | -------------------------------------------------------------------------------- /packages/frontend/component/src/ui/divider/index.ts: -------------------------------------------------------------------------------- 1 | export * from './divider'; 2 | -------------------------------------------------------------------------------- /packages/frontend/component/src/ui/editable/index.ts: -------------------------------------------------------------------------------- 1 | export * from './inline-edit'; 2 | -------------------------------------------------------------------------------- /packages/frontend/component/src/ui/empty/index.ts: -------------------------------------------------------------------------------- 1 | export * from './empty'; 2 | -------------------------------------------------------------------------------- /packages/frontend/component/src/ui/icon-name-editor/index.ts: -------------------------------------------------------------------------------- 1 | export * from './icon-name-editor'; 2 | -------------------------------------------------------------------------------- /packages/frontend/component/src/ui/loading/index.ts: -------------------------------------------------------------------------------- 1 | export * from './loading'; 2 | -------------------------------------------------------------------------------- /packages/frontend/component/src/ui/progress/index.ts: -------------------------------------------------------------------------------- 1 | export * from './progress'; 2 | -------------------------------------------------------------------------------- /packages/frontend/component/src/ui/property/index.ts: -------------------------------------------------------------------------------- 1 | export * from './property'; 2 | -------------------------------------------------------------------------------- /packages/frontend/component/src/ui/slider/index.ts: -------------------------------------------------------------------------------- 1 | export * from './slider'; 2 | -------------------------------------------------------------------------------- /packages/frontend/component/src/ui/switch/index.ts: -------------------------------------------------------------------------------- 1 | export * from './switch'; 2 | -------------------------------------------------------------------------------- /packages/frontend/component/src/ui/tabs/index.ts: -------------------------------------------------------------------------------- 1 | export * from './tabs'; 2 | -------------------------------------------------------------------------------- /packages/frontend/component/src/ui/toast/index.ts: -------------------------------------------------------------------------------- 1 | export * from './toast'; 2 | -------------------------------------------------------------------------------- /packages/frontend/component/tsconfig.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/packages/frontend/component/tsconfig.json -------------------------------------------------------------------------------- /packages/frontend/core/package.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/packages/frontend/core/package.json -------------------------------------------------------------------------------- /packages/frontend/core/public/.gitignore: -------------------------------------------------------------------------------- 1 | *.js 2 | *.map 3 | 4 | plugins 5 | -------------------------------------------------------------------------------- /packages/frontend/core/public/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/packages/frontend/core/public/favicon.ico -------------------------------------------------------------------------------- /packages/frontend/core/public/robots.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/packages/frontend/core/public/robots.txt -------------------------------------------------------------------------------- /packages/frontend/core/src/blocksuite/ai/blocks/index.ts: -------------------------------------------------------------------------------- 1 | export * from './ai-chat-block'; 2 | -------------------------------------------------------------------------------- /packages/frontend/core/src/blocksuite/ai/components/ai-chat-composer/index.ts: -------------------------------------------------------------------------------- 1 | export * from './ai-chat-composer'; 2 | -------------------------------------------------------------------------------- /packages/frontend/core/src/blocksuite/ai/components/ai-chat-input/const.ts: -------------------------------------------------------------------------------- 1 | export const MAX_IMAGE_COUNT = 9; 2 | -------------------------------------------------------------------------------- /packages/frontend/core/src/blocksuite/ai/components/ai-history-clear/index.ts: -------------------------------------------------------------------------------- 1 | export * from './ai-history-clear'; 2 | -------------------------------------------------------------------------------- /packages/frontend/core/src/blocksuite/ai/messages/index.ts: -------------------------------------------------------------------------------- 1 | export * from './wrapper'; 2 | -------------------------------------------------------------------------------- /packages/frontend/core/src/blocksuite/utils/index.ts: -------------------------------------------------------------------------------- 1 | export * from './markdown-utils'; 2 | -------------------------------------------------------------------------------- /packages/frontend/core/src/bootstrap/polyfill/electron.ts: -------------------------------------------------------------------------------- 1 | import './resize-observer'; 2 | -------------------------------------------------------------------------------- /packages/frontend/core/src/bootstrap/polyfill/iterator-helpers.ts: -------------------------------------------------------------------------------- 1 | import 'core-js/proposals/iterator-helpers-stage-3'; 2 | -------------------------------------------------------------------------------- /packages/frontend/core/src/bootstrap/polyfill/promise-with-resolvers.ts: -------------------------------------------------------------------------------- 1 | import 'core-js/features/promise/with-resolvers'; 2 | -------------------------------------------------------------------------------- /packages/frontend/core/src/components/affine/page-history-modal/index.tsx: -------------------------------------------------------------------------------- 1 | export * from './history-modal'; 2 | -------------------------------------------------------------------------------- /packages/frontend/core/src/components/mobile/index.ts: -------------------------------------------------------------------------------- 1 | export * from './config-modal'; 2 | -------------------------------------------------------------------------------- /packages/frontend/core/src/components/pure/icons/index.tsx: -------------------------------------------------------------------------------- 1 | export * from './favorite-icon'; 2 | -------------------------------------------------------------------------------- /packages/frontend/core/src/components/workspace-selector/enable-cloud/index.ts: -------------------------------------------------------------------------------- 1 | export * from './enable-cloud'; 2 | -------------------------------------------------------------------------------- /packages/frontend/core/src/desktop/dialogs/setting/general-setting/editor/edgeless/index.ts: -------------------------------------------------------------------------------- 1 | export * from './edgeless'; 2 | -------------------------------------------------------------------------------- /packages/frontend/core/src/desktop/pages/workspace/detail-page/index.ts: -------------------------------------------------------------------------------- 1 | export * from './detail-page'; 2 | -------------------------------------------------------------------------------- /packages/frontend/core/src/mobile/components/app-tabs/constants.ts: -------------------------------------------------------------------------------- 1 | export const cacheKey = 'activeAppTabId'; 2 | -------------------------------------------------------------------------------- /packages/frontend/core/src/mobile/utils/index.ts: -------------------------------------------------------------------------------- 1 | export * from './swipe-helper'; 2 | -------------------------------------------------------------------------------- /packages/frontend/core/src/modules/app-sidebar/views/open-in-app-card/index.tsx: -------------------------------------------------------------------------------- 1 | export * from './open-in-app-card'; 2 | -------------------------------------------------------------------------------- /packages/frontend/core/src/modules/share-menu/view/share-menu/index.tsx: -------------------------------------------------------------------------------- 1 | export * from './share-menu'; 2 | -------------------------------------------------------------------------------- /packages/frontend/core/src/modules/workspace-indexer-embedding/constants.ts: -------------------------------------------------------------------------------- 1 | export const COUNT_PER_PAGE = 10; 2 | -------------------------------------------------------------------------------- /packages/frontend/core/src/types/dnd.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/packages/frontend/core/src/types/dnd.ts -------------------------------------------------------------------------------- /packages/frontend/core/src/utils/event.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/packages/frontend/core/src/utils/event.ts -------------------------------------------------------------------------------- /packages/frontend/core/src/utils/index.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/packages/frontend/core/src/utils/index.ts -------------------------------------------------------------------------------- /packages/frontend/core/src/utils/toast.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/packages/frontend/core/src/utils/toast.ts -------------------------------------------------------------------------------- /packages/frontend/core/tsconfig.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/packages/frontend/core/tsconfig.json -------------------------------------------------------------------------------- /packages/frontend/i18n/.gitignore: -------------------------------------------------------------------------------- 1 | lib 2 | i18n-generated.ts -------------------------------------------------------------------------------- /packages/frontend/i18n/.i18n-codegen.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/packages/frontend/i18n/.i18n-codegen.json -------------------------------------------------------------------------------- /packages/frontend/i18n/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/packages/frontend/i18n/README.md -------------------------------------------------------------------------------- /packages/frontend/i18n/build.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/packages/frontend/i18n/build.ts -------------------------------------------------------------------------------- /packages/frontend/i18n/cleanup.mjs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/packages/frontend/i18n/cleanup.mjs -------------------------------------------------------------------------------- /packages/frontend/i18n/crowdin.yml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/packages/frontend/i18n/crowdin.yml -------------------------------------------------------------------------------- /packages/frontend/i18n/package.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/packages/frontend/i18n/package.json -------------------------------------------------------------------------------- /packages/frontend/i18n/src/i18n.gen.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/packages/frontend/i18n/src/i18n.gen.ts -------------------------------------------------------------------------------- /packages/frontend/i18n/src/i18next.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/packages/frontend/i18n/src/i18next.ts -------------------------------------------------------------------------------- /packages/frontend/i18n/src/index.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/packages/frontend/i18n/src/index.ts -------------------------------------------------------------------------------- /packages/frontend/i18n/src/react.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/packages/frontend/i18n/src/react.ts -------------------------------------------------------------------------------- /packages/frontend/i18n/src/utils/index.ts: -------------------------------------------------------------------------------- 1 | export { i18nTime } from './time'; 2 | -------------------------------------------------------------------------------- /packages/frontend/i18n/src/utils/time.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/packages/frontend/i18n/src/utils/time.ts -------------------------------------------------------------------------------- /packages/frontend/i18n/tsconfig.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/packages/frontend/i18n/tsconfig.json -------------------------------------------------------------------------------- /packages/frontend/media-capture-playground/.gitignore: -------------------------------------------------------------------------------- 1 | recordings 2 | .env -------------------------------------------------------------------------------- /packages/frontend/media-capture-playground/web/main.css: -------------------------------------------------------------------------------- 1 | @import 'tailwindcss'; 2 | -------------------------------------------------------------------------------- /packages/frontend/native/.gitignore: -------------------------------------------------------------------------------- 1 | *.fixture 2 | lib 3 | *.bin 4 | -------------------------------------------------------------------------------- /packages/frontend/native/Cargo.toml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/packages/frontend/native/Cargo.toml -------------------------------------------------------------------------------- /packages/frontend/native/build.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/packages/frontend/native/build.rs -------------------------------------------------------------------------------- /packages/frontend/native/index.d.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/packages/frontend/native/index.d.ts -------------------------------------------------------------------------------- /packages/frontend/native/index.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/packages/frontend/native/index.js -------------------------------------------------------------------------------- /packages/frontend/native/media_capture/build.rs: -------------------------------------------------------------------------------- 1 | fn main() { 2 | napi_build::setup(); 3 | } 4 | -------------------------------------------------------------------------------- /packages/frontend/native/nbstore/build.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/packages/frontend/native/nbstore/build.rs -------------------------------------------------------------------------------- /packages/frontend/native/package.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/packages/frontend/native/package.json -------------------------------------------------------------------------------- /packages/frontend/native/schema/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/packages/frontend/native/schema/README.md -------------------------------------------------------------------------------- /packages/frontend/native/schema/src/v1.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/packages/frontend/native/schema/src/v1.rs -------------------------------------------------------------------------------- /packages/frontend/native/src/hashcash.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/packages/frontend/native/src/hashcash.rs -------------------------------------------------------------------------------- /packages/frontend/native/src/lib.rs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/packages/frontend/native/src/lib.rs -------------------------------------------------------------------------------- /packages/frontend/native/tsconfig.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/packages/frontend/native/tsconfig.json -------------------------------------------------------------------------------- /packages/frontend/routes/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/packages/frontend/routes/README.md -------------------------------------------------------------------------------- /packages/frontend/routes/build.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/packages/frontend/routes/build.ts -------------------------------------------------------------------------------- /packages/frontend/routes/package.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/packages/frontend/routes/package.json -------------------------------------------------------------------------------- /packages/frontend/routes/routes.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/packages/frontend/routes/routes.json -------------------------------------------------------------------------------- /packages/frontend/routes/schema.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/packages/frontend/routes/schema.json -------------------------------------------------------------------------------- /packages/frontend/routes/src/index.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/packages/frontend/routes/src/index.ts -------------------------------------------------------------------------------- /packages/frontend/routes/src/lazy.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/packages/frontend/routes/src/lazy.ts -------------------------------------------------------------------------------- /packages/frontend/routes/src/routes.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/packages/frontend/routes/src/routes.ts -------------------------------------------------------------------------------- /packages/frontend/routes/tsconfig.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/packages/frontend/routes/tsconfig.json -------------------------------------------------------------------------------- /packages/frontend/templates/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/packages/frontend/templates/README.md -------------------------------------------------------------------------------- /packages/frontend/templates/package.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/packages/frontend/templates/package.json -------------------------------------------------------------------------------- /packages/frontend/track/package.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/packages/frontend/track/package.json -------------------------------------------------------------------------------- /packages/frontend/track/src/auto.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/packages/frontend/track/src/auto.ts -------------------------------------------------------------------------------- /packages/frontend/track/src/events.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/packages/frontend/track/src/events.ts -------------------------------------------------------------------------------- /packages/frontend/track/src/index.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/packages/frontend/track/src/index.ts -------------------------------------------------------------------------------- /packages/frontend/track/src/mixpanel.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/packages/frontend/track/src/mixpanel.ts -------------------------------------------------------------------------------- /packages/frontend/track/src/sentry.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/packages/frontend/track/src/sentry.ts -------------------------------------------------------------------------------- /packages/frontend/track/src/types.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/packages/frontend/track/src/types.ts -------------------------------------------------------------------------------- /packages/frontend/track/tsconfig.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/packages/frontend/track/tsconfig.json -------------------------------------------------------------------------------- /rust-toolchain.toml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/rust-toolchain.toml -------------------------------------------------------------------------------- /rustfmt.toml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/rustfmt.toml -------------------------------------------------------------------------------- /scripts/download-blocksuite-fonts.mjs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/scripts/download-blocksuite-fonts.mjs -------------------------------------------------------------------------------- /scripts/generate-release-yml.mjs: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/scripts/generate-release-yml.mjs -------------------------------------------------------------------------------- /scripts/set-version.sh: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/scripts/set-version.sh -------------------------------------------------------------------------------- /scripts/setup/global.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/scripts/setup/global.ts -------------------------------------------------------------------------------- /scripts/setup/lit.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/scripts/setup/lit.ts -------------------------------------------------------------------------------- /scripts/setup/polyfill.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/scripts/setup/polyfill.ts -------------------------------------------------------------------------------- /scripts/setup/vi-mock.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/scripts/setup/vi-mock.ts -------------------------------------------------------------------------------- /scripts/vitest-global.js: -------------------------------------------------------------------------------- 1 | export const setup = () => { 2 | process.env.TZ = 'Asia/Singapore'; 3 | }; 4 | -------------------------------------------------------------------------------- /tests/affine-cloud-copilot/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/tests/affine-cloud-copilot/README.md -------------------------------------------------------------------------------- /tests/affine-cloud-copilot/package.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/tests/affine-cloud-copilot/package.json -------------------------------------------------------------------------------- /tests/affine-cloud-copilot/tsconfig.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/tests/affine-cloud-copilot/tsconfig.json -------------------------------------------------------------------------------- /tests/affine-cloud/e2e/comments.spec.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/tests/affine-cloud/e2e/comments.spec.ts -------------------------------------------------------------------------------- /tests/affine-cloud/e2e/login.spec.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/tests/affine-cloud/e2e/login.spec.ts -------------------------------------------------------------------------------- /tests/affine-cloud/e2e/logo.svg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/tests/affine-cloud/e2e/logo.svg -------------------------------------------------------------------------------- /tests/affine-cloud/e2e/storage.spec.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/tests/affine-cloud/e2e/storage.spec.ts -------------------------------------------------------------------------------- /tests/affine-cloud/e2e/template.spec.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/tests/affine-cloud/e2e/template.spec.ts -------------------------------------------------------------------------------- /tests/affine-cloud/e2e/workspace.spec.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/tests/affine-cloud/e2e/workspace.spec.ts -------------------------------------------------------------------------------- /tests/affine-cloud/package.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/tests/affine-cloud/package.json -------------------------------------------------------------------------------- /tests/affine-cloud/playwright.config.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/tests/affine-cloud/playwright.config.ts -------------------------------------------------------------------------------- /tests/affine-cloud/tsconfig.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/tests/affine-cloud/tsconfig.json -------------------------------------------------------------------------------- /tests/affine-desktop-cloud/package.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/tests/affine-desktop-cloud/package.json -------------------------------------------------------------------------------- /tests/affine-desktop-cloud/tsconfig.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/tests/affine-desktop-cloud/tsconfig.json -------------------------------------------------------------------------------- /tests/affine-desktop/e2e/basic.spec.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/tests/affine-desktop/e2e/basic.spec.ts -------------------------------------------------------------------------------- /tests/affine-desktop/e2e/image.spec.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/tests/affine-desktop/e2e/image.spec.ts -------------------------------------------------------------------------------- /tests/affine-desktop/e2e/tabs.spec.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/tests/affine-desktop/e2e/tabs.spec.ts -------------------------------------------------------------------------------- /tests/affine-desktop/package.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/tests/affine-desktop/package.json -------------------------------------------------------------------------------- /tests/affine-desktop/playwright.config.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/tests/affine-desktop/playwright.config.ts -------------------------------------------------------------------------------- /tests/affine-desktop/tsconfig.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/tests/affine-desktop/tsconfig.json -------------------------------------------------------------------------------- /tests/affine-local/e2e/ai-land.spec.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/tests/affine-local/e2e/ai-land.spec.ts -------------------------------------------------------------------------------- /tests/affine-local/e2e/all-page.spec.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/tests/affine-local/e2e/all-page.spec.ts -------------------------------------------------------------------------------- /tests/affine-local/e2e/drag-page.spec.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/tests/affine-local/e2e/drag-page.spec.ts -------------------------------------------------------------------------------- /tests/affine-local/e2e/journal.spec.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/tests/affine-local/e2e/journal.spec.ts -------------------------------------------------------------------------------- /tests/affine-local/e2e/layout.spec.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/tests/affine-local/e2e/layout.spec.ts -------------------------------------------------------------------------------- /tests/affine-local/e2e/links.spec.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/tests/affine-local/e2e/links.spec.ts -------------------------------------------------------------------------------- /tests/affine-local/e2e/navigation.spec.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/tests/affine-local/e2e/navigation.spec.ts -------------------------------------------------------------------------------- /tests/affine-local/e2e/peek-view.spec.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/tests/affine-local/e2e/peek-view.spec.ts -------------------------------------------------------------------------------- /tests/affine-local/e2e/router.spec.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/tests/affine-local/e2e/router.spec.ts -------------------------------------------------------------------------------- /tests/affine-local/e2e/settings.spec.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/tests/affine-local/e2e/settings.spec.ts -------------------------------------------------------------------------------- /tests/affine-local/e2e/template.spec.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/tests/affine-local/e2e/template.spec.ts -------------------------------------------------------------------------------- /tests/affine-local/e2e/theme.spec.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/tests/affine-local/e2e/theme.spec.ts -------------------------------------------------------------------------------- /tests/affine-local/e2e/undo-empty.spec.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/tests/affine-local/e2e/undo-empty.spec.ts -------------------------------------------------------------------------------- /tests/affine-local/package.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/tests/affine-local/package.json -------------------------------------------------------------------------------- /tests/affine-local/playwright.config.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/tests/affine-local/playwright.config.ts -------------------------------------------------------------------------------- /tests/affine-local/tsconfig.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/tests/affine-local/tsconfig.json -------------------------------------------------------------------------------- /tests/affine-mobile/e2e/detail.spec.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/tests/affine-mobile/e2e/detail.spec.ts -------------------------------------------------------------------------------- /tests/affine-mobile/e2e/home.spec.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/tests/affine-mobile/e2e/home.spec.ts -------------------------------------------------------------------------------- /tests/affine-mobile/e2e/settings.spec.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/tests/affine-mobile/e2e/settings.spec.ts -------------------------------------------------------------------------------- /tests/affine-mobile/e2e/utils.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/tests/affine-mobile/e2e/utils.ts -------------------------------------------------------------------------------- /tests/affine-mobile/package.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/tests/affine-mobile/package.json -------------------------------------------------------------------------------- /tests/affine-mobile/playwright.config.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/tests/affine-mobile/playwright.config.ts -------------------------------------------------------------------------------- /tests/affine-mobile/tsconfig.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/tests/affine-mobile/tsconfig.json -------------------------------------------------------------------------------- /tests/blocksuite/e2e/attachment.spec.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/tests/blocksuite/e2e/attachment.spec.ts -------------------------------------------------------------------------------- /tests/blocksuite/e2e/bookmark.spec.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/tests/blocksuite/e2e/bookmark.spec.ts -------------------------------------------------------------------------------- /tests/blocksuite/e2e/code/crud.spec.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/tests/blocksuite/e2e/code/crud.spec.ts -------------------------------------------------------------------------------- /tests/blocksuite/e2e/code/utils.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/tests/blocksuite/e2e/code/utils.ts -------------------------------------------------------------------------------- /tests/blocksuite/e2e/database/actions.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/tests/blocksuite/e2e/database/actions.ts -------------------------------------------------------------------------------- /tests/blocksuite/e2e/drag.spec.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/tests/blocksuite/e2e/drag.spec.ts -------------------------------------------------------------------------------- /tests/blocksuite/e2e/edgeless/pan.spec.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/tests/blocksuite/e2e/edgeless/pan.spec.ts -------------------------------------------------------------------------------- /tests/blocksuite/e2e/fixtures/smile.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/tests/blocksuite/e2e/fixtures/smile.png -------------------------------------------------------------------------------- /tests/blocksuite/e2e/format-bar.spec.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/tests/blocksuite/e2e/format-bar.spec.ts -------------------------------------------------------------------------------- /tests/blocksuite/e2e/hotkey/title.spec.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/tests/blocksuite/e2e/hotkey/title.spec.ts -------------------------------------------------------------------------------- /tests/blocksuite/e2e/image/image.spec.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/tests/blocksuite/e2e/image/image.spec.ts -------------------------------------------------------------------------------- /tests/blocksuite/e2e/image/keymap.spec.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/tests/blocksuite/e2e/image/keymap.spec.ts -------------------------------------------------------------------------------- /tests/blocksuite/e2e/image/load.spec.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/tests/blocksuite/e2e/image/load.spec.ts -------------------------------------------------------------------------------- /tests/blocksuite/e2e/image/menu.spec.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/tests/blocksuite/e2e/image/menu.spec.ts -------------------------------------------------------------------------------- /tests/blocksuite/e2e/latex/block.spec.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/tests/blocksuite/e2e/latex/block.spec.ts -------------------------------------------------------------------------------- /tests/blocksuite/e2e/latex/inline.spec.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/tests/blocksuite/e2e/latex/inline.spec.ts -------------------------------------------------------------------------------- /tests/blocksuite/e2e/link.spec.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/tests/blocksuite/e2e/link.spec.ts -------------------------------------------------------------------------------- /tests/blocksuite/e2e/linked-page.spec.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/tests/blocksuite/e2e/linked-page.spec.ts -------------------------------------------------------------------------------- /tests/blocksuite/e2e/list.spec.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/tests/blocksuite/e2e/list.spec.ts -------------------------------------------------------------------------------- /tests/blocksuite/e2e/markdown.spec.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/tests/blocksuite/e2e/markdown.spec.ts -------------------------------------------------------------------------------- /tests/blocksuite/e2e/paragraph.spec.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/tests/blocksuite/e2e/paragraph.spec.ts -------------------------------------------------------------------------------- /tests/blocksuite/e2e/quote.spec.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/tests/blocksuite/e2e/quote.spec.ts -------------------------------------------------------------------------------- /tests/blocksuite/e2e/slash-menu.spec.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/tests/blocksuite/e2e/slash-menu.spec.ts -------------------------------------------------------------------------------- /tests/blocksuite/e2e/utils/asserts.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/tests/blocksuite/e2e/utils/asserts.ts -------------------------------------------------------------------------------- /tests/blocksuite/e2e/utils/ignore.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/tests/blocksuite/e2e/utils/ignore.ts -------------------------------------------------------------------------------- /tests/blocksuite/e2e/utils/mindmap.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/tests/blocksuite/e2e/utils/mindmap.ts -------------------------------------------------------------------------------- /tests/blocksuite/e2e/utils/playwright.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/tests/blocksuite/e2e/utils/playwright.ts -------------------------------------------------------------------------------- /tests/blocksuite/e2e/utils/query.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/tests/blocksuite/e2e/utils/query.ts -------------------------------------------------------------------------------- /tests/blocksuite/e2e/worker.spec.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/tests/blocksuite/e2e/worker.spec.ts -------------------------------------------------------------------------------- /tests/blocksuite/e2e/zero-width.spec.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/tests/blocksuite/e2e/zero-width.spec.ts -------------------------------------------------------------------------------- /tests/blocksuite/package.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/tests/blocksuite/package.json -------------------------------------------------------------------------------- /tests/blocksuite/playwright.config.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/tests/blocksuite/playwright.config.ts -------------------------------------------------------------------------------- /tests/blocksuite/snapshots/clipboard/clipboard.spec.ts/clipboard-copy-nested-items-clipboard.md: -------------------------------------------------------------------------------- 1 | bc 2 | d -------------------------------------------------------------------------------- /tests/blocksuite/snapshots/clipboard/clipboard.spec.ts/clipboard-copy-nested-items-clipboard2.md: -------------------------------------------------------------------------------- 1 | hi 2 | j -------------------------------------------------------------------------------- /tests/blocksuite/tsconfig.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/tests/blocksuite/tsconfig.json -------------------------------------------------------------------------------- /tests/fixtures/affine-preview.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/tests/fixtures/affine-preview.png -------------------------------------------------------------------------------- /tests/fixtures/affine.svg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/tests/fixtures/affine.svg -------------------------------------------------------------------------------- /tests/fixtures/blue.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/tests/fixtures/blue.png -------------------------------------------------------------------------------- /tests/fixtures/large-image.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/tests/fixtures/large-image.png -------------------------------------------------------------------------------- /tests/fixtures/lorem-ipsum.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/tests/fixtures/lorem-ipsum.pdf -------------------------------------------------------------------------------- /tests/kit/package.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/tests/kit/package.json -------------------------------------------------------------------------------- /tests/kit/src/bs/linked-toolbar.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/tests/kit/src/bs/linked-toolbar.ts -------------------------------------------------------------------------------- /tests/kit/src/bs/misc.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/tests/kit/src/bs/misc.ts -------------------------------------------------------------------------------- /tests/kit/src/bs/table.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/tests/kit/src/bs/table.ts -------------------------------------------------------------------------------- /tests/kit/src/electron.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/tests/kit/src/electron.ts -------------------------------------------------------------------------------- /tests/kit/src/mobile.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/tests/kit/src/mobile.ts -------------------------------------------------------------------------------- /tests/kit/src/playwright.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/tests/kit/src/playwright.ts -------------------------------------------------------------------------------- /tests/kit/src/utils/app-tabs.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/tests/kit/src/utils/app-tabs.ts -------------------------------------------------------------------------------- /tests/kit/src/utils/attachment.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/tests/kit/src/utils/attachment.ts -------------------------------------------------------------------------------- /tests/kit/src/utils/clipboard.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/tests/kit/src/utils/clipboard.ts -------------------------------------------------------------------------------- /tests/kit/src/utils/cloud.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/tests/kit/src/utils/cloud.ts -------------------------------------------------------------------------------- /tests/kit/src/utils/drop-file.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/tests/kit/src/utils/drop-file.ts -------------------------------------------------------------------------------- /tests/kit/src/utils/editor.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/tests/kit/src/utils/editor.ts -------------------------------------------------------------------------------- /tests/kit/src/utils/filter.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/tests/kit/src/utils/filter.ts -------------------------------------------------------------------------------- /tests/kit/src/utils/image.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/tests/kit/src/utils/image.ts -------------------------------------------------------------------------------- /tests/kit/src/utils/keyboard.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/tests/kit/src/utils/keyboard.ts -------------------------------------------------------------------------------- /tests/kit/src/utils/load-page.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/tests/kit/src/utils/load-page.ts -------------------------------------------------------------------------------- /tests/kit/src/utils/page-logic.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/tests/kit/src/utils/page-logic.ts -------------------------------------------------------------------------------- /tests/kit/src/utils/properties.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/tests/kit/src/utils/properties.ts -------------------------------------------------------------------------------- /tests/kit/src/utils/selection.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/tests/kit/src/utils/selection.ts -------------------------------------------------------------------------------- /tests/kit/src/utils/setting.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/tests/kit/src/utils/setting.ts -------------------------------------------------------------------------------- /tests/kit/src/utils/sidebar.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/tests/kit/src/utils/sidebar.ts -------------------------------------------------------------------------------- /tests/kit/src/utils/url.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/tests/kit/src/utils/url.ts -------------------------------------------------------------------------------- /tests/kit/src/utils/utils.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/tests/kit/src/utils/utils.ts -------------------------------------------------------------------------------- /tests/kit/src/utils/workspace.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/tests/kit/src/utils/workspace.ts -------------------------------------------------------------------------------- /tests/kit/tsconfig.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/tests/kit/tsconfig.json -------------------------------------------------------------------------------- /tools/@types/build-config/__all.d.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/tools/@types/build-config/__all.d.ts -------------------------------------------------------------------------------- /tools/@types/build-config/package.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/tools/@types/build-config/package.json -------------------------------------------------------------------------------- /tools/@types/env/__all.d.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/tools/@types/env/__all.d.ts -------------------------------------------------------------------------------- /tools/@types/env/package.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/tools/@types/env/package.json -------------------------------------------------------------------------------- /tools/changelog/index.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/tools/changelog/index.js -------------------------------------------------------------------------------- /tools/changelog/markdown.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/tools/changelog/markdown.js -------------------------------------------------------------------------------- /tools/changelog/package.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/tools/changelog/package.json -------------------------------------------------------------------------------- /tools/cli/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/tools/cli/README.md -------------------------------------------------------------------------------- /tools/cli/bin/cli.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/tools/cli/bin/cli.js -------------------------------------------------------------------------------- /tools/cli/bin/runner.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/tools/cli/bin/runner.js -------------------------------------------------------------------------------- /tools/cli/hooks.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/tools/cli/hooks.js -------------------------------------------------------------------------------- /tools/cli/package.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/tools/cli/package.json -------------------------------------------------------------------------------- /tools/cli/register.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/tools/cli/register.js -------------------------------------------------------------------------------- /tools/cli/src/affine.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/tools/cli/src/affine.ts -------------------------------------------------------------------------------- /tools/cli/src/build.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/tools/cli/src/build.ts -------------------------------------------------------------------------------- /tools/cli/src/bundle.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/tools/cli/src/bundle.ts -------------------------------------------------------------------------------- /tools/cli/src/cert.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/tools/cli/src/cert.ts -------------------------------------------------------------------------------- /tools/cli/src/clean.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/tools/cli/src/clean.ts -------------------------------------------------------------------------------- /tools/cli/src/command.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/tools/cli/src/command.ts -------------------------------------------------------------------------------- /tools/cli/src/context.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/tools/cli/src/context.ts -------------------------------------------------------------------------------- /tools/cli/src/dev.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/tools/cli/src/dev.ts -------------------------------------------------------------------------------- /tools/cli/src/init.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/tools/cli/src/init.ts -------------------------------------------------------------------------------- /tools/cli/src/run.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/tools/cli/src/run.ts -------------------------------------------------------------------------------- /tools/cli/src/webpack/cache-group.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/tools/cli/src/webpack/cache-group.ts -------------------------------------------------------------------------------- /tools/cli/src/webpack/error-handler.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/tools/cli/src/webpack/error-handler.js -------------------------------------------------------------------------------- /tools/cli/src/webpack/html-plugin.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/tools/cli/src/webpack/html-plugin.ts -------------------------------------------------------------------------------- /tools/cli/src/webpack/index.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/tools/cli/src/webpack/index.ts -------------------------------------------------------------------------------- /tools/cli/src/webpack/node-loader.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/tools/cli/src/webpack/node-loader.js -------------------------------------------------------------------------------- /tools/cli/src/webpack/s3-plugin.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/tools/cli/src/webpack/s3-plugin.ts -------------------------------------------------------------------------------- /tools/cli/src/webpack/template.html: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/tools/cli/src/webpack/template.html -------------------------------------------------------------------------------- /tools/cli/src/webpack/types.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/tools/cli/src/webpack/types.ts -------------------------------------------------------------------------------- /tools/cli/tsconfig.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/tools/cli/tsconfig.json -------------------------------------------------------------------------------- /tools/commitlint/.commitlintrc.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/tools/commitlint/.commitlintrc.json -------------------------------------------------------------------------------- /tools/commitlint/README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/tools/commitlint/README.md -------------------------------------------------------------------------------- /tools/commitlint/package.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/tools/commitlint/package.json -------------------------------------------------------------------------------- /tools/copilot-result/index.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/tools/copilot-result/index.js -------------------------------------------------------------------------------- /tools/copilot-result/markdown.js: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/tools/copilot-result/markdown.js -------------------------------------------------------------------------------- /tools/copilot-result/package.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/tools/copilot-result/package.json -------------------------------------------------------------------------------- /tools/playstore-auto-bump/index.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/tools/playstore-auto-bump/index.ts -------------------------------------------------------------------------------- /tools/playstore-auto-bump/package.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/tools/playstore-auto-bump/package.json -------------------------------------------------------------------------------- /tools/playstore-auto-bump/tsconfig.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/tools/playstore-auto-bump/tsconfig.json -------------------------------------------------------------------------------- /tools/utils/package.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/tools/utils/package.json -------------------------------------------------------------------------------- /tools/utils/src/build-config.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/tools/utils/src/build-config.ts -------------------------------------------------------------------------------- /tools/utils/src/distribution.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/tools/utils/src/distribution.ts -------------------------------------------------------------------------------- /tools/utils/src/format.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/tools/utils/src/format.ts -------------------------------------------------------------------------------- /tools/utils/src/index.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/tools/utils/src/index.ts -------------------------------------------------------------------------------- /tools/utils/src/logger.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/tools/utils/src/logger.ts -------------------------------------------------------------------------------- /tools/utils/src/package.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/tools/utils/src/package.ts -------------------------------------------------------------------------------- /tools/utils/src/path.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/tools/utils/src/path.ts -------------------------------------------------------------------------------- /tools/utils/src/process.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/tools/utils/src/process.ts -------------------------------------------------------------------------------- /tools/utils/src/types.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/tools/utils/src/types.ts -------------------------------------------------------------------------------- /tools/utils/src/workspace.gen.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/tools/utils/src/workspace.gen.ts -------------------------------------------------------------------------------- /tools/utils/src/workspace.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/tools/utils/src/workspace.ts -------------------------------------------------------------------------------- /tools/utils/src/yarn.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/tools/utils/src/yarn.ts -------------------------------------------------------------------------------- /tools/utils/tsconfig.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/tools/utils/tsconfig.json -------------------------------------------------------------------------------- /tsconfig.eslint.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/tsconfig.eslint.json -------------------------------------------------------------------------------- /tsconfig.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/tsconfig.json -------------------------------------------------------------------------------- /tsconfig.node.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/tsconfig.node.json -------------------------------------------------------------------------------- /tsconfig.web.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/tsconfig.web.json -------------------------------------------------------------------------------- /typedoc.base.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/typedoc.base.json -------------------------------------------------------------------------------- /typedoc.json: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/typedoc.json -------------------------------------------------------------------------------- /vitest.config.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/vitest.config.ts -------------------------------------------------------------------------------- /vitest.workspace.ts: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/vitest.workspace.ts -------------------------------------------------------------------------------- /yarn.lock: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/toeverything/AFFiNE/HEAD/yarn.lock --------------------------------------------------------------------------------