export const Note_Storage_Key = "note_storage_data"; export const Content_Storage_Key = "inke__content"; export const Content_Guide_Storage_Key = "inke__guide__content"; export const Content_Public_Storage_Key = "inke__public__content"; export const Default_Debounce_Duration = 750; interface Plans { ai_generate_day: number; ai_generate_chars: number; note_upload_count: number; image_upload_size: number; ai_bot_history_length: number; space_user_count: number; pay: number; } export const Account_Plans: Plans[] = [ { // sign for free ai_generate_day: 100, ai_generate_chars: 300, ai_bot_history_length: 10, note_upload_count: 20, image_upload_size: 1, // mb space_user_count: 10, pay: 0, }, { // basic ai_generate_day: 300, ai_generate_chars: 300, ai_bot_history_length: 32, note_upload_count: 10000, image_upload_size: 1, space_user_count: 10, pay: 0, }, { // pro ai_generate_day: 1000, ai_generate_chars: 1000, ai_bot_history_length: 100, note_upload_count: 10000, image_upload_size: 10, space_user_count: 10, pay: 0, }, { ai_generate_day: 10, ai_generate_chars: 10, ai_bot_history_length: 10, note_upload_count: 0, image_upload_size: 1, space_user_count: 10, pay: 0, }, { ai_generate_day: 10, ai_generate_chars: 10, ai_bot_history_length: 10, note_upload_count: 0, image_upload_size: 1, space_user_count: 10, pay: 0, }, { ai_generate_day: 50, ai_generate_chars: 200, ai_bot_history_length: 10, note_upload_count: 0, image_upload_size: 1, space_user_count: 10, pay: 0, }, ]; export const defaultEditorContent = { type: "doc", content: [{ type: "paragraph" }], }; export const defaultEditorGuideContent = { type: "doc", content: [ { type: "heading", attrs: { level: 2 }, content: [ { type: "text", marks: [{ type: "bold" }], text: "๐ŸŽ‰" }, { type: "text", text: " " }, { type: "text", marks: [{ type: "bold" }], text: "Introducing Inke", }, ], }, { type: "paragraph", content: [ { type: "text", marks: [ { type: "link", attrs: { href: "https://github.com/yesmore/inke", target: "_blank", rel: "noopener noreferrer nofollow", class: "novel-text-stone-400 novel-underline novel-underline-offset-[3px] hover:novel-text-stone-600 novel-transition-colors novel-cursor-pointer text-stone-400 underline underline-offset-[3px] hover:text-stone-600 transition-colors cursor-pointer", }, }, ], text: "Inke", }, { type: "text", text: " is a simple-style editor with AI-powered autocompletion. With a clean and minimalist design, Inke offers a wide range of features to enhance your writing process.", }, ], }, { type: "paragraph", content: [{ type: "text", text: "Key Features:" }] }, { type: "orderedList", attrs: { tight: true, start: 1 }, content: [ { type: "listItem", content: [ { type: "paragraph", content: [ { type: "text", text: "๐Ÿ˜— " }, { type: "text", marks: [{ type: "bold" }, { type: "italic" }], text: "WYSIWYG Editing ", }, { type: "text", text: "like markdown: Inke ensures that what you see is exactly what you get. Say goodbye to complicated formatting issues and enjoy a hassle-free editing experience. Inke offers full support for Markdown syntax with markdown shortcuts.", }, ], }, ], }, { type: "listItem", content: [ { type: "paragraph", content: [ { type: "text", text: "๐Ÿ˜„ " }, { type: "text", marks: [{ type: "bold" }, { type: "italic" }], text: "Efficient Shortcut Inputs", }, { type: "text", text: ": Inke understands the importance of speed and efficiency, so it support slash menu & bubble menu.", }, ], }, ], }, { type: "listItem", content: [ { type: "paragraph", content: [ { type: "text", text: "๐Ÿ˜ " }, { type: "text", marks: [{ type: "bold" }, { type: "italic" }], text: "AI-powered Text Autocomplete", }, { type: "text", text: ": Boost your productivity with Inke's AI-powered autocomplete feature. Inke intelligently suggests completions for your text, making writing even faster and more efficient. (type ", }, { type: "text", marks: [{ type: "code" }], text: "??" }, { type: "text", text: " to activate, or select from slash menu)", }, ], }, ], }, { type: "listItem", content: [ { type: "paragraph", content: [ { type: "text", text: "๐Ÿฅฐ " }, { type: "text", marks: [{ type: "bold" }, { type: "italic" }], text: "Local Data Storage", }, { type: "text", text: ": Rest easy knowing that your data is safe and secure. Inke saves all your notes and documents locally, ensuring your sensitive information remains private.", }, ], }, ], }, { type: "listItem", content: [ { type: "paragraph", content: [ { type: "text", text: "๐Ÿฅณ " }, { type: "text", marks: [{ type: "bold" }, { type: "italic" }], text: "Image uploads", }, { type: "text", text: ": drag & drop / copy & paste, or select from slash menu.", }, ], }, ], }, ], }, { type: "paragraph", content: [{ type: "text", text: "Upcoming features๏ผš" }], }, { type: "taskList", content: [ { type: "taskItem", attrs: { checked: true }, content: [ { type: "paragraph", content: [{ type: "text", text: "Cloud storage notes" }], }, ], }, { type: "taskItem", attrs: { checked: true }, content: [ { type: "paragraph", content: [ { type: "text", text: "Export notes as images", }, ], }, ], }, { type: "taskItem", attrs: { checked: true }, content: [ { type: "paragraph", content: [ { type: "text", text: "Export notes to a local file", }, ], }, ], }, ], }, { type: "heading", attrs: { level: 2 }, content: [ { type: "text", text: "๐ŸŽŠ " }, { type: "text", marks: [{ type: "bold" }], text: "Try Inke here" }, ], }, { type: "paragraph", content: [ { type: "text", text: "Now start a new line and type " }, { type: "text", marks: [{ type: "code" }], text: "/" }, { type: "text", text: ", then you will see a " }, { type: "text", marks: [ { type: "underline" }, { type: "textStyle", attrs: { color: "#2563EB" } }, ], text: "menu", }, { type: "text", text: " pop up, press the " }, { type: "text", marks: [{ type: "code" }], text: "โ†‘" }, { type: "text", text: " or " }, { type: "text", marks: [{ type: "code" }], text: "โ†“" }, { type: "text", text: " to move the cursor and press " }, { type: "text", marks: [{ type: "code" }], text: "Enter" }, { type: "text", text: " to select it." }, ], }, { type: "paragraph", content: [ { type: "text", marks: [{ type: "underline" }], text: "Markdown shortcuts", }, { type: "text", text: " make it easy to format the text while typing.", }, ], }, { type: "paragraph", content: [ { type: "text", text: "To test that, start a new line and type " }, { type: "text", marks: [{ type: "code" }], text: "#" }, { type: "text", text: " followed by a space to get a heading. Try " }, { type: "text", marks: [{ type: "code" }], text: "#" }, { type: "text", text: ", " }, { type: "text", marks: [{ type: "code" }], text: "##" }, { type: "text", text: ", " }, { type: "text", marks: [{ type: "code" }], text: "###" }, { type: "text", text: ", " }, { type: "text", marks: [{ type: "code" }], text: "####" }, { type: "text", text: ", " }, { type: "text", marks: [{ type: "code" }], text: "#####" }, { type: "text", text: ", " }, { type: "text", marks: [{ type: "code" }], text: "######" }, { type: "text", text: " for different levels." }, ], }, { type: "paragraph", content: [ { type: "text", text: "Try " }, { type: "text", marks: [{ type: "code" }], text: ">" }, { type: "text", text: " for blockquotes, " }, { type: "text", marks: [{ type: "code" }], text: "*" }, { type: "text", text: ", " }, { type: "text", marks: [{ type: "code" }], text: "-" }, { type: "text", text: " or " }, { type: "text", marks: [{ type: "code" }], text: "+" }, { type: "text", text: " for bullet lists, or " }, { type: "text", marks: [{ type: "code" }], text: "`foobar`" }, { type: "text", text: " to highlight code, " }, { type: "text", marks: [{ type: "code" }], text: "~~tildes~~" }, { type: "text", text: " to strike text, or " }, { type: "text", marks: [{ type: "code" }], text: "==equal signs==" }, { type: "text", text: " to highlight text." }, ], }, { type: "paragraph", content: [ { type: "text", text: "You can overwrite existing input rules or add your own to nodes, marks and extensions.", }, ], }, { type: "paragraph", content: [ { type: "text", text: "For example, we added the " }, { type: "text", marks: [{ type: "code" }], text: "Typography" }, { type: "text", text: " extension here. Try typing " }, { type: "text", marks: [{ type: "code" }], text: "(c)" }, { type: "text", text: " to see how itโ€™s converted to a proper ยฉ character. You can also try ", }, { type: "text", marks: [{ type: "code" }], text: "->" }, { type: "text", text: ", " }, { type: "text", marks: [{ type: "code" }], text: ">>" }, { type: "text", text: ", " }, { type: "text", marks: [{ type: "code" }], text: "1/2" }, { type: "text", text: ", " }, { type: "text", marks: [{ type: "code" }], text: "!=" }, { type: "text", text: ", or " }, { type: "text", marks: [{ type: "code" }], text: "--" }, { type: "text", text: "." }, ], }, ], };