@openeditor/ui 0.0.29 → 0.0.31

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.
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/index.tsx"],"names":["ImageIcon","Fragment","OpenEditorThemeProvider"],"mappings":"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","file":"index.js","sourcesContent":["import \"./styles.css\";\nexport {\n createOpenEditorThemeStyle,\n OpenEditorThemeProvider,\n openEditorThemeTokenNames,\n type OpenEditorTheme,\n type OpenEditorThemeStyle,\n type OpenEditorThemeToken,\n} from \"@openeditor/react\";\nexport { OpenEditorEmojiPicker, type OpenEditorEmojiPickerProps } from \"@openeditor/emoji\";\nimport { Button, type Button as BaseButton } from \"@base-ui/react/button\";\nimport { Dialog } from \"@base-ui/react/dialog\";\nimport { Input, type Input as BaseInput } from \"@base-ui/react/input\";\nimport { Menu } from \"@base-ui/react/menu\";\nimport { Popover } from \"@base-ui/react/popover\";\nimport { Toggle, type Toggle as BaseToggle } from \"@base-ui/react/toggle\";\nimport { ToggleGroup, type ToggleGroup as BaseToggleGroup } from \"@base-ui/react/toggle-group\";\nimport { Toolbar } from \"@base-ui/react/toolbar\";\nimport {\n ArrowDown,\n ArrowUp,\n Bold,\n Copy,\n CopyPlus,\n ChevronDown,\n ChevronRight,\n Columns2,\n Code,\n FileText,\n GitBranch,\n GripVertical,\n Heading1,\n Heading2,\n Heading3,\n Heading4,\n Heading5,\n Heading6,\n Image as ImageIcon,\n Italic,\n Link,\n List,\n ListOrdered,\n ListTodo,\n MessageSquare,\n Minus,\n Pilcrow,\n Quote,\n Strikethrough,\n Table,\n Trash2,\n Type,\n Underline,\n Upload,\n X,\n type LucideIcon,\n} from \"lucide-react\";\nimport {\n getDefaultSlashMenuItems,\n OpenEditorBlockDragHandle,\n OpenEditorContent,\n sortSlashMenuItems,\n useOpenEditorBlockInteraction,\n useOpenEditorController,\n type OpenEditorController,\n type OpenEditorBlockAction,\n type OpenEditorBlockRef,\n type OpenEditorReactProps,\n type OpenEditorSlashMenuItem,\n OpenEditorThemeProvider,\n useOpenEditorThemeStyle,\n type OpenEditorTheme,\n} from \"@openeditor/react\";\nimport {\n Fragment,\n useCallback,\n useEffect,\n useMemo,\n useRef,\n useState,\n type FormEvent,\n} from \"react\";\n\nexport type OpenEditorSlashMenuProps = {\n controller: OpenEditorController;\n className?: string;\n items?: readonly OpenEditorSlashMenuItem[];\n container?: HTMLElement | null;\n};\n\nexport type OpenEditorSelectionBubbleProps = {\n controller: OpenEditorController;\n className?: string;\n container?: HTMLElement | null;\n};\n\nexport type OpenEditorBlockMenuProps = {\n controller: OpenEditorController;\n className?: string;\n container?: HTMLElement | null;\n};\n\nexport type OpenEditorProps = OpenEditorReactProps & {\n className?: string;\n contentClassName?: string;\n overlayContainer?: HTMLElement | null;\n theme?: OpenEditorTheme;\n};\n\nexport type OpenEditorButtonProps = BaseButton.Props;\nexport type OpenEditorToggleProps<Value extends string = string> = BaseToggle.Props<Value>;\nexport type OpenEditorToggleGroupProps<Value extends string = string> = BaseToggleGroup.Props<Value>;\nexport type OpenEditorInputProps = BaseInput.Props;\n\ntype OverlayRect = {\n left: number;\n right: number;\n top: number;\n bottom: number;\n width: number;\n height: number;\n};\n\ntype AnchoredOverlayState = {\n left: number;\n top: number;\n anchorRect?: OverlayRect;\n};\n\ntype VirtualAnchor = {\n contextElement?: Element;\n getBoundingClientRect: () => DOMRect;\n};\n\ntype SelectionAction = {\n key: string;\n label: string;\n active: boolean;\n Icon: LucideIcon;\n run: () => void;\n};\n\ntype BlockTransformAction = {\n key: string;\n label: string;\n Icon: LucideIcon;\n isActive: (controller: OpenEditorController) => boolean;\n run: (controller: OpenEditorController) => void;\n};\n\nconst headingDefinitions = [\n { level: 1, Icon: Heading1 },\n { level: 2, Icon: Heading2 },\n { level: 3, Icon: Heading3 },\n { level: 4, Icon: Heading4 },\n { level: 5, Icon: Heading5 },\n { level: 6, Icon: Heading6 },\n] as const;\n\nconst blockTransformActions: BlockTransformAction[] = [\n {\n key: \"paragraph\",\n label: \"Paragraph\",\n Icon: Pilcrow,\n isActive: (controller) => controller.isActive(\"paragraph\"),\n run: (controller) => controller.setParagraph(),\n },\n ...headingDefinitions.map(({ level, Icon }) => ({\n key: `heading${level}`,\n label: `Heading ${level}`,\n Icon,\n isActive: (controller: OpenEditorController) => controller.isActive(\"heading\", { level }),\n run: (controller: OpenEditorController) => controller.toggleHeading(level),\n })),\n {\n key: \"bulletList\",\n label: \"Bullet List\",\n Icon: List,\n isActive: (controller) => controller.isActive(\"bulletList\"),\n run: (controller) => controller.toggleBulletList(),\n },\n {\n key: \"orderedList\",\n label: \"Numbered List\",\n Icon: ListOrdered,\n isActive: (controller) => controller.isActive(\"orderedList\"),\n run: (controller) => controller.toggleOrderedList(),\n },\n {\n key: \"taskList\",\n label: \"Task List\",\n Icon: ListTodo,\n isActive: (controller) => controller.isActive(\"taskList\"),\n run: (controller) => controller.toggleTaskList(),\n },\n {\n key: \"blockquote\",\n label: \"Quote\",\n Icon: Quote,\n isActive: (controller) => controller.isActive(\"blockquote\"),\n run: (controller) => controller.toggleBlockquote(),\n },\n {\n key: \"codeBlock\",\n label: \"Code\",\n Icon: Code,\n isActive: (controller) => controller.isActive(\"codeBlock\"),\n run: (controller) => controller.toggleCodeBlock(),\n },\n];\n\nconst getActiveBlockTransform = (controller: OpenEditorController) =>\n [\n \"taskList\",\n \"bulletList\",\n \"orderedList\",\n \"blockquote\",\n \"codeBlock\",\n \"heading1\",\n \"heading2\",\n \"heading3\",\n \"heading4\",\n \"heading5\",\n \"heading6\",\n \"paragraph\",\n ]\n .map((key) => blockTransformActions.find((action) => action.key === key))\n .find((action) => action?.isActive(controller)) ?? blockTransformActions[0];\n\nconst isHeadingKey = (key: string) => /^heading[1-6]$/.test(key);\n\nconst slashMenuIcons: Record<string, LucideIcon> = {\n paragraph: Pilcrow,\n ...Object.fromEntries(headingDefinitions.map(({ level, Icon }) => [`heading${level}`, Icon])),\n bulletList: List,\n orderedList: ListOrdered,\n taskList: ListTodo,\n blockquote: Quote,\n codeBlock: Code,\n divider: Minus,\n image: ImageIcon,\n columns: Columns2,\n table: Table,\n toggleList: ChevronRight,\n callout: MessageSquare,\n diagram: GitBranch,\n page: FileText,\n attachment: Upload,\n moveBlockUp: ArrowUp,\n moveBlockDown: ArrowDown,\n};\n\nconst getSlashMenuIcon = (item: OpenEditorSlashMenuItem) => item.icon ?? slashMenuIcons[item.key] ?? Type;\n\nconst pointRect = (left: number, top: number): OverlayRect => ({\n left,\n right: left,\n top,\n bottom: top,\n width: 0,\n height: 0,\n});\n\nconst getAnchorRect = (state: AnchoredOverlayState) => state.anchorRect ?? pointRect(state.left, state.top);\n\nconst toVirtualAnchor = (\n state: AnchoredOverlayState,\n contextElement?: Element | null,\n): VirtualAnchor => ({\n contextElement: contextElement ?? undefined,\n getBoundingClientRect: () => {\n const rect = getAnchorRect(state);\n return {\n ...rect,\n x: rect.left,\n y: rect.top,\n toJSON: () => rect,\n } as DOMRect;\n },\n});\n\nconst cx = (...classes: Array<string | false | null | undefined>) => classes.filter(Boolean).join(\" \");\n\nconst withBaseClass = <State,>(baseClassName: string, className?: string | ((state: State) => string | undefined)) => {\n if (typeof className === \"function\") {\n return (state: State) => cx(baseClassName, className(state));\n }\n\n return cx(baseClassName, className);\n};\n\nexport const OpenEditorButton = ({ className, ...props }: OpenEditorButtonProps) => (\n <Button className={withBaseClass<BaseButton.State>(\"oe-button\", className)} {...props} />\n);\n\nexport const OpenEditorToggle = <Value extends string = string>({\n className,\n ...props\n}: OpenEditorToggleProps<Value>) => (\n <Toggle<Value> className={withBaseClass<BaseToggle.State>(\"oe-button oe-toggle\", className)} {...props} />\n);\n\nexport const OpenEditorToggleGroup = <Value extends string = string>({\n className,\n ...props\n}: OpenEditorToggleGroupProps<Value>) => (\n <ToggleGroup<Value> className={withBaseClass<BaseToggleGroup.State>(\"oe-toggle-group\", className)} {...props} />\n);\n\nexport const OpenEditorInput = ({ className, ...props }: OpenEditorInputProps) => (\n <Input className={withBaseClass<BaseInput.State>(\"oe-input\", className)} {...props} />\n);\n\nconst OpenEditorLinkDialog = ({\n controller,\n open,\n onOpenChange,\n}: {\n controller: OpenEditorController;\n open: boolean;\n onOpenChange: (open: boolean) => void;\n}) => {\n const themeStyle = useOpenEditorThemeStyle();\n const [url, setUrl] = useState(\"\");\n\n useEffect(() => {\n if (open) {\n setUrl(controller.getActiveLink() ?? \"https://\");\n }\n }, [open]);\n\n const submitLink = (event: FormEvent<HTMLFormElement>) => {\n event.preventDefault();\n controller.setLink(url.trim());\n onOpenChange(false);\n };\n\n return (\n <Dialog.Root open={open} onOpenChange={onOpenChange}>\n <Dialog.Portal>\n <Dialog.Backdrop className=\"oe-dialog-backdrop\" />\n <Dialog.Popup className=\"oe-dialog\" initialFocus={false} style={themeStyle}>\n <Dialog.Close className=\"oe-dialog-close\" aria-label=\"Close link dialog\">\n <X aria-hidden=\"true\" size={15} strokeWidth={2} />\n </Dialog.Close>\n <form className=\"oe-link-dialog-form\" onSubmit={submitLink}>\n <Dialog.Title className=\"oe-dialog-title\">Link</Dialog.Title>\n <OpenEditorInput\n aria-label=\"Link URL\"\n autoComplete=\"url\"\n inputMode=\"url\"\n value={url}\n onValueChange={setUrl}\n placeholder=\"https://example.com\"\n />\n <div className=\"oe-dialog-actions\">\n <OpenEditorButton\n type=\"button\"\n className=\"oe-dialog-button oe-dialog-button-remove\"\n onClick={() => {\n controller.setLink(null);\n onOpenChange(false);\n }}\n >\n Remove\n </OpenEditorButton>\n <OpenEditorButton type=\"submit\" className=\"oe-dialog-button oe-dialog-button-primary\">Apply</OpenEditorButton>\n </div>\n </form>\n </Dialog.Popup>\n </Dialog.Portal>\n </Dialog.Root>\n );\n};\n\nconst SelectionButton = ({\n action,\n}: {\n action: SelectionAction;\n}) => (\n <Toolbar.Button\n type=\"button\"\n aria-label={action.label}\n aria-pressed={action.active}\n className=\"oe-toolbar-button\"\n data-active={action.active ? \"\" : undefined}\n onClick={action.run}\n >\n <action.Icon aria-hidden=\"true\" className=\"oe-toolbar-icon\" size={15} strokeWidth={2} />\n </Toolbar.Button>\n);\n\nconst SelectionBlockTransformMenu = ({\n controller,\n container,\n}: {\n controller: OpenEditorController;\n container?: HTMLElement | null;\n}) => {\n const themeStyle = useOpenEditorThemeStyle();\n const activeAction = getActiveBlockTransform(controller);\n const [menuOpen, setMenuOpen] = useState(false);\n const [headingPanelOpen, setHeadingPanelOpen] = useState(false);\n const headingActions = blockTransformActions.filter((action) => isHeadingKey(action.key));\n\n return (\n <Menu.Root\n modal={false}\n open={menuOpen}\n onOpenChange={(open) => {\n setMenuOpen(open);\n if (!open) setHeadingPanelOpen(false);\n }}\n >\n <Menu.Trigger\n type=\"button\"\n aria-label={`${activeAction.label}. Turn into`}\n className=\"oe-toolbar-button oe-block-transform-trigger\"\n onMouseDown={(event) => event.preventDefault()}\n >\n <activeAction.Icon aria-hidden=\"true\" className=\"oe-toolbar-icon\" size={15} strokeWidth={2} />\n <span className=\"oe-block-transform-trigger-label\">{activeAction.label}</span>\n <ChevronDown aria-hidden=\"true\" className=\"oe-toolbar-chevron\" size={12} strokeWidth={2} />\n </Menu.Trigger>\n <Menu.Portal container={container}>\n <Menu.Positioner\n positionMethod=\"fixed\"\n side=\"bottom\"\n align=\"start\"\n sideOffset={8}\n collisionPadding={12}\n collisionAvoidance={{ side: \"flip\", align: \"shift\", fallbackAxisSide: \"none\" }}\n >\n <Menu.Popup\n className=\"oe-cascade-menu\"\n style={themeStyle}\n onMouseLeave={() => setHeadingPanelOpen(false)}\n >\n <div className=\"oe-block-transform-menu oe-cascade-panel\">\n {blockTransformActions.map((action) => {\n if (isHeadingKey(action.key)) {\n if (action.key !== \"heading1\") return null;\n return (\n <Menu.Item\n closeOnClick={false}\n key=\"heading\"\n className=\"oe-block-transform-item\"\n data-active={isHeadingKey(activeAction.key) ? \"\" : undefined}\n label=\"Heading\"\n onClick={() => setHeadingPanelOpen(true)}\n onFocus={() => setHeadingPanelOpen(true)}\n onMouseEnter={() => setHeadingPanelOpen(true)}\n >\n <Heading1 aria-hidden=\"true\" className=\"oe-block-transform-icon\" size={15} strokeWidth={2} />\n <span>Heading</span>\n <ChevronRight aria-hidden=\"true\" className=\"oe-submenu-chevron\" size={13} strokeWidth={2} />\n </Menu.Item>\n );\n }\n\n const active = action.key === activeAction.key;\n return (\n <Menu.Item\n key={action.key}\n className=\"oe-block-transform-item\"\n data-active={active ? \"\" : undefined}\n label={action.label}\n onMouseEnter={() => setHeadingPanelOpen(false)}\n onClick={() => { if (!active) action.run(controller); }}\n >\n <action.Icon aria-hidden=\"true\" className=\"oe-block-transform-icon\" size={15} strokeWidth={2} />\n <span>{action.label}</span>\n </Menu.Item>\n );\n })}\n </div>\n {headingPanelOpen ? (\n <div className=\"oe-block-transform-menu oe-block-transform-submenu oe-cascade-panel\">\n {headingActions.map((headingAction) => {\n const headingActive = headingAction.key === activeAction.key;\n return (\n <button\n type=\"button\"\n key={headingAction.key}\n className=\"oe-block-transform-item\"\n data-active={headingActive ? \"\" : undefined}\n onMouseDown={(event) => event.preventDefault()}\n onClick={() => {\n if (!headingActive) headingAction.run(controller);\n setMenuOpen(false);\n }}\n role=\"menuitem\"\n >\n <headingAction.Icon aria-hidden=\"true\" className=\"oe-block-transform-icon\" size={15} strokeWidth={2} />\n <span>{headingAction.label}</span>\n </button>\n );\n })}\n </div>\n ) : null}\n </Menu.Popup>\n </Menu.Positioner>\n </Menu.Portal>\n </Menu.Root>\n );\n};\n\nexport const OpenEditorSelectionBubble = ({\n controller,\n className = \"oe-bubble-menu\",\n container,\n}: OpenEditorSelectionBubbleProps) => {\n const themeStyle = useOpenEditorThemeStyle();\n const { selectionBubbleState } = controller;\n const rootElement = controller.getRootElement();\n const [linkDialogOpen, setLinkDialogOpen] = useState(false);\n const lastAnchorRef = useRef<AnchoredOverlayState | null>(null);\n\n if (selectionBubbleState) {\n lastAnchorRef.current = selectionBubbleState;\n }\n\n const anchor = useMemo(\n () => {\n const anchorState = selectionBubbleState ?? lastAnchorRef.current;\n return anchorState ? toVirtualAnchor(anchorState, rootElement) : null;\n },\n [rootElement, selectionBubbleState],\n );\n\n const actions: SelectionAction[] = controller.ready\n ? [\n {\n key: \"bold\",\n label: \"Bold\",\n active: controller.isActive(\"bold\"),\n Icon: Bold,\n run: () => controller.toggleBold(),\n },\n {\n key: \"italic\",\n label: \"Italic\",\n active: controller.isActive(\"italic\"),\n Icon: Italic,\n run: () => controller.toggleItalic(),\n },\n {\n key: \"underline\",\n label: \"Underline\",\n active: controller.isActive(\"underline\"),\n Icon: Underline,\n run: () => controller.toggleUnderline(),\n },\n {\n key: \"strike\",\n label: \"Strikethrough\",\n active: controller.isActive(\"strike\"),\n Icon: Strikethrough,\n run: () => controller.toggleStrike(),\n },\n {\n key: \"code\",\n label: \"Inline code\",\n active: controller.isActive(\"code\"),\n Icon: Code,\n run: () => controller.toggleInlineCode(),\n },\n ]\n : [];\n\n if (!controller.ready || (!selectionBubbleState && !linkDialogOpen)) {\n return null;\n }\n\n return (\n <>\n <Popover.Root open={Boolean(selectionBubbleState)} modal={false}>\n <Popover.Portal container={container}>\n <Popover.Positioner\n anchor={anchor}\n positionMethod=\"fixed\"\n side=\"top\"\n align=\"center\"\n sideOffset={10}\n collisionPadding={12}\n collisionAvoidance={{ side: \"flip\", align: \"shift\", fallbackAxisSide: \"none\" }}\n >\n <Popover.Popup\n className={className}\n style={themeStyle}\n onMouseDown={(event) => event.preventDefault()}\n >\n <Toolbar.Root className=\"oe-selection-toolbar\" aria-label=\"Selection formatting\">\n <SelectionBlockTransformMenu controller={controller} container={container} />\n {actions.map((action) => (\n <SelectionButton key={action.key} action={action} />\n ))}\n <Toolbar.Button\n type=\"button\"\n aria-label=\"Link\"\n className=\"oe-toolbar-button\"\n data-active={controller.isActive(\"link\") ? \"\" : undefined}\n onClick={() => setLinkDialogOpen(true)}\n >\n <Link aria-hidden=\"true\" className=\"oe-toolbar-icon\" size={15} strokeWidth={2} />\n </Toolbar.Button>\n </Toolbar.Root>\n </Popover.Popup>\n </Popover.Positioner>\n </Popover.Portal>\n </Popover.Root>\n <OpenEditorLinkDialog\n controller={controller}\n open={linkDialogOpen}\n onOpenChange={setLinkDialogOpen}\n />\n </>\n );\n};\n\nexport const OpenEditorSlashMenu = ({\n controller,\n className = \"oe-slash-menu\",\n items,\n container,\n}: OpenEditorSlashMenuProps) => {\n const themeStyle = useOpenEditorThemeStyle();\n const slashMenuItems = sortSlashMenuItems(items ?? getDefaultSlashMenuItems(controller));\n const slashState = controller.slashState;\n const [headingPanelOpen, setHeadingPanelOpen] = useState(false);\n const anchor = useMemo(\n () =>\n slashState\n ? toVirtualAnchor(\n slashState,\n controller.getRootElement(),\n )\n : null,\n [controller, slashState],\n );\n\n useEffect(() => setHeadingPanelOpen(false), [slashState?.query]);\n\n if (!slashState) {\n return null;\n }\n\n const matchingItems = slashMenuItems.filter((item) => {\n const haystack = `${item.label} ${item.group} ${item.keywords?.join(\" \") ?? \"\"}`.toLowerCase();\n return haystack.includes(slashState.query.toLowerCase());\n });\n const firstHeadingKey = matchingItems.find((item) => isHeadingKey(item.key))?.key;\n\n return (\n <Popover.Root open modal={false}>\n <Popover.Portal container={container}>\n <Popover.Positioner\n anchor={anchor}\n positionMethod=\"fixed\"\n side=\"bottom\"\n align=\"start\"\n sideOffset={8}\n collisionPadding={12}\n collisionAvoidance={{ side: \"flip\", align: \"shift\", fallbackAxisSide: \"none\" }}\n >\n <Popover.Popup\n className=\"oe-cascade-menu\"\n style={themeStyle}\n finalFocus={false}\n initialFocus={false}\n onMouseLeave={() => setHeadingPanelOpen(false)}\n >\n <div className={`${className} oe-cascade-panel`}>\n <div className=\"oe-slash-menu-scroll\">\n {matchingItems.map((item) => {\n if (isHeadingKey(item.key)) {\n if (item.key !== firstHeadingKey) return null;\n\n return (\n <button\n type=\"button\"\n key=\"heading\"\n className=\"oe-slash-menu-item\"\n onClick={() => setHeadingPanelOpen(true)}\n onFocus={() => setHeadingPanelOpen(true)}\n onMouseEnter={() => setHeadingPanelOpen(true)}\n onMouseDown={(event) => event.preventDefault()}\n >\n <Heading1 aria-hidden=\"true\" className=\"oe-slash-menu-icon\" size={15} strokeWidth={2} />\n <span>Heading</span>\n <ChevronRight aria-hidden=\"true\" className=\"oe-submenu-chevron\" size={13} strokeWidth={2} />\n </button>\n );\n }\n\n const Icon = getSlashMenuIcon(item);\n\n return (\n <button\n type=\"button\"\n key={item.key}\n className=\"oe-slash-menu-item\"\n onMouseEnter={() => setHeadingPanelOpen(false)}\n onMouseDown={(event) => event.preventDefault()}\n onClick={() => {\n item.execute({ controller, range: { from: slashState.from, to: slashState.to } });\n }}\n >\n <Icon aria-hidden={true} className=\"oe-slash-menu-icon\" size={15} strokeWidth={2} />\n <span>{item.label}</span>\n </button>\n );\n })}\n </div>\n </div>\n {headingPanelOpen ? (\n <div className=\"oe-slash-menu oe-slash-submenu oe-cascade-panel\">\n {matchingItems.filter((item) => isHeadingKey(item.key)).map((headingItem) => {\n const HeadingIcon = getSlashMenuIcon(headingItem);\n return (\n <button\n type=\"button\"\n key={headingItem.key}\n className=\"oe-slash-menu-item\"\n onMouseDown={(event) => event.preventDefault()}\n onClick={() => {\n headingItem.execute({ controller, range: { from: slashState.from, to: slashState.to } });\n }}\n role=\"menuitem\"\n >\n <HeadingIcon aria-hidden={true} className=\"oe-slash-menu-icon\" size={15} strokeWidth={2} />\n <span>{headingItem.label}</span>\n </button>\n );\n })}\n </div>\n ) : null}\n </Popover.Popup>\n </Popover.Positioner>\n </Popover.Portal>\n </Popover.Root>\n );\n};\n\ntype ResolvedBlockAction = OpenEditorBlockAction & {\n Icon?: LucideIcon;\n};\n\nconst builtInBlockActions = (\n controller: OpenEditorController,\n block: OpenEditorBlockRef,\n): ResolvedBlockAction[] => [\n {\n id: \"move-up\",\n label: \"Move up\",\n group: \"move\",\n Icon: ArrowUp,\n disabled: () => !controller.canMoveBlock(-1, block),\n run: () => { controller.moveBlock(-1, block); },\n },\n {\n id: \"move-down\",\n label: \"Move down\",\n group: \"move\",\n Icon: ArrowDown,\n disabled: () => !controller.canMoveBlock(1, block),\n run: () => { controller.moveBlock(1, block); },\n },\n {\n id: \"copy\",\n label: \"Copy block\",\n group: \"edit\",\n Icon: Copy,\n run: () => controller.copyBlock(block),\n },\n {\n id: \"duplicate\",\n label: \"Duplicate\",\n group: \"edit\",\n Icon: CopyPlus,\n run: () => { controller.duplicateBlock(block); },\n },\n {\n id: \"delete\",\n label: \"Delete\",\n group: \"danger\",\n Icon: Trash2,\n run: () => { controller.deleteBlock(block); },\n },\n];\n\nexport const OpenEditorBlockMenu = ({\n controller,\n className,\n container,\n}: OpenEditorBlockMenuProps) => {\n const interaction = useOpenEditorBlockInteraction(controller);\n const block = interaction.activeBlock;\n const themeStyle = useOpenEditorThemeStyle();\n const [open, setOpen] = useState(false);\n const handleElementRef = useRef<HTMLDivElement | null>(null);\n const lastBlockRef = useRef<OpenEditorBlockRef | null>(null);\n if (block) lastBlockRef.current = block;\n const activeBlock = block ?? (open ? lastBlockRef.current : null);\n\n if (!controller.editable) return null;\n const handle = (\n <OpenEditorBlockDragHandle\n ariaLabel={activeBlock\n ? `Actions for ${activeBlock.blockName ?? activeBlock.nodeType} block`\n : undefined}\n className=\"oe-block-handle-anchor\"\n controller={controller}\n elementRef={handleElementRef}\n expanded={open}\n onActivate={() => {\n const nextOpen = !open;\n setOpen(nextOpen);\n controller.setBlockHandleLocked(nextOpen);\n if (nextOpen && activeBlock) controller.selectBlock(activeBlock);\n }}\n onDraggingChange={(dragging) => {\n if (dragging) setOpen(false);\n }}\n >\n {activeBlock ? (\n <span aria-hidden=\"true\" className={cx(\"oe-block-handle\", className)}>\n <GripVertical aria-hidden=\"true\" size={16} strokeWidth={2} />\n </span>\n ) : null}\n </OpenEditorBlockDragHandle>\n );\n const actions: ResolvedBlockAction[] = activeBlock\n ? [...builtInBlockActions(controller, activeBlock), ...controller.blockActions]\n : [];\n return (\n <Menu.Root modal={false} open={open} onOpenChange={(nextOpen) => {\n setOpen(nextOpen);\n controller.setBlockHandleLocked(nextOpen);\n if (nextOpen && activeBlock) controller.selectBlock(activeBlock);\n }}>\n {handle}\n {activeBlock ? <Menu.Portal container={container}>\n <Menu.Positioner\n align=\"start\"\n anchor={handleElementRef}\n collisionAvoidance={{ side: \"flip\", align: \"shift\", fallbackAxisSide: \"none\" }}\n collisionPadding={12}\n positionMethod=\"fixed\"\n side=\"bottom\"\n sideOffset={8}\n >\n <Menu.Popup\n aria-label={activeBlock\n ? `Actions for ${activeBlock.blockName ?? activeBlock.nodeType} block`\n : \"Block actions\"}\n className=\"oe-block-menu\"\n style={themeStyle}\n >\n {actions.map((action, index) => {\n const previous = actions[index - 1];\n const Icon = action.Icon;\n const context = { controller, block: activeBlock };\n return (\n <Fragment key={action.id}>\n {previous && previous.group !== action.group ? <Menu.Separator className=\"oe-block-menu-separator\" /> : null}\n <Menu.Item\n className=\"oe-block-menu-item\"\n data-danger={action.group === \"danger\" ? \"\" : undefined}\n disabled={action.disabled?.(context)}\n onClick={() => { void action.run(context); }}\n >\n {Icon ? <Icon aria-hidden=\"true\" size={15} strokeWidth={2} /> : <span aria-hidden=\"true\" className=\"oe-block-menu-icon-placeholder\" />}\n <span>{action.label}</span>\n </Menu.Item>\n </Fragment>\n );\n })}\n </Menu.Popup>\n </Menu.Positioner>\n </Menu.Portal> : null}\n </Menu.Root>\n );\n};\n\nexport const OpenEditor = ({\n className = \"oe-editor-surface\",\n contentClassName,\n overlayContainer,\n theme,\n ...props\n}: OpenEditorProps) => {\n const controller = useOpenEditorController(props);\n\n const editor = (\n <div className={className}>\n <OpenEditorContent controller={controller} className={contentClassName} />\n <OpenEditorBlockMenu controller={controller} container={overlayContainer} />\n <OpenEditorSelectionBubble controller={controller} container={overlayContainer} />\n <OpenEditorSlashMenu controller={controller} container={overlayContainer} />\n </div>\n );\n return theme ? <OpenEditorThemeProvider theme={theme}>{editor}</OpenEditorThemeProvider> : editor;\n};\n\nexport { OpenEditorContent, useOpenEditorController };\nexport type {\n OpenEditorBlockAction,\n OpenEditorBlockRef,\n OpenEditorController,\n OpenEditorReactProps,\n OpenEditorSlashMenuIcon,\n OpenEditorSlashMenuIconProps,\n OpenEditorSlashMenuItem,\n} from \"@openeditor/react\";\n"]}
1
+ {"version":3,"sources":["../src/table-menu.tsx","../src/index.tsx"],"names":["ImageIcon","jsx","useOpenEditorThemeStyle","jsxs","Toolbar","Menu","ChevronDown","Fragment","Trash2","OpenEditorThemeProvider"],"mappings":"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","file":"index.js","sourcesContent":["import { Menu } from \"@base-ui/react/menu\";\nimport { Toolbar } from \"@base-ui/react/toolbar\";\nimport {\n OpenEditorTableBubbleMenu,\n useOpenEditorThemeStyle,\n type OpenEditorController,\n type OpenEditorTableCommand,\n type OpenEditorTableState,\n} from \"@openeditor/react\";\nimport {\n BetweenHorizontalEnd,\n BetweenHorizontalStart,\n BetweenVerticalEnd,\n BetweenVerticalStart,\n ChevronDown,\n Columns3,\n PanelLeft,\n PanelTop,\n Rows3,\n TableCellsMerge,\n TableCellsSplit,\n Trash2,\n type LucideIcon,\n} from \"lucide-react\";\nimport type { MouseEvent as ReactMouseEvent, ReactNode } from \"react\";\n\nexport type OpenEditorTableMenuProps = {\n controller: OpenEditorController;\n className?: string;\n container?: HTMLElement | null;\n};\n\ntype TableAction = {\n command: OpenEditorTableCommand;\n label: string;\n Icon: LucideIcon;\n danger?: boolean;\n};\n\nconst runTableCommandOnMouseDown = (\n event: ReactMouseEvent<HTMLElement>,\n controller: OpenEditorController,\n command: OpenEditorTableCommand,\n) => {\n if (event.button !== 0) return;\n event.preventDefault();\n controller.table.run(command);\n};\n\nconst runTableCommandOnKeyboardClick = (\n event: ReactMouseEvent<HTMLElement>,\n controller: OpenEditorController,\n command: OpenEditorTableCommand,\n) => {\n // Pointer activation already ran on mousedown, before a portaled menu can\n // blur and unmount its owning table bubble. Keyboard clicks have detail 0.\n if (event.detail === 0) controller.table.run(command);\n};\n\nconst TableActionMenu = ({\n controller,\n container,\n label,\n Icon,\n actions,\n}: {\n controller: OpenEditorController;\n container?: HTMLElement | null;\n label: string;\n Icon: LucideIcon;\n actions: readonly TableAction[];\n}) => {\n const themeStyle = useOpenEditorThemeStyle();\n return (\n <Menu.Root modal={false}>\n <Menu.Trigger\n aria-label={`${label} actions`}\n className=\"oe-table-toolbar-trigger\"\n onMouseDown={(event) => event.preventDefault()}\n type=\"button\"\n >\n <Icon aria-hidden=\"true\" size={15} strokeWidth={2} />\n <span>{label}</span>\n <ChevronDown aria-hidden=\"true\" size={12} strokeWidth={2} />\n </Menu.Trigger>\n <Menu.Portal container={container}>\n <Menu.Positioner\n align=\"start\"\n collisionAvoidance={{ side: \"flip\", align: \"shift\", fallbackAxisSide: \"none\" }}\n collisionPadding={12}\n positionMethod=\"fixed\"\n side=\"bottom\"\n sideOffset={8}\n >\n <Menu.Popup aria-label={`${label} actions`} className=\"oe-table-action-menu\" style={themeStyle}>\n {actions.map((action) => (\n <Menu.Item\n className=\"oe-table-action-item\"\n data-danger={action.danger ? \"\" : undefined}\n disabled={!controller.table.can(action.command)}\n key={action.command}\n onClick={(event) => runTableCommandOnKeyboardClick(event, controller, action.command)}\n onMouseDown={(event) => runTableCommandOnMouseDown(event, controller, action.command)}\n >\n <action.Icon aria-hidden=\"true\" size={15} strokeWidth={2} />\n <span>{action.label}</span>\n </Menu.Item>\n ))}\n </Menu.Popup>\n </Menu.Positioner>\n </Menu.Portal>\n </Menu.Root>\n );\n};\n\nconst TableToolbarButton = ({\n active,\n children,\n controller,\n command,\n label,\n danger,\n}: {\n active?: boolean;\n children: ReactNode;\n controller: OpenEditorController;\n command: OpenEditorTableCommand;\n label: string;\n danger?: boolean;\n}) => (\n <Toolbar.Button\n aria-label={label}\n className=\"oe-table-toolbar-button\"\n data-active={active ? \"\" : undefined}\n data-danger={danger ? \"\" : undefined}\n disabled={!controller.table.can(command)}\n onClick={(event) => runTableCommandOnKeyboardClick(event, controller, command)}\n onMouseDown={(event) => runTableCommandOnMouseDown(event, controller, command)}\n title={label}\n type=\"button\"\n >\n {children}\n </Toolbar.Button>\n);\n\nconst rowActions: readonly TableAction[] = [\n { command: \"addRowBefore\", label: \"Insert row above\", Icon: BetweenHorizontalStart },\n { command: \"addRowAfter\", label: \"Insert row below\", Icon: BetweenHorizontalEnd },\n { command: \"deleteRow\", label: \"Delete row\", Icon: Trash2, danger: true },\n];\n\nconst columnActions: readonly TableAction[] = [\n { command: \"addColumnBefore\", label: \"Insert column left\", Icon: BetweenVerticalStart },\n { command: \"addColumnAfter\", label: \"Insert column right\", Icon: BetweenVerticalEnd },\n { command: \"deleteColumn\", label: \"Delete column\", Icon: Trash2, danger: true },\n];\n\nconst TableToolbar = ({\n controller,\n container,\n state,\n}: {\n controller: OpenEditorController;\n container?: HTMLElement | null;\n state: OpenEditorTableState;\n}) => (\n <div onMouseDown={(event) => event.preventDefault()}>\n <Toolbar.Root aria-label=\"Table editing\" className=\"oe-table-toolbar\">\n <TableActionMenu\n actions={rowActions}\n container={container}\n controller={controller}\n Icon={Rows3}\n label=\"Row\"\n />\n <TableActionMenu\n actions={columnActions}\n container={container}\n controller={controller}\n Icon={Columns3}\n label=\"Column\"\n />\n <span aria-hidden=\"true\" className=\"oe-table-toolbar-separator\" />\n <TableToolbarButton\n active={state.headerRow}\n command=\"toggleHeaderRow\"\n controller={controller}\n label={state.headerRow ? \"Remove header row\" : \"Make first row a header\"}\n >\n <PanelTop aria-hidden=\"true\" size={15} strokeWidth={2} />\n </TableToolbarButton>\n <TableToolbarButton\n active={state.headerColumn}\n command=\"toggleHeaderColumn\"\n controller={controller}\n label={state.headerColumn ? \"Remove header column\" : \"Make first column a header\"}\n >\n <PanelLeft aria-hidden=\"true\" size={15} strokeWidth={2} />\n </TableToolbarButton>\n {state.canSplitCell ? (\n <TableToolbarButton command=\"splitCell\" controller={controller} label=\"Split cell\">\n <TableCellsSplit aria-hidden=\"true\" size={15} strokeWidth={2} />\n </TableToolbarButton>\n ) : (\n <TableToolbarButton command=\"mergeCells\" controller={controller} label=\"Merge selected cells\">\n <TableCellsMerge aria-hidden=\"true\" size={15} strokeWidth={2} />\n </TableToolbarButton>\n )}\n <span aria-hidden=\"true\" className=\"oe-table-toolbar-separator\" />\n <TableToolbarButton command=\"deleteTable\" controller={controller} danger label=\"Delete table\">\n <Trash2 aria-hidden=\"true\" size={15} strokeWidth={2} />\n </TableToolbarButton>\n </Toolbar.Root>\n </div>\n);\n\nexport const OpenEditorTableMenu = ({\n controller,\n className = \"oe-table-menu\",\n container,\n}: OpenEditorTableMenuProps) => {\n const themeStyle = useOpenEditorThemeStyle();\n if (!controller.ready) return null;\n return (\n <OpenEditorTableBubbleMenu\n className={className}\n container={container}\n controller={controller}\n style={themeStyle}\n >\n {(state) => <TableToolbar container={container} controller={controller} state={state} />}\n </OpenEditorTableBubbleMenu>\n );\n};\n","import \"./styles.css\";\nimport { OpenEditorTableMenu } from \"./table-menu\";\nexport { OpenEditorTableMenu, type OpenEditorTableMenuProps } from \"./table-menu\";\nexport {\n createOpenEditorThemeStyle,\n OpenEditorThemeProvider,\n openEditorThemeTokenNames,\n type OpenEditorTheme,\n type OpenEditorThemeStyle,\n type OpenEditorThemeToken,\n} from \"@openeditor/react\";\nexport { OpenEditorEmojiPicker, type OpenEditorEmojiPickerProps } from \"@openeditor/emoji\";\nimport { Button, type Button as BaseButton } from \"@base-ui/react/button\";\nimport { Dialog } from \"@base-ui/react/dialog\";\nimport { Input, type Input as BaseInput } from \"@base-ui/react/input\";\nimport { Menu } from \"@base-ui/react/menu\";\nimport { Popover } from \"@base-ui/react/popover\";\nimport { Toggle, type Toggle as BaseToggle } from \"@base-ui/react/toggle\";\nimport { ToggleGroup, type ToggleGroup as BaseToggleGroup } from \"@base-ui/react/toggle-group\";\nimport { Toolbar } from \"@base-ui/react/toolbar\";\nimport {\n ArrowDown,\n ArrowUp,\n Bold,\n Copy,\n CopyPlus,\n ChevronDown,\n ChevronRight,\n Columns2,\n Code,\n FileText,\n GitBranch,\n GripVertical,\n Heading1,\n Heading2,\n Heading3,\n Heading4,\n Heading5,\n Heading6,\n Image as ImageIcon,\n Italic,\n Link,\n List,\n ListOrdered,\n ListTodo,\n MessageSquare,\n Minus,\n Pilcrow,\n Quote,\n Strikethrough,\n Table,\n Trash2,\n Type,\n Underline,\n Upload,\n X,\n type LucideIcon,\n} from \"lucide-react\";\nimport {\n getDefaultSlashMenuItems,\n OpenEditorBubbleMenu,\n OpenEditorBlockDragHandle,\n OpenEditorContent,\n sortSlashMenuItems,\n useOpenEditorBlockInteraction,\n useOpenEditorController,\n type OpenEditorController,\n type OpenEditorBlockAction,\n type OpenEditorBlockRef,\n type OpenEditorReactProps,\n type OpenEditorSlashMenuItem,\n OpenEditorThemeProvider,\n useOpenEditorThemeStyle,\n type OpenEditorTheme,\n} from \"@openeditor/react\";\nimport {\n Fragment,\n useCallback,\n useEffect,\n useId,\n useMemo,\n useRef,\n useState,\n type FormEvent,\n} from \"react\";\n\nexport type OpenEditorSlashMenuProps = {\n controller: OpenEditorController;\n className?: string;\n items?: readonly OpenEditorSlashMenuItem[];\n container?: HTMLElement | null;\n};\n\nexport type OpenEditorSelectionBubbleProps = {\n controller: OpenEditorController;\n className?: string;\n container?: HTMLElement | null;\n};\n\nexport type OpenEditorBlockMenuProps = {\n controller: OpenEditorController;\n className?: string;\n container?: HTMLElement | null;\n};\n\nexport type OpenEditorProps = OpenEditorReactProps & {\n className?: string;\n contentClassName?: string;\n overlayContainer?: HTMLElement | null;\n theme?: OpenEditorTheme;\n};\n\nexport type OpenEditorButtonProps = BaseButton.Props;\nexport type OpenEditorToggleProps<Value extends string = string> = BaseToggle.Props<Value>;\nexport type OpenEditorToggleGroupProps<Value extends string = string> = BaseToggleGroup.Props<Value>;\nexport type OpenEditorInputProps = BaseInput.Props;\n\ntype OverlayRect = {\n left: number;\n right: number;\n top: number;\n bottom: number;\n width: number;\n height: number;\n};\n\ntype AnchoredOverlayState = {\n left: number;\n top: number;\n anchorRect?: OverlayRect;\n};\n\ntype VirtualAnchor = {\n contextElement?: Element;\n getBoundingClientRect: () => DOMRect;\n};\n\ntype SelectionAction = {\n key: string;\n label: string;\n active: boolean;\n Icon: LucideIcon;\n run: () => void;\n};\n\ntype BlockTransformAction = {\n key: string;\n label: string;\n Icon: LucideIcon;\n isActive: (controller: OpenEditorController) => boolean;\n run: (controller: OpenEditorController) => void;\n};\n\nconst headingDefinitions = [\n { level: 1, Icon: Heading1 },\n { level: 2, Icon: Heading2 },\n { level: 3, Icon: Heading3 },\n { level: 4, Icon: Heading4 },\n { level: 5, Icon: Heading5 },\n { level: 6, Icon: Heading6 },\n] as const;\n\nconst blockTransformActions: BlockTransformAction[] = [\n {\n key: \"paragraph\",\n label: \"Paragraph\",\n Icon: Pilcrow,\n isActive: (controller) => controller.isActive(\"paragraph\"),\n run: (controller) => controller.setParagraph(),\n },\n ...headingDefinitions.map(({ level, Icon }) => ({\n key: `heading${level}`,\n label: `Heading ${level}`,\n Icon,\n isActive: (controller: OpenEditorController) => controller.isActive(\"heading\", { level }),\n run: (controller: OpenEditorController) => controller.toggleHeading(level),\n })),\n {\n key: \"bulletList\",\n label: \"Bullet List\",\n Icon: List,\n isActive: (controller) => controller.isActive(\"bulletList\"),\n run: (controller) => controller.toggleBulletList(),\n },\n {\n key: \"orderedList\",\n label: \"Numbered List\",\n Icon: ListOrdered,\n isActive: (controller) => controller.isActive(\"orderedList\"),\n run: (controller) => controller.toggleOrderedList(),\n },\n {\n key: \"taskList\",\n label: \"Task List\",\n Icon: ListTodo,\n isActive: (controller) => controller.isActive(\"taskList\"),\n run: (controller) => controller.toggleTaskList(),\n },\n {\n key: \"blockquote\",\n label: \"Quote\",\n Icon: Quote,\n isActive: (controller) => controller.isActive(\"blockquote\"),\n run: (controller) => controller.toggleBlockquote(),\n },\n {\n key: \"codeBlock\",\n label: \"Code\",\n Icon: Code,\n isActive: (controller) => controller.isActive(\"codeBlock\"),\n run: (controller) => controller.toggleCodeBlock(),\n },\n];\n\nconst getActiveBlockTransform = (controller: OpenEditorController) =>\n [\n \"taskList\",\n \"bulletList\",\n \"orderedList\",\n \"blockquote\",\n \"codeBlock\",\n \"heading1\",\n \"heading2\",\n \"heading3\",\n \"heading4\",\n \"heading5\",\n \"heading6\",\n \"paragraph\",\n ]\n .map((key) => blockTransformActions.find((action) => action.key === key))\n .find((action) => action?.isActive(controller)) ?? blockTransformActions[0];\n\nconst isHeadingKey = (key: string) => /^heading[1-6]$/.test(key);\n\nconst slashMenuIcons: Record<string, LucideIcon> = {\n paragraph: Pilcrow,\n ...Object.fromEntries(headingDefinitions.map(({ level, Icon }) => [`heading${level}`, Icon])),\n bulletList: List,\n orderedList: ListOrdered,\n taskList: ListTodo,\n blockquote: Quote,\n codeBlock: Code,\n divider: Minus,\n image: ImageIcon,\n columns: Columns2,\n table: Table,\n toggleList: ChevronRight,\n callout: MessageSquare,\n diagram: GitBranch,\n page: FileText,\n attachment: Upload,\n moveBlockUp: ArrowUp,\n moveBlockDown: ArrowDown,\n};\n\nconst getSlashMenuIcon = (item: OpenEditorSlashMenuItem) => item.icon ?? slashMenuIcons[item.key] ?? Type;\n\nconst pointRect = (left: number, top: number): OverlayRect => ({\n left,\n right: left,\n top,\n bottom: top,\n width: 0,\n height: 0,\n});\n\nconst getAnchorRect = (state: AnchoredOverlayState) => state.anchorRect ?? pointRect(state.left, state.top);\n\nconst toVirtualAnchor = (\n state: AnchoredOverlayState,\n contextElement?: Element | null,\n resolveRect?: () => OverlayRect | null,\n): VirtualAnchor => ({\n contextElement: contextElement ?? undefined,\n getBoundingClientRect: () => {\n const rect = resolveRect?.() ?? getAnchorRect(state);\n return {\n ...rect,\n x: rect.left,\n y: rect.top,\n toJSON: () => rect,\n } as DOMRect;\n },\n});\n\nconst cx = (...classes: Array<string | false | null | undefined>) => classes.filter(Boolean).join(\" \");\n\nconst withBaseClass = <State,>(baseClassName: string, className?: string | ((state: State) => string | undefined)) => {\n if (typeof className === \"function\") {\n return (state: State) => cx(baseClassName, className(state));\n }\n\n return cx(baseClassName, className);\n};\n\nexport const OpenEditorButton = ({ className, ...props }: OpenEditorButtonProps) => (\n <Button className={withBaseClass<BaseButton.State>(\"oe-button\", className)} {...props} />\n);\n\nexport const OpenEditorToggle = <Value extends string = string>({\n className,\n ...props\n}: OpenEditorToggleProps<Value>) => (\n <Toggle<Value> className={withBaseClass<BaseToggle.State>(\"oe-button oe-toggle\", className)} {...props} />\n);\n\nexport const OpenEditorToggleGroup = <Value extends string = string>({\n className,\n ...props\n}: OpenEditorToggleGroupProps<Value>) => (\n <ToggleGroup<Value> className={withBaseClass<BaseToggleGroup.State>(\"oe-toggle-group\", className)} {...props} />\n);\n\nexport const OpenEditorInput = ({ className, ...props }: OpenEditorInputProps) => (\n <Input className={withBaseClass<BaseInput.State>(\"oe-input\", className)} {...props} />\n);\n\nconst OpenEditorLinkDialog = ({\n controller,\n open,\n onOpenChange,\n}: {\n controller: OpenEditorController;\n open: boolean;\n onOpenChange: (open: boolean) => void;\n}) => {\n const themeStyle = useOpenEditorThemeStyle();\n const [url, setUrl] = useState(\"\");\n\n useEffect(() => {\n if (open) {\n setUrl(controller.getActiveLink() ?? \"https://\");\n }\n }, [open]);\n\n const submitLink = (event: FormEvent<HTMLFormElement>) => {\n event.preventDefault();\n controller.setLink(url.trim());\n onOpenChange(false);\n };\n\n return (\n <Dialog.Root open={open} onOpenChange={onOpenChange}>\n <Dialog.Portal>\n <Dialog.Backdrop className=\"oe-dialog-backdrop\" />\n <Dialog.Popup className=\"oe-dialog\" initialFocus={false} style={themeStyle}>\n <Dialog.Close className=\"oe-dialog-close\" aria-label=\"Close link dialog\">\n <X aria-hidden=\"true\" size={15} strokeWidth={2} />\n </Dialog.Close>\n <form className=\"oe-link-dialog-form\" onSubmit={submitLink}>\n <Dialog.Title className=\"oe-dialog-title\">Link</Dialog.Title>\n <OpenEditorInput\n aria-label=\"Link URL\"\n autoComplete=\"url\"\n inputMode=\"url\"\n value={url}\n onValueChange={setUrl}\n placeholder=\"https://example.com\"\n />\n <div className=\"oe-dialog-actions\">\n <OpenEditorButton\n type=\"button\"\n className=\"oe-dialog-button oe-dialog-button-remove\"\n onClick={() => {\n controller.setLink(null);\n onOpenChange(false);\n }}\n >\n Remove\n </OpenEditorButton>\n <OpenEditorButton type=\"submit\" className=\"oe-dialog-button oe-dialog-button-primary\">Apply</OpenEditorButton>\n </div>\n </form>\n </Dialog.Popup>\n </Dialog.Portal>\n </Dialog.Root>\n );\n};\n\nconst SelectionButton = ({\n action,\n}: {\n action: SelectionAction;\n}) => (\n <Toolbar.Button\n type=\"button\"\n aria-label={action.label}\n aria-pressed={action.active}\n className=\"oe-toolbar-button\"\n data-active={action.active ? \"\" : undefined}\n onClick={action.run}\n >\n <action.Icon aria-hidden=\"true\" className=\"oe-toolbar-icon\" size={15} strokeWidth={2} />\n </Toolbar.Button>\n);\n\nconst SelectionBlockTransformMenu = ({\n controller,\n container,\n}: {\n controller: OpenEditorController;\n container?: HTMLElement | null;\n}) => {\n const themeStyle = useOpenEditorThemeStyle();\n const activeAction = getActiveBlockTransform(controller);\n const [menuOpen, setMenuOpen] = useState(false);\n const [headingPanelOpen, setHeadingPanelOpen] = useState(false);\n const headingActions = blockTransformActions.filter((action) => isHeadingKey(action.key));\n\n return (\n <Menu.Root\n modal={false}\n open={menuOpen}\n onOpenChange={(open) => {\n setMenuOpen(open);\n if (!open) setHeadingPanelOpen(false);\n }}\n >\n <Menu.Trigger\n type=\"button\"\n aria-label={`${activeAction.label}. Turn into`}\n className=\"oe-toolbar-button oe-block-transform-trigger\"\n onMouseDown={(event) => event.preventDefault()}\n >\n <activeAction.Icon aria-hidden=\"true\" className=\"oe-toolbar-icon\" size={15} strokeWidth={2} />\n <span className=\"oe-block-transform-trigger-label\">{activeAction.label}</span>\n <ChevronDown aria-hidden=\"true\" className=\"oe-toolbar-chevron\" size={12} strokeWidth={2} />\n </Menu.Trigger>\n <Menu.Portal container={container}>\n <Menu.Positioner\n positionMethod=\"fixed\"\n side=\"bottom\"\n align=\"start\"\n sideOffset={8}\n collisionPadding={12}\n collisionAvoidance={{ side: \"flip\", align: \"shift\", fallbackAxisSide: \"none\" }}\n >\n <Menu.Popup\n className=\"oe-cascade-menu\"\n style={themeStyle}\n onMouseLeave={() => setHeadingPanelOpen(false)}\n >\n <div className=\"oe-block-transform-menu oe-cascade-panel\">\n {blockTransformActions.map((action) => {\n if (isHeadingKey(action.key)) {\n if (action.key !== \"heading1\") return null;\n return (\n <Menu.Item\n closeOnClick={false}\n key=\"heading\"\n className=\"oe-block-transform-item\"\n data-active={isHeadingKey(activeAction.key) ? \"\" : undefined}\n label=\"Heading\"\n onClick={() => setHeadingPanelOpen(true)}\n onFocus={() => setHeadingPanelOpen(true)}\n onMouseEnter={() => setHeadingPanelOpen(true)}\n >\n <Heading1 aria-hidden=\"true\" className=\"oe-block-transform-icon\" size={15} strokeWidth={2} />\n <span>Heading</span>\n <ChevronRight aria-hidden=\"true\" className=\"oe-submenu-chevron\" size={13} strokeWidth={2} />\n </Menu.Item>\n );\n }\n\n const active = action.key === activeAction.key;\n return (\n <Menu.Item\n key={action.key}\n className=\"oe-block-transform-item\"\n data-active={active ? \"\" : undefined}\n label={action.label}\n onMouseEnter={() => setHeadingPanelOpen(false)}\n onClick={() => { if (!active) action.run(controller); }}\n >\n <action.Icon aria-hidden=\"true\" className=\"oe-block-transform-icon\" size={15} strokeWidth={2} />\n <span>{action.label}</span>\n </Menu.Item>\n );\n })}\n </div>\n {headingPanelOpen ? (\n <div className=\"oe-block-transform-menu oe-block-transform-submenu oe-cascade-panel\">\n {headingActions.map((headingAction) => {\n const headingActive = headingAction.key === activeAction.key;\n return (\n <button\n type=\"button\"\n key={headingAction.key}\n className=\"oe-block-transform-item\"\n data-active={headingActive ? \"\" : undefined}\n onMouseDown={(event) => event.preventDefault()}\n onClick={() => {\n if (!headingActive) headingAction.run(controller);\n setMenuOpen(false);\n }}\n role=\"menuitem\"\n >\n <headingAction.Icon aria-hidden=\"true\" className=\"oe-block-transform-icon\" size={15} strokeWidth={2} />\n <span>{headingAction.label}</span>\n </button>\n );\n })}\n </div>\n ) : null}\n </Menu.Popup>\n </Menu.Positioner>\n </Menu.Portal>\n </Menu.Root>\n );\n};\n\nexport const OpenEditorSelectionBubble = ({\n controller,\n className = \"oe-bubble-menu\",\n container,\n}: OpenEditorSelectionBubbleProps) => {\n const themeStyle = useOpenEditorThemeStyle();\n const rootElement = controller.getRootElement();\n const [linkDialogOpen, setLinkDialogOpen] = useState(false);\n const toolbarRef = useRef<HTMLDivElement | null>(null);\n\n const actions: SelectionAction[] = controller.ready\n ? [\n {\n key: \"bold\",\n label: \"Bold\",\n active: controller.isActive(\"bold\"),\n Icon: Bold,\n run: () => controller.toggleBold(),\n },\n {\n key: \"italic\",\n label: \"Italic\",\n active: controller.isActive(\"italic\"),\n Icon: Italic,\n run: () => controller.toggleItalic(),\n },\n {\n key: \"underline\",\n label: \"Underline\",\n active: controller.isActive(\"underline\"),\n Icon: Underline,\n run: () => controller.toggleUnderline(),\n },\n {\n key: \"strike\",\n label: \"Strikethrough\",\n active: controller.isActive(\"strike\"),\n Icon: Strikethrough,\n run: () => controller.toggleStrike(),\n },\n {\n key: \"code\",\n label: \"Inline code\",\n active: controller.isActive(\"code\"),\n Icon: Code,\n run: () => controller.toggleInlineCode(),\n },\n ]\n : [];\n\n useEffect(() => {\n if (!rootElement) return;\n const focusToolbar = (event: globalThis.KeyboardEvent) => {\n if (!(event.altKey && event.key === \"F10\")) return;\n const toolbar = toolbarRef.current;\n const menu = toolbar?.parentElement?.parentElement;\n if (!toolbar || !menu || getComputedStyle(menu).visibility === \"hidden\") return;\n const firstControl = toolbarRef.current?.querySelector<HTMLElement>(\n \"button:not(:disabled), [href], [tabindex]:not([tabindex='-1'])\",\n );\n if (!firstControl) return;\n event.preventDefault();\n firstControl.focus();\n };\n rootElement.addEventListener(\"keydown\", focusToolbar, true);\n return () => rootElement.removeEventListener(\"keydown\", focusToolbar, true);\n }, [rootElement]);\n\n if (!controller.ready) return null;\n\n return (\n <>\n <OpenEditorBubbleMenu\n className={className}\n container={container}\n controller={controller}\n style={themeStyle}\n >\n <div\n onKeyDown={(event) => {\n if (event.key !== \"Escape\") return;\n event.preventDefault();\n controller.focus();\n }}\n onMouseDown={(event) => event.preventDefault()}\n >\n <Toolbar.Root\n className=\"oe-selection-toolbar\"\n aria-label=\"Selection formatting\"\n ref={toolbarRef}\n >\n <SelectionBlockTransformMenu controller={controller} container={container} />\n {actions.map((action) => (\n <SelectionButton key={action.key} action={action} />\n ))}\n <Toolbar.Button\n type=\"button\"\n aria-label=\"Link\"\n className=\"oe-toolbar-button\"\n data-active={controller.isActive(\"link\") ? \"\" : undefined}\n onClick={() => setLinkDialogOpen(true)}\n >\n <Link aria-hidden=\"true\" className=\"oe-toolbar-icon\" size={15} strokeWidth={2} />\n </Toolbar.Button>\n </Toolbar.Root>\n </div>\n </OpenEditorBubbleMenu>\n <OpenEditorLinkDialog\n controller={controller}\n open={linkDialogOpen}\n onOpenChange={setLinkDialogOpen}\n />\n </>\n );\n};\n\nexport const OpenEditorSlashMenu = ({\n controller,\n className = \"oe-slash-menu\",\n items,\n container,\n}: OpenEditorSlashMenuProps) => {\n const themeStyle = useOpenEditorThemeStyle();\n const slashMenuItems = sortSlashMenuItems(items ?? getDefaultSlashMenuItems(controller));\n const slashState = controller.slashState;\n const [selectedIndex, setSelectedIndex] = useState(0);\n const selectedIndexRef = useRef(0);\n const menuId = useId();\n const menuRef = useRef<HTMLDivElement | null>(null);\n const anchor = useMemo(\n () =>\n slashState\n ? toVirtualAnchor(\n slashState,\n controller.getRootElement(),\n () => controller.getPositionRect(slashState.to),\n )\n : null,\n [controller, slashState],\n );\n const matchingItems = slashState\n ? slashMenuItems.filter((item) => {\n const haystack = `${item.label} ${item.group} ${item.keywords?.join(\" \") ?? \"\"}`.toLowerCase();\n return haystack.includes(slashState.query.toLowerCase());\n })\n : [];\n\n selectedIndexRef.current = selectedIndex;\n\n useEffect(() => {\n selectedIndexRef.current = 0;\n setSelectedIndex(0);\n }, [slashState?.from, slashState?.query]);\n\n useEffect(() => {\n if (selectedIndex < matchingItems.length) return;\n setSelectedIndex(Math.max(0, matchingItems.length - 1));\n }, [matchingItems.length, selectedIndex]);\n\n useEffect(() => {\n const editorElement = controller.getRootElement();\n if (!slashState || !editorElement) return;\n const previous = {\n controls: editorElement.getAttribute(\"aria-controls\"),\n expanded: editorElement.getAttribute(\"aria-expanded\"),\n activeDescendant: editorElement.getAttribute(\"aria-activedescendant\"),\n };\n const selectedId = matchingItems[selectedIndex]\n ? `${menuId}-option-${selectedIndex}`\n : null;\n editorElement.setAttribute(\"aria-controls\", menuId);\n editorElement.setAttribute(\"aria-expanded\", \"true\");\n if (selectedId) editorElement.setAttribute(\"aria-activedescendant\", selectedId);\n else editorElement.removeAttribute(\"aria-activedescendant\");\n\n const handleKeyDown = (event: globalThis.KeyboardEvent) => {\n if (event.isComposing) return false;\n let nextIndex: number | null = null;\n const currentIndex = selectedIndexRef.current;\n if (event.key === \"ArrowDown\") nextIndex = (currentIndex + 1) % Math.max(1, matchingItems.length);\n if (event.key === \"ArrowUp\") nextIndex = (currentIndex - 1 + Math.max(1, matchingItems.length)) % Math.max(1, matchingItems.length);\n if (event.key === \"Home\" || event.key === \"PageUp\") nextIndex = 0;\n if (event.key === \"End\" || event.key === \"PageDown\") nextIndex = Math.max(0, matchingItems.length - 1);\n if (nextIndex !== null) {\n event.preventDefault();\n selectedIndexRef.current = nextIndex;\n setSelectedIndex(nextIndex);\n return true;\n }\n if (event.key === \"Enter\") {\n const item = matchingItems[selectedIndexRef.current];\n if (!item) return false;\n event.preventDefault();\n event.stopPropagation();\n item.execute({ controller, range: { from: slashState.from, to: slashState.to } });\n return true;\n }\n return false;\n };\n const unregisterKeyboardHandler = controller.registerSlashMenuKeyboardHandler(handleKeyDown);\n return () => {\n unregisterKeyboardHandler();\n for (const [attribute, value] of [\n [\"aria-controls\", previous.controls],\n [\"aria-expanded\", previous.expanded],\n [\"aria-activedescendant\", previous.activeDescendant],\n ] as const) {\n if (value === null) editorElement.removeAttribute(attribute);\n else editorElement.setAttribute(attribute, value);\n }\n };\n }, [controller, matchingItems, menuId, selectedIndex, slashState]);\n\n useEffect(() => {\n menuRef.current\n ?.querySelector<HTMLElement>(\"[data-highlighted]\")\n ?.scrollIntoView({ block: \"nearest\" });\n }, [selectedIndex]);\n\n if (!slashState) return null;\n\n return (\n <Popover.Root open modal={false}>\n <Popover.Portal container={container}>\n <Popover.Positioner\n anchor={anchor}\n className=\"oe-anchored-overlay-positioner\"\n positionMethod=\"fixed\"\n side=\"bottom\"\n align=\"start\"\n sideOffset={8}\n collisionPadding={12}\n collisionAvoidance={{ side: \"flip\", align: \"shift\", fallbackAxisSide: \"none\" }}\n >\n <Popover.Popup\n className=\"oe-cascade-menu\"\n finalFocus={false}\n style={themeStyle}\n initialFocus={false}\n >\n <div\n aria-label=\"Insert block\"\n className={`${className} oe-cascade-panel`}\n id={menuId}\n ref={menuRef}\n role=\"listbox\"\n >\n <div className=\"oe-slash-menu-scroll\">\n {matchingItems.map((item, index) => {\n const Icon = getSlashMenuIcon(item);\n\n return (\n <button\n aria-selected={index === selectedIndex}\n type=\"button\"\n key={item.key}\n className=\"oe-slash-menu-item\"\n data-highlighted={index === selectedIndex ? \"\" : undefined}\n id={`${menuId}-option-${index}`}\n onMouseEnter={() => setSelectedIndex(index)}\n onMouseDown={(event) => event.preventDefault()}\n onClick={() => {\n item.execute({ controller, range: { from: slashState.from, to: slashState.to } });\n }}\n role=\"option\"\n >\n <Icon aria-hidden={true} className=\"oe-slash-menu-icon\" size={15} strokeWidth={2} />\n <span>{item.label}</span>\n </button>\n );\n })}\n </div>\n </div>\n </Popover.Popup>\n </Popover.Positioner>\n </Popover.Portal>\n </Popover.Root>\n );\n};\n\ntype ResolvedBlockAction = OpenEditorBlockAction & {\n Icon?: LucideIcon;\n};\n\nconst builtInBlockActions = (\n controller: OpenEditorController,\n block: OpenEditorBlockRef,\n): ResolvedBlockAction[] => [\n {\n id: \"move-up\",\n label: \"Move up\",\n group: \"move\",\n Icon: ArrowUp,\n disabled: () => !controller.canMoveBlock(-1, block),\n run: () => { controller.moveBlock(-1, block); },\n },\n {\n id: \"move-down\",\n label: \"Move down\",\n group: \"move\",\n Icon: ArrowDown,\n disabled: () => !controller.canMoveBlock(1, block),\n run: () => { controller.moveBlock(1, block); },\n },\n {\n id: \"copy\",\n label: \"Copy block\",\n group: \"edit\",\n Icon: Copy,\n run: () => controller.copyBlock(block),\n },\n {\n id: \"duplicate\",\n label: \"Duplicate\",\n group: \"edit\",\n Icon: CopyPlus,\n run: () => { controller.duplicateBlock(block); },\n },\n {\n id: \"delete\",\n label: \"Delete\",\n group: \"danger\",\n Icon: Trash2,\n run: () => { controller.deleteBlock(block); },\n },\n];\n\nexport const OpenEditorBlockMenu = ({\n controller,\n className,\n container,\n}: OpenEditorBlockMenuProps) => {\n const interaction = useOpenEditorBlockInteraction(controller);\n const block = interaction.activeBlock;\n const themeStyle = useOpenEditorThemeStyle();\n const [open, setOpen] = useState(false);\n const handleElementRef = useRef<HTMLDivElement | null>(null);\n const lastBlockRef = useRef<OpenEditorBlockRef | null>(null);\n const controllerRef = useRef(controller);\n controllerRef.current = controller;\n if (block) lastBlockRef.current = block;\n const activeBlock = block ?? (open ? lastBlockRef.current : null);\n\n const setMenuOpen = useCallback((nextOpen: boolean) => {\n const selected = lastBlockRef.current;\n if (nextOpen) {\n if (!selected || !controllerRef.current.selectBlock(selected)) {\n setOpen(false);\n controllerRef.current.setBlockHandleLocked(false);\n return;\n }\n controllerRef.current.setBlockHandleLocked(true);\n setOpen(true);\n return;\n }\n setOpen(false);\n controllerRef.current.setBlockHandleLocked(false);\n }, []);\n\n useEffect(() => () => {\n controllerRef.current.setBlockHandleLocked(false);\n }, []);\n\n if (!controller.editable) return null;\n const handle = (\n <OpenEditorBlockDragHandle\n ariaLabel={activeBlock\n ? `Actions for ${activeBlock.blockName ?? activeBlock.nodeType} block`\n : undefined}\n className=\"oe-block-handle-anchor\"\n controller={controller}\n elementRef={handleElementRef}\n expanded={open}\n onActivate={() => {\n setMenuOpen(!open);\n }}\n onDraggingChange={(dragging) => {\n if (dragging) setMenuOpen(false);\n }}\n >\n {activeBlock ? (\n <span aria-hidden=\"true\" className={cx(\"oe-block-handle\", className)}>\n <GripVertical aria-hidden=\"true\" size={16} strokeWidth={2} />\n </span>\n ) : null}\n </OpenEditorBlockDragHandle>\n );\n const actions: ResolvedBlockAction[] = activeBlock\n ? [...builtInBlockActions(controller, activeBlock), ...controller.blockActions]\n : [];\n return (\n <Menu.Root modal={false} open={open} onOpenChange={setMenuOpen}>\n {handle}\n {open && activeBlock ? <Menu.Portal container={container}>\n <Menu.Positioner\n align=\"start\"\n anchor={handleElementRef}\n collisionAvoidance={{ side: \"flip\", align: \"shift\", fallbackAxisSide: \"none\" }}\n collisionPadding={12}\n positionMethod=\"fixed\"\n side=\"bottom\"\n sideOffset={8}\n >\n <Menu.Popup\n aria-label={activeBlock\n ? `Actions for ${activeBlock.blockName ?? activeBlock.nodeType} block`\n : \"Block actions\"}\n className=\"oe-block-menu\"\n style={themeStyle}\n >\n {actions.map((action, index) => {\n const previous = actions[index - 1];\n const Icon = action.Icon;\n const context = { controller, block: activeBlock };\n return (\n <Fragment key={action.id}>\n {previous && previous.group !== action.group ? <Menu.Separator className=\"oe-block-menu-separator\" /> : null}\n <Menu.Item\n className=\"oe-block-menu-item\"\n data-danger={action.group === \"danger\" ? \"\" : undefined}\n disabled={action.disabled?.(context)}\n onClick={() => {\n setMenuOpen(false);\n void action.run(context);\n }}\n >\n {Icon ? <Icon aria-hidden=\"true\" size={15} strokeWidth={2} /> : <span aria-hidden=\"true\" className=\"oe-block-menu-icon-placeholder\" />}\n <span>{action.label}</span>\n </Menu.Item>\n </Fragment>\n );\n })}\n </Menu.Popup>\n </Menu.Positioner>\n </Menu.Portal> : null}\n </Menu.Root>\n );\n};\n\nexport const OpenEditor = ({\n className = \"oe-editor-surface\",\n contentClassName,\n overlayContainer,\n theme,\n ...props\n}: OpenEditorProps) => {\n const controller = useOpenEditorController(props);\n\n const editor = (\n <div className={className}>\n <OpenEditorContent controller={controller} className={contentClassName} />\n <OpenEditorBlockMenu controller={controller} container={overlayContainer} />\n <OpenEditorSelectionBubble controller={controller} container={overlayContainer} />\n <OpenEditorTableMenu controller={controller} container={overlayContainer} />\n <OpenEditorSlashMenu controller={controller} container={overlayContainer} />\n </div>\n );\n return theme ? <OpenEditorThemeProvider theme={theme}>{editor}</OpenEditorThemeProvider> : editor;\n};\n\nexport { OpenEditorContent, useOpenEditorController };\nexport type {\n OpenEditorBlockAction,\n OpenEditorBlockRef,\n OpenEditorController,\n OpenEditorReactProps,\n OpenEditorSlashMenuIcon,\n OpenEditorSlashMenuIconProps,\n OpenEditorSlashMenuItem,\n} from \"@openeditor/react\";\n"]}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@openeditor/ui",
3
- "version": "0.0.29",
3
+ "version": "0.0.31",
4
4
  "type": "module",
5
5
  "sideEffects": [
6
6
  "**/*.css"
@@ -28,8 +28,8 @@
28
28
  },
29
29
  "dependencies": {
30
30
  "@base-ui/react": "^1.6.0",
31
- "@openeditor/emoji": "0.0.29",
32
- "@openeditor/react": "0.0.29",
31
+ "@openeditor/emoji": "0.0.31",
32
+ "@openeditor/react": "0.0.31",
33
33
  "lucide-react": "^1.23.0",
34
34
  "react": "19.2.7",
35
35
  "react-dom": "19.2.7"