@sigx/daisyui 0.1.6
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/LICENSE +21 -0
- package/README.md +235 -0
- package/dist/buttons/Button.d.ts +18 -0
- package/dist/buttons/Button.d.ts.map +1 -0
- package/dist/buttons/ButtonGroup.d.ts +18 -0
- package/dist/buttons/ButtonGroup.d.ts.map +1 -0
- package/dist/buttons/index.d.ts +5 -0
- package/dist/buttons/index.d.ts.map +1 -0
- package/dist/buttons/index.js +2 -0
- package/dist/buttons-Dtj_5Uc3.js +61 -0
- package/dist/buttons-Dtj_5Uc3.js.map +1 -0
- package/dist/data/Table.d.ts +92 -0
- package/dist/data/Table.d.ts.map +1 -0
- package/dist/data/index.d.ts +3 -0
- package/dist/data/index.d.ts.map +1 -0
- package/dist/data/index.js +2 -0
- package/dist/data-wxNpnX83.js +153 -0
- package/dist/data-wxNpnX83.js.map +1 -0
- package/dist/feedback/Accordion.d.ts +87 -0
- package/dist/feedback/Accordion.d.ts.map +1 -0
- package/dist/feedback/Badge.d.ts +73 -0
- package/dist/feedback/Badge.d.ts.map +1 -0
- package/dist/feedback/Countdown.d.ts +33 -0
- package/dist/feedback/Countdown.d.ts.map +1 -0
- package/dist/feedback/Diff.d.ts +43 -0
- package/dist/feedback/Diff.d.ts.map +1 -0
- package/dist/feedback/FileInput.d.ts +28 -0
- package/dist/feedback/FileInput.d.ts.map +1 -0
- package/dist/feedback/Indicator.d.ts +47 -0
- package/dist/feedback/Indicator.d.ts.map +1 -0
- package/dist/feedback/Kbd.d.ts +31 -0
- package/dist/feedback/Kbd.d.ts.map +1 -0
- package/dist/feedback/Modal.d.ts +51 -0
- package/dist/feedback/Modal.d.ts.map +1 -0
- package/dist/feedback/RadialProgress.d.ts +35 -0
- package/dist/feedback/RadialProgress.d.ts.map +1 -0
- package/dist/feedback/Rating.d.ts +34 -0
- package/dist/feedback/Rating.d.ts.map +1 -0
- package/dist/feedback/Skeleton.d.ts +24 -0
- package/dist/feedback/Skeleton.d.ts.map +1 -0
- package/dist/feedback/Steps.d.ts +60 -0
- package/dist/feedback/Steps.d.ts.map +1 -0
- package/dist/feedback/Swap.d.ts +53 -0
- package/dist/feedback/Swap.d.ts.map +1 -0
- package/dist/feedback/Timeline.d.ts +76 -0
- package/dist/feedback/Timeline.d.ts.map +1 -0
- package/dist/feedback/Toast.d.ts +30 -0
- package/dist/feedback/Toast.d.ts.map +1 -0
- package/dist/feedback/index.d.ts +31 -0
- package/dist/feedback/index.d.ts.map +1 -0
- package/dist/feedback/index.js +2 -0
- package/dist/feedback-DFutN-Kz.js +817 -0
- package/dist/feedback-DFutN-Kz.js.map +1 -0
- package/dist/forms/Checkbox.d.ts +15 -0
- package/dist/forms/Checkbox.d.ts.map +1 -0
- package/dist/forms/FormField.d.ts +16 -0
- package/dist/forms/FormField.d.ts.map +1 -0
- package/dist/forms/Input.d.ts +19 -0
- package/dist/forms/Input.d.ts.map +1 -0
- package/dist/forms/Radio.d.ts +78 -0
- package/dist/forms/Radio.d.ts.map +1 -0
- package/dist/forms/Range.d.ts +15 -0
- package/dist/forms/Range.d.ts.map +1 -0
- package/dist/forms/Select.d.ts +28 -0
- package/dist/forms/Select.d.ts.map +1 -0
- package/dist/forms/Textarea.d.ts +17 -0
- package/dist/forms/Textarea.d.ts.map +1 -0
- package/dist/forms/Toggle.d.ts +15 -0
- package/dist/forms/Toggle.d.ts.map +1 -0
- package/dist/forms/index.d.ts +17 -0
- package/dist/forms/index.d.ts.map +1 -0
- package/dist/forms/index.js +2 -0
- package/dist/forms-CuvlRMro.js +362 -0
- package/dist/forms-CuvlRMro.js.map +1 -0
- package/dist/index.d.ts +38 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +9 -0
- package/dist/layout/Card.d.ts +65 -0
- package/dist/layout/Card.d.ts.map +1 -0
- package/dist/layout/Carousel.d.ts +56 -0
- package/dist/layout/Carousel.d.ts.map +1 -0
- package/dist/layout/Chat.d.ts +54 -0
- package/dist/layout/Chat.d.ts.map +1 -0
- package/dist/layout/Container.d.ts +17 -0
- package/dist/layout/Container.d.ts.map +1 -0
- package/dist/layout/Divider.d.ts +22 -0
- package/dist/layout/Divider.d.ts.map +1 -0
- package/dist/layout/Flex.d.ts +59 -0
- package/dist/layout/Flex.d.ts.map +1 -0
- package/dist/layout/Footer.d.ts +25 -0
- package/dist/layout/Footer.d.ts.map +1 -0
- package/dist/layout/Hero.d.ts +52 -0
- package/dist/layout/Hero.d.ts.map +1 -0
- package/dist/layout/Join.d.ts +40 -0
- package/dist/layout/Join.d.ts.map +1 -0
- package/dist/layout/Link.d.ts +20 -0
- package/dist/layout/Link.d.ts.map +1 -0
- package/dist/layout/Mask.d.ts +26 -0
- package/dist/layout/Mask.d.ts.map +1 -0
- package/dist/layout/Mockup.d.ts +95 -0
- package/dist/layout/Mockup.d.ts.map +1 -0
- package/dist/layout/Stack.d.ts +45 -0
- package/dist/layout/Stack.d.ts.map +1 -0
- package/dist/layout/index.d.ts +46 -0
- package/dist/layout/index.d.ts.map +1 -0
- package/dist/layout/index.js +2 -0
- package/dist/layout-0aaJX4B2.js +554 -0
- package/dist/layout-0aaJX4B2.js.map +1 -0
- package/dist/navigation/Breadcrumbs.d.ts +22 -0
- package/dist/navigation/Breadcrumbs.d.ts.map +1 -0
- package/dist/navigation/Drawer.d.ts +25 -0
- package/dist/navigation/Drawer.d.ts.map +1 -0
- package/dist/navigation/Dropdown.d.ts +40 -0
- package/dist/navigation/Dropdown.d.ts.map +1 -0
- package/dist/navigation/MenuComponent.d.ts +54 -0
- package/dist/navigation/MenuComponent.d.ts.map +1 -0
- package/dist/navigation/Navbar.d.ts +23 -0
- package/dist/navigation/Navbar.d.ts.map +1 -0
- package/dist/navigation/Pagination.d.ts +12 -0
- package/dist/navigation/Pagination.d.ts.map +1 -0
- package/dist/navigation/Tabs.d.ts +35 -0
- package/dist/navigation/Tabs.d.ts.map +1 -0
- package/dist/navigation/index.d.ts +15 -0
- package/dist/navigation/index.d.ts.map +1 -0
- package/dist/navigation/index.js +2 -0
- package/dist/navigation-4cwyfLvr.js +285 -0
- package/dist/navigation-4cwyfLvr.js.map +1 -0
- package/dist/shared/styles.d.ts +79 -0
- package/dist/shared/styles.d.ts.map +1 -0
- package/dist/styles-DFkMxi90.js +126 -0
- package/dist/styles-DFkMxi90.js.map +1 -0
- package/dist/theme/ThemeProvider.d.ts +73 -0
- package/dist/theme/ThemeProvider.d.ts.map +1 -0
- package/dist/theme/index.d.ts +3 -0
- package/dist/theme/index.d.ts.map +1 -0
- package/dist/theme/index.js +2 -0
- package/dist/theme-D9CUMvuT.js +118 -0
- package/dist/theme-D9CUMvuT.js.map +1 -0
- package/dist/typography/Text.d.ts +47 -0
- package/dist/typography/Text.d.ts.map +1 -0
- package/dist/typography/index.d.ts +3 -0
- package/dist/typography/index.d.ts.map +1 -0
- package/dist/typography/index.js +2 -0
- package/dist/typography-CU1RMGKA.js +112 -0
- package/dist/typography-CU1RMGKA.js.map +1 -0
- package/package.json +88 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"layout-0aaJX4B2.js","names":[],"sources":["../src/layout/Hero.tsx","../src/layout/Join.tsx","../src/layout/Chat.tsx","../src/layout/Carousel.tsx","../src/layout/Container.tsx","../src/layout/Card.tsx","../src/layout/Stack.tsx","../src/layout/Flex.tsx","../src/layout/Divider.tsx","../src/layout/Footer.tsx","../src/layout/Link.tsx","../src/layout/Mockup.tsx","../src/layout/Mask.tsx","../src/layout/index.ts"],"sourcesContent":["import { component, compound, DefineProp, DefineSlot } from 'sigx';\r\n\r\n// ============================================\r\n// Hero Types\r\n// ============================================\r\n\r\nexport type HeroProps = \r\n & DefineProp<'overlay', boolean, false>\r\n & DefineProp<'bgImage', string, false>\r\n & DefineProp<'minHeight', string, false>\r\n & DefineProp<'class', string, false>\r\n & DefineSlot<'default'>\r\n & DefineSlot<'overlay'>;\r\n\r\nexport type HeroContentProps = \r\n & DefineProp<'class', string, false>\r\n & DefineSlot<'default'>;\r\n\r\n// ============================================\r\n// Hero Component\r\n// ============================================\r\n\r\n/**\r\n * Hero component for large banner sections with DaisyUI styling.\r\n * Supports background images, overlays, and flexible content layouts.\r\n * \r\n * @example\r\n * ```tsx\r\n * <Hero bgImage=\"/hero-bg.jpg\" overlay>\r\n * <Hero.Content>\r\n * <h1 class=\"text-5xl font-bold\">Welcome!</h1>\r\n * <p>Build amazing apps with SignalX</p>\r\n * <Button variant=\"primary\">Get Started</Button>\r\n * </Hero.Content>\r\n * </Hero>\r\n * ```\r\n */\r\nconst _Hero = component<HeroProps>(({ props, slots }) => {\r\n const getClasses = () => {\r\n const classes = ['hero'];\r\n if (props.minHeight) classes.push(`min-h-[${props.minHeight}]`);\r\n else classes.push('min-h-96');\r\n if (props.class) classes.push(props.class);\r\n return classes.join(' ');\r\n };\r\n\r\n const getStyle = () => {\r\n if (props.bgImage) {\r\n return { backgroundImage: `url(${props.bgImage})` };\r\n }\r\n return {};\r\n };\r\n\r\n return () => (\r\n <div class={getClasses()} style={getStyle()}>\r\n {props.overlay && (\r\n <div class=\"hero-overlay bg-opacity-60\">\r\n {slots.overlay?.()}\r\n </div>\r\n )}\r\n {slots.default?.()}\r\n </div>\r\n );\r\n});\r\n\r\n// ============================================\r\n// HeroContent Component\r\n// ============================================\r\n\r\n/**\r\n * Hero.Content component - Container for hero content with centered layout.\r\n */\r\nconst HeroContent = component<HeroContentProps>(({ props, slots }) => {\r\n const getClasses = () => {\r\n const classes = ['hero-content', 'text-center'];\r\n if (props.class) classes.push(props.class);\r\n return classes.join(' ');\r\n };\r\n\r\n return () => (\r\n <div class={getClasses()}>\r\n <div class=\"max-w-md\">\r\n {slots.default?.()}\r\n </div>\r\n </div>\r\n );\r\n});\r\n\r\n/**\r\n * Hero compound component with Content sub-component.\r\n */\r\nexport const Hero = compound(_Hero, {\r\n Content: HeroContent,\r\n});\r\n\r\nexport type { HeroContentProps as HeroContentCompProps };\r\n","import { component, compound, DefineProp, DefineSlot } from 'sigx';\r\n\r\n// ============================================\r\n// Join Types\r\n// ============================================\r\n\r\nexport type JoinProps = \r\n & DefineProp<'vertical', boolean, false>\r\n & DefineProp<'class', string, false>\r\n & DefineSlot<'default'>;\r\n\r\nexport type JoinItemProps = \r\n & DefineProp<'class', string, false>\r\n & DefineSlot<'default'>;\r\n\r\n// ============================================\r\n// Join Component\r\n// ============================================\r\n\r\n/**\r\n * Join component for grouping multiple items together.\r\n * Groups child elements by adding connecting styles between them.\r\n * \r\n * @example\r\n * ```tsx\r\n * <Join>\r\n * <Join.Item><Button>Left</Button></Join.Item>\r\n * <Join.Item><Button>Center</Button></Join.Item>\r\n * <Join.Item><Button>Right</Button></Join.Item>\r\n * </Join>\r\n * \r\n * <Join vertical>\r\n * <Join.Item><Input placeholder=\"Email\" /></Join.Item>\r\n * <Join.Item><Input placeholder=\"Password\" /></Join.Item>\r\n * <Join.Item><Button variant=\"primary\">Login</Button></Join.Item>\r\n * </Join>\r\n * ```\r\n */\r\nconst _Join = component<JoinProps>(({ props, slots }) => {\r\n const getClasses = () => {\r\n const classes = ['join'];\r\n if (props.vertical) classes.push('join-vertical');\r\n if (props.class) classes.push(props.class);\r\n return classes.join(' ');\r\n };\r\n\r\n return () => (\r\n <div class={getClasses()}>\r\n {slots.default?.()}\r\n </div>\r\n );\r\n});\r\n\r\n// ============================================\r\n// JoinItem Component\r\n// ============================================\r\n\r\n/**\r\n * Join.Item component - wrapper for items within Join component.\r\n * Automatically applies join-item class to children.\r\n */\r\nconst JoinItem = component<JoinItemProps>(({ props, slots }) => {\r\n const getClasses = () => {\r\n const classes = ['join-item'];\r\n if (props.class) classes.push(props.class);\r\n return classes.join(' ');\r\n };\r\n\r\n return () => (\r\n <div class={getClasses()}>\r\n {slots.default?.()}\r\n </div>\r\n );\r\n});\r\n\r\n/**\r\n * Join compound component with Item sub-component.\r\n */\r\nexport const Join = compound(_Join, {\r\n Item: JoinItem,\r\n});\r\n\r\nexport type { JoinItemProps as JoinItemCompProps };\r\n","import { component, compound, DefineProp, DefineSlot } from 'sigx';\r\n\r\n// ============================================\r\n// Chat Types\r\n// ============================================\r\n\r\nexport type ChatProps = \r\n & DefineProp<'start', boolean, false>\r\n & DefineProp<'end', boolean, false>\r\n & DefineProp<'class', string, false>\r\n & DefineSlot<'default'>;\r\n\r\nexport type ChatImageProps = \r\n & DefineProp<'src', string>\r\n & DefineProp<'alt', string, false>\r\n & DefineProp<'class', string, false>;\r\n\r\nexport type ChatHeaderProps = \r\n & DefineProp<'name', string, false>\r\n & DefineProp<'time', string, false>\r\n & DefineProp<'class', string, false>\r\n & DefineSlot<'default'>;\r\n\r\nexport type ChatBubbleColor = 'primary' | 'secondary' | 'accent' | 'info' | 'success' | 'warning' | 'error';\r\n\r\nexport type ChatBubbleProps = \r\n & DefineProp<'color', ChatBubbleColor, false>\r\n & DefineProp<'class', string, false>\r\n & DefineSlot<'default'>;\r\n\r\nexport type ChatFooterProps = \r\n & DefineProp<'class', string, false>\r\n & DefineSlot<'default'>;\r\n\r\nconst chatBubbleColorClasses: Record<ChatBubbleColor, string> = {\r\n primary: 'chat-bubble-primary',\r\n secondary: 'chat-bubble-secondary',\r\n accent: 'chat-bubble-accent',\r\n info: 'chat-bubble-info',\r\n success: 'chat-bubble-success',\r\n warning: 'chat-bubble-warning',\r\n error: 'chat-bubble-error'\r\n};\r\n\r\n// ============================================\r\n// Chat Component\r\n// ============================================\r\n\r\n/**\r\n * Chat component for creating chat/messaging UI.\r\n * Supports compound pattern with Image, Header, Bubble, and Footer sub-components.\r\n * \r\n * @example\r\n * ```tsx\r\n * <Chat start>\r\n * <Chat.Image src=\"/avatar.jpg\" alt=\"User\" />\r\n * <Chat.Header name=\"John\" time=\"12:45\" />\r\n * <Chat.Bubble>Hello! How are you?</Chat.Bubble>\r\n * <Chat.Footer>Delivered</Chat.Footer>\r\n * </Chat>\r\n * \r\n * <Chat end>\r\n * <Chat.Image src=\"/my-avatar.jpg\" />\r\n * <Chat.Bubble color=\"primary\">I'm good, thanks!</Chat.Bubble>\r\n * </Chat>\r\n * ```\r\n */\r\nconst _Chat = component<ChatProps>(({ props, slots }) => {\r\n const getClasses = () => {\r\n const classes = ['chat'];\r\n if (props.start) classes.push('chat-start');\r\n else if (props.end) classes.push('chat-end');\r\n else classes.push('chat-start');\r\n if (props.class) classes.push(props.class);\r\n return classes.join(' ');\r\n };\r\n\r\n return () => (\r\n <div class={getClasses()}>\r\n {slots.default?.()}\r\n </div>\r\n );\r\n});\r\n\r\n// ============================================\r\n// ChatImage Component\r\n// ============================================\r\n\r\n/**\r\n * Chat.Image component - Avatar image for chat messages.\r\n */\r\nconst ChatImage = component<ChatImageProps>(({ props }) => {\r\n const getClasses = () => {\r\n const classes = ['chat-image', 'avatar'];\r\n if (props.class) classes.push(props.class);\r\n return classes.join(' ');\r\n };\r\n\r\n return () => (\r\n <div class={getClasses()}>\r\n <div class=\"w-10 rounded-full\">\r\n <img src={props.src} alt={props.alt ?? 'Avatar'} />\r\n </div>\r\n </div>\r\n );\r\n});\r\n\r\n// ============================================\r\n// ChatHeader Component\r\n// ============================================\r\n\r\n/**\r\n * Chat.Header component - Displays sender name and optional timestamp.\r\n */\r\nconst ChatHeader = component<ChatHeaderProps>(({ props, slots }) => {\r\n const getClasses = () => {\r\n const classes = ['chat-header'];\r\n if (props.class) classes.push(props.class);\r\n return classes.join(' ');\r\n };\r\n\r\n return () => (\r\n <div class={getClasses()}>\r\n {slots.default?.() ?? props.name}\r\n {props.time && <time class=\"text-xs opacity-50 ml-1\">{props.time}</time>}\r\n </div>\r\n );\r\n});\r\n\r\n// ============================================\r\n// ChatBubble Component\r\n// ============================================\r\n\r\n/**\r\n * Chat.Bubble component - Message content container with color variants.\r\n */\r\nconst ChatBubble = component<ChatBubbleProps>(({ props, slots }) => {\r\n const getClasses = () => {\r\n const classes = ['chat-bubble'];\r\n if (props.color) classes.push(chatBubbleColorClasses[props.color]);\r\n if (props.class) classes.push(props.class);\r\n return classes.join(' ');\r\n };\r\n\r\n return () => (\r\n <div class={getClasses()}>\r\n {slots.default?.()}\r\n </div>\r\n );\r\n});\r\n\r\n// ============================================\r\n// ChatFooter Component\r\n// ============================================\r\n\r\n/**\r\n * Chat.Footer component - Message status or additional info.\r\n */\r\nconst ChatFooter = component<ChatFooterProps>(({ props, slots }) => {\r\n const getClasses = () => {\r\n const classes = ['chat-footer', 'opacity-50'];\r\n if (props.class) classes.push(props.class);\r\n return classes.join(' ');\r\n };\r\n\r\n return () => (\r\n <div class={getClasses()}>\r\n {slots.default?.()}\r\n </div>\r\n );\r\n});\r\n\r\n/**\r\n * Chat compound component with Image, Header, Bubble, and Footer sub-components.\r\n */\r\nexport const Chat = compound(_Chat, {\r\n Image: ChatImage,\r\n Header: ChatHeader,\r\n Bubble: ChatBubble,\r\n Footer: ChatFooter,\r\n});\r\n\r\nexport type { \r\n ChatImageProps as ChatImageCompProps,\r\n ChatHeaderProps as ChatHeaderCompProps, \r\n ChatBubbleProps as ChatBubbleCompProps,\r\n ChatFooterProps as ChatFooterCompProps \r\n};\r\n","import { component, compound, DefineProp, DefineSlot, DefineEvent } from 'sigx';\r\n\r\n// ============================================\r\n// Carousel Types\r\n// ============================================\r\n\r\nexport interface CarouselItemData {\r\n id: string;\r\n content: () => any;\r\n}\r\n\r\nexport type CarouselProps = \r\n & DefineProp<'items', CarouselItemData[], false>\r\n & DefineProp<'center', boolean, false>\r\n & DefineProp<'vertical', boolean, false>\r\n & DefineProp<'fullWidth', boolean, false>\r\n & DefineProp<'snap', 'start' | 'center' | 'end', false>\r\n & DefineProp<'class', string, false>\r\n & DefineSlot<'default'>;\r\n\r\nexport type CarouselItemProps = \r\n & DefineProp<'id', string, false>\r\n & DefineProp<'fullWidth', boolean, false>\r\n & DefineProp<'class', string, false>\r\n & DefineSlot<'default'>\r\n & DefineEvent<'click', MouseEvent>;\r\n\r\n// ============================================\r\n// Carousel Component\r\n// ============================================\r\n\r\n/**\r\n * Carousel component for scrollable content galleries.\r\n * Supports horizontal and vertical scrolling with snap points.\r\n * \r\n * @example\r\n * ```tsx\r\n * // Using compound pattern\r\n * <Carousel center>\r\n * <Carousel.Item id=\"slide1\">\r\n * <img src=\"image1.jpg\" />\r\n * </Carousel.Item>\r\n * <Carousel.Item id=\"slide2\">\r\n * <img src=\"image2.jpg\" />\r\n * </Carousel.Item>\r\n * </Carousel>\r\n * \r\n * // Using items prop\r\n * <Carousel \r\n * items={[\r\n * { id: '1', content: () => <img src=\"1.jpg\" /> },\r\n * { id: '2', content: () => <img src=\"2.jpg\" /> }\r\n * ]}\r\n * center\r\n * />\r\n * \r\n * // Vertical carousel\r\n * <Carousel vertical>\r\n * <Carousel.Item><Card>Card 1</Card></Carousel.Item>\r\n * <Carousel.Item><Card>Card 2</Card></Carousel.Item>\r\n * </Carousel>\r\n * ```\r\n */\r\nconst _Carousel = component<CarouselProps>(({ props, slots }) => {\r\n const getClasses = () => {\r\n const classes = ['carousel', 'rounded-box'];\r\n if (props.center) classes.push('carousel-center');\r\n if (props.vertical) classes.push('carousel-vertical');\r\n if (props.fullWidth) classes.push('w-full');\r\n if (props.snap === 'start') classes.push('carousel-start');\r\n if (props.snap === 'end') classes.push('carousel-end');\r\n if (props.class) classes.push(props.class);\r\n return classes.join(' ');\r\n };\r\n\r\n return () => (\r\n <div class={getClasses()}>\r\n {slots.default?.() ?? props.items?.map(item => (\r\n <div id={item.id} class=\"carousel-item\">\r\n {item.content()}\r\n </div>\r\n ))}\r\n </div>\r\n );\r\n});\r\n\r\n// ============================================\r\n// CarouselItem Component\r\n// ============================================\r\n\r\n/**\r\n * Carousel.Item component - Individual slide/item in carousel.\r\n */\r\nconst CarouselItem = component<CarouselItemProps>(({ props, slots, emit }) => {\r\n const getClasses = () => {\r\n const classes = ['carousel-item'];\r\n if (props.fullWidth) classes.push('w-full');\r\n if (props.class) classes.push(props.class);\r\n return classes.join(' ');\r\n };\r\n\r\n return () => (\r\n <div \r\n id={props.id} \r\n class={getClasses()}\r\n onClick={(e) => emit('click', e)}\r\n >\r\n {slots.default?.()}\r\n </div>\r\n );\r\n});\r\n\r\n/**\r\n * Carousel compound component with Item sub-component.\r\n */\r\nexport const Carousel = compound(_Carousel, {\r\n Item: CarouselItem,\r\n});\r\n\r\nexport type { CarouselItemProps as CarouselItemCompProps };\r\n","import { component, DefineProp, DefineSlot } from 'sigx';\r\n\r\nexport type ContainerSize = 'sm' | 'md' | 'lg' | 'xl' | '2xl' | 'full';\r\n\r\nexport type ContainerProps = \r\n & DefineProp<'size', ContainerSize, false>\r\n & DefineProp<'center', boolean, false>\r\n & DefineProp<'padding', boolean, false>\r\n & DefineProp<'class', string, false>\r\n & DefineSlot<'default'>;\r\n\r\nconst sizeClasses: Record<ContainerSize, string> = {\r\n sm: 'max-w-sm',\r\n md: 'max-w-md',\r\n lg: 'max-w-lg',\r\n xl: 'max-w-xl',\r\n '2xl': 'max-w-2xl',\r\n full: 'max-w-full',\r\n};\r\n\r\n/**\r\n * Container component for constraining content width.\r\n * \r\n * @example\r\n * ```tsx\r\n * <Container size=\"lg\" center padding>\r\n * <p>Content goes here</p>\r\n * </Container>\r\n * ```\r\n */\r\nexport const Container = component<ContainerProps>(({ props, slots }) => {\r\n const getClasses = () => {\r\n const classes: string[] = [];\r\n \r\n // Size - default to 2xl if not specified\r\n classes.push(sizeClasses[props.size ?? '2xl']);\r\n \r\n // Center by default\r\n if (props.center !== false) {\r\n classes.push('mx-auto');\r\n }\r\n \r\n // Padding - enabled by default\r\n if (props.padding !== false) {\r\n classes.push('px-4 py-6');\r\n }\r\n \r\n if (props.class) classes.push(props.class);\r\n \r\n return classes.join(' ');\r\n };\r\n\r\n return () => (\r\n <div class={getClasses()}>\r\n {slots.default?.()}\r\n </div>\r\n );\r\n});\r\n","import { component, compound, DefineProp, DefineSlot } from 'sigx';\r\n\r\nexport type CardVariant = 'normal' | 'compact' | 'side' | 'bordered' | 'image-full';\r\n\r\nexport type CardProps = \r\n & DefineProp<'variant', CardVariant, false>\r\n & DefineProp<'shadow', boolean | 'sm' | 'md' | 'lg' | 'xl', false>\r\n & DefineProp<'bordered', boolean, false>\r\n & DefineProp<'glass', boolean, false>\r\n & DefineProp<'imageFull', boolean, false>\r\n & DefineProp<'bgColor', string, false>\r\n & DefineProp<'class', string, false>\r\n & DefineSlot<'default'>;\r\n\r\n/**\r\n * Card component with DaisyUI styling.\r\n * \r\n * @example\r\n * ```tsx\r\n * <Card shadow=\"lg\" bordered>\r\n * <Card.Body>\r\n * <Card.Title>Card Title</Card.Title>\r\n * <p>Card content goes here</p>\r\n * <Card.Actions>\r\n * <Button variant=\"primary\">Action</Button>\r\n * </Card.Actions>\r\n * </Card.Body>\r\n * </Card>\r\n * ```\r\n */\r\nconst _Card = component<CardProps>(({ props, slots }) => {\r\n const getClasses = () => {\r\n const classes = ['card'];\r\n \r\n // Background - default to base-100\r\n classes.push(props.bgColor ?? 'bg-base-100');\r\n \r\n // Shadow\r\n if (props.shadow === true || props.shadow === undefined) {\r\n classes.push('shadow-xl');\r\n } else if (props.shadow === 'sm') {\r\n classes.push('shadow-sm');\r\n } else if (props.shadow === 'md') {\r\n classes.push('shadow-md');\r\n } else if (props.shadow === 'lg') {\r\n classes.push('shadow-lg');\r\n }\r\n \r\n // Variants\r\n if (props.variant === 'compact') classes.push('card-compact');\r\n if (props.variant === 'side') classes.push('card-side');\r\n if (props.bordered) classes.push('card-bordered');\r\n if (props.glass) classes.push('glass');\r\n if (props.imageFull) classes.push('image-full');\r\n \r\n if (props.class) classes.push(props.class);\r\n \r\n return classes.join(' ');\r\n };\r\n\r\n return () => (\r\n <div class={getClasses()}>\r\n {slots.default?.()}\r\n </div>\r\n );\r\n});\r\n\r\n// Card Body\r\nexport type CardBodyProps = \r\n & DefineProp<'center', boolean, false>\r\n & DefineProp<'class', string, false>\r\n & DefineSlot<'default'>;\r\n\r\n/**\r\n * Card.Body component for card content area.\r\n */\r\nconst CardBody = component<CardBodyProps>(({ props, slots }) => {\r\n const getClasses = () => {\r\n const classes = ['card-body'];\r\n \r\n if (props.center) {\r\n classes.push('items-center', 'text-center');\r\n }\r\n \r\n if (props.class) classes.push(props.class);\r\n \r\n return classes.join(' ');\r\n };\r\n\r\n return () => (\r\n <div class={getClasses()}>\r\n {slots.default?.()}\r\n </div>\r\n );\r\n});\r\n\r\n// Card Title\r\nexport type CardTitleProps = \r\n & DefineProp<'class', string, false>\r\n & DefineSlot<'default'>;\r\n\r\n/**\r\n * Card.Title component for card headings.\r\n */\r\nconst CardTitle = component<CardTitleProps>(({ props, slots }) => {\r\n const getClasses = () => {\r\n const classes = ['card-title'];\r\n if (props.class) classes.push(props.class);\r\n return classes.join(' ');\r\n };\r\n\r\n return () => (\r\n <h2 class={getClasses()}>\r\n {slots.default?.()}\r\n </h2>\r\n );\r\n});\r\n\r\n// Card Actions\r\nexport type CardActionsProps = \r\n & DefineProp<'justify', 'start' | 'center' | 'end', false>\r\n & DefineProp<'class', string, false>\r\n & DefineSlot<'default'>;\r\n\r\n/**\r\n * Card.Actions component for card action buttons.\r\n */\r\nconst CardActions = component<CardActionsProps>(({ props, slots }) => {\r\n const getClasses = () => {\r\n const classes = ['card-actions'];\r\n \r\n if (props.justify === 'start') classes.push('justify-start');\r\n else if (props.justify === 'center') classes.push('justify-center');\r\n else classes.push('justify-end'); // default\r\n \r\n if (props.class) classes.push(props.class);\r\n \r\n return classes.join(' ');\r\n };\r\n\r\n return () => (\r\n <div class={getClasses()}>\r\n {slots.default?.()}\r\n </div>\r\n );\r\n});\r\n\r\n// Card Image\r\nexport type CardImageProps = \r\n & DefineProp<'src', string>\r\n & DefineProp<'alt', string, false>\r\n & DefineProp<'class', string, false>;\r\n\r\n/**\r\n * Card.Image component for card images.\r\n */\r\nconst CardImage = component<CardImageProps>(({ props }) => {\r\n return () => (\r\n <figure class={props.class}>\r\n <img src={props.src} alt={props.alt ?? ''} />\r\n </figure>\r\n );\r\n});\r\n\r\n/**\r\n * Card compound component with Body, Title, Actions, and Image sub-components.\r\n */\r\nexport const Card = compound(_Card, {\r\n Body: CardBody,\r\n Title: CardTitle,\r\n Actions: CardActions,\r\n Image: CardImage,\r\n});\r\n","import { component, DefineProp, DefineSlot } from 'sigx';\r\n\r\nexport type StackDirection = 'top' | 'bottom' | 'start' | 'end';\r\n\r\nexport type StackProps = \r\n & DefineProp<'direction', StackDirection, false>\r\n & DefineProp<'class', string, false>\r\n & DefineSlot<'default'>;\r\n\r\n/**\r\n * DaisyUI Stack component - visually puts elements on top of each other.\r\n * \r\n * Stack uses CSS grid to layer elements, creating a stacked paper effect.\r\n * Use `w-*` and `h-*` classes on the Stack to set the size of all items.\r\n * \r\n * @example Basic stack\r\n * ```tsx\r\n * <Stack class=\"w-32 h-20\">\r\n * <div class=\"bg-primary text-primary-content grid place-content-center rounded-box\">1</div>\r\n * <div class=\"bg-accent text-accent-content grid place-content-center rounded-box\">2</div>\r\n * <div class=\"bg-secondary text-secondary-content grid place-content-center rounded-box\">3</div>\r\n * </Stack>\r\n * ```\r\n * \r\n * @example Stack with cards\r\n * ```tsx\r\n * <Stack class=\"size-28\">\r\n * <Card class=\"border border-base-content bg-base-100 text-center\">\r\n * <Card.Body>A</Card.Body>\r\n * </Card>\r\n * <Card class=\"border border-base-content bg-base-100 text-center\">\r\n * <Card.Body>B</Card.Body>\r\n * </Card>\r\n * <Card class=\"border border-base-content bg-base-100 text-center\">\r\n * <Card.Body>C</Card.Body>\r\n * </Card>\r\n * </Stack>\r\n * ```\r\n * \r\n * @example Stack directions\r\n * ```tsx\r\n * <Stack direction=\"top\" class=\"size-28\">...</Stack>\r\n * <Stack direction=\"bottom\" class=\"size-28\">...</Stack>\r\n * <Stack direction=\"start\" class=\"size-28\">...</Stack>\r\n * <Stack direction=\"end\" class=\"size-28\">...</Stack>\r\n * ```\r\n */\r\nexport const Stack = component<StackProps>(({ props, slots }) => {\r\n const getClasses = () => {\r\n const classes = ['stack'];\r\n \r\n // Direction modifiers\r\n if (props.direction === 'top') {\r\n classes.push('stack-top');\r\n } else if (props.direction === 'start') {\r\n classes.push('stack-start');\r\n } else if (props.direction === 'end') {\r\n classes.push('stack-end');\r\n }\r\n // 'bottom' is default, no additional class needed (or stack-bottom)\r\n \r\n if (props.class) classes.push(props.class);\r\n \r\n return classes.join(' ');\r\n };\r\n\r\n return () => (\r\n <div class={getClasses()}>\r\n {slots.default?.()}\r\n </div>\r\n );\r\n});\r\n","import { component, DefineProp, DefineSlot } from 'sigx';\r\nimport { \r\n Spacing, \r\n RadiusValue, \r\n BackgroundColor,\r\n SizeValue,\r\n FlexAlign,\r\n FlexJustify,\r\n FlexDirection,\r\n resolveSpacing,\r\n resolveRadius,\r\n resolveBackground,\r\n resolveSize,\r\n alignClasses,\r\n justifyClasses,\r\n directionClasses\r\n} from '../shared/styles';\r\n\r\n// Re-export types for convenience\r\nexport type { Spacing as FlexSpacing, FlexAlign, FlexJustify };\r\n\r\nexport type FlexProps = \r\n & DefineProp<'direction', FlexDirection, false>\r\n & DefineProp<'gap', Spacing, false>\r\n & DefineProp<'align', FlexAlign, false>\r\n & DefineProp<'justify', FlexJustify, false>\r\n & DefineProp<'wrap', boolean, false>\r\n & DefineProp<'inline', boolean, false>\r\n & DefineProp<'padding', Spacing, false>\r\n & DefineProp<'margin', Spacing, false>\r\n & DefineProp<'width', SizeValue, false>\r\n & DefineProp<'height', SizeValue, false>\r\n & DefineProp<'minWidth', SizeValue, false>\r\n & DefineProp<'minHeight', SizeValue, false>\r\n & DefineProp<'maxWidth', SizeValue, false>\r\n & DefineProp<'maxHeight', SizeValue, false>\r\n & DefineProp<'rounded', RadiusValue | boolean, false>\r\n & DefineProp<'background', BackgroundColor, false>\r\n & DefineProp<'grow', boolean, false>\r\n & DefineProp<'shrink', boolean, false>\r\n & DefineProp<'class', string, false>\r\n & DefineSlot<'default'>;\r\n\r\n/**\r\n * Flexible layout component using Tailwind CSS flex utilities.\r\n * \r\n * @example\r\n * ```tsx\r\n * // Simple usage\r\n * <Flex direction=\"row\" gap=\"4\" align=\"center\">\r\n * <div>Item 1</div>\r\n * <div>Item 2</div>\r\n * </Flex>\r\n * \r\n * // With styling props\r\n * <Flex padding=\"4\" background=\"base-200\" rounded>\r\n * <div>Styled flex</div>\r\n * </Flex>\r\n * \r\n * // With width/height (Tailwind presets or CSS values)\r\n * <Flex width=\"full\" height=\"screen\" padding=\"4\">...</Flex>\r\n * <Flex width=\"400px\" height=\"200px\">...</Flex>\r\n * ```\r\n */\r\nexport const Flex = component<FlexProps>(({ props, slots }) => {\r\n const getClassesAndStyles = () => {\r\n const classes = [props.inline ? 'inline-flex' : 'flex'];\r\n const styles: Record<string, string> = {};\r\n \r\n // Direction - default to row\r\n classes.push(directionClasses[props.direction ?? 'row']);\r\n \r\n // Gap\r\n classes.push(...resolveSpacing(props.gap, 'gap'));\r\n \r\n // Alignment\r\n if (props.align) {\r\n classes.push(alignClasses[props.align]);\r\n }\r\n \r\n // Justify\r\n if (props.justify) {\r\n classes.push(justifyClasses[props.justify]);\r\n }\r\n \r\n // Wrap\r\n if (props.wrap) {\r\n classes.push('flex-wrap');\r\n }\r\n \r\n // Padding & Margin\r\n classes.push(...resolveSpacing(props.padding, 'p'));\r\n classes.push(...resolveSpacing(props.margin, 'm'));\r\n \r\n // Width & Height - can be class or inline style\r\n const sizeProps: Array<{ value: SizeValue | undefined; prefix: 'w' | 'h' | 'min-w' | 'min-h' | 'max-w' | 'max-h' }> = [\r\n { value: props.width, prefix: 'w' },\r\n { value: props.height, prefix: 'h' },\r\n { value: props.minWidth, prefix: 'min-w' },\r\n { value: props.minHeight, prefix: 'min-h' },\r\n { value: props.maxWidth, prefix: 'max-w' },\r\n { value: props.maxHeight, prefix: 'max-h' },\r\n ];\r\n \r\n for (const { value, prefix } of sizeProps) {\r\n const result = resolveSize(value, prefix);\r\n if (result.class) {\r\n classes.push(result.class);\r\n }\r\n if (result.style) {\r\n styles[result.style.property] = result.style.value;\r\n }\r\n }\r\n \r\n // Rounded\r\n const radiusClass = resolveRadius(props.rounded);\r\n if (radiusClass) classes.push(radiusClass);\r\n \r\n // Background\r\n classes.push(...resolveBackground(props.background));\r\n \r\n // Flex grow/shrink\r\n if (props.grow) {\r\n classes.push('flex-grow');\r\n }\r\n if (props.shrink) {\r\n classes.push('flex-shrink');\r\n }\r\n \r\n if (props.class) classes.push(props.class);\r\n \r\n return { \r\n className: classes.join(' '),\r\n style: Object.keys(styles).length > 0 ? styles : undefined\r\n };\r\n };\r\n\r\n return () => {\r\n const { className, style } = getClassesAndStyles();\r\n return (\r\n <div class={className} style={style}>\r\n {slots.default?.()}\r\n </div>\r\n );\r\n };\r\n});\r\n\r\n// Row - horizontal flex container\r\nexport type RowProps = Omit<FlexProps, 'direction'> & DefineProp<'reverse', boolean, false>;\r\n\r\n/**\r\n * Horizontal flex container (row direction).\r\n * \r\n * @example\r\n * ```tsx\r\n * <Row gap=\"4\" align=\"center\" padding=\"4\" background=\"base-200\" rounded>\r\n * <div>Left</div>\r\n * <div>Right</div>\r\n * </Row>\r\n * ```\r\n */\r\nexport const Row = component<RowProps>(({ props, slots }) => {\r\n return () => (\r\n <Flex \r\n direction={props.reverse ? 'row-reverse' : 'row'}\r\n gap={props.gap}\r\n align={props.align}\r\n justify={props.justify}\r\n wrap={props.wrap}\r\n inline={props.inline}\r\n padding={props.padding}\r\n margin={props.margin}\r\n width={props.width}\r\n height={props.height}\r\n minWidth={props.minWidth}\r\n minHeight={props.minHeight}\r\n maxWidth={props.maxWidth}\r\n maxHeight={props.maxHeight}\r\n rounded={props.rounded}\r\n background={props.background}\r\n grow={props.grow}\r\n shrink={props.shrink}\r\n class={props.class}\r\n >\r\n {slots.default?.()}\r\n </Flex>\r\n );\r\n});\r\n\r\n// Col - vertical flex container\r\nexport type ColProps = Omit<FlexProps, 'direction'> & DefineProp<'reverse', boolean, false>;\r\n\r\n/**\r\n * Vertical flex container (column direction).\r\n * \r\n * @example\r\n * ```tsx\r\n * <Col gap=\"4\" align=\"center\" padding=\"4\" background=\"base-200\" rounded>\r\n * <div>Top</div>\r\n * <div>Bottom</div>\r\n * </Col>\r\n * ```\r\n */\r\nexport const Col = component<ColProps>(({ props, slots }) => {\r\n return () => (\r\n <Flex \r\n direction={props.reverse ? 'col-reverse' : 'col'}\r\n gap={props.gap}\r\n align={props.align}\r\n justify={props.justify}\r\n wrap={props.wrap}\r\n inline={props.inline}\r\n padding={props.padding}\r\n margin={props.margin}\r\n width={props.width}\r\n height={props.height}\r\n minWidth={props.minWidth}\r\n minHeight={props.minHeight}\r\n maxWidth={props.maxWidth}\r\n maxHeight={props.maxHeight}\r\n rounded={props.rounded}\r\n background={props.background}\r\n grow={props.grow}\r\n shrink={props.shrink}\r\n class={props.class}\r\n >\r\n {slots.default?.()}\r\n </Flex>\r\n );\r\n});\r\n","import { component, DefineProp, DefineSlot } from 'sigx';\r\n\r\nexport type DividerProps = \r\n & DefineProp<'vertical', boolean, false>\r\n & DefineProp<'class', string, false>\r\n & DefineSlot<'default'>;\r\n\r\n/**\r\n * Divider component with DaisyUI styling.\r\n * \r\n * Note: In DaisyUI, the naming is based on the flex container direction:\r\n * - Default 'divider' works in vertical flex containers (flex-col)\r\n * - 'divider-horizontal' works in horizontal flex containers (flex-row)\r\n * \r\n * When 'vertical' prop is true, this component uses 'divider-horizontal'\r\n * which renders a vertical dividing line in a horizontal flex container.\r\n * \r\n * @example\r\n * ```tsx\r\n * <Divider>OR</Divider>\r\n * <Divider vertical />\r\n * ```\r\n */\r\nexport const Divider = component<DividerProps>(({ props, slots }) => {\r\n const getClasses = () => {\r\n const classes = ['divider'];\r\n \r\n if (props.vertical) {\r\n classes.push('divider-horizontal');\r\n }\r\n \r\n if (props.class) classes.push(props.class);\r\n \r\n return classes.join(' ');\r\n };\r\n\r\n return () => (\r\n <div class={getClasses()}>\r\n {slots.default?.()}\r\n </div>\r\n );\r\n});\r\n","import { component, DefineProp, DefineSlot } from 'sigx';\r\n\r\n// ============================================\r\n// Footer Types\r\n// ============================================\r\n\r\nexport type FooterProps = \r\n & DefineProp<'center', boolean, false>\r\n & DefineProp<'class', string, false>\r\n & DefineSlot<'default'>;\r\n\r\n// ============================================\r\n// Footer Component\r\n// ============================================\r\n\r\n/**\r\n * Footer component with DaisyUI styling.\r\n * Provides a styled footer area for website navigation and content.\r\n * \r\n * @example\r\n * ```tsx\r\n * <Footer center>\r\n * <p>Copyright © 2025 - All rights reserved</p>\r\n * </Footer>\r\n * \r\n * <Footer>\r\n * <nav>\r\n * <h6 class=\"footer-title\">Services</h6>\r\n * <a class=\"link link-hover\">Branding</a>\r\n * <a class=\"link link-hover\">Design</a>\r\n * </nav>\r\n * </Footer>\r\n * ```\r\n */\r\nexport const Footer = component<FooterProps>(({ props, slots }) => {\r\n const getClasses = () => {\r\n const classes = ['footer', 'footer-center', 'p-10', 'bg-base-200', 'text-base-content'];\r\n if (props.center) classes.push('items-center');\r\n if (props.class) classes.push(props.class);\r\n return classes.join(' ');\r\n };\r\n\r\n return () => (\r\n <footer class={getClasses()}>\r\n {slots.default?.()}\r\n </footer>\r\n );\r\n});\r\n","import { component, DefineProp, DefineSlot, DefineEvent } from 'sigx';\r\n\r\n// ============================================\r\n// Link Types\r\n// ============================================\r\n\r\nexport type LinkColor = 'primary' | 'secondary' | 'accent' | 'neutral' | 'info' | 'success' | 'warning' | 'error';\r\n\r\nexport type LinkProps = \r\n & DefineProp<'href', string, false>\r\n & DefineProp<'color', LinkColor, false>\r\n & DefineProp<'hover', boolean, false>\r\n & DefineProp<'class', string, false>\r\n & DefineSlot<'default'>\r\n & DefineEvent<'click', MouseEvent>;\r\n\r\nconst linkColorClasses: Record<LinkColor, string> = {\r\n primary: 'link-primary',\r\n secondary: 'link-secondary',\r\n accent: 'link-accent',\r\n neutral: 'link-neutral',\r\n info: 'link-info',\r\n success: 'link-success',\r\n warning: 'link-warning',\r\n error: 'link-error'\r\n};\r\n\r\n// ============================================\r\n// Link Component\r\n// ============================================\r\n\r\n/**\r\n * Link component with DaisyUI styling.\r\n * Provides styled anchor elements with color variants and hover effects.\r\n * \r\n * @example\r\n * ```tsx\r\n * <Link href=\"/about\" color=\"primary\" hover>About Us</Link>\r\n * \r\n * <Link href=\"/docs\" color=\"secondary\">Documentation</Link>\r\n * \r\n * <Link onClick={(e) => handleClick(e)}>Clickable Link</Link>\r\n * ```\r\n */\r\nexport const Link = component<LinkProps>(({ props, slots, emit }) => {\r\n const getClasses = () => {\r\n const classes = ['link'];\r\n if (props.color) classes.push(linkColorClasses[props.color]);\r\n if (props.hover) classes.push('link-hover');\r\n if (props.class) classes.push(props.class);\r\n return classes.join(' ');\r\n };\r\n\r\n return () => (\r\n <a \r\n href={props.href}\r\n class={getClasses()}\r\n onClick={(e) => emit('click', e)}\r\n >\r\n {slots.default?.()}\r\n </a>\r\n );\r\n});\r\n","import { component, compound, DefineProp, DefineSlot } from 'sigx';\r\n\r\n// ============================================\r\n// Mockup Types\r\n// ============================================\r\n\r\nexport type ArtboardSize = '1' | '2' | '3' | '4' | '5' | '6';\r\n\r\nexport type ArtboardProps = \r\n & DefineProp<'size', ArtboardSize, false>\r\n & DefineProp<'horizontal', boolean, false>\r\n & DefineProp<'class', string, false>\r\n & DefineSlot<'default'>;\r\n\r\nexport interface CodeLine {\r\n prefix?: string;\r\n text: string;\r\n color?: 'primary' | 'secondary' | 'accent' | 'info' | 'success' | 'warning' | 'error';\r\n}\r\n\r\nexport type MockupBrowserProps = \r\n & DefineProp<'url', string, false>\r\n & DefineProp<'class', string, false>\r\n & DefineSlot<'default'>;\r\n\r\nexport type MockupCodeProps = \r\n & DefineProp<'lines', CodeLine[], false>\r\n & DefineProp<'class', string, false>\r\n & DefineSlot<'default'>;\r\n\r\nexport type MockupPhoneProps = \r\n & DefineProp<'class', string, false>\r\n & DefineSlot<'default'>;\r\n\r\nexport type MockupWindowProps = \r\n & DefineProp<'class', string, false>\r\n & DefineSlot<'default'>;\r\n\r\n// ============================================\r\n// Artboard Component (Phone Mockup Sizes)\r\n// ============================================\r\n\r\n/**\r\n * Artboard component for phone mockup sizing.\r\n * Provides standardized phone screen sizes for demos.\r\n * \r\n * @example\r\n * ```tsx\r\n * <Artboard size=\"1\">\r\n * 320×568 content\r\n * </Artboard>\r\n * \r\n * <Artboard size=\"4\" horizontal>\r\n * Landscape mode\r\n * </Artboard>\r\n * ```\r\n */\r\nexport const Artboard = component<ArtboardProps>(({ props, slots }) => {\r\n const getClasses = () => {\r\n const classes = ['artboard', 'artboard-demo'];\r\n if (props.size) classes.push(`phone-${props.size}`);\r\n else classes.push('phone-1');\r\n if (props.horizontal) classes.push('horizontal');\r\n if (props.class) classes.push(props.class);\r\n return classes.join(' ');\r\n };\r\n\r\n return () => (\r\n <div class={getClasses()}>\r\n {slots.default?.()}\r\n </div>\r\n );\r\n});\r\n\r\n// ============================================\r\n// MockupBrowser Component\r\n// ============================================\r\n\r\n/**\r\n * Mockup.Browser component - Browser window mockup with URL bar.\r\n */\r\nconst MockupBrowser = component<MockupBrowserProps>(({ props, slots }) => {\r\n const getClasses = () => {\r\n const classes = ['mockup-browser', 'border', 'border-base-300'];\r\n if (props.class) classes.push(props.class);\r\n return classes.join(' ');\r\n };\r\n\r\n return () => (\r\n <div class={getClasses()}>\r\n <div class=\"mockup-browser-toolbar\">\r\n <div class=\"input border border-base-300\">{props.url ?? 'https://example.com'}</div>\r\n </div>\r\n {slots.default?.()}\r\n </div>\r\n );\r\n});\r\n\r\n// ============================================\r\n// MockupCode Component\r\n// ============================================\r\n\r\n/**\r\n * Mockup.Code component - Terminal/code mockup with line prefixes.\r\n */\r\nconst MockupCode = component<MockupCodeProps>(({ props, slots }) => {\r\n const getClasses = () => {\r\n const classes = ['mockup-code'];\r\n if (props.class) classes.push(props.class);\r\n return classes.join(' ');\r\n };\r\n\r\n return () => (\r\n <div class={getClasses()}>\r\n {slots.default?.() ?? props.lines?.map(line => (\r\n <pre data-prefix={line.prefix ?? ''}>\r\n <code class={line.color ? `text-${line.color}` : ''}>\r\n {line.text}\r\n </code>\r\n </pre>\r\n ))}\r\n </div>\r\n );\r\n});\r\n\r\n// ============================================\r\n// MockupPhone Component\r\n// ============================================\r\n\r\n/**\r\n * Mockup.Phone component - Realistic phone frame mockup.\r\n */\r\nconst MockupPhone = component<MockupPhoneProps>(({ props, slots }) => {\r\n const getClasses = () => {\r\n const classes = ['mockup-phone'];\r\n if (props.class) classes.push(props.class);\r\n return classes.join(' ');\r\n };\r\n\r\n return () => (\r\n <div class={getClasses()}>\r\n <div class=\"camera\"></div>\r\n <div class=\"display\">\r\n <div class=\"artboard artboard-demo phone-1\">\r\n {slots.default?.()}\r\n </div>\r\n </div>\r\n </div>\r\n );\r\n});\r\n\r\n// ============================================\r\n// MockupWindow Component\r\n// ============================================\r\n\r\n/**\r\n * Mockup.Window component - Desktop window mockup with title bar.\r\n */\r\nconst MockupWindow = component<MockupWindowProps>(({ props, slots }) => {\r\n const getClasses = () => {\r\n const classes = ['mockup-window', 'border', 'border-base-300'];\r\n if (props.class) classes.push(props.class);\r\n return classes.join(' ');\r\n };\r\n\r\n return () => (\r\n <div class={getClasses()}>\r\n <div class=\"flex justify-center px-4 py-16 bg-base-200\">\r\n {slots.default?.()}\r\n </div>\r\n </div>\r\n );\r\n});\r\n\r\n// ============================================\r\n// Mockup Compound Export\r\n// ============================================\r\n\r\n/**\r\n * Mockup namespace with Browser, Code, Phone, and Window components.\r\n * \r\n * @example\r\n * ```tsx\r\n * <Mockup.Browser url=\"https://sigx.dev\">\r\n * <div class=\"bg-base-200 p-8\">Website content</div>\r\n * </Mockup.Browser>\r\n * \r\n * <Mockup.Code lines={[\r\n * { prefix: '$', text: 'npm install sigx' },\r\n * { text: 'Installing...', color: 'warning' },\r\n * { text: 'Done!', color: 'success' }\r\n * ]} />\r\n * \r\n * <Mockup.Phone>\r\n * <img src=\"/app-screenshot.png\" />\r\n * </Mockup.Phone>\r\n * \r\n * <Mockup.Window>\r\n * <div class=\"p-8\">Desktop app content</div>\r\n * </Mockup.Window>\r\n * ```\r\n */\r\nexport const Mockup = {\r\n Browser: MockupBrowser,\r\n Code: MockupCode,\r\n Phone: MockupPhone,\r\n Window: MockupWindow,\r\n};\r\n\r\n// Also export individual components for backwards compatibility\r\nexport { MockupBrowser, MockupCode, MockupPhone, MockupWindow };\r\n\r\nexport type {\r\n MockupBrowserProps as MockupBrowserCompProps,\r\n MockupCodeProps as MockupCodeCompProps,\r\n MockupPhoneProps as MockupPhoneCompProps,\r\n MockupWindowProps as MockupWindowCompProps\r\n};\r\n","import { component, DefineProp, DefineSlot } from 'sigx';\r\n\r\n// ============================================\r\n// Mask Types\r\n// ============================================\r\n\r\nexport type MaskShape = \r\n | 'squircle' \r\n | 'heart' \r\n | 'hexagon' \r\n | 'hexagon-2' \r\n | 'decagon' \r\n | 'pentagon' \r\n | 'diamond' \r\n | 'square' \r\n | 'circle' \r\n | 'parallelogram' \r\n | 'parallelogram-2' \r\n | 'parallelogram-3' \r\n | 'parallelogram-4' \r\n | 'star' \r\n | 'star-2' \r\n | 'triangle' \r\n | 'triangle-2' \r\n | 'triangle-3' \r\n | 'triangle-4';\r\n\r\nexport type MaskProps = \r\n & DefineProp<'shape', MaskShape>\r\n & DefineProp<'class', string, false>\r\n & DefineSlot<'default'>;\r\n\r\n// ============================================\r\n// Mask Component\r\n// ============================================\r\n\r\n/**\r\n * Mask component for cropping content to various shapes.\r\n * Uses CSS clip-path for smooth, scalable shape masking.\r\n * \r\n * @example\r\n * ```tsx\r\n * <Mask shape=\"hexagon\">\r\n * <img src=\"/profile.jpg\" alt=\"Profile\" />\r\n * </Mask>\r\n * \r\n * <Mask shape=\"heart\">\r\n * <div class=\"bg-primary w-20 h-20\" />\r\n * </Mask>\r\n * \r\n * <Mask shape=\"star\">\r\n * <img src=\"/award.png\" />\r\n * </Mask>\r\n * ```\r\n */\r\nexport const Mask = component<MaskProps>(({ props, slots }) => {\r\n const getClasses = () => {\r\n const classes = ['mask'];\r\n if (props.shape) classes.push(`mask-${props.shape}`);\r\n if (props.class) classes.push(props.class);\r\n return classes.join(' ');\r\n };\r\n\r\n return () => (\r\n <div class={getClasses()}>\r\n {slots.default?.()}\r\n </div>\r\n );\r\n});\r\n","// Layout components index\r\nimport { Hero as HeroCompound } from './Hero';\r\nimport { Join as JoinCompound } from './Join';\r\nimport { Chat as ChatCompound } from './Chat';\r\nimport { Carousel as CarouselCompound } from './Carousel';\r\n\r\nexport { Container } from './Container';\r\nexport { Card } from './Card';\r\nexport { Stack } from './Stack';\r\nexport { Flex, Row, Col } from './Flex';\r\nexport { Divider } from './Divider';\r\nexport { Hero } from './Hero';\r\nexport { Footer } from './Footer';\r\nexport { Join } from './Join';\r\nexport { Link } from './Link';\r\nexport { Chat } from './Chat';\r\nexport { Mockup, MockupBrowser, MockupCode, MockupPhone, MockupWindow, Artboard } from './Mockup';\r\nexport { Carousel } from './Carousel';\r\nexport { Mask } from './Mask';\r\n\r\n// Re-export types\r\nexport type { ContainerProps, ContainerSize } from './Container';\r\nexport type { CardProps, CardVariant, CardBodyProps, CardTitleProps, CardActionsProps, CardImageProps } from './Card';\r\nexport type { StackProps, StackDirection } from './Stack';\r\nexport type { FlexProps, RowProps, ColProps, FlexSpacing, FlexAlign, FlexJustify } from './Flex';\r\nexport type { DividerProps } from './Divider';\r\nexport type { HeroProps, HeroContentCompProps as HeroContentProps } from './Hero';\r\nexport type { FooterProps } from './Footer';\r\nexport type { JoinProps, JoinItemCompProps as JoinItemProps } from './Join';\r\nexport type { LinkProps, LinkColor } from './Link';\r\nexport type { \r\n ChatProps, \r\n ChatImageCompProps as ChatImageProps, \r\n ChatHeaderCompProps as ChatHeaderProps, \r\n ChatBubbleCompProps as ChatBubbleProps, \r\n ChatBubbleColor, \r\n ChatFooterCompProps as ChatFooterProps \r\n} from './Chat';\r\nexport type { \r\n ArtboardProps, ArtboardSize,\r\n MockupBrowserCompProps as MockupBrowserProps, \r\n MockupCodeCompProps as MockupCodeProps, \r\n CodeLine, \r\n MockupPhoneCompProps as MockupPhoneProps, \r\n MockupWindowCompProps as MockupWindowProps \r\n} from './Mockup';\r\nexport type { CarouselProps, CarouselItemData, CarouselItemCompProps as CarouselItemProps } from './Carousel';\r\nexport type { MaskProps, MaskShape } from './Mask';\r\n\r\n// Backwards compatibility - also export individual compound sub-components as standalone\r\n// These allow users to import HeroContent directly if needed\r\nexport const HeroContent = HeroCompound.Content;\r\nexport const JoinItem = JoinCompound.Item;\r\nexport const ChatImage = ChatCompound.Image;\r\nexport const ChatHeader = ChatCompound.Header;\r\nexport const ChatBubble = ChatCompound.Bubble;\r\nexport const ChatFooter = ChatCompound.Footer;\r\nexport const CarouselItem = CarouselCompound.Item;\r\n"],"mappings":"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"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import { DefineProp, DefineEvent } from 'sigx';
|
|
2
|
+
export interface BreadcrumbItem {
|
|
3
|
+
id: string;
|
|
4
|
+
label: string;
|
|
5
|
+
href?: string;
|
|
6
|
+
}
|
|
7
|
+
export type BreadcrumbsProps = DefineProp<'items', BreadcrumbItem[]> & DefineProp<'class', string, false> & DefineEvent<'navigate', string>;
|
|
8
|
+
/**
|
|
9
|
+
* Breadcrumbs component with DaisyUI styling.
|
|
10
|
+
*
|
|
11
|
+
* @example
|
|
12
|
+
* ```tsx
|
|
13
|
+
* const items = [
|
|
14
|
+
* { id: 'home', label: 'Home', href: '/' },
|
|
15
|
+
* { id: 'docs', label: 'Docs', href: '/docs' },
|
|
16
|
+
* { id: 'current', label: 'Current Page' }
|
|
17
|
+
* ];
|
|
18
|
+
* <Breadcrumbs items={items} onNavigate={(id) => navigate(id)} />
|
|
19
|
+
* ```
|
|
20
|
+
*/
|
|
21
|
+
export declare const Breadcrumbs: import("@sigx/runtime-core").ComponentFactory<BreadcrumbsProps, void, {}>;
|
|
22
|
+
//# sourceMappingURL=Breadcrumbs.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Breadcrumbs.d.ts","sourceRoot":"","sources":["../../src/navigation/Breadcrumbs.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAa,UAAU,EAAE,WAAW,EAAE,MAAM,MAAM,CAAC;AAE1D,MAAM,WAAW,cAAc;IAC3B,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,MAAM,gBAAgB,GACtB,UAAU,CAAC,OAAO,EAAE,cAAc,EAAE,CAAC,GACrC,UAAU,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC,GAClC,WAAW,CAAC,UAAU,EAAE,MAAM,CAAC,CAAC;AAEtC;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,WAAW,2EAoBtB,CAAC"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { DefineProp, DefineModel, DefineSlot } from 'sigx';
|
|
2
|
+
export type DrawerProps = DefineModel<boolean> & DefineProp<'side', 'left' | 'right', false> & DefineProp<'responsive', boolean, false> & DefineProp<'class', string, false> & DefineSlot<'default'> & DefineSlot<'side'>;
|
|
3
|
+
/**
|
|
4
|
+
* Drawer component with DaisyUI styling.
|
|
5
|
+
* Slide-out side panel for navigation, filters, and mobile menus.
|
|
6
|
+
*
|
|
7
|
+
* @example
|
|
8
|
+
* ```tsx
|
|
9
|
+
* const open = signal(false);
|
|
10
|
+
* <Drawer
|
|
11
|
+
* model={open}
|
|
12
|
+
* slots={{
|
|
13
|
+
* side: () => <Menu items={navItems} />
|
|
14
|
+
* }}
|
|
15
|
+
* >
|
|
16
|
+
* <main>Main content</main>
|
|
17
|
+
* </Drawer>
|
|
18
|
+
* ```
|
|
19
|
+
*/
|
|
20
|
+
export declare const Drawer: import("@sigx/runtime-core").ComponentFactory<DrawerProps, void, {
|
|
21
|
+
default: () => import("@sigx/runtime-core").JSXElement | import("@sigx/runtime-core").JSXElement[] | null;
|
|
22
|
+
} & {
|
|
23
|
+
side: () => import("@sigx/runtime-core").JSXElement | import("@sigx/runtime-core").JSXElement[] | null;
|
|
24
|
+
}>;
|
|
25
|
+
//# sourceMappingURL=Drawer.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Drawer.d.ts","sourceRoot":"","sources":["../../src/navigation/Drawer.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAa,UAAU,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,MAAM,CAAC;AAEtE,MAAM,MAAM,WAAW,GACjB,WAAW,CAAC,OAAO,CAAC,GACpB,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,EAAE,KAAK,CAAC,GAC3C,UAAU,CAAC,YAAY,EAAE,OAAO,EAAE,KAAK,CAAC,GACxC,UAAU,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC,GAClC,UAAU,CAAC,SAAS,CAAC,GACrB,UAAU,CAAC,MAAM,CAAC,CAAC;AAEzB;;;;;;;;;;;;;;;;GAgBG;AACH,eAAO,MAAM,MAAM;;;;EA0CjB,CAAC"}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
import { DefineProp, DefineSlot } from 'sigx';
|
|
2
|
+
export type DropdownPosition = 'end' | 'top' | 'bottom' | 'left' | 'right';
|
|
3
|
+
export type DropdownProps = DefineProp<'position', DropdownPosition, false> & DefineProp<'hover', boolean, false> & DefineProp<'class', string, false> & DefineProp<'menuClass', string, false> & DefineSlot<'trigger'> & DefineSlot<'default'>;
|
|
4
|
+
/**
|
|
5
|
+
* Dropdown component with DaisyUI styling.
|
|
6
|
+
* Uses slots for maximum flexibility - any component can be the trigger.
|
|
7
|
+
*
|
|
8
|
+
* @example
|
|
9
|
+
* ```tsx
|
|
10
|
+
* <Dropdown
|
|
11
|
+
* slots={{
|
|
12
|
+
* trigger: () => <Button>Open Menu</Button>
|
|
13
|
+
* }}
|
|
14
|
+
* >
|
|
15
|
+
* <a>Item 1</a>
|
|
16
|
+
* <a>Item 2</a>
|
|
17
|
+
* </Dropdown>
|
|
18
|
+
* ```
|
|
19
|
+
*
|
|
20
|
+
* @example With Menu component
|
|
21
|
+
* ```tsx
|
|
22
|
+
* <Dropdown
|
|
23
|
+
* position="end"
|
|
24
|
+
* slots={{
|
|
25
|
+
* trigger: () => <Button variant="primary">Actions</Button>
|
|
26
|
+
* }}
|
|
27
|
+
* >
|
|
28
|
+
* <Menu class="w-52">
|
|
29
|
+
* <Menu.Item><a>Edit</a></Menu.Item>
|
|
30
|
+
* <Menu.Item><a>Delete</a></Menu.Item>
|
|
31
|
+
* </Menu>
|
|
32
|
+
* </Dropdown>
|
|
33
|
+
* ```
|
|
34
|
+
*/
|
|
35
|
+
export declare const Dropdown: import("@sigx/runtime-core").ComponentFactory<DropdownProps, void, {
|
|
36
|
+
trigger: () => import("@sigx/runtime-core").JSXElement | import("@sigx/runtime-core").JSXElement[] | null;
|
|
37
|
+
} & {
|
|
38
|
+
default: () => import("@sigx/runtime-core").JSXElement | import("@sigx/runtime-core").JSXElement[] | null;
|
|
39
|
+
}>;
|
|
40
|
+
//# sourceMappingURL=Dropdown.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Dropdown.d.ts","sourceRoot":"","sources":["../../src/navigation/Dropdown.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAa,UAAU,EAAE,UAAU,EAAE,MAAM,MAAM,CAAC;AAEzD,MAAM,MAAM,gBAAgB,GAAG,KAAK,GAAG,KAAK,GAAG,QAAQ,GAAG,MAAM,GAAG,OAAO,CAAC;AAE3E,MAAM,MAAM,aAAa,GACnB,UAAU,CAAC,UAAU,EAAE,gBAAgB,EAAE,KAAK,CAAC,GAC/C,UAAU,CAAC,OAAO,EAAE,OAAO,EAAE,KAAK,CAAC,GACnC,UAAU,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC,GAClC,UAAU,CAAC,WAAW,EAAE,MAAM,EAAE,KAAK,CAAC,GACtC,UAAU,CAAC,SAAS,CAAC,GACrB,UAAU,CAAC,SAAS,CAAC,CAAC;AAE5B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA8BG;AACH,eAAO,MAAM,QAAQ;;;;EAgCnB,CAAC"}
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
import { DefineProp, DefineSlot, DefineEvent, DefineModel } from 'sigx';
|
|
2
|
+
export type MenuSize = 'xs' | 'sm' | 'md' | 'lg';
|
|
3
|
+
export type MenuProps = DefineModel<string> & DefineProp<'size', MenuSize, false> & DefineProp<'horizontal', boolean, false> & DefineProp<'class', string, false> & DefineSlot<'default'> & DefineEvent<'update:modelValue', string>;
|
|
4
|
+
export type MenuItemProps = DefineProp<'value', string, false> & DefineProp<'active', boolean, false> & DefineProp<'disabled', boolean, false> & DefineProp<'class', string, false> & DefineSlot<'default'>;
|
|
5
|
+
export type MenuTitleProps = DefineProp<'class', string, false> & DefineSlot<'default'>;
|
|
6
|
+
/**
|
|
7
|
+
* Menu compound component with Item and Title sub-components.
|
|
8
|
+
*/
|
|
9
|
+
export declare const Menu: ((props: {
|
|
10
|
+
class?: string | undefined;
|
|
11
|
+
size?: MenuSize | undefined;
|
|
12
|
+
model?: import("@sigx/runtime-core").Model<string> | undefined;
|
|
13
|
+
horizontal?: boolean | undefined;
|
|
14
|
+
} & {
|
|
15
|
+
"onUpdate:modelValue"?: ((detail: string) => void) | undefined;
|
|
16
|
+
} & {
|
|
17
|
+
slots?: Partial<{
|
|
18
|
+
default: () => import("@sigx/runtime-core").JSXElement | import("@sigx/runtime-core").JSXElement[] | null;
|
|
19
|
+
}> | undefined;
|
|
20
|
+
} & {
|
|
21
|
+
model?: import("@sigx/runtime-core").Model<string> | import("@sigx/runtime-core").ModelBinding<string> | (() => string) | undefined;
|
|
22
|
+
} & JSX.IntrinsicAttributes & import("@sigx/runtime-core").ComponentAttributeExtensions & {
|
|
23
|
+
ref?: import("@sigx/runtime-core").Ref<void> | undefined;
|
|
24
|
+
children?: any;
|
|
25
|
+
}) => import("@sigx/runtime-core").JSXElement) & {
|
|
26
|
+
__setup: import("@sigx/runtime-core").SetupFn<{
|
|
27
|
+
model?: import("@sigx/runtime-core").Model<string> | undefined;
|
|
28
|
+
size?: MenuSize | undefined;
|
|
29
|
+
horizontal?: boolean | undefined;
|
|
30
|
+
class?: string | undefined;
|
|
31
|
+
}, MenuProps, void, {
|
|
32
|
+
default: () => import("@sigx/runtime-core").JSXElement | import("@sigx/runtime-core").JSXElement[] | null;
|
|
33
|
+
}>;
|
|
34
|
+
__name?: string;
|
|
35
|
+
__props: {
|
|
36
|
+
model?: import("@sigx/runtime-core").Model<string> | undefined;
|
|
37
|
+
size?: MenuSize | undefined;
|
|
38
|
+
horizontal?: boolean | undefined;
|
|
39
|
+
class?: string | undefined;
|
|
40
|
+
};
|
|
41
|
+
__events: MenuProps;
|
|
42
|
+
__ref: void;
|
|
43
|
+
__slots: {
|
|
44
|
+
default: () => import("@sigx/runtime-core").JSXElement | import("@sigx/runtime-core").JSXElement[] | null;
|
|
45
|
+
};
|
|
46
|
+
} & {
|
|
47
|
+
Item: import("@sigx/runtime-core").ComponentFactory<MenuItemProps, void, {
|
|
48
|
+
default: () => import("@sigx/runtime-core").JSXElement | import("@sigx/runtime-core").JSXElement[] | null;
|
|
49
|
+
}>;
|
|
50
|
+
Title: import("@sigx/runtime-core").ComponentFactory<MenuTitleProps, void, {
|
|
51
|
+
default: () => import("@sigx/runtime-core").JSXElement | import("@sigx/runtime-core").JSXElement[] | null;
|
|
52
|
+
}>;
|
|
53
|
+
};
|
|
54
|
+
//# sourceMappingURL=MenuComponent.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MenuComponent.d.ts","sourceRoot":"","sources":["../../src/navigation/MenuComponent.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAuB,UAAU,EAAE,UAAU,EAAE,WAAW,EAAmC,WAAW,EAAE,MAAM,MAAM,CAAC;AAE9H,MAAM,MAAM,QAAQ,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;AASjD,MAAM,MAAM,SAAS,GACf,WAAW,CAAC,MAAM,CAAC,GACnB,UAAU,CAAC,MAAM,EAAE,QAAQ,EAAE,KAAK,CAAC,GACnC,UAAU,CAAC,YAAY,EAAE,OAAO,EAAE,KAAK,CAAC,GACxC,UAAU,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC,GAClC,UAAU,CAAC,SAAS,CAAC,GACrB,WAAW,CAAC,mBAAmB,EAAE,MAAM,CAAC,CAAC;AAE/C,MAAM,MAAM,aAAa,GACnB,UAAU,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC,GAClC,UAAU,CAAC,QAAQ,EAAE,OAAO,EAAE,KAAK,CAAC,GACpC,UAAU,CAAC,UAAU,EAAE,OAAO,EAAE,KAAK,CAAC,GACtC,UAAU,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC,GAClC,UAAU,CAAC,SAAS,CAAC,CAAC;AAE5B,MAAM,MAAM,cAAc,GACpB,UAAU,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC,GAClC,UAAU,CAAC,SAAS,CAAC,CAAC;AAuH5B;;GAEG;AACH,eAAO,MAAM,IAAI;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAGf,CAAC"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { DefineProp, DefineSlot } from 'sigx';
|
|
2
|
+
export type NavbarProps = DefineProp<'class', string, false> & DefineSlot<'start'> & DefineSlot<'center'> & DefineSlot<'end'>;
|
|
3
|
+
/**
|
|
4
|
+
* Navbar component with DaisyUI styling.
|
|
5
|
+
*
|
|
6
|
+
* @example
|
|
7
|
+
* ```tsx
|
|
8
|
+
* <Navbar
|
|
9
|
+
* slots={{
|
|
10
|
+
* start: () => <a class="btn btn-ghost text-xl">Logo</a>,
|
|
11
|
+
* end: () => <Button>Login</Button>
|
|
12
|
+
* }}
|
|
13
|
+
* />
|
|
14
|
+
* ```
|
|
15
|
+
*/
|
|
16
|
+
export declare const Navbar: import("@sigx/runtime-core").ComponentFactory<NavbarProps, void, {
|
|
17
|
+
start: () => import("@sigx/runtime-core").JSXElement | import("@sigx/runtime-core").JSXElement[] | null;
|
|
18
|
+
} & {
|
|
19
|
+
center: () => import("@sigx/runtime-core").JSXElement | import("@sigx/runtime-core").JSXElement[] | null;
|
|
20
|
+
} & {
|
|
21
|
+
end: () => import("@sigx/runtime-core").JSXElement | import("@sigx/runtime-core").JSXElement[] | null;
|
|
22
|
+
}>;
|
|
23
|
+
//# sourceMappingURL=Navbar.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Navbar.d.ts","sourceRoot":"","sources":["../../src/navigation/Navbar.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAa,UAAU,EAAE,UAAU,EAAE,MAAM,MAAM,CAAC;AAEzD,MAAM,MAAM,WAAW,GACjB,UAAU,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC,GAClC,UAAU,CAAC,OAAO,CAAC,GACnB,UAAU,CAAC,QAAQ,CAAC,GACpB,UAAU,CAAC,KAAK,CAAC,CAAC;AAExB;;;;;;;;;;;;GAYG;AACH,eAAO,MAAM,MAAM;;;;;;EAcjB,CAAC"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { DefineProp, DefineEvent } from 'sigx';
|
|
2
|
+
export type PaginationProps = DefineProp<'currentPage', number> & DefineProp<'totalPages', number> & DefineProp<'class', string, false> & DefineEvent<'change', number>;
|
|
3
|
+
/**
|
|
4
|
+
* Pagination component with DaisyUI styling.
|
|
5
|
+
*
|
|
6
|
+
* @example
|
|
7
|
+
* ```tsx
|
|
8
|
+
* <Pagination currentPage={1} totalPages={10} onChange={(page) => setPage(page)} />
|
|
9
|
+
* ```
|
|
10
|
+
*/
|
|
11
|
+
export declare const Pagination: import("@sigx/runtime-core").ComponentFactory<PaginationProps, void, {}>;
|
|
12
|
+
//# sourceMappingURL=Pagination.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Pagination.d.ts","sourceRoot":"","sources":["../../src/navigation/Pagination.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAa,UAAU,EAAE,WAAW,EAAE,MAAM,MAAM,CAAC;AAE1D,MAAM,MAAM,eAAe,GACrB,UAAU,CAAC,aAAa,EAAE,MAAM,CAAC,GACjC,UAAU,CAAC,YAAY,EAAE,MAAM,CAAC,GAChC,UAAU,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC,GAClC,WAAW,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;AAEpC;;;;;;;GAOG;AACH,eAAO,MAAM,UAAU,0EAqDrB,CAAC"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import { DefineProp, DefineEvent, JSXElement } from 'sigx';
|
|
2
|
+
export interface Tab {
|
|
3
|
+
id: string;
|
|
4
|
+
label: string | JSXElement;
|
|
5
|
+
content?: string | JSXElement;
|
|
6
|
+
disabled?: boolean;
|
|
7
|
+
}
|
|
8
|
+
export type TabsVariant = 'border' | 'lift' | 'box';
|
|
9
|
+
export type TabsSize = 'xs' | 'sm' | 'md' | 'lg' | 'xl';
|
|
10
|
+
export type TabsPosition = 'top' | 'bottom';
|
|
11
|
+
export type TabsProps = DefineProp<'tabs', Tab[]> & DefineProp<'activeTab', string> & DefineProp<'variant', TabsVariant, false> & DefineProp<'size', TabsSize, false> & DefineProp<'position', TabsPosition, false> & DefineProp<'name', string, false> & DefineProp<'contentClass', string, false> & DefineProp<'class', string, false> & DefineEvent<'change', string>;
|
|
12
|
+
/**
|
|
13
|
+
* Tabs component with DaisyUI styling.
|
|
14
|
+
* Uses radio inputs for native tab switching with content panels.
|
|
15
|
+
*
|
|
16
|
+
* @example Basic tabs without content
|
|
17
|
+
* ```tsx
|
|
18
|
+
* const tabs = [
|
|
19
|
+
* { id: 'tab1', label: 'Tab 1' },
|
|
20
|
+
* { id: 'tab2', label: 'Tab 2' }
|
|
21
|
+
* ];
|
|
22
|
+
* <Tabs tabs={tabs} activeTab={activeTab.value} onChange={(id) => activeTab.value = id} />
|
|
23
|
+
* ```
|
|
24
|
+
*
|
|
25
|
+
* @example Tabs with content
|
|
26
|
+
* ```tsx
|
|
27
|
+
* const tabs = [
|
|
28
|
+
* { id: 'tab1', label: 'Tab 1', content: 'Content for tab 1' },
|
|
29
|
+
* { id: 'tab2', label: 'Tab 2', content: <div>Rich content for tab 2</div> }
|
|
30
|
+
* ];
|
|
31
|
+
* <Tabs tabs={tabs} activeTab={activeTab.value} onChange={(id) => activeTab.value = id} variant="lift" />
|
|
32
|
+
* ```
|
|
33
|
+
*/
|
|
34
|
+
export declare const Tabs: import("@sigx/runtime-core").ComponentFactory<TabsProps, void, {}>;
|
|
35
|
+
//# sourceMappingURL=Tabs.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Tabs.d.ts","sourceRoot":"","sources":["../../src/navigation/Tabs.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAa,UAAU,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,MAAM,CAAC;AAEtE,MAAM,WAAW,GAAG;IAChB,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,GAAG,UAAU,CAAC;IAC3B,OAAO,CAAC,EAAE,MAAM,GAAG,UAAU,CAAC;IAC9B,QAAQ,CAAC,EAAE,OAAO,CAAC;CACtB;AAED,MAAM,MAAM,WAAW,GAAG,QAAQ,GAAG,MAAM,GAAG,KAAK,CAAC;AACpD,MAAM,MAAM,QAAQ,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;AACxD,MAAM,MAAM,YAAY,GAAG,KAAK,GAAG,QAAQ,CAAC;AAE5C,MAAM,MAAM,SAAS,GACf,UAAU,CAAC,MAAM,EAAE,GAAG,EAAE,CAAC,GACzB,UAAU,CAAC,WAAW,EAAE,MAAM,CAAC,GAC/B,UAAU,CAAC,SAAS,EAAE,WAAW,EAAE,KAAK,CAAC,GACzC,UAAU,CAAC,MAAM,EAAE,QAAQ,EAAE,KAAK,CAAC,GACnC,UAAU,CAAC,UAAU,EAAE,YAAY,EAAE,KAAK,CAAC,GAC3C,UAAU,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,CAAC,GACjC,UAAU,CAAC,cAAc,EAAE,MAAM,EAAE,KAAK,CAAC,GACzC,UAAU,CAAC,OAAO,EAAE,MAAM,EAAE,KAAK,CAAC,GAClC,WAAW,CAAC,QAAQ,EAAE,MAAM,CAAC,CAAC;AAYpC;;;;;;;;;;;;;;;;;;;;;GAqBG;AACH,eAAO,MAAM,IAAI,oEA4Ef,CAAC"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
export { Tabs } from './Tabs';
|
|
2
|
+
export type { TabsProps, Tab, TabsVariant, TabsSize, TabsPosition } from './Tabs';
|
|
3
|
+
export { Menu } from './MenuComponent';
|
|
4
|
+
export type { MenuProps, MenuItemProps, MenuTitleProps, MenuSize } from './MenuComponent';
|
|
5
|
+
export { Dropdown } from './Dropdown';
|
|
6
|
+
export type { DropdownProps, DropdownPosition } from './Dropdown';
|
|
7
|
+
export { Drawer } from './Drawer';
|
|
8
|
+
export type { DrawerProps } from './Drawer';
|
|
9
|
+
export { Breadcrumbs } from './Breadcrumbs';
|
|
10
|
+
export type { BreadcrumbsProps, BreadcrumbItem } from './Breadcrumbs';
|
|
11
|
+
export { Navbar } from './Navbar';
|
|
12
|
+
export type { NavbarProps } from './Navbar';
|
|
13
|
+
export { Pagination } from './Pagination';
|
|
14
|
+
export type { PaginationProps } from './Pagination';
|
|
15
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/navigation/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAC9B,YAAY,EAAE,SAAS,EAAE,GAAG,EAAE,WAAW,EAAE,QAAQ,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AAElF,OAAO,EAAE,IAAI,EAAE,MAAM,iBAAiB,CAAC;AACvC,YAAY,EAAE,SAAS,EAAE,aAAa,EAAE,cAAc,EAAE,QAAQ,EAAE,MAAM,iBAAiB,CAAC;AAE1F,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AACtC,YAAY,EAAE,aAAa,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAElE,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAClC,YAAY,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAE5C,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,YAAY,EAAE,gBAAgB,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAEtE,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAClC,YAAY,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AAE5C,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,YAAY,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC"}
|