reactjs-tiptap-editor 0.0.1 → 0.0.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (169) hide show
  1. package/lib/components/ActionButton.d.ts +20 -0
  2. package/lib/components/ActionMenuButton.d.ts +14 -0
  3. package/lib/components/ColorPicker.d.ts +12 -0
  4. package/lib/components/RcTiptapEditor.d.ts +26 -0
  5. package/lib/components/Toolbar.d.ts +2 -0
  6. package/lib/components/icons/AspectRatio.d.ts +3 -0
  7. package/lib/components/icons/Blockquote.d.ts +1 -0
  8. package/lib/components/icons/FileWordOutline.d.ts +3 -0
  9. package/lib/components/icons/Icon.d.ts +7 -0
  10. package/lib/components/icons/LineHeight.d.ts +3 -0
  11. package/lib/components/icons/MenuDown.d.ts +3 -0
  12. package/lib/components/icons/SizeL.d.ts +3 -0
  13. package/lib/components/icons/SizeM.d.ts +3 -0
  14. package/lib/components/icons/SizeS.d.ts +3 -0
  15. package/lib/components/icons/icons.d.ts +2 -0
  16. package/lib/components/menus/bubble.d.ts +56 -0
  17. package/lib/components/menus/components/BubbleMenuLink.d.ts +2 -0
  18. package/lib/components/menus/components/BubbleMenuMedia.d.ts +9 -0
  19. package/lib/components/menus/components/BubbleMenuText.d.ts +8 -0
  20. package/lib/components/menus/components/ContentMenu.d.ts +2 -0
  21. package/lib/components/ui/button.d.ts +11 -0
  22. package/lib/components/ui/dropdown-menu.d.ts +27 -0
  23. package/lib/components/ui/input.d.ts +5 -0
  24. package/lib/components/ui/label.d.ts +5 -0
  25. package/lib/components/ui/popover.d.ts +6 -0
  26. package/lib/components/ui/separator.d.ts +4 -0
  27. package/lib/components/ui/switch.d.ts +4 -0
  28. package/lib/components/ui/tabs.d.ts +7 -0
  29. package/lib/components/ui/toast.d.ts +15 -0
  30. package/lib/components/ui/toaster.d.ts +1 -0
  31. package/lib/components/ui/toggle.d.ts +12 -0
  32. package/lib/components/ui/tooltip.d.ts +7 -0
  33. package/lib/components/ui/use-toast.d.ts +44 -0
  34. package/lib/constants/index.d.ts +44 -0
  35. package/lib/extensions/BaseKit.d.ts +111 -0
  36. package/lib/extensions/Blockquote/Blockquote.d.ts +6 -0
  37. package/lib/extensions/Blockquote/index.d.ts +1 -0
  38. package/lib/extensions/Bold/Bold.d.ts +6 -0
  39. package/lib/extensions/Bold/index.d.ts +1 -0
  40. package/lib/extensions/BulletList/BulletList.d.ts +6 -0
  41. package/lib/extensions/BulletList/index.d.ts +1 -0
  42. package/lib/extensions/Clear/Clear.d.ts +6 -0
  43. package/lib/extensions/Clear/index.d.ts +1 -0
  44. package/lib/extensions/Code/Code.d.ts +6 -0
  45. package/lib/extensions/Code/index.d.ts +1 -0
  46. package/lib/extensions/CodeBlock/CodeBlock.d.ts +6 -0
  47. package/lib/extensions/CodeBlock/index.d.ts +1 -0
  48. package/lib/extensions/Color/Color.d.ts +6 -0
  49. package/lib/extensions/Color/components/ColorActionButton.d.ts +13 -0
  50. package/lib/extensions/Color/index.d.ts +1 -0
  51. package/lib/extensions/Document/Document.d.ts +2 -0
  52. package/lib/extensions/Document/index.d.ts +1 -0
  53. package/lib/extensions/FontFamily/FontFamily.d.ts +3 -0
  54. package/lib/extensions/FontFamily/components/FontFamilyButton.d.ts +26 -0
  55. package/lib/extensions/FontFamily/index.d.ts +1 -0
  56. package/lib/extensions/FontSize/FontSize.d.ts +32 -0
  57. package/lib/extensions/FontSize/components/FontSizeMenuButton.d.ts +23 -0
  58. package/lib/extensions/FontSize/index.d.ts +1 -0
  59. package/lib/extensions/FormatPainter/FormatPainter.d.ts +24 -0
  60. package/lib/extensions/FormatPainter/index.d.ts +1 -0
  61. package/lib/extensions/Heading/Heading.d.ts +6 -0
  62. package/lib/extensions/Heading/components/HeadingButton.d.ts +26 -0
  63. package/lib/extensions/Heading/index.d.ts +1 -0
  64. package/lib/extensions/Highlight/Highlight.d.ts +6 -0
  65. package/lib/extensions/Highlight/components/HighlightActionButton.d.ts +14 -0
  66. package/lib/extensions/Highlight/index.d.ts +1 -0
  67. package/lib/extensions/History/History.d.ts +6 -0
  68. package/lib/extensions/History/components/HistoryActionButton.d.ts +20 -0
  69. package/lib/extensions/History/index.d.ts +1 -0
  70. package/lib/extensions/HorizontalRule/HorizontalRule.d.ts +6 -0
  71. package/lib/extensions/HorizontalRule/index.d.ts +1 -0
  72. package/lib/extensions/Iframe/Iframe.d.ts +23 -0
  73. package/lib/extensions/Iframe/components/IframeNodeView.d.ts +2 -0
  74. package/lib/extensions/Iframe/embed.d.ts +23 -0
  75. package/lib/extensions/Iframe/index.d.ts +1 -0
  76. package/lib/extensions/Image/Image.d.ts +25 -0
  77. package/lib/extensions/Image/components/ImageView.d.ts +2 -0
  78. package/lib/extensions/Image/index.d.ts +1 -0
  79. package/lib/extensions/ImageUpload/ImageUpload.d.ts +16 -0
  80. package/lib/extensions/ImageUpload/components/ImageUploader.d.ts +2 -0
  81. package/lib/extensions/ImageUpload/index.d.ts +1 -0
  82. package/lib/extensions/Indent/Indent.d.ts +23 -0
  83. package/lib/extensions/Indent/index.d.ts +1 -0
  84. package/lib/extensions/Italic/Italic.d.ts +6 -0
  85. package/lib/extensions/Italic/index.d.ts +1 -0
  86. package/lib/extensions/LineHeight/LineHeight.d.ts +17 -0
  87. package/lib/extensions/LineHeight/components/LineHeightDropdown.d.ts +12 -0
  88. package/lib/extensions/LineHeight/index.d.ts +1 -0
  89. package/lib/extensions/Link/Link.d.ts +6 -0
  90. package/lib/extensions/Link/components/LinkEditBlock.d.ts +6 -0
  91. package/lib/extensions/Link/components/LinkEditPopover.d.ts +14 -0
  92. package/lib/extensions/Link/components/LinkViewBlock.d.ts +8 -0
  93. package/lib/extensions/Link/index.d.ts +1 -0
  94. package/lib/extensions/ListItem/ListItem.d.ts +1 -0
  95. package/lib/extensions/ListItem/index.d.ts +1 -0
  96. package/lib/extensions/MoreMark/MoreMark.d.ts +20 -0
  97. package/lib/extensions/MoreMark/components/ActionMoreButton.d.ts +25 -0
  98. package/lib/extensions/MoreMark/index.d.ts +1 -0
  99. package/lib/extensions/MultiColumn/Column.d.ts +4 -0
  100. package/lib/extensions/MultiColumn/ColumnToolbar.d.ts +3 -0
  101. package/lib/extensions/MultiColumn/Columns.d.ts +22 -0
  102. package/lib/extensions/MultiColumn/index.d.ts +3 -0
  103. package/lib/extensions/MultiColumn/menus/ColumnsMenu.d.ts +6 -0
  104. package/lib/extensions/MultiColumn/menus/index.d.ts +1 -0
  105. package/lib/extensions/OrderedList/OrderedList.d.ts +6 -0
  106. package/lib/extensions/OrderedList/index.d.ts +1 -0
  107. package/lib/extensions/Selection/Selection.d.ts +4 -0
  108. package/lib/extensions/Selection/index.d.ts +1 -0
  109. package/lib/extensions/SlashCommand/SlashCommand.d.ts +4 -0
  110. package/lib/extensions/SlashCommand/components/CommandsList.d.ts +4 -0
  111. package/lib/extensions/SlashCommand/groups.d.ts +3 -0
  112. package/lib/extensions/SlashCommand/index.d.ts +1 -0
  113. package/lib/extensions/SlashCommand/types.d.ts +25 -0
  114. package/lib/extensions/Strike/Strike.d.ts +6 -0
  115. package/lib/extensions/Strike/index.d.ts +1 -0
  116. package/lib/extensions/Subscript/Subscript.d.ts +23 -0
  117. package/lib/extensions/Subscript/index.d.ts +1 -0
  118. package/lib/extensions/Table/cell-background.d.ts +19 -0
  119. package/lib/extensions/Table/cell.d.ts +6 -0
  120. package/lib/extensions/Table/components/CreateTablePopover.d.ts +14 -0
  121. package/lib/extensions/Table/components/TableActionButton.d.ts +13 -0
  122. package/lib/extensions/Table/header.d.ts +5 -0
  123. package/lib/extensions/Table/index.d.ts +6 -0
  124. package/lib/extensions/Table/menus/TableBubbleMenu.d.ts +5 -0
  125. package/lib/extensions/Table/menus/TableCell/TableCellMenu.d.ts +21 -0
  126. package/lib/extensions/Table/menus/TableColumn/TableColumnMenu.d.ts +20 -0
  127. package/lib/extensions/Table/menus/TableRow/TableRowMenu.d.ts +20 -0
  128. package/lib/extensions/Table/row.d.ts +2 -0
  129. package/lib/extensions/Table/table.d.ts +24 -0
  130. package/lib/extensions/Table/utils.d.ts +67 -0
  131. package/lib/extensions/TaskList/TaskList.d.ts +12 -0
  132. package/lib/extensions/TaskList/index.d.ts +1 -0
  133. package/lib/extensions/TextAlign/TextAlign.d.ts +18 -0
  134. package/lib/extensions/TextAlign/components/TextAlignMenuButton.d.ts +27 -0
  135. package/lib/extensions/TextAlign/index.d.ts +1 -0
  136. package/lib/extensions/TextBubble/TextBubble.d.ts +7 -0
  137. package/lib/extensions/TextBubble/components/TextDropdown.d.ts +10 -0
  138. package/lib/extensions/TextBubble/index.d.ts +1 -0
  139. package/lib/extensions/TrailingNode/TrailingNode.d.ts +12 -0
  140. package/lib/extensions/TrailingNode/index.d.ts +1 -0
  141. package/lib/extensions/UnderLine/Underline.d.ts +6 -0
  142. package/lib/extensions/UnderLine/index.d.ts +1 -0
  143. package/lib/extensions/Video/Video.d.ts +55 -0
  144. package/lib/extensions/Video/index.d.ts +1 -0
  145. package/lib/extensions/VideoUpload/VideoUpload.d.ts +14 -0
  146. package/lib/extensions/VideoUpload/components/VideoUploaderView.d.ts +2 -0
  147. package/lib/extensions/VideoUpload/index.d.ts +1 -0
  148. package/lib/extensions/index.d.ts +64 -0
  149. package/lib/index.d.ts +4 -0
  150. package/lib/lib/utils.d.ts +3 -0
  151. package/lib/locales/en.d.ts +2 -0
  152. package/lib/locales/index.d.ts +33 -0
  153. package/lib/locales/vi.d.ts +2 -0
  154. package/lib/plugins/image-upload.d.ts +12 -0
  155. package/lib/reactjs-tiptap-editor.js +1 -0
  156. package/lib/reactjs-tiptap-editor.mjs +5704 -0
  157. package/lib/style.css +1 -0
  158. package/lib/theme/theme.d.ts +4 -0
  159. package/lib/types.d.ts +80 -0
  160. package/lib/utils/getRenderContainer.d.ts +4 -0
  161. package/lib/utils/indent.d.ts +15 -0
  162. package/lib/utils/is-mobile.d.ts +19 -0
  163. package/lib/utils/line-height.d.ts +7 -0
  164. package/lib/utils/mitt.d.ts +24 -0
  165. package/lib/utils/plateform.d.ts +11 -0
  166. package/lib/utils/utils.d.ts +17 -0
  167. package/lib/vendor-D85xV5eE.js +518 -0
  168. package/lib/vendor-IlByxugU.mjs +34816 -0
  169. package/package.json +2 -1
