{title}
diff --git a/packages/component/src/components/card/block-card/styles.css.ts b/packages/component/src/components/card/block-card/styles.css.ts
index 710ae3c8e7..27ac781370 100644
--- a/packages/component/src/components/card/block-card/styles.css.ts
+++ b/packages/component/src/components/card/block-card/styles.css.ts
@@ -14,6 +14,13 @@ export const blockCard = style({
'&:hover': {
boxShadow: 'var(--affine-shadow-1)',
},
+ '&[aria-disabled]': {
+ color: 'var(--affine-text-disable-color)',
+ },
+ '&[aria-disabled]:hover': {
+ cursor: 'not-allowed',
+ boxShadow: 'none',
+ },
// TODO active styles
},
});
diff --git a/packages/component/src/components/import-page/index.css.ts b/packages/component/src/components/import-page/index.css.ts
new file mode 100644
index 0000000000..98c0435eb4
--- /dev/null
+++ b/packages/component/src/components/import-page/index.css.ts
@@ -0,0 +1,43 @@
+import { globalStyle, style } from '@vanilla-extract/css';
+
+export const importPageContainerStyle = style({
+ position: 'relative',
+ display: 'flex',
+ width: '480px',
+ flexDirection: 'column',
+ justifyContent: 'center',
+ alignItems: 'center',
+ borderRadius: '16px',
+ boxShadow: 'var(--affine-shadow-1)',
+});
+
+export const importPageBodyStyle = style({
+ display: 'flex',
+ padding: '32px 40px 20px 40px',
+ flexDirection: 'column',
+ gap: '20px',
+ alignSelf: 'stretch',
+});
+
+export const importPageButtonContainerStyle = style({
+ display: 'grid',
+ gridTemplateColumns: '1fr 1fr',
+ padding: '0px 40px 36px',
+ flexDirection: 'column',
+ alignItems: 'center',
+ gap: '20px',
+ alignSelf: 'stretch',
+});
+
+globalStyle(`${importPageBodyStyle} .title`, {
+ fontSize: 'var(--affine-font-h-6)',
+ fontWeight: 600,
+});
+
+globalStyle(`${importPageBodyStyle} a`, {
+ whiteSpace: 'nowrap',
+ wordBreak: 'break-word',
+ color: 'var(--affine-link-color)',
+ textDecoration: 'none',
+ cursor: 'pointer',
+});
diff --git a/packages/component/src/components/import-page/index.tsx b/packages/component/src/components/import-page/index.tsx
new file mode 100644
index 0000000000..e78b6a58fa
--- /dev/null
+++ b/packages/component/src/components/import-page/index.tsx
@@ -0,0 +1,76 @@
+import {
+ ExportToHtmlIcon,
+ ExportToMarkdownIcon,
+ HelpIcon,
+ NewIcon,
+ NotionIcon,
+} from '@blocksuite/icons';
+
+import { ModalCloseButton } from '../../ui/modal';
+import { Tooltip } from '../../ui/tooltip';
+import { BlockCard } from '../card/block-card';
+import {
+ importPageBodyStyle,
+ importPageButtonContainerStyle,
+ importPageContainerStyle,
+} from './index.css';
+
+export const ImportPage = ({
+ importMarkdown,
+ importHtml,
+ importNotion,
+ onClose,
+}: {
+ importMarkdown: () => void;
+ importHtml: () => void;
+ importNotion: () => void;
+ onClose: () => void;
+}) => (
+
+
+
+
Import
+
+ AFFiNE will gradually support more and more file types for import.
+
+ Provide feedback.
+
+
+
+
+ }
+ title="Markdown"
+ onClick={importMarkdown}
+ />
+ }
+ title="HTML"
+ onClick={importHtml}
+ />
+ }
+ title="Notion"
+ right={
+
+
+
+ }
+ onClick={importNotion}
+ />
+ }
+ title="Coming soon..."
+ disabled
+ onClick={importHtml}
+ />
+
+
+);