{ "$schema": "https://ui.shadcn.com/schema/registry-item.json", "name": "message-scroller", "title": "Message Scroller", "description": "Real-DOM transcript scroller with live-edge following, anchoring, reader intent, visibility, and commands", "dependencies": ["@shadcn/react@0.2.1", "daisyui", "lucide-react"], "files": [ { "path": "registry/default/ui/message-scroller/message-scroller.tsx", "content": "'use client';\n\nimport {\n\tMessageScroller as MessageScrollerPrimitive,\n\tuseMessageScroller,\n\tuseMessageScrollerScrollable,\n\tuseMessageScrollerVisibility,\n} from '@shadcn/react/message-scroller';\nimport { ArrowDown } from 'lucide-react';\nimport type { ComponentPropsWithRef } from 'react';\nimport { cn } from '@/lib/utils';\n\nexport type MessageScrollerMessages = {\n\tviewportLabel: string;\n\tscrollToEnd: string;\n\tscrollToStart: string;\n};\n\nexport const defaultMessageScrollerMessages: MessageScrollerMessages = {\n\tviewportLabel: '消息记录',\n\tscrollToEnd: '滚动到底部',\n\tscrollToStart: '滚动到顶部',\n};\n\nexport type MessageScrollerProviderProps = ComponentPropsWithRef;\n\nexport function MessageScrollerProvider(props: MessageScrollerProviderProps) {\n\treturn ;\n}\n\nexport type MessageScrollerProps = ComponentPropsWithRef;\n\nexport function MessageScroller({ className, ...props }: MessageScrollerProps) {\n\treturn (\n\t\t\n\t);\n}\n\nexport type MessageScrollerViewportProps = ComponentPropsWithRef & {\n\tmessages?: Partial;\n};\n\nexport function MessageScrollerViewport({ className, messages, ...props }: MessageScrollerViewportProps) {\n\tconst copy = { ...defaultMessageScrollerMessages, ...messages };\n\treturn (\n\t\t\n\t);\n}\n\nexport type MessageScrollerContentProps = ComponentPropsWithRef;\n\nexport function MessageScrollerContent({ className, ...props }: MessageScrollerContentProps) {\n\treturn (\n\t\t\n\t);\n}\n\nexport type MessageScrollerItemProps = ComponentPropsWithRef;\n\nexport function MessageScrollerItem({ className, scrollAnchor = false, ...props }: MessageScrollerItemProps) {\n\treturn (\n\t\t\n\t);\n}\n\nexport type MessageScrollerButtonProps = ComponentPropsWithRef & {\n\tmessages?: Partial;\n};\n\nexport function MessageScrollerButton({\n\tdirection = 'end',\n\tclassName,\n\tchildren,\n\tmessages,\n\t...props\n}: MessageScrollerButtonProps) {\n\tconst copy = { ...defaultMessageScrollerMessages, ...messages };\n\treturn (\n\t\t\n\t\t\t{children ?? (\n\t\t\t\t<>\n\t\t\t\t\t