From 3dcb8ac8f22a98e7dabc797c9d65d41cae77e747 Mon Sep 17 00:00:00 2001 From: Richard Ward Date: Tue, 30 Dec 2025 22:00:53 +0000 Subject: [PATCH] code: tsx,storybook,src (1 files) --- storybook/src/components/registry.tsx | 72 +++++++++++++++++++++++++++ 1 file changed, 72 insertions(+) diff --git a/storybook/src/components/registry.tsx b/storybook/src/components/registry.tsx index 862a2f15f..09b8a96dc 100644 --- a/storybook/src/components/registry.tsx +++ b/storybook/src/components/registry.tsx @@ -341,6 +341,75 @@ export const Link: React.FC = ({ href = ' {children} ) +// IconButton - clickable icon with button behavior +interface IconButtonProps extends LuaComponentProps { + onClick?: () => void + disabled?: boolean + size?: 'small' | 'medium' | 'large' + color?: 'primary' | 'secondary' | 'default' | 'inherit' +} + +export const IconButton: React.FC = ({ + children, + onClick, + disabled = false, + size = 'medium', + className = '' +}) => { + const sizeClasses = { + small: 'p-1 text-sm', + medium: 'p-2', + large: 'p-3 text-lg' + } + return ( + + ) +} + +// Menu - dropdown menu container +interface MenuProps extends LuaComponentProps { + open?: boolean + anchorEl?: unknown + onClose?: () => void +} + +export const Menu: React.FC = ({ children, className = '' }) => { + // Simplified menu - in storybook, always show children as a dropdown preview + return ( +
+ {children} +
+ ) +} + +// MenuItem - individual menu item +interface MenuItemProps extends LuaComponentProps { + onClick?: () => void + disabled?: boolean + selected?: boolean +} + +export const MenuItem: React.FC = ({ + children, + onClick, + disabled = false, + selected = false, + className = '' +}) => ( +
+ {children} +
+) + // Lists export const List: React.FC = ({ children, className = 'flex flex-col' }) => (
    {children}
@@ -447,6 +516,9 @@ export const componentRegistry: Record = { Link, List, ListItem, + IconButton, + Menu, + MenuItem, // Data Table,