package/lib/style.css ADDED
@@ -0,0 +1 @@
1
+ .reactjs-tiptap-editor .ProseMirror{z-index:0;padding:4rem 2rem 4rem 5rem;caret-color:#000;outline-width:0px}.reactjs-tiptap-editor .ProseMirror:is(.dark *){caret-color:#fff}@media (min-width: 1024px){.reactjs-tiptap-editor .ProseMirror{padding-left:2rem;padding-right:2rem}}.reactjs-tiptap-editor .ProseMirror{min-height:180px;padding:32px 80px}.reactjs-tiptap-editor .ProseMirror .img-placeholder{width:fit-content;position:relative;background-color:#ffffff4d;--tw-backdrop-blur: blur(4px);-webkit-backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia);backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)}.reactjs-tiptap-editor .ProseMirror .img-placeholder:before{content:"";box-sizing:border-box;position:absolute;top:50%;left:50%;width:24px;height:24px;margin:-12px 0 0 -12px;display:inline-block}.reactjs-tiptap-editor .ProseMirror .img-placeholder:before{animation:spin 1s linear infinite;border-radius:9999px;border-width:3px;border-color:currentColor;border-top-color:transparent}.reactjs-tiptap-editor .ProseMirror .tableWrapper{margin-top:1.5rem;margin-bottom:1.5rem}.reactjs-tiptap-editor .ProseMirror .tableWrapper table .column-resize-handle{position:absolute;right:-3px;top:-1px;bottom:-2px;width:5px;z-index:1;pointer-events:none;transition:background-color .16s ease-in-out;background-color:#0000004d}.reactjs-tiptap-editor .ProseMirror .tableWrapper table .column-resize-handle:is(.dark *){background-color:#ffffff4d}.reactjs-tiptap-editor .ProseMirror .tableWrapper table .selectedCell{border-style:double;border-color:#0003;background-color:#0000000d}.reactjs-tiptap-editor .ProseMirror .tableWrapper table .selectedCell:is(.dark *){border-color:#fff3;background-color:#ffffff1a}.reactjs-tiptap-editor .ProseMirror .tableWrapper table .grip-column,.reactjs-tiptap-editor .ProseMirror .tableWrapper table .grip-row{position:absolute;z-index:10;display:flex;cursor:pointer;align-items:center;justify-content:center;background-color:#0000000d}.reactjs-tiptap-editor .ProseMirror .tableWrapper table .grip-column:is(.dark *),.reactjs-tiptap-editor .ProseMirror .tableWrapper table .grip-row:is(.dark *){background-color:#ffffff1a}.reactjs-tiptap-editor .ProseMirror .tableWrapper table .grip-column{left:0;top:-.75rem;margin-left:-1px;height:.75rem;width:calc(100% + 1px);border-left-width:1px;border-color:#0003}.reactjs-tiptap-editor .ProseMirror .tableWrapper table .grip-column:is(.dark *){border-color:#fff3}.reactjs-tiptap-editor .ProseMirror .tableWrapper table .grip-column:hover:before,.reactjs-tiptap-editor .ProseMirror .tableWrapper table .grip-column.selected:before{content:"";width:.625rem}.reactjs-tiptap-editor .ProseMirror .tableWrapper table .grip-column:hover{background-color:#0000001a}.reactjs-tiptap-editor .ProseMirror .tableWrapper table .grip-column:hover:is(.dark *){background-color:#fff3}.reactjs-tiptap-editor .ProseMirror .tableWrapper table .grip-column:hover:before{border-bottom-width:2px;border-style:dotted;border-color:#0009}.reactjs-tiptap-editor .ProseMirror .tableWrapper table .grip-column:hover:is(.dark *):before{border-color:#fff9}.reactjs-tiptap-editor .ProseMirror .tableWrapper table .grip-column.first{border-top-left-radius:calc(var(--radius) - 4px);border-color:transparent}.reactjs-tiptap-editor .ProseMirror .tableWrapper table .grip-column.last{border-top-right-radius:calc(var(--radius) - 4px)}.reactjs-tiptap-editor .ProseMirror .tableWrapper table .grip-column.selected{border-color:#0000004d;background-color:#0000004d;--tw-shadow: 0 1px 2px 0 rgb(0 0 0 / .05);--tw-shadow-colored: 0 1px 2px 0 var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.reactjs-tiptap-editor .ProseMirror .tableWrapper table .grip-column.selected:is(.dark *){border-color:#ffffff4d;background-color:#ffffff4d}.reactjs-tiptap-editor .ProseMirror .tableWrapper table .grip-column.selected:before{border-bottom-width:2px;border-style:dotted}.reactjs-tiptap-editor .ProseMirror .tableWrapper table .grip-row{left:-.75rem;top:0;margin-top:-1px;height:calc(100% + 1px);width:.75rem;border-top-width:1px;border-color:#0003}.reactjs-tiptap-editor .ProseMirror .tableWrapper table .grip-row:is(.dark *){border-color:#fff3}.reactjs-tiptap-editor .ProseMirror .tableWrapper table .grip-row:hover:before,.reactjs-tiptap-editor .ProseMirror .tableWrapper table .grip-row.selected:before{height:.625rem;content:""}.reactjs-tiptap-editor .ProseMirror .tableWrapper table .grip-row:hover{background-color:#0000001a}.reactjs-tiptap-editor .ProseMirror .tableWrapper table .grip-row:hover:is(.dark *){background-color:#fff3}.reactjs-tiptap-editor .ProseMirror .tableWrapper table .grip-row:hover:before{border-left-width:2px;border-style:dotted;border-color:#0009}.reactjs-tiptap-editor .ProseMirror .tableWrapper table .grip-row:hover:is(.dark *):before{border-color:#fff9}.reactjs-tiptap-editor .ProseMirror .tableWrapper table .grip-row.first{border-top-left-radius:calc(var(--radius) - 4px);border-color:transparent}.reactjs-tiptap-editor .ProseMirror .tableWrapper table .grip-row.last{border-bottom-left-radius:calc(var(--radius) - 4px)}.reactjs-tiptap-editor .ProseMirror .tableWrapper table .grip-row.selected{border-color:#0000004d;background-color:#0000004d;--tw-shadow: 0 1px 2px 0 rgb(0 0 0 / .05);--tw-shadow-colored: 0 1px 2px 0 var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.reactjs-tiptap-editor .ProseMirror .tableWrapper table .grip-row.selected:is(.dark *){border-color:#ffffff4d;background-color:#ffffff4d}.reactjs-tiptap-editor .ProseMirror .tableWrapper table .grip-row.selected:before{border-left-width:2px;border-style:dotted}.reactjs-tiptap-editor .ProseMirror>*:first-child:first-child,.reactjs-tiptap-editor .ProseMirror [data-type=column]>*:first-child{margin-top:0}.reactjs-tiptap-editor .ProseMirror>*:first-child:last-child,.reactjs-tiptap-editor .ProseMirror [data-type=column]>*:last-child{margin-bottom:0}.reactjs-tiptap-editor .ProseMirror [data-type=columns].focus [data-type=column],.reactjs-tiptap-editor .ProseMirror [data-type=columns]:hover [data-type=column],.reactjs-tiptap-editor .ProseMirror [data-type=columns] [data-type=column].focus{background-color:hsl(var(--accent))}.reactjs-tiptap-editor .ProseMirror [data-type=column]{border-radius:.25rem;border-width:1px;border-style:solid;border-color:transparent;padding:.25rem;transition:border .16s cubic-bezier(.45,.05,.55,.95)}.reactjs-tiptap-editor .ProseMirror [data-type=column]:hover{--tw-border-opacity: 1;border-color:rgb(249 250 251 / var(--tw-border-opacity))}.reactjs-tiptap-editor .ProseMirror [data-type=column]:hover:is(.dark *){--tw-border-opacity: 1;border-color:rgb(17 24 39 / var(--tw-border-opacity))}.reactjs-tiptap-editor .ProseMirror [data-type=column]:has(.is-active),.reactjs-tiptap-editor .ProseMirror [data-type=column].focus{--tw-border-opacity: 1;border-color:rgb(245 245 245 / var(--tw-border-opacity))}.reactjs-tiptap-editor .ProseMirror [data-type=column]:has(.is-active):is(.dark *),.reactjs-tiptap-editor .ProseMirror [data-type=column].focus:is(.dark *){--tw-border-opacity: 1;border-color:rgb(23 23 23 / var(--tw-border-opacity))}.reactjs-tiptap-editor .ProseMirror [data-type=horizontalRule]{cursor:pointer;transition-property:all;transition-duration:.1s;transition-timing-function:cubic-bezier(.4,0,.2,1);animation-duration:.1s;animation-timing-function:cubic-bezier(.4,0,.2,1)}.reactjs-tiptap-editor .ProseMirror [data-type=horizontalRule].ProseMirror-selectednode{background-color:#0000000d}.reactjs-tiptap-editor .ProseMirror [data-type=horizontalRule].ProseMirror-selectednode:is(.dark *){background-color:#ffffff1a}.reactjs-tiptap-editor .ProseMirror [data-type=horizontalRule].ProseMirror-selectednode hr{border-top-color:#0000004d}.reactjs-tiptap-editor .ProseMirror [data-type=horizontalRule].ProseMirror-selectednode hr:is(.dark *){border-top-color:#ffffff4d}.reactjs-tiptap-editor .ProseMirror [data-type=horizontalRule]:hover:not(.reactjs-tiptap-editor .ProseMirror [data-type=horizontalRule].ProseMirror-selectednode){background-color:#0000000d}.reactjs-tiptap-editor .ProseMirror [data-type=horizontalRule]:hover:not(.reactjs-tiptap-editor .ProseMirror [data-type=horizontalRule].ProseMirror-selectednode):is(.dark *){background-color:#ffffff1a}.reactjs-tiptap-editor .ProseMirror .selection:not(.image-view),.reactjs-tiptap-editor .ProseMirror *:not(.image-view)::selection{background-color:#0000001a}.reactjs-tiptap-editor .ProseMirror .selection:not(.image-view):is(.dark *),.reactjs-tiptap-editor .ProseMirror *:not(.image-view):is(.dark *)::selection{background-color:#fff3}.reactjs-tiptap-editor .ProseMirror .is-empty:before{content:attr(data-placeholder);float:left;color:#adb5bd;pointer-events:none;width:100%;height:0}.reactjs-tiptap-editor .ProseMirror .is-editor-empty:first-child:before{content:attr(data-placeholder);float:left;color:#adb5bd;pointer-events:none;width:100%;height:0}.reactjs-tiptap-editor .ProseMirror p.is-editor-empty:first-child:before{float:left;height:0;color:#adb5bd;pointer-events:none;width:100%;content:attr(data-placeholder)}.reactjs-tiptap-editor .ProseMirror .ProseMirror-gapcursor{position:relative;margin-left:auto;margin-right:auto;width:100%;max-width:42rem}.reactjs-tiptap-editor .ProseMirror .ProseMirror-gapcursor:after{top:-1.5em;left:0;right:0;margin-left:auto;margin-right:auto;width:100%;max-width:42rem;border-top-color:#0006}.reactjs-tiptap-editor .ProseMirror .ProseMirror-gapcursor:is(.dark *):after{border-top-color:#fff6}.reactjs-tiptap-editor .ProseMirror .iframe-wrapper.focus>div{outline-style:solid;outline-width:4px;outline-color:hsl(var(--primary))}.reactjs-tiptap-editor .ProseMirror .image-view{display:inline-block;float:none;max-width:100%;line-height:0;vertical-align:baseline;-webkit-user-select:none;user-select:none}.reactjs-tiptap-editor .ProseMirror .image-view__body{position:relative;display:inline-block;max-width:100%;clear:both;outline:transparent solid 2px;transition:all .2s ease-in}.reactjs-tiptap-editor .ProseMirror .image-view__body__button-wrap{display:none;justify-content:center;align-items:center;position:absolute;top:9px;right:9px;background:#26262699;border-radius:8px;z-index:4}.reactjs-tiptap-editor .ProseMirror .image-view__body:hover{outline-color:#ffc83d}.reactjs-tiptap-editor .ProseMirror .image-view__body:hover .image-view__body__button-wrap{display:block}.reactjs-tiptap-editor .ProseMirror .image-view__body--focused:hover,.reactjs-tiptap-editor .ProseMirror .image-view__body--resizing:hover{outline-color:transparent}.reactjs-tiptap-editor .ProseMirror .image-view__body__placeholder{position:absolute;top:0;left:0;z-index:-1;width:100%;height:100%}.reactjs-tiptap-editor .ProseMirror .image-view__body__image{margin:0;cursor:pointer!important}.reactjs-tiptap-editor .ProseMirror .image-view.focus img{outline-style:solid;outline-width:2px;outline-color:hsl(var(--primary))}.reactjs-tiptap-editor .ProseMirror .image-resizer{position:absolute;top:0;left:0;z-index:1;width:100%;height:100%;border-width:1px;border-color:hsl(var(--border));border-style:dashed}.reactjs-tiptap-editor .ProseMirror .image-resizer__handler{position:absolute;z-index:2;box-sizing:border-box;display:block;width:12px;height:12px;border:1px solid #fff;border-radius:2px;--tw-bg-opacity: 1;background-color:rgb(59 130 246 / var(--tw-bg-opacity))}.reactjs-tiptap-editor .ProseMirror .image-resizer__handler--tl{top:-6px;left:-6px;cursor:nw-resize}.reactjs-tiptap-editor .ProseMirror .image-resizer__handler--tr{top:-6px;right:-6px;cursor:ne-resize}.reactjs-tiptap-editor .ProseMirror .image-resizer__handler--bl{bottom:-6px;left:-6px;cursor:sw-resize}.reactjs-tiptap-editor .ProseMirror .image-resizer__handler--br{right:-6px;bottom:-6px;cursor:se-resize}.reactjs-tiptap-editor.dense .ProseMirror{min-height:32px;padding:6px 12px}.reactjs-tiptap-editor.dense p{padding:0;line-height:1.2rem}.reactjs-tiptap-editor .ProseMirror[contenteditable=true].resize-cursor{cursor:col-resize}.ai-modal-main-container{width:100%;min-height:24px;border-radius:4px;border:1px solid transparent;box-sizing:border-box;overflow:hidden;background:linear-gradient(0deg,#fff,#fff) content-box,linear-gradient(81.99deg,#e215ed,#0e80b9 73.05%,#d192ff) border-box;box-shadow:0 5px 12px 4px #00000014}.ai_modal_input_area{flex-grow:1;line-height:20px;font-size:14px;white-space:pre-wrap;word-break:break-word;padding:2px 8px;caret-color:#1e6fff;max-height:200px;box-sizing:border-box;overflow-y:auto;outline:none}.ai_modal_input_area:empty:before{content:attr(placeholder);color:#0000003d;pointer-events:none}[data-dui-1-3-5~=dui-tooltip-wrapper]{display:inline-block;position:relative}.ai_modal_input_submit_button_active{cursor:pointer;background-image:url("data:image/svg+xml,%3Csvg width%3D%2224%22 height%3D%2224%22 viewBox%3D%220 0 24 24%22 fill%3D%22none%22 xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Ccircle cx%3D%2212%22 cy%3D%2212%22 r%3D%229%22 fill%3D%22url(%23paint0_linear_5_2540)%22%2F%3E%3Cpath d%3D%22M11.8535 8.11091L16.0962 12.3536L11.8535 16.5962%22 stroke%3D%22white%22 stroke-width%3D%221.25%22%2F%3E%3Cline x1%3D%2215.3891%22 y1%3D%2212.2714%22 x2%3D%226.90382%22 y2%3D%2212.2714%22 stroke%3D%22white%22 stroke-width%3D%221.25%22%2F%3E%3Cdefs%3E%3ClinearGradient id%3D%22paint0_linear_5_2540%22 x1%3D%2221%22 y1%3D%223%22 x2%3D%223%22 y2%3D%2221%22 gradientUnits%3D%22userSpaceOnUse%22%3E%3Cstop stop-color%3D%22%23DB94FF%22%2F%3E%3Cstop offset%3D%220.456607%22 stop-color%3D%22%235179FF%22%2F%3E%3Cstop offset%3D%221%22 stop-color%3D%22%235AB0FF%22%2F%3E%3C%2FlinearGradient%3E%3C%2Fdefs%3E%3C%2Fsvg%3E")}.ai_modal_input_submit_button_active:hover{background-image:url("data:image/svg+xml,%3Csvg width%3D%2224%22 height%3D%2224%22 viewBox%3D%220 0 24 24%22 fill%3D%22none%22 xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Ccircle cx%3D%2212%22 cy%3D%2212%22 r%3D%229%22 fill%3D%22url(%23paint0_linear_1387_127239)%22%2F%3E%3Cpath d%3D%22M11.8536 8.11091L16.0962 12.3536L11.8536 16.5962%22 stroke%3D%22white%22 stroke-width%3D%221.25%22%2F%3E%3Cline x1%3D%2215.3891%22 y1%3D%2212.2714%22 x2%3D%226.90382%22 y2%3D%2212.2714%22 stroke%3D%22white%22 stroke-width%3D%221.25%22%2F%3E%3Cdefs%3E%3ClinearGradient id%3D%22paint0_linear_1387_127239%22 x1%3D%2221%22 y1%3D%223%22 x2%3D%223%22 y2%3D%2221%22 gradientUnits%3D%22userSpaceOnUse%22%3E%3Cstop stop-color%3D%22%23C182E0%22%2F%3E%3Cstop offset%3D%220.456607%22 stop-color%3D%22%23476BE0%22%2F%3E%3Cstop offset%3D%221%22 stop-color%3D%22%234F9BE0%22%2F%3E%3C%2FlinearGradient%3E%3C%2Fdefs%3E%3C%2Fsvg%3E")}.ai_modal_input_submit_button{width:24px;height:24px;background-repeat:no-repeat}.ai_modal_popup_menu{position:absolute;top:100%;margin-top:8px;border-radius:4px;width:232px;background:var(--bg-lv4-default);box-shadow:0 0 0 1px #0000000a,0 4px 6px 2px #0000000a,0 6px 32px 2px #00000029}.ai_modal_writing_tips_button_wrapper{display:flex;flex-direction:row}.ai_modal_message_board{position:relative;overflow-y:auto;max-height:300px;font-size:14px;font-variant-numeric:tabular-nums;-webkit-font-smoothing:antialiased;-webkit-text-size-adjust:none;-moz-text-size-adjust:none;text-size-adjust:none;text-rendering:auto}.ai_modal_edit_board_footer{padding:16px 0 8px}.ai_model_edit_board_buttons{display:flex;flex-direction:row;justify-content:space-between;height:30px;width:100%}.ai_model_edit_board_left_buttons{display:flex;flex-direction:row}.ai_model_edit_board_right_button{display:flex;flex-direction:column;justify-content:center}.ai_modal_edit_board_header{display:flex;justify-content:space-between;flex-direction:row;padding:4px 0;font-size:12px;line-height:24px;height:24px;color:#999;box-sizing:content-box}.heading-0{font-weight:700;font-size:16px}.heading-1{font-weight:700;font-size:28px;line-height:1.6}.heading-2{font-weight:700;font-size:24px;line-height:1.6}.heading-3{font-size:20px;font-weight:700;line-height:1.6}.heading-4{font-size:16px;font-weight:700;line-height:1.6}.heading-5,.heading-6{font-size:14px;font-weight:700;line-height:1.6}.bg-foreground{border-radius:2px!important;transition:all .1s ease-in-out}.bg-foreground>div{border:unset!important}*,:before,:after{box-sizing:border-box;border-width:0;border-style:solid;border-color:#e5e7eb}:before,:after{--tw-content: ""}html,:host{line-height:1.5;-webkit-text-size-adjust:100%;-moz-tab-size:4;tab-size:4;font-family:ui-sans-serif,system-ui,sans-serif,"Apple Color Emoji","Segoe UI Emoji",Segoe UI Symbol,"Noto Color Emoji";font-feature-settings:normal;font-variation-settings:normal;-webkit-tap-highlight-color:transparent}body{margin:0;line-height:inherit}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,samp,pre{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-feature-settings:normal;font-variation-settings:normal;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}button,input,optgroup,select,textarea{font-family:inherit;font-feature-settings:inherit;font-variation-settings:inherit;font-size:100%;font-weight:inherit;line-height:inherit;letter-spacing:inherit;color:inherit;margin:0;padding:0}button,select{text-transform:none}button,input:where([type=button]),input:where([type=reset]),input:where([type=submit]){-webkit-appearance:button;background-color:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dl,dd,h1,h2,h3,h4,h5,h6,hr,figure,p,pre{margin:0}fieldset{margin:0;padding:0}legend{padding:0}ol,ul,menu{list-style:none;margin:0;padding:0}dialog{padding:0}textarea{resize:vertical}input::placeholder,textarea::placeholder{opacity:1;color:#9ca3af}button,[role=button]{cursor:pointer}:disabled{cursor:default}img,svg,video,canvas,audio,iframe,embed,object{display:block;vertical-align:middle}img,video{max-width:100%;height:auto}[hidden]{display:none}:root{--background: 0 0% 100%;--foreground: 240 10% 3.9%;--muted: 240 4.8% 95.9%;--muted-foreground: 240 3.8% 46.1%;--popover: 0 0% 100%;--popover-foreground: 240 10% 3.9%;--card: 0 0% 100%;--card-foreground: 240 10% 3.9%;--border: 240 5.9% 90%;--input: 240 5.9% 90%;--primary: 240 5.9% 10%;--primary-foreground: 0 0% 98%;--secondary: 240 4.8% 95.9%;--secondary-foreground: 240 5.9% 10%;--accent: 0 0% 88.24%;--accent-foreground: 240 5.9% 10%;--destructive: 0 84.2% 60.2%;--destructive-foreground: 0 0% 98%;--ring: 240 10% 3.9%;--radius: .5rem}.dark{--background: 240 10% 3.9%;--foreground: 0 0% 98%;--muted: 240 3.7% 15.9%;--muted-foreground: 240 5% 64.9%;--popover: 240 10% 3.9%;--popover-foreground: 0 0% 98%;--card: 240 10% 3.9%;--card-foreground: 0 0% 98%;--border: 240 3.7% 15.9%;--input: 240 3.7% 15.9%;--primary: 0 0% 98%;--primary-foreground: 240 5.9% 10%;--secondary: 240 3.7% 15.9%;--secondary-foreground: 0 0% 98%;--accent: 240 3.7% 15.9%;--accent-foreground: 0 0% 98%;--destructive: 0 62.8% 30.6%;--destructive-foreground: 0 0% 98%;--ring: 240 4.9% 83.9%}*{border-color:hsl(var(--border))}body{background-color:hsl(var(--background));color:hsl(var(--foreground))}*,:before,:after{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }::backdrop{--tw-border-spacing-x: 0;--tw-border-spacing-y: 0;--tw-translate-x: 0;--tw-translate-y: 0;--tw-rotate: 0;--tw-skew-x: 0;--tw-skew-y: 0;--tw-scale-x: 1;--tw-scale-y: 1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness: proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width: 0px;--tw-ring-offset-color: #fff;--tw-ring-color: rgb(59 130 246 / .5);--tw-ring-offset-shadow: 0 0 #0000;--tw-ring-shadow: 0 0 #0000;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }.\!container{width:100%!important;margin-right:auto!important;margin-left:auto!important;padding-right:2rem!important;padding-left:2rem!important}.container{width:100%;margin-right:auto;margin-left:auto;padding-right:2rem;padding-left:2rem}@media (min-width: 1400px){.\!container{max-width:1400px!important}.container{max-width:1400px}}.pointer-events-none{pointer-events:none}.pointer-events-auto{pointer-events:auto}.fixed{position:fixed}.absolute{position:absolute}.relative{position:relative}.sticky{position:sticky}.inset-y-0{top:0;bottom:0}.left-2{left:.5rem}.left-\[1px\]{left:1px}.right-2{right:.5rem}.start-0{inset-inline-start:0px}.top-0{top:0}.top-2{top:.5rem}.top-\[-1px\]{top:-1px}.z-50{z-index:50}.z-\[100\]{z-index:100}.col-\[1\/-1\]{grid-column:1/-1}.m-0{margin:0}.-mx-1{margin-left:-.25rem;margin-right:-.25rem}.mx-1{margin-left:.25rem;margin-right:.25rem}.mx-2{margin-left:.5rem;margin-right:.5rem}.mx-\[10px\]{margin-left:10px;margin-right:10px}.mx-\[auto\]{margin-left:auto;margin-right:auto}.my-1{margin-top:.25rem;margin-bottom:.25rem}.my-3{margin-top:.75rem;margin-bottom:.75rem}.my-\[10px\]{margin-top:10px;margin-bottom:10px}.my-\[12px\]{margin-top:12px;margin-bottom:12px}.mb-8{margin-bottom:2rem}.me-2{margin-inline-end:.5rem}.ml-1{margin-left:.25rem}.ml-auto{margin-left:auto}.mr-1{margin-right:.25rem}.mt-1{margin-top:.25rem}.mt-2{margin-top:.5rem}.mt-\[8px\]{margin-top:8px}.box-border{box-sizing:border-box}.block{display:block}.inline-block{display:inline-block}.inline{display:inline}.flex{display:flex}.inline-flex{display:inline-flex}.table{display:table}.grid{display:grid}.hidden{display:none}.size-5{width:1.25rem;height:1.25rem}.h-10{height:2.5rem}.h-11{height:2.75rem}.h-2{height:.5rem}.h-3{height:.75rem}.h-3\.5{height:.875rem}.h-4{height:1rem}.h-5{height:1.25rem}.h-6{height:1.5rem}.h-7{height:1.75rem}.h-8{height:2rem}.h-9{height:2.25rem}.h-\[16px\]{height:16px}.h-\[18px\]{height:18px}.h-\[1px\]{height:1px}.h-\[26px\]{height:26px}.h-\[32px\]{height:32px}.h-auto{height:auto}.h-full{height:100%}.h-px{height:1px}.max-h-96{max-height:24rem}.max-h-\[min\(80vh\,24rem\)\]{max-height:min(80vh,24rem)}.max-h-full{max-height:100%}.max-h-screen{max-height:100vh}.w-10{width:2.5rem}.w-11{width:2.75rem}.w-12{width:3rem}.w-2{width:.5rem}.w-3{width:.75rem}.w-3\.5{width:.875rem}.w-32{width:8rem}.w-4{width:1rem}.w-48{width:12rem}.w-5{width:1.25rem}.w-6{width:1.5rem}.w-7{width:1.75rem}.w-72{width:18rem}.w-80{width:20rem}.w-\[18px\]{width:18px}.w-\[1px\]{width:1px}.w-\[32px\]{width:32px}.w-\[400px\]{width:400px}.w-\[60px\]{width:60px}.w-auto{width:auto}.w-full{width:100%}.min-w-24{min-width:6rem}.min-w-32{min-width:8rem}.min-w-4{min-width:1rem}.min-w-48{min-width:12rem}.min-w-\[8rem\]{min-width:8rem}.max-w-24{max-width:6rem}.max-w-32{max-width:8rem}.max-w-\[600px\]{max-width:600px}.max-w-sm{max-width:24rem}.flex-1{flex:1 1 0%}.flex-shrink-0,.shrink-0{flex-shrink:0}.flex-grow{flex-grow:1}.transform{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}@keyframes spin{to{transform:rotate(360deg)}}.animate-spin{animation:spin 1s linear infinite}.cursor-default{cursor:default}.cursor-grab{cursor:grab}.cursor-pointer{cursor:pointer}.select-none{-webkit-user-select:none;user-select:none}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.flex-row{flex-direction:row}.flex-col{flex-direction:column}.flex-col-reverse{flex-direction:column-reverse}.flex-wrap{flex-wrap:wrap}.flex-nowrap{flex-wrap:nowrap}.items-center{align-items:center}.justify-start{justify-content:flex-start}.justify-end{justify-content:flex-end}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.gap-0\.5{gap:.125rem}.gap-1{gap:.25rem}.gap-1\.5{gap:.375rem}.gap-2{gap:.5rem}.gap-3{gap:.75rem}.gap-\[10px\]{gap:10px}.gap-\[4px\]{gap:4px}.gap-x-1{column-gap:.25rem}.gap-y-1{row-gap:.25rem}.space-x-2>:not([hidden])~:not([hidden]){--tw-space-x-reverse: 0;margin-right:calc(.5rem * var(--tw-space-x-reverse));margin-left:calc(.5rem * calc(1 - var(--tw-space-x-reverse)))}.space-x-4>:not([hidden])~:not([hidden]){--tw-space-x-reverse: 0;margin-right:calc(1rem * var(--tw-space-x-reverse));margin-left:calc(1rem * calc(1 - var(--tw-space-x-reverse)))}.self-end{align-self:flex-end}.overflow-auto{overflow:auto}.overflow-hidden{overflow:hidden}.overflow-y-auto{overflow-y:auto}.truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.whitespace-nowrap{white-space:nowrap}.break-all{word-break:break-all}.rounded-\[0\.5rem\]{border-radius:.5rem}.rounded-\[12px\]{border-radius:12px}.rounded-\[2px\]{border-radius:2px}.rounded-full{border-radius:9999px}.rounded-lg{border-radius:var(--radius)}.rounded-md{border-radius:calc(var(--radius) - 2px)}.rounded-sm{border-radius:calc(var(--radius) - 4px)}.border{border-width:1px}.border-2{border-width:2px}.border-\[1px\]{border-width:1px}.border-b{border-bottom-width:1px}.border-t{border-top-width:1px}.border-solid{border-style:solid}.border-\[\#ccc\]{--tw-border-opacity: 1;border-color:rgb(204 204 204 / var(--tw-border-opacity))}.border-black{--tw-border-opacity: 1;border-color:rgb(0 0 0 / var(--tw-border-opacity))}.border-border{border-color:hsl(var(--border))}.border-destructive{border-color:hsl(var(--destructive))}.border-input{border-color:hsl(var(--input))}.border-neutral-200{--tw-border-opacity: 1;border-color:rgb(229 229 229 / var(--tw-border-opacity))}.border-transparent{border-color:transparent}.bg-accent{background-color:hsl(var(--accent))}.bg-background{background-color:hsl(var(--background))}.bg-border{background-color:hsl(var(--border))}.bg-destructive{background-color:hsl(var(--destructive))}.bg-foreground{background-color:hsl(var(--foreground))}.bg-muted{background-color:hsl(var(--muted))}.bg-popover{background-color:hsl(var(--popover))}.bg-primary{background-color:hsl(var(--primary))}.bg-secondary{background-color:hsl(var(--secondary))}.bg-transparent{background-color:transparent}.bg-white{--tw-bg-opacity: 1;background-color:rgb(255 255 255 / var(--tw-bg-opacity))}.bg-opacity-10{--tw-bg-opacity: .1}.fill-current{fill:currentColor}.\!p-2{padding:.5rem!important}.\!p-\[4px\]{padding:4px!important}.p-0{padding:0}.p-0\.5{padding:.125rem}.p-1{padding:.25rem}.p-2{padding:.5rem}.p-3{padding:.75rem}.p-4{padding:1rem}.p-6{padding:1.5rem}.p-\[10px\]{padding:10px}.px-1{padding-left:.25rem;padding-right:.25rem}.px-1\.5{padding-left:.375rem;padding-right:.375rem}.px-2{padding-left:.5rem;padding-right:.5rem}.px-3{padding-left:.75rem;padding-right:.75rem}.px-4{padding-left:1rem;padding-right:1rem}.px-5{padding-left:1.25rem;padding-right:1.25rem}.px-8{padding-left:2rem;padding-right:2rem}.px-\[5px\]{padding-left:5px;padding-right:5px}.py-0{padding-top:0;padding-bottom:0}.py-1\.5{padding-top:.375rem;padding-bottom:.375rem}.py-2{padding-top:.5rem;padding-bottom:.5rem}.pl-10{padding-left:2.5rem}.pl-4{padding-left:1rem}.pl-8{padding-left:2rem}.pr-2{padding-right:.5rem}.pr-8{padding-right:2rem}.text-left{text-align:left}.text-center{text-align:center}.text-\[0\.65rem\]{font-size:.65rem}.text-lg{font-size:1.125rem;line-height:1.75rem}.text-sm{font-size:.875rem;line-height:1.25rem}.text-xs{font-size:.75rem;line-height:1rem}.font-medium{font-weight:500}.font-normal{font-weight:400}.font-semibold{font-weight:600}.uppercase{text-transform:uppercase}.italic{font-style:italic}.leading-none{line-height:1}.tracking-wider{letter-spacing:.05em}.tracking-widest{letter-spacing:.1em}.text-black{--tw-text-opacity: 1;color:rgb(0 0 0 / var(--tw-text-opacity))}.text-destructive-foreground{color:hsl(var(--destructive-foreground))}.text-foreground{color:hsl(var(--foreground))}.text-foreground\/50{color:hsl(var(--foreground) / .5)}.text-gray-500{--tw-text-opacity: 1;color:rgb(107 114 128 / var(--tw-text-opacity))}.text-gray-800{--tw-text-opacity: 1;color:rgb(31 41 55 / var(--tw-text-opacity))}.text-muted-foreground{color:hsl(var(--muted-foreground))}.text-neutral-500{--tw-text-opacity: 1;color:rgb(115 115 115 / var(--tw-text-opacity))}.text-neutral-600{--tw-text-opacity: 1;color:rgb(82 82 82 / var(--tw-text-opacity))}.text-neutral-800{--tw-text-opacity: 1;color:rgb(38 38 38 / var(--tw-text-opacity))}.text-popover-foreground{color:hsl(var(--popover-foreground))}.text-primary{color:hsl(var(--primary))}.text-primary-foreground{color:hsl(var(--primary-foreground))}.text-secondary-foreground{color:hsl(var(--secondary-foreground))}.text-zinc-500{--tw-text-opacity: 1;color:rgb(113 113 122 / var(--tw-text-opacity))}.text-zinc-600{--tw-text-opacity: 1;color:rgb(82 82 91 / var(--tw-text-opacity))}.underline{text-decoration-line:underline}.underline-offset-4{text-underline-offset:4px}.opacity-0{opacity:0}.opacity-50{opacity:.5}.opacity-60{opacity:.6}.opacity-90{opacity:.9}.shadow{--tw-shadow: 0 1px 3px 0 rgb(0 0 0 / .1), 0 1px 2px -1px rgb(0 0 0 / .1);--tw-shadow-colored: 0 1px 3px 0 var(--tw-shadow-color), 0 1px 2px -1px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-lg{--tw-shadow: 0 10px 15px -3px rgb(0 0 0 / .1), 0 4px 6px -4px rgb(0 0 0 / .1);--tw-shadow-colored: 0 10px 15px -3px var(--tw-shadow-color), 0 4px 6px -4px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-md{--tw-shadow: 0 4px 6px -1px rgb(0 0 0 / .1), 0 2px 4px -2px rgb(0 0 0 / .1);--tw-shadow-colored: 0 4px 6px -1px var(--tw-shadow-color), 0 2px 4px -2px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.shadow-sm{--tw-shadow: 0 1px 2px 0 rgb(0 0 0 / .05);--tw-shadow-colored: 0 1px 2px 0 var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.outline-none{outline:2px solid transparent;outline-offset:2px}.outline{outline-style:solid}.outline-1{outline-width:1px}.ring-0{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(0px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.ring-offset-background{--tw-ring-offset-color: hsl(var(--background))}.filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.transition-all{transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-colors{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-opacity{transition-property:opacity;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-transform{transition-property:transform;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.duration-200{transition-duration:.2s}.ease-in-out{transition-timing-function:cubic-bezier(.4,0,.2,1)}.ease-out{transition-timing-function:cubic-bezier(0,0,.2,1)}@keyframes enter{0%{opacity:var(--tw-enter-opacity, 1);transform:translate3d(var(--tw-enter-translate-x, 0),var(--tw-enter-translate-y, 0),0) scale3d(var(--tw-enter-scale, 1),var(--tw-enter-scale, 1),var(--tw-enter-scale, 1)) rotate(var(--tw-enter-rotate, 0))}}@keyframes exit{to{opacity:var(--tw-exit-opacity, 1);transform:translate3d(var(--tw-exit-translate-x, 0),var(--tw-exit-translate-y, 0),0) scale3d(var(--tw-exit-scale, 1),var(--tw-exit-scale, 1),var(--tw-exit-scale, 1)) rotate(var(--tw-exit-rotate, 0))}}.animate-in{animation-name:enter;animation-duration:.15s;--tw-enter-opacity: initial;--tw-enter-scale: initial;--tw-enter-rotate: initial;--tw-enter-translate-x: initial;--tw-enter-translate-y: initial}.fade-in-0{--tw-enter-opacity: 0}.zoom-in-95{--tw-enter-scale: .95}.duration-200{animation-duration:.2s}.ease-in-out{animation-timing-function:cubic-bezier(.4,0,.2,1)}.ease-out{animation-timing-function:cubic-bezier(0,0,.2,1)}.\[transition-property\:top\,_left\]{transition-property:top,left}.ProseMirror p{margin-bottom:.375rem;line-height:1.625}.ProseMirror p:first-child{margin-top:0}.ProseMirror p:last-child{margin-bottom:0}.ProseMirror>p{margin-bottom:.375rem}.ProseMirror>p:first-child{margin-top:0}.ProseMirror>p:last-child{margin-bottom:0}.ProseMirror h1{font-size:1.875rem;line-height:2.25rem}.ProseMirror h2{font-size:1.5rem;line-height:2rem}.ProseMirror h3{font-size:1.25rem;line-height:1.75rem}.ProseMirror h4{font-size:1.125rem;line-height:1.75rem}.ProseMirror h5{font-size:1rem;line-height:1.5rem}.ProseMirror h6{font-size:.875rem;line-height:1.25rem}.ProseMirror h1,.ProseMirror h2,.ProseMirror h3,.ProseMirror h4,.ProseMirror h5,.ProseMirror h6{font-weight:700}.ProseMirror h1:first-child,.ProseMirror h2:first-child,.ProseMirror h3:first-child,.ProseMirror h4:first-child,.ProseMirror h5:first-child,.ProseMirror h6:first-child{margin-top:0}.ProseMirror h1:last-child,.ProseMirror h2:last-child,.ProseMirror h3:last-child,.ProseMirror h4:last-child,.ProseMirror h5:last-child,.ProseMirror h6:last-child{margin-bottom:0}.ProseMirror h1,.ProseMirror h2,.ProseMirror h3{margin-top:3rem}.ProseMirror h4,.ProseMirror h5,.ProseMirror h6{margin-top:2rem}.ProseMirror a.link{font-weight:800;--tw-text-opacity: 1;color:rgb(59 130 246 / var(--tw-text-opacity))}.ProseMirror a.link:is(.dark *){--tw-text-opacity: 1;color:rgb(96 165 250 / var(--tw-text-opacity))}.ProseMirror mark{border-radius:calc(var(--radius) - 4px);--tw-bg-opacity: 1;background-color:rgb(239 68 68 / var(--tw-bg-opacity));-webkit-box-decoration-break:clone;box-decoration-break:clone;padding-top:.25rem;padding-bottom:.25rem;padding-left:0;padding-right:0;color:inherit}.ProseMirror mark:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(248 113 113 / var(--tw-bg-opacity))}.ProseMirror img{height:auto;max-width:100%}.ProseMirror *[data-indent="1"]{text-indent:2em!important}.ProseMirror *[data-indent="2"]{text-indent:4em!important}.ProseMirror *[data-indent="3"]{text-indent:6em!important}.ProseMirror *[data-indent="4"]{text-indent:8em!important}.ProseMirror *[data-indent="5"]{text-indent:10em!important}.ProseMirror *[data-indent="6"]{text-indent:12em!important}.ProseMirror *[data-indent="7"]{text-indent:14em!important}.ProseMirror iframe{margin-top:.5rem;height:400px;width:100%;border-radius:calc(var(--radius) - 4px);border-width:1px;border-color:hsl(var(--border))}.ProseMirror [data-type=horizontalRule]{margin-top:2rem;margin-bottom:2rem;padding-top:1rem;padding-bottom:1rem}.ProseMirror [data-type=horizontalRule] hr{border-width:0px;border-top-width:1px;border-color:#0003;background-color:#000c}.ProseMirror [data-type=horizontalRule] hr:is(.dark *){border-color:#fff3;background-color:#fffc}.ProseMirror .blockquote{border-radius:var(--radius);border-top-left-radius:0;border-bottom-left-radius:0;border-left-width:4px;--tw-border-opacity: 1;border-left-color:rgb(64 64 64 / var(--tw-border-opacity));--tw-bg-opacity: .8;padding:.5rem 1rem;--tw-text-opacity: 1;color:rgb(0 0 0 / var(--tw-text-opacity))}.ProseMirror .blockquote:is(.dark *){--tw-border-opacity: 1;border-left-color:rgb(212 212 212 / var(--tw-border-opacity));--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity))}.ProseMirror [data-type=columns]{margin-top:3.5rem;margin-bottom:3rem;display:grid;gap:1rem}.ProseMirror [data-type=columns].layout-sidebar-left{grid-template-columns:40fr 60fr}.ProseMirror [data-type=columns].layout-sidebar-right{grid-template-columns:60fr 40fr}.ProseMirror [data-type=columns].layout-two-column{grid-template-columns:1fr 1fr}.ProseMirror .layout-two-column.is-empty:before{display:none!important}.ProseMirror [data-type=column]{overflow:auto}.ProseMirror code{border-radius:calc(var(--radius) - 4px);--tw-bg-opacity: 1;background-color:rgb(23 23 23 / var(--tw-bg-opacity));font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity));caret-color:#fff;--tw-shadow: 0 10px 15px -3px rgb(0 0 0 / .1), 0 4px 6px -4px rgb(0 0 0 / .1);--tw-shadow-colored: 0 10px 15px -3px var(--tw-shadow-color), 0 4px 6px -4px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.ProseMirror code::selection{background-color:#ffffff4d}.ProseMirror pre{margin-top:3rem;margin-bottom:3rem;border-radius:.25rem;border-width:1px;--tw-border-opacity: 1;border-color:rgb(0 0 0 / var(--tw-border-opacity));--tw-bg-opacity: 1;background-color:rgb(64 64 64 / var(--tw-bg-opacity));padding:1rem;--tw-text-opacity: 1;color:rgb(255 255 255 / var(--tw-text-opacity));caret-color:#fff}.ProseMirror pre:is(.dark *){--tw-border-opacity: 1;border-color:rgb(38 38 38 / var(--tw-border-opacity));--tw-bg-opacity: 1;background-color:rgb(23 23 23 / var(--tw-bg-opacity))}.ProseMirror pre *::selection{background-color:#fff3}.ProseMirror pre code{background-color:inherit;padding:0;color:inherit;--tw-shadow: 0 0 #0000;--tw-shadow-colored: 0 0 #0000;box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.ProseMirror pre .hljs-comment,.ProseMirror pre .hljs-quote{--tw-text-opacity: 1;color:rgb(163 163 163 / var(--tw-text-opacity))}.ProseMirror pre .hljs-variable,.ProseMirror pre .hljs-template-variable,.ProseMirror pre .hljs-attribute,.ProseMirror pre .hljs-tag,.ProseMirror pre .hljs-name,.ProseMirror pre .hljs-regexp,.ProseMirror pre .hljs-link,.ProseMirror pre .hljs-selector-id,.ProseMirror pre .hljs-selector-class{--tw-text-opacity: 1;color:rgb(252 165 165 / var(--tw-text-opacity))}.ProseMirror pre .hljs-number,.ProseMirror pre .hljs-meta,.ProseMirror pre .hljs-built_in,.ProseMirror pre .hljs-builtin-name,.ProseMirror pre .hljs-literal,.ProseMirror pre .hljs-type,.ProseMirror pre .hljs-params{--tw-text-opacity: 1;color:rgb(253 186 116 / var(--tw-text-opacity))}.ProseMirror pre .hljs-string,.ProseMirror pre .hljs-symbol,.ProseMirror pre .hljs-bullet{--tw-text-opacity: 1;color:rgb(190 242 100 / var(--tw-text-opacity))}.ProseMirror pre .hljs-title,.ProseMirror pre .hljs-section{--tw-text-opacity: 1;color:rgb(253 224 71 / var(--tw-text-opacity))}.ProseMirror pre .hljs-keyword,.ProseMirror pre .hljs-selector-tag{--tw-text-opacity: 1;color:rgb(94 234 212 / var(--tw-text-opacity))}.ProseMirror pre .hljs-emphasis{font-style:italic}.ProseMirror pre .hljs-strong{font-weight:700}.ProseMirror ol{list-style-type:decimal}.ProseMirror ul{list-style-type:disc}.ProseMirror ul,.ProseMirror ol{margin-top:1.5rem;margin-bottom:1.5rem;padding-top:0;padding-bottom:0;padding-left:2rem;padding-right:2rem}.ProseMirror ul:first-child,.ProseMirror ol:first-child{margin-top:0}.ProseMirror ul:last-child,.ProseMirror ol:last-child{margin-bottom:0}.ProseMirror ul ul,.ProseMirror ul ol,.ProseMirror ul li,.ProseMirror ol ul,.ProseMirror ol ol,.ProseMirror ol li{margin-top:.25rem;margin-bottom:.25rem}.ProseMirror ul p,.ProseMirror ol p{margin-top:0;margin-bottom:.25rem}.ProseMirror>ul,.ProseMirror>ol{margin-top:2rem;margin-bottom:2rem}.ProseMirror>ul:first-child,.ProseMirror>ol:first-child{margin-top:0}.ProseMirror>ul:last-child,.ProseMirror>ol:last-child{margin-bottom:0}.ProseMirror ul[data-type=taskList]{list-style-type:none;padding:0}.ProseMirror ul[data-type=taskList] p{margin:0}.ProseMirror ul[data-type=taskList] li{display:flex}.ProseMirror ul[data-type=taskList] li>label{margin-right:.5rem;display:inline-flex;flex:1 1 auto;flex-shrink:0;flex-grow:0;-webkit-user-select:none;user-select:none}.ProseMirror ul[data-type=taskList] li>div{flex:1 1 auto}.ProseMirror ul[data-type=taskList] li[data-checked=true]{text-decoration-line:line-through}.ProseMirror table{box-sizing:border-box;width:100%;border-collapse:collapse;border-radius:.25rem;border-color:#0000001a}.ProseMirror table:is(.dark *){border-color:#fff3}.ProseMirror table td,.ProseMirror table th{position:relative;min-width:100px;border-width:1px;border-style:solid;border-color:#0000001a;padding:.5rem;text-align:left;vertical-align:top}.ProseMirror table td:is(.dark *),.ProseMirror table th:is(.dark *){border-color:#fff3}.ProseMirror table td:first-of-type:not(a),.ProseMirror table th:first-of-type:not(a){margin-top:0}.ProseMirror table td p,.ProseMirror table th p{margin:0}.ProseMirror table td p+p,.ProseMirror table th p+p{margin-top:.75rem}.ProseMirror table th{font-weight:700}.ProseMirror [data-type=emoji] img{height:1em;width:1em}.file\:border-0::file-selector-button{border-width:0px}.file\:bg-transparent::file-selector-button{background-color:transparent}.file\:text-sm::file-selector-button{font-size:.875rem;line-height:1.25rem}.file\:font-medium::file-selector-button{font-weight:500}.placeholder\:text-muted-foreground::placeholder{color:hsl(var(--muted-foreground))}.after\:absolute:after{content:var(--tw-content);position:absolute}.after\:left-0:after{content:var(--tw-content);left:0}.after\:top-\[10px\]:after{content:var(--tw-content);top:10px}.after\:block:after{content:var(--tw-content);display:block}.after\:h-0:after{content:var(--tw-content);height:0px}.after\:w-6:after{content:var(--tw-content);width:1.5rem}.after\:rotate-\[45deg\]:after{content:var(--tw-content);--tw-rotate: 45deg;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.after\:border-b-2:after{content:var(--tw-content);border-bottom-width:2px}.after\:border-b-red-500:after{content:var(--tw-content);--tw-border-opacity: 1;border-bottom-color:rgb(239 68 68 / var(--tw-border-opacity))}.first\:mt-0\.5:first-child{margin-top:.125rem}.last\:pb-2:last-child{padding-bottom:.5rem}.hover\:cursor-pointer:hover{cursor:pointer}.hover\:border-border:hover{border-color:hsl(var(--border))}.hover\:bg-accent:hover{background-color:hsl(var(--accent))}.hover\:bg-destructive\/90:hover{background-color:hsl(var(--destructive) / .9)}.hover\:bg-muted:hover{background-color:hsl(var(--muted))}.hover\:bg-primary\/90:hover{background-color:hsl(var(--primary) / .9)}.hover\:bg-red-400:hover{--tw-bg-opacity: 1;background-color:rgb(248 113 113 / var(--tw-bg-opacity))}.hover\:bg-secondary:hover{background-color:hsl(var(--secondary))}.hover\:bg-secondary\/80:hover{background-color:hsl(var(--secondary) / .8)}.hover\:bg-opacity-20:hover{--tw-bg-opacity: .2}.hover\:text-accent-foreground:hover{color:hsl(var(--accent-foreground))}.hover\:text-foreground:hover{color:hsl(var(--foreground))}.hover\:text-muted-foreground:hover{color:hsl(var(--muted-foreground))}.hover\:text-neutral-800:hover{--tw-text-opacity: 1;color:rgb(38 38 38 / var(--tw-text-opacity))}.hover\:underline:hover{text-decoration-line:underline}.hover\:shadow-sm:hover{--tw-shadow: 0 1px 2px 0 rgb(0 0 0 / .05);--tw-shadow-colored: 0 1px 2px 0 var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.focus\:bg-accent:focus{background-color:hsl(var(--accent))}.focus\:bg-red-400:focus{--tw-bg-opacity: 1;background-color:rgb(248 113 113 / var(--tw-bg-opacity))}.focus\:bg-opacity-30:focus{--tw-bg-opacity: .3}.focus\:text-accent-foreground:focus{color:hsl(var(--accent-foreground))}.focus\:text-red-500:focus{--tw-text-opacity: 1;color:rgb(239 68 68 / var(--tw-text-opacity))}.focus\:opacity-100:focus{opacity:1}.focus\:outline-none:focus{outline:2px solid transparent;outline-offset:2px}.focus\:ring-2:focus{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.focus\:ring-ring:focus{--tw-ring-color: hsl(var(--ring))}.focus\:ring-offset-2:focus{--tw-ring-offset-width: 2px}.focus-visible\:outline-none:focus-visible{outline:2px solid transparent;outline-offset:2px}.focus-visible\:ring-2:focus-visible{--tw-ring-offset-shadow: var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow: var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow, 0 0 #0000)}.focus-visible\:ring-ring:focus-visible{--tw-ring-color: hsl(var(--ring))}.focus-visible\:ring-offset-2:focus-visible{--tw-ring-offset-width: 2px}.focus-visible\:ring-offset-background:focus-visible{--tw-ring-offset-color: hsl(var(--background))}.disabled\:pointer-events-none:disabled{pointer-events:none}.disabled\:cursor-not-allowed:disabled{cursor:not-allowed}.disabled\:opacity-50:disabled{opacity:.5}.group:hover .group-hover\:opacity-100{opacity:1}.group.destructive .group-\[\.destructive\]\:border-muted\/40{border-color:hsl(var(--muted) / .4)}.group.destructive .group-\[\.destructive\]\:text-red-300{--tw-text-opacity: 1;color:rgb(252 165 165 / var(--tw-text-opacity))}.group.destructive .group-\[\.destructive\]\:hover\:border-destructive\/30:hover{border-color:hsl(var(--destructive) / .3)}.group.destructive .group-\[\.destructive\]\:hover\:bg-destructive:hover{background-color:hsl(var(--destructive))}.group.destructive .group-\[\.destructive\]\:hover\:text-destructive-foreground:hover{color:hsl(var(--destructive-foreground))}.group.destructive .group-\[\.destructive\]\:hover\:text-red-50:hover{--tw-text-opacity: 1;color:rgb(254 242 242 / var(--tw-text-opacity))}.group.destructive .group-\[\.destructive\]\:focus\:ring-destructive:focus{--tw-ring-color: hsl(var(--destructive))}.group.destructive .group-\[\.destructive\]\:focus\:ring-red-400:focus{--tw-ring-opacity: 1;--tw-ring-color: rgb(248 113 113 / var(--tw-ring-opacity))}.group.destructive .group-\[\.destructive\]\:focus\:ring-offset-red-600:focus{--tw-ring-offset-color: #dc2626}.peer:disabled~.peer-disabled\:cursor-not-allowed{cursor:not-allowed}.peer:disabled~.peer-disabled\:opacity-70{opacity:.7}.data-\[disabled\]\:pointer-events-none[data-disabled]{pointer-events:none}.data-\[state\=checked\]\:translate-x-5[data-state=checked]{--tw-translate-x: 1.25rem;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.data-\[state\=unchecked\]\:translate-x-0[data-state=unchecked],.data-\[swipe\=cancel\]\:translate-x-0[data-swipe=cancel]{--tw-translate-x: 0px;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.data-\[swipe\=end\]\:translate-x-\[var\(--radix-toast-swipe-end-x\)\][data-swipe=end]{--tw-translate-x: var(--radix-toast-swipe-end-x);transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.data-\[swipe\=move\]\:translate-x-\[var\(--radix-toast-swipe-move-x\)\][data-swipe=move]{--tw-translate-x: var(--radix-toast-swipe-move-x);transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skew(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.data-\[state\=active\]\:bg-background[data-state=active]{background-color:hsl(var(--background))}.data-\[state\=checked\]\:bg-primary[data-state=checked]{background-color:hsl(var(--primary))}.data-\[state\=on\]\:bg-accent[data-state=on],.data-\[state\=open\]\:bg-accent[data-state=open]{background-color:hsl(var(--accent))}.data-\[state\=unchecked\]\:bg-input[data-state=unchecked]{background-color:hsl(var(--input))}.data-\[state\=active\]\:text-foreground[data-state=active]{color:hsl(var(--foreground))}.data-\[state\=on\]\:text-accent-foreground[data-state=on]{color:hsl(var(--accent-foreground))}.data-\[disabled\]\:opacity-50[data-disabled]{opacity:.5}.data-\[state\=active\]\:shadow-sm[data-state=active]{--tw-shadow: 0 1px 2px 0 rgb(0 0 0 / .05);--tw-shadow-colored: 0 1px 2px 0 var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow, 0 0 #0000),var(--tw-ring-shadow, 0 0 #0000),var(--tw-shadow)}.data-\[swipe\=move\]\:transition-none[data-swipe=move]{transition-property:none}.data-\[state\=open\]\:animate-in[data-state=open]{animation-name:enter;animation-duration:.15s;--tw-enter-opacity: initial;--tw-enter-scale: initial;--tw-enter-rotate: initial;--tw-enter-translate-x: initial;--tw-enter-translate-y: initial}.data-\[state\=closed\]\:animate-out[data-state=closed],.data-\[swipe\=end\]\:animate-out[data-swipe=end]{animation-name:exit;animation-duration:.15s;--tw-exit-opacity: initial;--tw-exit-scale: initial;--tw-exit-rotate: initial;--tw-exit-translate-x: initial;--tw-exit-translate-y: initial}.data-\[state\=closed\]\:fade-out-0[data-state=closed]{--tw-exit-opacity: 0}.data-\[state\=closed\]\:fade-out-80[data-state=closed]{--tw-exit-opacity: .8}.data-\[state\=open\]\:fade-in-0[data-state=open]{--tw-enter-opacity: 0}.data-\[state\=closed\]\:zoom-out-95[data-state=closed]{--tw-exit-scale: .95}.data-\[state\=open\]\:zoom-in-95[data-state=open]{--tw-enter-scale: .95}.data-\[side\=bottom\]\:slide-in-from-top-2[data-side=bottom]{--tw-enter-translate-y: -.5rem}.data-\[side\=left\]\:slide-in-from-right-2[data-side=left]{--tw-enter-translate-x: .5rem}.data-\[side\=right\]\:slide-in-from-left-2[data-side=right]{--tw-enter-translate-x: -.5rem}.data-\[side\=top\]\:slide-in-from-bottom-2[data-side=top]{--tw-enter-translate-y: .5rem}.data-\[state\=closed\]\:slide-out-to-right-full[data-state=closed]{--tw-exit-translate-x: 100%}.data-\[state\=open\]\:slide-in-from-top-full[data-state=open]{--tw-enter-translate-y: -100%}.dark\:border-neutral-800:is(.dark *){--tw-border-opacity: 1;border-color:rgb(38 38 38 / var(--tw-border-opacity))}.dark\:bg-black:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(0 0 0 / var(--tw-bg-opacity))}.dark\:bg-neutral-900:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(23 23 23 / var(--tw-bg-opacity))}.dark\:text-gray-100:is(.dark *){--tw-text-opacity: 1;color:rgb(243 244 246 / var(--tw-text-opacity))}.dark\:text-neutral-200:is(.dark *){--tw-text-opacity: 1;color:rgb(229 229 229 / var(--tw-text-opacity))}.dark\:hover\:bg-neutral-900:hover:is(.dark *){--tw-bg-opacity: 1;background-color:rgb(23 23 23 / var(--tw-bg-opacity))}.dark\:hover\:bg-opacity-20:hover:is(.dark *){--tw-bg-opacity: .2}.dark\:hover\:text-neutral-200:hover:is(.dark *){--tw-text-opacity: 1;color:rgb(229 229 229 / var(--tw-text-opacity))}.dark\:hover\:text-red-500:hover:is(.dark *){--tw-text-opacity: 1;color:rgb(239 68 68 / var(--tw-text-opacity))}@media (min-width: 640px){.sm\:bottom-0{bottom:0}.sm\:right-0{right:0}.sm\:top-auto{top:auto}.sm\:flex-col{flex-direction:column}.data-\[state\=open\]\:sm\:slide-in-from-bottom-full[data-state=open]{--tw-enter-translate-y: 100%}}@media (min-width: 768px){.md\:max-w-\[420px\]{max-width:420px}}
@@ -0,0 +1,4 @@
1
+ export declare const useTheme: () => string;
2
+ export declare const themeActions: {
3
+ setTheme: (theme: string) => void;
4
+ };
package/lib/types.d.ts ADDED
@@ -0,0 +1,80 @@
1
+ import { Editor as CoreEditor, Extension, JSONContent } from '@tiptap/core';
2
+ import { Editor } from '@tiptap/react';
3
+
4
+ export type { Editor, JSONContent } from '@tiptap/core';
5
+ /**
6
+ * Represents the onChange event for EchoEditor.
7
+ */
8
+ export type EchoEditorOnChange = {
9
+ /** Editor object */
10
+ editor: CoreEditor;
11
+ /** Output content, can be a string or JSON content */
12
+ output: string | JSONContent;
13
+ };
14
+ /**
15
+ * Represents the keys for different extensions.
16
+ */
17
+ export type ExtensionNameKeys = 'bold' | 'italic' | 'underline' | 'strike' | 'color' | 'highlight' | 'heading' | 'textAlign' | 'bulletList' | 'orderedList' | 'taskList' | 'indent' | 'link' | 'image' | 'video' | 'table' | 'blockquote' | 'horizontalRule' | 'code' | 'codeBlock' | 'clear' | 'history' | 'fullscreen';
18
+ /**
19
+ * Represents the general options for Tiptap extensions.
20
+ */
21
+ export interface GeneralOptions<T> {
22
+ /** Enabled divider */
23
+ divider: boolean;
24
+ /** Enabled spacer */
25
+ spacer: boolean;
26
+ /** Button view function */
27
+ button: ButtonView<T>;
28
+ /** Show on Toolbar */
29
+ toolbar?: boolean;
30
+ }
31
+ /**
32
+ * Represents the props for the ButtonView component.
33
+ */
34
+ export interface ButtonViewReturnComponentProps {
35
+ /** Method triggered when action is performed */
36
+ action?: (value?: any) => void;
37
+ /** Whether it is in the active state */
38
+ isActive?: () => boolean;
39
+ /** Button icon */
40
+ icon?: any;
41
+ /** Text displayed on hover */
42
+ tooltip?: string;
43
+ [x: string]: any;
44
+ }
45
+ /**
46
+ * Represents the slots for the ButtonView component.
47
+ */
48
+ export interface ButtonViewReturnComponentSlots {
49
+ /** Dialog slot */
50
+ dialog: () => any;
51
+ [x: string]: () => any;
52
+ }
53
+ /**
54
+ * Represents the return value for the ButtonView component.
55
+ */
56
+ export interface ButtonViewReturn {
57
+ /** Component */
58
+ component: unknown;
59
+ /** Component props */
60
+ componentProps: ButtonViewReturnComponentProps;
61
+ /** Component slots */
62
+ componentSlots?: ButtonViewReturnComponentSlots;
63
+ }
64
+ /**
65
+ * Represents the parameters for the ButtonView function.
66
+ */
67
+ export interface ButtonViewParams<T = any> {
68
+ /** Editor object */
69
+ editor: Editor;
70
+ /** Extension object */
71
+ extension: Extension<T>;
72
+ /** Translation function */
73
+ t: (path: string) => string;
74
+ }
75
+ /**
76
+ * Represents the ButtonView function.
77
+ */
78
+ export interface ButtonView<T = any> {
79
+ (options: ButtonViewParams<T>): ButtonViewReturn | ButtonViewReturn[];
80
+ }
@@ -0,0 +1,4 @@
1
+ import { Editor } from '@tiptap/react';
2
+
3
+ export declare const getRenderContainer: (editor: Editor, nodeType: string) => any;
4
+ export default getRenderContainer;
@@ -0,0 +1,15 @@
1
+ import { Command } from '@tiptap/core';
2
+ import { Transaction } from '@tiptap/pm/state';
3
+
4
+ export declare const enum IndentProps {
5
+ max = 7,
6
+ min = 0,
7
+ more = 1,
8
+ less = -1
9
+ }
10
+ export declare function clamp(val: number, min: number, max: number): number;
11
+ export declare function setNodeIndentMarkup(tr: Transaction, pos: number, delta: number): Transaction;
12
+ export declare function createIndentCommand({ delta, types }: {
13
+ delta: number;
14
+ types: string[];
15
+ }): Command;
@@ -0,0 +1,19 @@
1
+ interface HttpRequestHeadersInterfaceMock {
2
+ [id: string]: string | string[] | undefined;
3
+ }
4
+ interface HttpRequestInterfaceMock {
5
+ headers: HttpRequestHeadersInterfaceMock;
6
+ [id: string]: any;
7
+ }
8
+ export interface IsMobileOptions {
9
+ ua?: string | HttpRequestInterfaceMock;
10
+ tablet?: boolean;
11
+ featureDetect?: boolean;
12
+ }
13
+ /**
14
+ * Determines if the current device is a mobile or tablet device.
15
+ * @param opts - Options for the detection.
16
+ * @returns `true` if the device is mobile or tablet, `false` otherwise.
17
+ */
18
+ export declare function isMobile(opts?: IsMobileOptions): boolean;
19
+ export {};
@@ -0,0 +1,7 @@
1
+ import { Command } from '@tiptap/core';
2
+ import { EditorState, Transaction } from '@tiptap/pm/state';
3
+
4
+ export declare const ALLOWED_NODE_TYPES: string[];
5
+ export declare function isLineHeightActive(state: EditorState, lineHeight: string): boolean;
6
+ export declare function setTextLineHeight(tr: Transaction, lineHeight: string | null): Transaction;
7
+ export declare function createLineHeightCommand(lineHeight: string): Command;
@@ -0,0 +1,24 @@
1
+ /**
2
+ * copy to https://github.com/developit/mitt
3
+ */
4
+ export type EventType = string | symbol;
5
+ export type Handler<T = unknown> = (event: T) => void;
6
+ export type WildcardHandler<T = Record<string, unknown>> = (type: keyof T, event: T[keyof T]) => void;
7
+ export type EventHandlerList<T = unknown> = Array<Handler<T>>;
8
+ export type WildCardEventHandlerList<T = Record<string, unknown>> = Array<WildcardHandler<T>>;
9
+ export type EventHandlerMap<Events extends Record<EventType, unknown>> = Map<keyof Events | '*', EventHandlerList<Events[keyof Events]> | WildCardEventHandlerList<Events>>;
10
+ export interface Emitter<Events extends Record<EventType, unknown>> {
11
+ all: EventHandlerMap<Events>;
12
+ on<Key extends keyof Events>(type: Key, handler: Handler<Events[Key]>): void;
13
+ on(type: '*', handler: WildcardHandler<Events>): void;
14
+ off<Key extends keyof Events>(type: Key, handler?: Handler<Events[Key]>): void;
15
+ off(type: '*', handler: WildcardHandler<Events>): void;
16
+ emit<Key extends keyof Events>(type: Key, event: Events[Key]): void;
17
+ emit<Key extends keyof Events>(type: undefined extends Events[Key] ? Key : never): void;
18
+ }
19
+ /**
20
+ * Mitt: Tiny (~200b) functional event emitter / pubsub.
21
+ * @name mitt
22
+ * @returns {Mitt}
23
+ */
24
+ export default function mitt<Events extends Record<EventType, unknown>>(all?: EventHandlerMap<Events>): Emitter<Events>;
@@ -0,0 +1,11 @@
1
+ /**
2
+ * Return true if the user is using a Mac (as opposed to Windows, etc.) device.
3
+ */
4
+ export declare function isMac(): boolean;
5
+ /**
6
+ * 根据 Mac 和非 Mac 平台,返回应该用于键盘快捷键的修饰键的可读版本。用于直观地指示应该按哪个键。
7
+ */
8
+ export declare function getShortcutKey(key: string): string;
9
+ export declare function getShortcutKeys(keys: string[]): string;
10
+ /** Return true if the user is using a touch-based device. */
11
+ export declare function isTouchDevice(): boolean;
@@ -0,0 +1,17 @@
1
+ import { Editor } from '@tiptap/core';
2
+
3
+ export declare const getCssUnitWithDefault: (value?: string | number, defaultUnit?: string) => string | number | undefined;
4
+ export declare function clamp(val: number, min: number, max: number): number;
5
+ export declare const isNumber: (value: unknown) => value is number;
6
+ export declare const isString: (value: unknown) => value is string;
7
+ export declare const isBoolean: (value: unknown) => value is boolean;
8
+ export declare const isFunction: (value: unknown) => boolean;
9
+ /**
10
+ * Checks if the editor has a specific extension method with the given name.
11
+ *
12
+ * @param {Editor} editor - An instance of the editor.
13
+ * @param {string} name - The name of the extension method.
14
+ * @returns {boolean} - Returns true if the specified extension method is present, otherwise returns false.
15
+ */
16
+ export declare function hasExtension(editor: Editor, name: string): boolean;
17
+ export { differenceBy, isEqual, throttle, truncate } from 'lodash-unified';