@lobehub/ui
Version:
Lobe UI is an open-source UI component library for building AIGC web apps
1 lines • 8.51 kB
Source Map (JSON)
{"version":3,"file":"atoms.mjs","names":["styles","menuStyles"],"sources":["../../src/EditorSlashMenu/atoms.tsx"],"sourcesContent":["'use client';\n\nimport { Autocomplete } from '@base-ui/react/autocomplete';\nimport { cx } from 'antd-style';\nimport type React from 'react';\nimport { forwardRef } from 'react';\n\nimport { styles as menuStyles } from '@/Menu/sharedStyle';\nimport { usePortalContainer } from '@/hooks/usePortalContainer';\n\nimport { styles } from './style';\n\nexport const EDITOR_SLASH_MENU_CONTAINER_ATTR = 'data-lobe-ui-editor-slash-menu-container';\n\nconst mergeStateClassName = <TState,>(\n base: string,\n className: string | ((state: TState) => string | undefined) | undefined,\n) => {\n if (typeof className === 'function') return (state: TState) => cx(base, className(state));\n return cx(base, className);\n};\n\nexport const EditorSlashMenuRoot = Autocomplete.Root;\nexport const EditorSlashMenuList = forwardRef<\n HTMLDivElement,\n React.ComponentProps<typeof Autocomplete.List>\n>(({ className, ...rest }, ref) => {\n return (\n <Autocomplete.List\n {...rest}\n className={mergeStateClassName(cx(styles.list), className as any) as any}\n ref={ref}\n />\n );\n});\nEditorSlashMenuList.displayName = 'EditorSlashMenuList';\n\nexport type EditorSlashMenuPortalProps = React.ComponentProps<typeof Autocomplete.Portal> & {\n /**\n * When `container` is not provided, it uses a shared container created by `usePortalContainer`.\n */\n container?: HTMLElement | null;\n};\n\nexport const EditorSlashMenuPortal = ({ container, ...rest }: EditorSlashMenuPortalProps) => {\n const defaultContainer = usePortalContainer(EDITOR_SLASH_MENU_CONTAINER_ATTR);\n return <Autocomplete.Portal container={container ?? defaultContainer} {...rest} />;\n};\nEditorSlashMenuPortal.displayName = 'EditorSlashMenuPortal';\n\nexport type EditorSlashMenuPositionerProps = React.ComponentProps<typeof Autocomplete.Positioner>;\n\nexport const EditorSlashMenuPositioner = ({\n className,\n align,\n positionMethod,\n side,\n sideOffset,\n ...rest\n}: EditorSlashMenuPositionerProps) => {\n return (\n <Autocomplete.Positioner\n {...rest}\n align={align ?? 'start'}\n className={mergeStateClassName(menuStyles.positioner, className as any) as any}\n positionMethod={positionMethod ?? 'fixed'}\n side={side ?? 'bottom'}\n sideOffset={sideOffset ?? 6}\n />\n );\n};\nEditorSlashMenuPositioner.displayName = 'EditorSlashMenuPositioner';\n\nexport type EditorSlashMenuPopupProps = React.ComponentProps<typeof Autocomplete.Popup>;\n\nexport const EditorSlashMenuPopup = ({\n className,\n initialFocus = false,\n ...rest\n}: EditorSlashMenuPopupProps) => {\n return (\n <Autocomplete.Popup\n {...rest}\n className={mergeStateClassName(menuStyles.popup, className as any) as any}\n initialFocus={initialFocus}\n />\n );\n};\nEditorSlashMenuPopup.displayName = 'EditorSlashMenuPopup';\n\nexport type EditorSlashMenuItemProps = React.ComponentProps<typeof Autocomplete.Item> & {\n danger?: boolean;\n};\n\nexport const EditorSlashMenuItem = ({ className, danger, ...rest }: EditorSlashMenuItemProps) => {\n return (\n <Autocomplete.Item\n {...rest}\n className={(state) =>\n cx(\n menuStyles.item,\n danger && menuStyles.danger,\n typeof className === 'function' ? className(state) : className,\n )\n }\n />\n );\n};\nEditorSlashMenuItem.displayName = 'EditorSlashMenuItem';\n\nexport type EditorSlashMenuGroupProps = React.ComponentProps<typeof Autocomplete.Group>;\nexport const EditorSlashMenuGroup = Autocomplete.Group;\n\nexport type EditorSlashMenuGroupLabelProps = React.ComponentProps<typeof Autocomplete.GroupLabel>;\n\nexport const EditorSlashMenuGroupLabel = ({\n className,\n ...rest\n}: EditorSlashMenuGroupLabelProps) => {\n return (\n <Autocomplete.GroupLabel\n {...rest}\n className={(state) =>\n cx(menuStyles.groupLabel, typeof className === 'function' ? className(state) : className)\n }\n />\n );\n};\nEditorSlashMenuGroupLabel.displayName = 'EditorSlashMenuGroupLabel';\n\nexport type EditorSlashMenuEmptyProps = React.ComponentProps<typeof Autocomplete.Empty>;\n\nexport const EditorSlashMenuEmpty = ({ className, ...rest }: EditorSlashMenuEmptyProps) => {\n return (\n <Autocomplete.Empty\n {...rest}\n className={(state) =>\n cx(\n menuStyles.item,\n menuStyles.empty,\n typeof className === 'function' ? className(state) : className,\n )\n }\n />\n );\n};\nEditorSlashMenuEmpty.displayName = 'EditorSlashMenuEmpty';\n\nexport type EditorSlashMenuItemContentProps = React.HTMLAttributes<HTMLDivElement>;\nexport const EditorSlashMenuItemContent = ({\n className,\n ...rest\n}: EditorSlashMenuItemContentProps) => {\n return <div {...rest} className={cx(menuStyles.itemContent, className)} />;\n};\nEditorSlashMenuItemContent.displayName = 'EditorSlashMenuItemContent';\n\nexport type EditorSlashMenuItemIconProps = React.HTMLAttributes<HTMLSpanElement>;\nexport const EditorSlashMenuItemIcon = ({ className, ...rest }: EditorSlashMenuItemIconProps) => {\n return <span {...rest} className={cx(menuStyles.icon, className)} />;\n};\nEditorSlashMenuItemIcon.displayName = 'EditorSlashMenuItemIcon';\n\nexport type EditorSlashMenuItemLabelProps = React.HTMLAttributes<HTMLSpanElement>;\nexport const EditorSlashMenuItemLabel = ({ className, ...rest }: EditorSlashMenuItemLabelProps) => {\n return <span {...rest} className={cx(menuStyles.label, className)} />;\n};\nEditorSlashMenuItemLabel.displayName = 'EditorSlashMenuItemLabel';\n\nexport type EditorSlashMenuItemExtraProps = React.HTMLAttributes<HTMLSpanElement>;\nexport const EditorSlashMenuItemExtra = ({ className, ...rest }: EditorSlashMenuItemExtraProps) => {\n return <span {...rest} className={cx(menuStyles.extra, className)} />;\n};\nEditorSlashMenuItemExtra.displayName = 'EditorSlashMenuItemExtra';\n\nexport type EditorSlashMenuHiddenInputProps = React.ComponentProps<typeof Autocomplete.Input>;\nexport const EditorSlashMenuHiddenInput = ({\n className,\n ...rest\n}: EditorSlashMenuHiddenInputProps) => {\n return (\n <Autocomplete.Input\n {...rest}\n className={mergeStateClassName(cx(styles.hiddenInput), className as any) as any}\n />\n );\n};\nEditorSlashMenuHiddenInput.displayName = 'EditorSlashMenuHiddenInput';\n"],"mappings":";;;;;;;;;;;AAYA,MAAa,mCAAmC;AAEhD,MAAM,uBACJ,MACA,cACG;AACH,KAAI,OAAO,cAAc,WAAY,SAAQ,UAAkB,GAAG,MAAM,UAAU,MAAM,CAAC;AACzF,QAAO,GAAG,MAAM,UAAU;;AAG5B,MAAa,sBAAsB,aAAa;AAChD,MAAa,sBAAsB,YAGhC,EAAE,WAAW,GAAG,QAAQ,QAAQ;AACjC,QACE,oBAAC,aAAa;EACZ,GAAI;EACJ,WAAW,oBAAoB,GAAGA,SAAO,KAAK,EAAE,UAAiB;EAC5D;GACL;EAEJ;AACF,oBAAoB,cAAc;AASlC,MAAa,yBAAyB,EAAE,WAAW,GAAG,WAAuC;CAC3F,MAAM,mBAAmB,mBAAmB,iCAAiC;AAC7E,QAAO,oBAAC,aAAa;EAAO,WAAW,aAAa;EAAkB,GAAI;GAAQ;;AAEpF,sBAAsB,cAAc;AAIpC,MAAa,6BAA6B,EACxC,WACA,OACA,gBACA,MACA,YACA,GAAG,WACiC;AACpC,QACE,oBAAC,aAAa;EACZ,GAAI;EACJ,OAAO,SAAS;EAChB,WAAW,oBAAoBC,OAAW,YAAY,UAAiB;EACvE,gBAAgB,kBAAkB;EAClC,MAAM,QAAQ;EACd,YAAY,cAAc;GAC1B;;AAGN,0BAA0B,cAAc;AAIxC,MAAa,wBAAwB,EACnC,WACA,eAAe,OACf,GAAG,WAC4B;AAC/B,QACE,oBAAC,aAAa;EACZ,GAAI;EACJ,WAAW,oBAAoBA,OAAW,OAAO,UAAiB;EACpD;GACd;;AAGN,qBAAqB,cAAc;AAMnC,MAAa,uBAAuB,EAAE,WAAW,QAAQ,GAAG,WAAqC;AAC/F,QACE,oBAAC,aAAa;EACZ,GAAI;EACJ,YAAY,UACV,GACEA,OAAW,MACX,UAAUA,OAAW,QACrB,OAAO,cAAc,aAAa,UAAU,MAAM,GAAG,UACtD;GAEH;;AAGN,oBAAoB,cAAc;AAGlC,MAAa,uBAAuB,aAAa;AAIjD,MAAa,6BAA6B,EACxC,WACA,GAAG,WACiC;AACpC,QACE,oBAAC,aAAa;EACZ,GAAI;EACJ,YAAY,UACV,GAAGA,OAAW,YAAY,OAAO,cAAc,aAAa,UAAU,MAAM,GAAG,UAAU;GAE3F;;AAGN,0BAA0B,cAAc;AAIxC,MAAa,wBAAwB,EAAE,WAAW,GAAG,WAAsC;AACzF,QACE,oBAAC,aAAa;EACZ,GAAI;EACJ,YAAY,UACV,GACEA,OAAW,MACXA,OAAW,OACX,OAAO,cAAc,aAAa,UAAU,MAAM,GAAG,UACtD;GAEH;;AAGN,qBAAqB,cAAc;AAGnC,MAAa,8BAA8B,EACzC,WACA,GAAG,WACkC;AACrC,QAAO,oBAAC;EAAI,GAAI;EAAM,WAAW,GAAGA,OAAW,aAAa,UAAU;GAAI;;AAE5E,2BAA2B,cAAc;AAGzC,MAAa,2BAA2B,EAAE,WAAW,GAAG,WAAyC;AAC/F,QAAO,oBAAC;EAAK,GAAI;EAAM,WAAW,GAAGA,OAAW,MAAM,UAAU;GAAI;;AAEtE,wBAAwB,cAAc;AAGtC,MAAa,4BAA4B,EAAE,WAAW,GAAG,WAA0C;AACjG,QAAO,oBAAC;EAAK,GAAI;EAAM,WAAW,GAAGA,OAAW,OAAO,UAAU;GAAI;;AAEvE,yBAAyB,cAAc;AAGvC,MAAa,4BAA4B,EAAE,WAAW,GAAG,WAA0C;AACjG,QAAO,oBAAC;EAAK,GAAI;EAAM,WAAW,GAAGA,OAAW,OAAO,UAAU;GAAI;;AAEvE,yBAAyB,cAAc;AAGvC,MAAa,8BAA8B,EACzC,WACA,GAAG,WACkC;AACrC,QACE,oBAAC,aAAa;EACZ,GAAI;EACJ,WAAW,oBAAoB,GAAGD,SAAO,YAAY,EAAE,UAAiB;GACxE;;AAGN,2BAA2B,cAAc"}