@lobehub/ui
Version:
Lobe UI is an open-source UI component library for building AIGC web apps
113 lines (110 loc) • 4.62 kB
JavaScript
'use client';
import { styles } from "../Menu/sharedStyle.mjs";
import { usePortalContainer } from "../hooks/usePortalContainer.mjs";
import { styles as styles$1 } from "./style.mjs";
import { forwardRef } from "react";
import { jsx } from "react/jsx-runtime";
import { cx } from "antd-style";
import { Autocomplete } from "@base-ui/react/autocomplete";
//#region src/EditorSlashMenu/atoms.tsx
const EDITOR_SLASH_MENU_CONTAINER_ATTR = "data-lobe-ui-editor-slash-menu-container";
const mergeStateClassName = (base, className) => {
if (typeof className === "function") return (state) => cx(base, className(state));
return cx(base, className);
};
const EditorSlashMenuRoot = Autocomplete.Root;
const EditorSlashMenuList = forwardRef(({ className, ...rest }, ref) => {
return /* @__PURE__ */ jsx(Autocomplete.List, {
...rest,
className: mergeStateClassName(cx(styles$1.list), className),
ref
});
});
EditorSlashMenuList.displayName = "EditorSlashMenuList";
const EditorSlashMenuPortal = ({ container, ...rest }) => {
const defaultContainer = usePortalContainer(EDITOR_SLASH_MENU_CONTAINER_ATTR);
return /* @__PURE__ */ jsx(Autocomplete.Portal, {
container: container ?? defaultContainer,
...rest
});
};
EditorSlashMenuPortal.displayName = "EditorSlashMenuPortal";
const EditorSlashMenuPositioner = ({ className, align, positionMethod, side, sideOffset, ...rest }) => {
return /* @__PURE__ */ jsx(Autocomplete.Positioner, {
...rest,
align: align ?? "start",
className: mergeStateClassName(styles.positioner, className),
positionMethod: positionMethod ?? "fixed",
side: side ?? "bottom",
sideOffset: sideOffset ?? 6
});
};
EditorSlashMenuPositioner.displayName = "EditorSlashMenuPositioner";
const EditorSlashMenuPopup = ({ className, initialFocus = false, ...rest }) => {
return /* @__PURE__ */ jsx(Autocomplete.Popup, {
...rest,
className: mergeStateClassName(styles.popup, className),
initialFocus
});
};
EditorSlashMenuPopup.displayName = "EditorSlashMenuPopup";
const EditorSlashMenuItem = ({ className, danger, ...rest }) => {
return /* @__PURE__ */ jsx(Autocomplete.Item, {
...rest,
className: (state) => cx(styles.item, danger && styles.danger, typeof className === "function" ? className(state) : className)
});
};
EditorSlashMenuItem.displayName = "EditorSlashMenuItem";
const EditorSlashMenuGroup = Autocomplete.Group;
const EditorSlashMenuGroupLabel = ({ className, ...rest }) => {
return /* @__PURE__ */ jsx(Autocomplete.GroupLabel, {
...rest,
className: (state) => cx(styles.groupLabel, typeof className === "function" ? className(state) : className)
});
};
EditorSlashMenuGroupLabel.displayName = "EditorSlashMenuGroupLabel";
const EditorSlashMenuEmpty = ({ className, ...rest }) => {
return /* @__PURE__ */ jsx(Autocomplete.Empty, {
...rest,
className: (state) => cx(styles.item, styles.empty, typeof className === "function" ? className(state) : className)
});
};
EditorSlashMenuEmpty.displayName = "EditorSlashMenuEmpty";
const EditorSlashMenuItemContent = ({ className, ...rest }) => {
return /* @__PURE__ */ jsx("div", {
...rest,
className: cx(styles.itemContent, className)
});
};
EditorSlashMenuItemContent.displayName = "EditorSlashMenuItemContent";
const EditorSlashMenuItemIcon = ({ className, ...rest }) => {
return /* @__PURE__ */ jsx("span", {
...rest,
className: cx(styles.icon, className)
});
};
EditorSlashMenuItemIcon.displayName = "EditorSlashMenuItemIcon";
const EditorSlashMenuItemLabel = ({ className, ...rest }) => {
return /* @__PURE__ */ jsx("span", {
...rest,
className: cx(styles.label, className)
});
};
EditorSlashMenuItemLabel.displayName = "EditorSlashMenuItemLabel";
const EditorSlashMenuItemExtra = ({ className, ...rest }) => {
return /* @__PURE__ */ jsx("span", {
...rest,
className: cx(styles.extra, className)
});
};
EditorSlashMenuItemExtra.displayName = "EditorSlashMenuItemExtra";
const EditorSlashMenuHiddenInput = ({ className, ...rest }) => {
return /* @__PURE__ */ jsx(Autocomplete.Input, {
...rest,
className: mergeStateClassName(cx(styles$1.hiddenInput), className)
});
};
EditorSlashMenuHiddenInput.displayName = "EditorSlashMenuHiddenInput";
//#endregion
export { EDITOR_SLASH_MENU_CONTAINER_ATTR, EditorSlashMenuEmpty, EditorSlashMenuGroup, EditorSlashMenuGroupLabel, EditorSlashMenuHiddenInput, EditorSlashMenuItem, EditorSlashMenuItemContent, EditorSlashMenuItemExtra, EditorSlashMenuItemIcon, EditorSlashMenuItemLabel, EditorSlashMenuList, EditorSlashMenuPopup, EditorSlashMenuPortal, EditorSlashMenuPositioner, EditorSlashMenuRoot };
//# sourceMappingURL=atoms.mjs.map