+
+ {!readOnly && (
+ <>
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ >
+ )}
+
+
+ )
+}
diff --git a/packages/playground/admin/lib/components/richt-text-editor/plate-ui/fixed-toolbar.tsx b/packages/playground/admin/lib/components/richt-text-editor/plate-ui/fixed-toolbar.tsx
new file mode 100644
index 000000000..c19735637
--- /dev/null
+++ b/packages/playground/admin/lib/components/richt-text-editor/plate-ui/fixed-toolbar.tsx
@@ -0,0 +1,7 @@
+import { uic } from '../../../utils/uic'
+import { Toolbar } from './toolbar'
+
+export const FixedToolbar = uic(
+ Toolbar,
+ { baseClass: 'supports-backdrop-blur:bg-background/60 sticky left-0 top-[57px] z-50 w-full justify-between overflow-x-auto rounded-t-lg border-b border-b-border bg-background/95 backdrop-blur' },
+)
diff --git a/packages/playground/admin/lib/components/richt-text-editor/plate-ui/floating-toolbar-buttons.tsx b/packages/playground/admin/lib/components/richt-text-editor/plate-ui/floating-toolbar-buttons.tsx
new file mode 100644
index 000000000..a6c4677c7
--- /dev/null
+++ b/packages/playground/admin/lib/components/richt-text-editor/plate-ui/floating-toolbar-buttons.tsx
@@ -0,0 +1,42 @@
+import { MARK_BOLD, MARK_ITALIC, MARK_STRIKETHROUGH, MARK_UNDERLINE } from '@udecode/plate-basic-marks'
+import { useEditorReadOnly } from '@udecode/plate-common'
+import { BoldIcon, ItalicIcon, StrikethroughIcon, UnderlineIcon } from 'lucide-react'
+import { LinkToolbarButton } from './link-toolbar-button'
+
+import { MarkToolbarButton } from './mark-toolbar-button'
+import { TurnIntoDropdownMenu } from './turn-into-dropdown-menu'
+
+export function FloatingToolbarButtons() {
+ const readOnly = useEditorReadOnly()
+
+ return (
+ <>
+ {!readOnly && (
+ <>
+