@cruxkit/core 0.0.1

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.
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/kit/primitives/utils.tsx","../src/kit/primitives/text.tsx","../src/kit/primitives/button.tsx","../src/kit/primitives/input.tsx","../src/kit/primitives/avatar.tsx","../src/kit/primitives/badge.tsx","../src/kit/primitives/spinner.tsx","../src/kit/primitives/skeleton.tsx","../src/kit/layout/container.tsx","../src/kit/layout/stack.tsx","../src/kit/layout/group.tsx","../src/kit/layout/grid.tsx","../src/kit/layout/spacer.tsx","../src/kit/layout/divider.tsx","../src/kit/layout/center.tsx","../src/kit/layout/box.tsx","../src/kit/feedback/alert.tsx","../src/kit/feedback/toast.tsx","../src/kit/feedback/progress.tsx","../src/kit/feedback/notification.tsx","../src/kit/overlays/modal.tsx","../src/kit/overlays/drawer.tsx","../src/kit/overlays/popover.tsx","../src/kit/overlays/tooltip.tsx","../src/kit/overlays/dropdown-menu.tsx","../src/kit/forms/form.tsx","../src/kit/forms/checkbox.tsx","../src/kit/forms/radio.tsx","../src/kit/forms/switch.tsx","../src/kit/forms/select.tsx","../src/kit/forms/slider.tsx","../src/kit/navigation/nav.tsx","../src/kit/navigation/tabs.tsx","../src/kit/navigation/breadcrumb.tsx","../src/kit/navigation/pagination.tsx","../src/kit/data-display/card.tsx","../src/kit/data-display/table.tsx","../src/kit/data-display/list.tsx","../src/kit/data-display/tag.tsx","../src/kit/data-display/stat.tsx"],"names":["cn","classes","clsx","base","variants","variantClasses","_","value","key","createPortal","children","container","portalContainer","portalRoot","Portal","props","effect","useFocusTrap","containerRef","focusableElements","firstElement","lastElement","handleTabKey","e","useReturnFocus","previousFocus","useOutsideClick","ref","callback","handleClick","useEscapeKey","handleEscape","useTheme","theme","signal","saved","currentTheme","mediaQuery","handleChange","breakpoints","useBreakpoint","getBreakpoint","width","current","handleResize","bp","useMediaQuery","query","matches","useScrollLock","locked","scrollbarWidth","debounce","func","wait","timeout","args","later","throttle","limit","inThrottle","useId","prefix","copyToClipboard","text","err","useClipboard","copied","success","useDirection","dir","observer","mutations","mutation","newDir","Text","Tag","size","weight","align","color","italic","underline","lineThrough","truncate","noWrap","display","className","restProps","sizeClasses","weightClasses","alignClasses","colorClasses","displayClasses","styleClasses","jsx","Button","variant","disabled","loading","active","fullWidth","leftIcon","rightIcon","onClick","onPointerDown","onPointerUp","type","baseClasses","stateClasses","jsxs","IconButton","icon","ButtonGroup","attached","spacing","spacingClasses","attachedClasses","Input","readOnly","required","invalid","leftAddon","rightAddon","inputClass","inputProps","wrapperBaseClasses","inputBaseClasses","iconWrapperClasses","wrapperClasses","inputClasses","iconClasses","addonClasses","InputGroup","Textarea","rows","resize","textareaProps","resizeClasses","Avatar","src","alt","name","fallback","rounded","badge","badgePosition","fontSizeClasses","roundedClasses","badgePositionClasses","getInitials","word","content","AvatarGroup","max","childArray","displayChildren","remainingCount","Badge","dot","dotElement","Spinner","thickness","speed","thicknessValues","speedClasses","Skeleton","height","animate","Container","maxWidth","px","py","centerContent","maxWidthClasses","pxClasses","pyClasses","Stack","gap","justify","reverse","wrap","gapClasses","justifyClasses","Group","Grid","cols","colsSm","colsMd","colsLg","colsXl","gapX","gapY","flow","getColsClass","num","gapXClasses","gapYClasses","flowClasses","rowsClass","Spacer","axis","flex","Divider","orientation","label","labelPosition","role","thicknessClasses","Center","inline","Box","Alert","status","title","description","showIcon","closable","onClose","actions","ariaLive","isVisible","handleClose","statusColors","defaultIcons","iconElement","Toast","duration","action","progress","interval","prev","next","Progress","showValue","indeterminate","striped","animated","percentage","sizeValues","strokeWidthValues","circleSize","strokeWidth","radius","circumference","offset","trackClasses","barClasses","Notification","position","alertProps","timer","Modal","isOpen","backdrop","closeOnBackdrop","handleBackdropClick","Fragment","Drawer","directionClasses","Popover","trigger","initialOpen","onOpenChange","closeOnClickOutside","closeOnEscape","positionClasses","handleToggle","newState","handleKeyDown","Tooltip","delayShow","delayHide","contentClass","showTimeout","hideTimeout","arrowClasses","handleMouseEnter","handleMouseLeave","DropdownMenu","items","closeOnSelect","handleItemClick","item","getVariantClass","index","Form","onSubmit","onChange","noValidate","FormField","error","hint","FormLabel","htmlFor","FormError","FormHint","Checkbox","initialChecked","isChecked","target","Radio","RadioGroup","initialValue","options","direction","selectedValue","option","Switch","Select","placeholder","Slider","min","step","sliderValue","newValue","Nav","Tabs","tabs","defaultTab","externalActiveTab","onTabChange","tabsClass","internalActiveTab","handleTabClick","tabId","activeTabId","getTabClasses","isActive","tab","Breadcrumb","separator","itemClass","isLast","Pagination","total","siblingCount","showFirstLast","buttonClass","activeButtonClass","generatePages","pages","leftSibling","rightSibling","i","isFirstPage","isLastPage","buttonBaseClasses","getButtonClasses","page","pageNum","Card","padding","hover","clickable","paddingClasses","interactiveClasses","CardHeader","divider","CardBody","CardFooter","Table","data","columns","hoverable","sortBy","sortOrder","onSort","headerClass","rowClass","cellClass","TableHeader","TableBody","column","newOrder","row","rowIndex","rendered","List","selectable","onItemClick","closeable","colorMap","variantClass","Stat","change","changeLabel","trend","valueClasses","labelClasses","trendColors"],"mappings":"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","file":"index.cjs","sourcesContent":["/* eslint-disable @typescript-eslint/no-explicit-any */\n// src/kit/primitives/utils.tsx\n//\n// Made with ❤️ by Maysara.\n\n\n\n// ╔════════════════════════════════════════ PACK ════════════════════════════════════════╗\n\n import type { JSXElement } from '@minejs/jsx';\n import { signal, effect } from '@minejs/signals';\n\n// ╚══════════════════════════════════════════════════════════════════════════════════════╝\n\n\n\n// ╔════════════════════════════════════════ TYPE ════════════════════════════════════════╗\n\n // ============================================================================\n // CLASS NAME UTILITIES\n // ============================================================================\n\n /**\n * Merge class names, filtering out falsy values\n */\n export function cn(...classes: (string | undefined | null | false | 0)[]): string {\n return classes\n .filter(Boolean)\n .join(' ')\n .trim()\n .replace(/\\s+/g, ' '); // Remove extra spaces\n }\n\n /**\n * Conditionally apply classes based on variants\n */\n export function clsx(\n base: string,\n variants?: Record<string, string | boolean | undefined>\n ): string {\n if (!variants) return base;\n\n const variantClasses = Object.entries(variants)\n .filter(([_, value]) => value)\n .map(([key, value]) => (typeof value === 'string' ? value : key))\n .join(' ');\n\n return cn(base, variantClasses);\n }\n\n // ============================================================================\n // PORTAL UTILITIES\n // ============================================================================\n\n /**\n * Create a portal container and mount content\n */\n export function createPortal(children: JSXElement, container?: HTMLElement): void {\n const portalContainer = container || document.body;\n const portalRoot = document.createElement('div');\n portalRoot.setAttribute('data-portal', 'true');\n\n portalContainer.appendChild(portalRoot);\n\n if (children) {\n portalRoot.appendChild(children as any);\n }\n }\n\n /**\n * Portal component for rendering outside the component tree\n */\n export function Portal(props: {\n children: JSXElement;\n container?: HTMLElement;\n }): null {\n effect(() => {\n createPortal(props.children, props.container);\n });\n\n return null;\n }\n\n // ============================================================================\n // FOCUS MANAGEMENT\n // ============================================================================\n\n /**\n * Focus trap - keep focus within a container\n */\n export function useFocusTrap(containerRef: { current: HTMLElement | null }) {\n effect(() => {\n const container = containerRef.current;\n if (!container) return;\n\n const focusableElements = container.querySelectorAll(\n 'a[href], button:not([disabled]), textarea:not([disabled]), input:not([disabled]), select:not([disabled]), [tabindex]:not([tabindex=\"-1\"])'\n );\n\n const firstElement = focusableElements[0] as HTMLElement;\n const lastElement = focusableElements[focusableElements.length - 1] as HTMLElement;\n\n const handleTabKey = (e: KeyboardEvent) => {\n if (e.key !== 'Tab') return;\n\n if (e.shiftKey && document.activeElement === firstElement) {\n e.preventDefault();\n lastElement?.focus();\n } else if (!e.shiftKey && document.activeElement === lastElement) {\n e.preventDefault();\n firstElement?.focus();\n }\n };\n\n container.addEventListener('keydown', handleTabKey);\n\n // Focus first element\n firstElement?.focus();\n\n return () => {\n container.removeEventListener('keydown', handleTabKey);\n };\n });\n }\n\n /**\n * Return focus to previously focused element\n */\n export function useReturnFocus() {\n let previousFocus: HTMLElement | null = null;\n\n effect(() => {\n previousFocus = document.activeElement as HTMLElement;\n\n return () => {\n previousFocus?.focus();\n };\n });\n }\n\n // ============================================================================\n // OUTSIDE CLICK DETECTION\n // ============================================================================\n\n /**\n * Detect clicks outside an element\n */\n export function useOutsideClick(\n ref: { current: HTMLElement | null },\n callback: (e: MouseEvent) => void\n ) {\n effect(() => {\n const handleClick = (e: MouseEvent) => {\n if (ref.current && !ref.current.contains(e.target as Node)) {\n callback(e);\n }\n };\n\n document.addEventListener('mousedown', handleClick);\n\n return () => {\n document.removeEventListener('mousedown', handleClick);\n };\n });\n }\n\n // ============================================================================\n // ESCAPE KEY DETECTION\n // ============================================================================\n\n /**\n * Detect escape key press\n */\n export function useEscapeKey(callback: () => void) {\n effect(() => {\n const handleEscape = (e: KeyboardEvent) => {\n if (e.key === 'Escape') {\n callback();\n }\n };\n\n document.addEventListener('keydown', handleEscape);\n\n return () => {\n document.removeEventListener('keydown', handleEscape);\n };\n });\n }\n\n // ============================================================================\n // THEME HOOK\n // ============================================================================\n\n export type Theme = 'light' | 'dark';\n\n /**\n * Manage theme state and persistence\n */\n export function useTheme() {\n // Get initial theme from localStorage or system preference\n const getInitialTheme = (): Theme => {\n const saved = localStorage.getItem('theme') as Theme;\n if (saved) return saved;\n\n return window.matchMedia('(prefers-color-scheme: dark)').matches\n ? 'dark'\n : 'light';\n };\n\n const theme = signal<Theme>(getInitialTheme());\n\n // Update DOM and localStorage when theme changes\n effect(() => {\n const currentTheme = theme();\n document.documentElement.setAttribute('data-theme', currentTheme);\n localStorage.setItem('theme', currentTheme);\n });\n\n // Listen for system theme changes\n effect(() => {\n const mediaQuery = window.matchMedia('(prefers-color-scheme: dark)');\n\n const handleChange = (e: MediaQueryListEvent) => {\n if (!localStorage.getItem('theme')) {\n theme.set(e.matches ? 'dark' : 'light');\n }\n };\n\n mediaQuery.addEventListener('change', handleChange);\n\n return () => {\n mediaQuery.removeEventListener('change', handleChange);\n };\n });\n\n const toggle = () => {\n theme.set(theme() === 'light' ? 'dark' : 'light');\n };\n\n return {\n theme,\n setTheme: (value: Theme) => theme.set(value),\n toggle,\n isDark: () => theme() === 'dark',\n isLight: () => theme() === 'light'\n };\n }\n\n // ============================================================================\n // BREAKPOINT HOOK\n // ============================================================================\n\n export type Breakpoint = 'xs' | 'sm' | 'md' | 'lg' | 'xl' | '2xl';\n\n const breakpoints: Record<Breakpoint, number> = {\n xs: 0,\n sm: 640,\n md: 768,\n lg: 1024,\n xl: 1280,\n '2xl': 1536\n };\n\n /**\n * Get current breakpoint\n */\n export function useBreakpoint() {\n const getBreakpoint = (): Breakpoint => {\n const width = window.innerWidth;\n if (width >= breakpoints['2xl']) return '2xl';\n if (width >= breakpoints.xl) return 'xl';\n if (width >= breakpoints.lg) return 'lg';\n if (width >= breakpoints.md) return 'md';\n if (width >= breakpoints.sm) return 'sm';\n return 'xs';\n };\n\n const current = signal<Breakpoint>(getBreakpoint());\n\n effect(() => {\n const handleResize = () => {\n current.set(getBreakpoint());\n };\n\n window.addEventListener('resize', handleResize);\n\n return () => {\n window.removeEventListener('resize', handleResize);\n };\n });\n\n return {\n current,\n isXs: () => current() === 'xs',\n isSm: () => current() === 'sm',\n isMd: () => current() === 'md',\n isLg: () => current() === 'lg',\n isXl: () => current() === 'xl',\n is2Xl: () => current() === '2xl',\n isAbove: (bp: Breakpoint): boolean => breakpoints[current() as Breakpoint] >= breakpoints[bp],\n isBelow: (bp: Breakpoint): boolean => breakpoints[current() as Breakpoint] < breakpoints[bp]\n };\n }\n\n // ============================================================================\n // MEDIA QUERY HOOK\n // ============================================================================\n\n /**\n * Listen to media query changes\n */\n export function useMediaQuery(query: string) {\n const matches = signal(false);\n\n effect(() => {\n const mediaQuery = window.matchMedia(query);\n matches.set(mediaQuery.matches);\n\n const handleChange = (e: MediaQueryListEvent) => {\n matches.set(e.matches);\n };\n\n mediaQuery.addEventListener('change', handleChange);\n\n return () => {\n mediaQuery.removeEventListener('change', handleChange);\n };\n });\n\n return matches;\n }\n\n // ============================================================================\n // SCROLL LOCK\n // ============================================================================\n\n /**\n * Lock body scroll (for modals, drawers)\n */\n export function useScrollLock(locked: boolean = true) {\n effect(() => {\n if (locked) {\n const scrollbarWidth = window.innerWidth - document.documentElement.clientWidth;\n document.body.style.overflow = 'hidden';\n document.body.style.paddingRight = `${scrollbarWidth}px`;\n } else {\n document.body.style.overflow = '';\n document.body.style.paddingRight = '';\n }\n\n return () => {\n document.body.style.overflow = '';\n document.body.style.paddingRight = '';\n };\n });\n }\n\n // ============================================================================\n // DEBOUNCE & THROTTLE\n // ============================================================================\n\n /**\n * Debounce a function\n */\n export function debounce<T extends (...args: any[]) => any>(\n func: T,\n wait: number\n ): (...args: Parameters<T>) => void {\n let timeout: number | undefined;\n\n return function executedFunction(...args: Parameters<T>) {\n const later = () => {\n clearTimeout(timeout);\n func(...args);\n };\n\n clearTimeout(timeout);\n timeout = setTimeout(later, wait) as any;\n };\n }\n\n /**\n * Throttle a function\n */\n export function throttle<T extends (...args: any[]) => any>(\n func: T,\n limit: number\n ): (...args: Parameters<T>) => void {\n let inThrottle: boolean;\n\n return function executedFunction(...args: Parameters<T>) {\n if (!inThrottle) {\n func(...args);\n inThrottle = true;\n setTimeout(() => (inThrottle = false), limit);\n }\n };\n }\n\n // ============================================================================\n // RANDOM ID GENERATOR\n // ============================================================================\n\n /**\n * Generate a random ID for accessibility\n */\n export function useId(prefix: string = 'ui'): string {\n return `${prefix}-${Math.random().toString(36).substr(2, 9)}`;\n }\n\n // ============================================================================\n // CLIPBOARD\n // ============================================================================\n\n /**\n * Copy text to clipboard\n */\n export async function copyToClipboard(text: string): Promise<boolean> {\n try {\n await navigator.clipboard.writeText(text);\n return true;\n } catch (err) {\n console.error('Failed to copy:', err);\n return false;\n }\n }\n\n /**\n * Hook for clipboard operations\n */\n export function useClipboard(timeout: number = 2000) {\n const copied = signal(false);\n\n const copy = async (text: string) => {\n const success = await copyToClipboard(text);\n copied.set(success);\n\n if (success) {\n setTimeout(() => copied.set(false), timeout);\n }\n\n return success;\n };\n\n return { copied, copy };\n }\n\n // ============================================================================\n // DIRECTION (RTL/LTR)\n // ============================================================================\n\n /**\n * Get current text direction\n */\n export function useDirection() {\n const dir = signal<'ltr' | 'rtl'>(\n document.documentElement.getAttribute('dir') as 'ltr' | 'rtl' || 'ltr'\n );\n\n effect(() => {\n const observer = new MutationObserver((mutations) => {\n mutations.forEach((mutation) => {\n if (mutation.type === 'attributes' && mutation.attributeName === 'dir') {\n dir.set(document.documentElement.getAttribute('dir') as 'ltr' | 'rtl' || 'ltr');\n }\n });\n });\n\n observer.observe(document.documentElement, {\n attributes: true,\n attributeFilter: ['dir']\n });\n\n return () => observer.disconnect();\n });\n\n return {\n dir,\n isRtl: () => dir() === 'rtl',\n isLtr: () => dir() === 'ltr',\n toggle: () => {\n const newDir = dir() === 'ltr' ? 'rtl' : 'ltr';\n document.documentElement.setAttribute('dir', newDir);\n }\n };\n }\n\n// ╚══════════════════════════════════════════════════════════════════════════════════════╝\n\n\n\n// ╔════════════════════════════════════════ ════ ════════════════════════════════════════╗\n\n export default {\n // Class utilities\n cn,\n clsx,\n\n // Portal\n Portal,\n createPortal,\n\n // Focus\n useFocusTrap,\n useReturnFocus,\n\n // Events\n useOutsideClick,\n useEscapeKey,\n\n // Theme & Layout\n useTheme,\n useBreakpoint,\n useMediaQuery,\n useDirection,\n\n // Scroll\n useScrollLock,\n\n // Utils\n debounce,\n throttle,\n useId,\n useClipboard\n };\n\n// ╚══════════════════════════════════════════════════════════════════════════════════════╝\n","// src/kit/primitives/text.tsx\n//\n// Made with ❤️ by Maysara.\n\n\n\n// ╔════════════════════════════════════════ PACK ════════════════════════════════════════╗\n\n import type { JSXElement } from '@minejs/jsx';\n\n// ╚══════════════════════════════════════════════════════════════════════════════════════╝\n\n\n\n// ╔════════════════════════════════════════ TYPE ════════════════════════════════════════╗\n\n export interface TextProps {\n // Typography\n as?: 'p' | 'span' | 'div' | 'h1' | 'h2' | 'h3' | 'h4' | 'h5' | 'h6' | 'label' | 'small' | 'strong' | 'em';\n size?: 'xs' | 'sm' | 'base' | 'md' | 'lg' | 'xl' | '2xl' | '3xl' | '4xl' | '5xl' | '6xl';\n weight?: 'light' | 'normal' | 'medium' | 'semibold' | 'bold';\n align?: 'start' | 'center' | 'end' | 'justify';\n\n // Colors\n color?: '1' | '2' | '3' | '4' | 'inverse' | 'brand' | 'success' | 'warning' | 'error';\n\n // Style\n italic?: boolean;\n underline?: boolean;\n lineThrough?: boolean;\n truncate?: boolean;\n noWrap?: boolean;\n\n // Layout\n display?: 'block' | 'inline' | 'inline-block';\n\n // Content\n children?: JSXElement | string | number;\n\n // Styling\n class?: string;\n\n // HTML attributes\n id?: string;\n title?: string;\n\n // Accessibility\n 'aria-label'?: string;\n role?: string;\n }\n\n// ╚══════════════════════════════════════════════════════════════════════════════════════╝\n\n\n\n// ╔════════════════════════════════════════ CORE ════════════════════════════════════════╗\n\n export function Text(props: TextProps): JSXElement {\n const {\n as: Tag = 'p',\n size = 'base',\n weight = 'normal',\n align = 'start',\n color = '1',\n italic = false,\n underline = false,\n lineThrough = false,\n truncate = false,\n noWrap = false,\n display,\n children,\n class: className,\n ...restProps\n } = props;\n\n // Size classes\n const sizeClasses = {\n xs: 'text-xs',\n sm: 'text-sm',\n base: 'text-base',\n md: 'text-md',\n lg: 'text-lg',\n xl: 'text-xl',\n '2xl': 'text-2xl',\n '3xl': 'text-3xl',\n '4xl': 'text-4xl',\n '5xl': 'text-5xl',\n '6xl': 'text-6xl'\n };\n\n // Weight classes\n const weightClasses = {\n light: 'font-light',\n normal: 'font-normal',\n medium: 'font-medium',\n semibold: 'font-semibold',\n bold: 'font-bold'\n };\n\n // Align classes\n const alignClasses = {\n start: 'text-start',\n center: 'text-center',\n end: 'text-end',\n justify: 'text-justify'\n };\n\n // Color classes\n const colorClasses = {\n '1': 'text-1',\n '2': 'text-2',\n '3': 'text-3',\n '4': 'text-4',\n 'inverse': 'text-inverse',\n 'brand': 'text-brand',\n 'success': 'text-success',\n 'warning': 'text-warning',\n 'error': 'text-error'\n };\n\n // Display classes\n const displayClasses = display ? {\n block: 'block',\n inline: 'inline',\n 'inline-block': 'inline-block'\n }[display] : '';\n\n // Style classes\n const styleClasses = [];\n if (italic) styleClasses.push('italic');\n if (underline) styleClasses.push('underline');\n if (lineThrough) styleClasses.push('line-through');\n if (truncate) styleClasses.push('truncate');\n if (noWrap) styleClasses.push('whitespace-nowrap');\n\n // Combine classes\n const classes = [\n sizeClasses[size],\n weightClasses[weight],\n alignClasses[align],\n colorClasses[color],\n displayClasses,\n ...styleClasses,\n className\n ]\n .filter(Boolean)\n .join(' ');\n\n return <Tag class={classes} {...restProps}>{children}</Tag>;\n }\n\n// ╚══════════════════════════════════════════════════════════════════════════════════════╝\n\n\n\n// ╔════════════════════════════════════════ ════ ════════════════════════════════════════╗\n\n export default Text;\n\n// ╚══════════════════════════════════════════════════════════════════════════════════════╝\n","// src/kit/primitives/button.tsx\n//\n// Made with ❤️ by Maysara.\n\n\n\n// ╔════════════════════════════════════════ PACK ════════════════════════════════════════╗\n\n import type { JSXElement } from '@minejs/jsx';\n\n// ╚══════════════════════════════════════════════════════════════════════════════════════╝\n\n\n\n// ╔════════════════════════════════════════ TYPE ════════════════════════════════════════╗\n\n export interface ButtonProps {\n // Variants\n variant? : 'solid' | 'outline' | 'ghost' | 'link';\n color? : 'brand' | 'success' | 'warning' | 'error' | 'neutral';\n size? : 'sm' | 'md' | 'lg';\n\n // States\n disabled? : boolean;\n loading? : boolean;\n active? : boolean;\n\n // Layout\n fullWidth? : boolean;\n\n // Icons\n leftIcon? : JSXElement;\n rightIcon? : JSXElement;\n\n // Content\n children? : JSXElement | string;\n\n // Events\n onClick? : (e: MouseEvent) => void;\n onPointerDown? : (e: PointerEvent) => void;\n onPointerUp? : (e: PointerEvent) => void;\n\n // Attributes\n type? : 'button' | 'submit' | 'reset';\n class? : string;\n id? : string;\n name? : string;\n value? : string;\n form? : string;\n\n // Accessibility\n 'aria-label'? : string;\n 'aria-describedby'? : string;\n 'aria-pressed'? : boolean;\n 'aria-expanded'? : boolean;\n role? : string;\n }\n\n export interface ButtonGroupProps {\n children? : JSXElement | JSXElement[];\n attached? : boolean;\n spacing? : 0 | 1 | 2 | 3 | 4;\n class? : string;\n }\n\n export interface IconButtonProps extends Omit<ButtonProps, 'leftIcon' | 'rightIcon' | 'children'> {\n icon : JSXElement;\n 'aria-label' : string; // Required for accessibility\n }\n\n// ╚══════════════════════════════════════════════════════════════════════════════════════╝\n\n\n\n// ╔════════════════════════════════════════ CORE ════════════════════════════════════════╗\n\n export function Button(props: ButtonProps): JSXElement {\n const {\n variant = 'solid',\n color = 'brand',\n size = 'md',\n disabled = false,\n loading = false,\n active = false,\n fullWidth = false,\n leftIcon,\n rightIcon,\n children,\n onClick,\n onPointerDown,\n onPointerUp,\n type = 'button',\n class : className,\n ...restProps\n } = props;\n\n // Base classes - always applied\n const baseClasses = [\n 'inline-flex',\n 'items-center',\n 'justify-center',\n 'gap-2',\n 'font-medium',\n 'rounded-md',\n 'transition-all',\n 'duration-150',\n 'select-none',\n 'disabled:opacity-50',\n 'disabled:cursor-not-allowed',\n 'disabled:pointer-events-none',\n 'focus:outline-none',\n 'focus-visible:ring',\n 'focus-visible:ring-offset-2'\n ];\n\n // Size-specific classes\n const sizeClasses = {\n sm: ['h-8', 'px-3', 'text-sm', 'gap-1.5'],\n md: ['h-10', 'px-4', 'text-base', 'gap-2'],\n lg: ['h-12', 'px-6', 'text-lg', 'gap-2.5']\n };\n\n // Variant + Color combinations\n const variantClasses = {\n solid: {\n brand: [\n 'bg-brand',\n 'text-inverse',\n 'border',\n 'border-transparent',\n 'hover:bg-brand-hover',\n 'active:bg-brand-active',\n 'active:scale-95',\n 'shadow-sm',\n 'hover:shadow-md'\n ],\n success: [\n 'bg-success',\n 'text-inverse',\n 'border',\n 'border-transparent',\n 'hover:bg-success-hover',\n 'active:bg-success-active',\n 'active:scale-95',\n 'shadow-sm',\n 'hover:shadow-md'\n ],\n warning: [\n 'bg-warning',\n 'text-inverse',\n 'border',\n 'border-transparent',\n 'hover:bg-warning-hover',\n 'active:bg-warning-active',\n 'active:scale-95',\n 'shadow-sm',\n 'hover:shadow-md'\n ],\n error: [\n 'bg-error',\n 'text-inverse',\n 'border',\n 'border-transparent',\n 'hover:bg-error-hover',\n 'active:bg-error-active',\n 'active:scale-95',\n 'shadow-sm',\n 'hover:shadow-md'\n ],\n neutral: [\n 'bg-surface',\n 'text-1',\n 'border',\n 'border-1',\n 'hover:bg-raised',\n 'active:bg-tertiary',\n 'active:scale-95',\n 'shadow-sm',\n 'hover:shadow-md'\n ]\n },\n outline: {\n brand: [\n 'bg-transparent',\n 'text-brand',\n 'border',\n 'border-brand',\n 'hover:bg-brand-subtle',\n 'active:bg-brand-subtle',\n 'active:scale-95'\n ],\n success: [\n 'bg-transparent',\n 'text-success',\n 'border',\n 'border-success',\n 'hover:bg-success-subtle',\n 'active:bg-success-subtle',\n 'active:scale-95'\n ],\n warning: [\n 'bg-transparent',\n 'text-warning',\n 'border',\n 'border-warning',\n 'hover:bg-warning-subtle',\n 'active:bg-warning-subtle',\n 'active:scale-95'\n ],\n error: [\n 'bg-transparent',\n 'text-error',\n 'border',\n 'border-error',\n 'hover:bg-error-subtle',\n 'active:bg-error-subtle',\n 'active:scale-95'\n ],\n neutral: [\n 'bg-transparent',\n 'text-1',\n 'border',\n 'border-1',\n 'hover:bg-raised',\n 'active:bg-tertiary',\n 'active:scale-95'\n ]\n },\n ghost: {\n brand: [\n 'bg-transparent',\n 'text-brand',\n 'border',\n 'border-transparent',\n 'hover:bg-brand-subtle',\n 'active:bg-brand-subtle',\n 'active:scale-95'\n ],\n success: [\n 'bg-transparent',\n 'text-success',\n 'border',\n 'border-transparent',\n 'hover:bg-success-subtle',\n 'active:bg-success-subtle',\n 'active:scale-95'\n ],\n warning: [\n 'bg-transparent',\n 'text-warning',\n 'border',\n 'border-transparent',\n 'hover:bg-warning-subtle',\n 'active:bg-warning-subtle',\n 'active:scale-95'\n ],\n error: [\n 'bg-transparent',\n 'text-error',\n 'border',\n 'border-transparent',\n 'hover:bg-error-subtle',\n 'active:bg-error-subtle',\n 'active:scale-95'\n ],\n neutral: [\n 'bg-transparent',\n 'text-1',\n 'border',\n 'border-transparent',\n 'hover:bg-raised',\n 'active:bg-tertiary',\n 'active:scale-95'\n ]\n },\n link: {\n brand: [\n 'bg-transparent',\n 'text-brand',\n 'border',\n 'border-transparent',\n 'hover:underline',\n 'underline-offset-4',\n 'decoration-2',\n 'px-1'\n ],\n success: [\n 'bg-transparent',\n 'text-success',\n 'border',\n 'border-transparent',\n 'hover:underline',\n 'underline-offset-4',\n 'decoration-2',\n 'px-1'\n ],\n warning: [\n 'bg-transparent',\n 'text-warning',\n 'border',\n 'border-transparent',\n 'hover:underline',\n 'underline-offset-4',\n 'decoration-2',\n 'px-1'\n ],\n error: [\n 'bg-transparent',\n 'text-error',\n 'border',\n 'border-transparent',\n 'hover:underline',\n 'underline-offset-4',\n 'decoration-2',\n 'px-1'\n ],\n neutral: [\n 'bg-transparent',\n 'text-1',\n 'border',\n 'border-transparent',\n 'hover:underline',\n 'underline-offset-4',\n 'decoration-2',\n 'px-1'\n ]\n }\n };\n\n // State classes\n const stateClasses = [];\n if (loading) {\n stateClasses.push('cursor-wait', 'pointer-events-none');\n }\n if (active) {\n stateClasses.push('scale-95');\n }\n if (fullWidth) {\n stateClasses.push('w-full');\n }\n\n // Combine all classes\n const classes = [\n ...baseClasses,\n ...sizeClasses[size],\n ...variantClasses[variant][color],\n ...stateClasses,\n className\n ]\n .filter(Boolean)\n .join(' ');\n\n return (\n <button\n type={type}\n class={classes}\n disabled={disabled || loading}\n onClick={onClick}\n onPointerDown={onPointerDown}\n onPointerUp={onPointerUp}\n {...restProps}\n >\n {loading && (\n <svg\n class=\"animate-spin size-4\"\n xmlns=\"http://www.w3.org/2000/svg\"\n fill=\"none\"\n viewBox=\"0 0 24 24\"\n >\n <circle\n class=\"opacity-25\"\n cx=\"12\"\n cy=\"12\"\n r=\"10\"\n stroke=\"currentColor\"\n stroke-width=\"4\"\n />\n <path\n class=\"opacity-75\"\n fill=\"currentColor\"\n d=\"M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4zm2 5.291A7.962 7.962 0 014 12H0c0 3.042 1.135 5.824 3 7.938l3-2.647z\"\n />\n </svg>\n )}\n\n {!loading && leftIcon && <span class=\"inline-flex shrink-0\">{leftIcon}</span>}\n\n {children && <span class=\"inline-flex\">{children}</span>}\n\n {!loading && rightIcon && <span class=\"inline-flex shrink-0\">{rightIcon}</span>}\n </button>\n );\n }\n\n export function IconButton(props: IconButtonProps): JSXElement {\n const { icon, ...restProps } = props;\n\n return (\n <Button {...restProps} class={`aspect-square p-0 ${props.class || ''}`}>\n {icon}\n </Button>\n );\n }\n\n export function ButtonGroup(props: ButtonGroupProps): JSXElement {\n const { attached = false, spacing = 2, children, class: className } = props;\n\n const baseClasses = ['inline-flex', 'items-center'];\n\n const spacingClasses = {\n 0: 'gap-0',\n 1: 'gap-1',\n 2: 'gap-2',\n 3: 'gap-3',\n 4: 'gap-4'\n };\n\n const attachedClasses = attached\n ? [\n '[&>button:not(:first-child)]:rounded-s-none',\n '[&>button:not(:last-child)]:rounded-e-none',\n '[&>button:not(:first-child)]:-ms-px'\n ]\n : [];\n\n const classes = [\n ...baseClasses,\n spacingClasses[spacing],\n ...attachedClasses,\n className\n ]\n .filter(Boolean)\n .join(' ');\n\n return <div class={classes}>{children}</div>;\n }\n\n// ╚══════════════════════════════════════════════════════════════════════════════════════╝\n\n\n\n// ╔════════════════════════════════════════ ════ ════════════════════════════════════════╗\n\n export default Button;\n\n// ╚══════════════════════════════════════════════════════════════════════════════════════╝\n\n","// src/kit/primitives/input.tsx\n//\n// Made with ❤️ by Maysara.\n\n\n\n// ╔════════════════════════════════════════ PACK ════════════════════════════════════════╗\n\n import type { JSXElement } from '@minejs/jsx';\n\n// ╚══════════════════════════════════════════════════════════════════════════════════════╝\n\n\n\n// ╔════════════════════════════════════════ TYPE ════════════════════════════════════════╗\n\n export interface InputProps {\n // Variants\n variant? : 'outline' | 'filled' | 'flushed';\n size? : 'sm' | 'md' | 'lg';\n\n // States\n disabled? : boolean;\n readOnly? : boolean;\n required? : boolean;\n invalid? : boolean;\n\n // Layout\n fullWidth? : boolean;\n\n // Icons & Addons\n leftIcon? : JSXElement;\n rightIcon? : JSXElement;\n leftAddon? : JSXElement | string;\n rightAddon? : JSXElement | string;\n\n // Input attributes\n type? : 'text' | 'email' | 'password' | 'number' | 'tel' | 'url' | 'search' | 'date' | 'time' | 'datetime-local';\n value? : string | number;\n defaultValue? : string | number;\n placeholder? : string;\n name? : string;\n id? : string;\n autocomplete? : string;\n pattern? : string;\n min? : number | string;\n max? : number | string;\n step? : number | string;\n maxLength? : number;\n minLength? : number;\n\n // Events\n onInput? : (e: InputEvent) => void;\n onChange? : (e: Event) => void;\n onFocus? : (e: FocusEvent) => void;\n onBlur? : (e: FocusEvent) => void;\n onKeyDown? : (e: KeyboardEvent) => void;\n onKeyUp? : (e: KeyboardEvent) => void;\n\n // Styling\n class? : string;\n inputClass? : string;\n\n // Accessibility\n 'aria-label'? : string;\n 'aria-describedby'? : string;\n 'aria-invalid'? : boolean;\n 'aria-required'? : boolean;\n }\n\n export interface InputGroupProps {\n children? : JSXElement | JSXElement[];\n class? : string;\n }\n\n export interface TextareaProps extends Omit<InputProps, 'type' | 'leftIcon' | 'rightIcon' | 'leftAddon' | 'rightAddon'> {\n rows? : number;\n cols? : number;\n resize? : 'none' | 'vertical' | 'horizontal' | 'both';\n }\n\n// ╚══════════════════════════════════════════════════════════════════════════════════════╝\n\n\n\n// ╔════════════════════════════════════════ CORE ════════════════════════════════════════╗\n\n export function Input(props: InputProps): JSXElement {\n const {\n variant = 'outline',\n size = 'md',\n disabled = false,\n readOnly = false,\n required = false,\n invalid = false,\n fullWidth = false,\n leftIcon,\n rightIcon,\n leftAddon,\n rightAddon,\n type = 'text',\n class: className,\n inputClass,\n ...inputProps\n } = props;\n\n // Base wrapper classes\n const wrapperBaseClasses = [\n 'inline-flex',\n 'items-center',\n 'relative',\n 'transition-all',\n 'duration-150'\n ];\n\n // Size classes\n const sizeClasses = {\n sm: {\n wrapper: ['h-8', 'text-sm'],\n input: ['px-3', 'text-sm'],\n icon: ['size-4'],\n addon: ['px-2', 'text-sm']\n },\n md: {\n wrapper: ['h-10', 'text-base'],\n input: ['px-4', 'text-base'],\n icon: ['size-5'],\n addon: ['px-3', 'text-base']\n },\n lg: {\n wrapper: ['h-12', 'text-lg'],\n input: ['px-5', 'text-lg'],\n icon: ['size-6'],\n addon: ['px-4', 'text-lg']\n }\n };\n\n // Variant classes\n const variantClasses = {\n outline: {\n wrapper: [\n 'border',\n 'rounded-md',\n 'bg-surface',\n invalid ? 'border-error' : 'border-1',\n 'hover:border-2',\n 'focus-within:border-brand',\n 'focus-within:ring-2',\n 'focus-within:ring-brand',\n 'focus-within:ring-opacity-20'\n ],\n input: ['bg-transparent', 'border-0'],\n addon: ['bg-raised', 'border-e', 'border-1', 'first:border-e', 'last:border-s']\n },\n filled: {\n wrapper: [\n 'border',\n 'border-transparent',\n 'rounded-md',\n 'bg-raised',\n 'hover:bg-tertiary',\n 'focus-within:bg-surface',\n 'focus-within:border-brand',\n 'focus-within:ring-2',\n 'focus-within:ring-brand',\n 'focus-within:ring-opacity-20'\n ],\n input: ['bg-transparent', 'border-0'],\n addon: ['bg-tertiary', 'border-e', 'border-1', 'first:border-e', 'last:border-s']\n },\n flushed: {\n wrapper: [\n 'border-b-2',\n 'rounded-none',\n 'bg-transparent',\n invalid ? 'border-error' : 'border-1',\n 'focus-within:border-brand'\n ],\n input: ['bg-transparent', 'border-0', 'rounded-none'],\n addon: ['bg-transparent', 'border-b-2', 'border-1']\n }\n };\n\n // State classes\n const stateClasses = [];\n if (disabled) {\n stateClasses.push('opacity-50', 'cursor-not-allowed', 'pointer-events-none');\n }\n if (readOnly) {\n stateClasses.push('cursor-default');\n }\n if (fullWidth) {\n stateClasses.push('w-full');\n }\n\n // Input base classes\n const inputBaseClasses = [\n 'flex-1',\n 'outline-none',\n 'bg-transparent',\n 'placeholder:text-3',\n 'disabled:cursor-not-allowed',\n 'read-only:cursor-default',\n 'text-1'\n ];\n\n // Icon wrapper classes\n const iconWrapperClasses = ['flex', 'items-center', 'justify-center', 'shrink-0'];\n\n // Combine wrapper classes\n const wrapperClasses = [\n ...wrapperBaseClasses,\n ...sizeClasses[size].wrapper,\n ...variantClasses[variant].wrapper,\n ...stateClasses,\n className\n ]\n .filter(Boolean)\n .join(' ');\n\n // Combine input classes\n const inputClasses = [\n ...inputBaseClasses,\n ...sizeClasses[size].input,\n ...variantClasses[variant].input,\n inputClass\n ]\n .filter(Boolean)\n .join(' ');\n\n // Icon classes\n const iconClasses = [\n ...iconWrapperClasses,\n ...sizeClasses[size].icon,\n 'text-3'\n ].join(' ');\n\n // Addon classes\n const addonBaseClasses = [\n 'flex',\n 'items-center',\n 'shrink-0',\n ...sizeClasses[size].addon,\n ...variantClasses[variant].addon,\n 'text-2',\n 'first:rounded-s-md',\n 'last:rounded-e-md'\n ];\n\n const addonClasses = addonBaseClasses.filter(Boolean).join(' ');\n\n return (\n <div class={wrapperClasses}>\n {/* Left Addon */}\n {leftAddon && <div class={addonClasses}>{leftAddon}</div>}\n\n {/* Left Icon */}\n {leftIcon && !leftAddon && (\n <div class={`${iconClasses} ps-3`}>{leftIcon}</div>\n )}\n\n {/* Input */}\n <input\n type={type}\n class={inputClasses}\n disabled={disabled}\n readOnly={readOnly}\n required={required}\n aria-invalid={invalid}\n aria-required={required}\n {...inputProps}\n />\n\n {/* Right Icon */}\n {rightIcon && !rightAddon && (\n <div class={`${iconClasses} pe-3`}>{rightIcon}</div>\n )}\n\n {/* Right Addon */}\n {rightAddon && <div class={addonClasses}>{rightAddon}</div>}\n </div>\n );\n }\n\n export function InputGroup(props: InputGroupProps): JSXElement {\n const { children, class: className } = props;\n\n const classes = [\n 'flex',\n 'items-stretch',\n '[&>*:not(:first-child):not(:last-child)]:rounded-none',\n '[&>*:first-child:not(:only-child)]:rounded-e-none',\n '[&>*:last-child:not(:only-child)]:rounded-s-none',\n '[&>*:not(:first-child)]:-ms-px',\n className\n ]\n .filter(Boolean)\n .join(' ');\n\n return <div class={classes}>{children}</div>;\n }\n\n export function Textarea(props: TextareaProps): JSXElement {\n const {\n variant = 'outline',\n size = 'md',\n disabled = false,\n readOnly = false,\n required = false,\n invalid = false,\n fullWidth = false,\n rows = 4,\n resize = 'vertical',\n class: className,\n inputClass,\n ...textareaProps\n } = props;\n\n // Size classes\n const sizeClasses = {\n sm: ['p-2', 'text-sm'],\n md: ['p-3', 'text-base'],\n lg: ['p-4', 'text-lg']\n };\n\n // Variant classes\n const variantClasses = {\n outline: [\n 'border',\n 'rounded-md',\n 'bg-surface',\n invalid ? 'border-error' : 'border-1',\n 'hover:border-2',\n 'focus:border-brand',\n 'focus:ring-2',\n 'focus:ring-brand',\n 'focus:ring-opacity-20'\n ],\n filled: [\n 'border',\n 'border-transparent',\n 'rounded-md',\n 'bg-raised',\n 'hover:bg-tertiary',\n 'focus:bg-surface',\n 'focus:border-brand',\n 'focus:ring-2',\n 'focus:ring-brand',\n 'focus:ring-opacity-20'\n ],\n flushed: [\n 'border-b-2',\n 'rounded-none',\n 'bg-transparent',\n invalid ? 'border-error' : 'border-1',\n 'focus:border-brand'\n ]\n };\n\n // Resize classes\n const resizeClasses = {\n none: 'resize-none',\n vertical: 'resize-y',\n horizontal: 'resize-x',\n both: 'resize'\n };\n\n // State classes\n const stateClasses = [];\n if (disabled) {\n stateClasses.push('opacity-50', 'cursor-not-allowed');\n }\n if (fullWidth) {\n stateClasses.push('w-full');\n }\n\n // Base classes\n const baseClasses = [\n 'outline-none',\n 'placeholder:text-3',\n 'disabled:cursor-not-allowed',\n 'read-only:cursor-default',\n 'text-1',\n 'transition-all',\n 'duration-150'\n ];\n\n // Combine classes\n const classes = [\n ...baseClasses,\n ...sizeClasses[size],\n ...variantClasses[variant],\n resizeClasses[resize],\n ...stateClasses,\n className,\n inputClass\n ]\n .filter(Boolean)\n .join(' ');\n\n return (\n <textarea\n class={classes}\n disabled={disabled}\n readOnly={readOnly}\n required={required}\n rows={rows}\n aria-invalid={invalid}\n aria-required={required}\n {...textareaProps}\n />\n );\n }\n\n// ╚══════════════════════════════════════════════════════════════════════════════════════╝\n\n\n\n// ╔════════════════════════════════════════ ════ ════════════════════════════════════════╗\n\n export default Input;\n\n// ╚══════════════════════════════════════════════════════════════════════════════════════╝\n","// src/kit/primitives/avatar.tsx\n//\n// Made with ❤️ by Maysara.\n\n\n\n// ╔════════════════════════════════════════ PACK ════════════════════════════════════════╗\n\n import type { JSXElement } from '@minejs/jsx';\n\n// ╚══════════════════════════════════════════════════════════════════════════════════════╝\n\n\n\n// ╔════════════════════════════════════════ TYPE ════════════════════════════════════════╗\n\n export interface AvatarProps {\n // Content\n src?: string;\n alt?: string;\n name?: string;\n fallback?: string;\n\n // Size\n size?: 'xs' | 'sm' | 'md' | 'lg' | 'xl' | '2xl';\n\n // Shape\n rounded?: 'base' | 'full';\n\n // Badge\n badge?: JSXElement;\n badgePosition?: 'top-start' | 'top-end' | 'bottom-start' | 'bottom-end';\n\n // Styling\n class?: string;\n\n // Events\n onClick?: (e: MouseEvent) => void;\n\n // Accessibility\n 'aria-label'?: string;\n }\n\n export interface AvatarGroupProps {\n children?: JSXElement | JSXElement[];\n max?: number;\n spacing?: 'tight' | 'normal' | 'loose';\n size?: AvatarProps['size'];\n class?: string;\n }\n\n// ╚══════════════════════════════════════════════════════════════════════════════════════╝\n\n\n\n// ╔════════════════════════════════════════ CORE ════════════════════════════════════════╗\n\n export function Avatar(props: AvatarProps): JSXElement {\n const {\n src,\n alt,\n name,\n fallback,\n size = 'md',\n rounded = 'full',\n badge,\n badgePosition = 'bottom-end',\n class: className,\n onClick,\n ...restProps\n } = props;\n\n // Size classes\n const sizeClasses = {\n xs: 'size-6',\n sm: 'size-8',\n md: 'size-10',\n lg: 'size-12',\n xl: 'size-16',\n '2xl': 'size-20'\n };\n\n // Font size for initials\n const fontSizeClasses = {\n xs: 'text-xs',\n sm: 'text-sm',\n md: 'text-base',\n lg: 'text-lg',\n xl: 'text-xl',\n '2xl': 'text-2xl'\n };\n\n // Rounded classes\n const roundedClasses = {\n base: 'rounded-md',\n full: 'rounded-full'\n };\n\n // Badge position classes\n const badgePositionClasses = {\n 'top-start': 'top-0 start-0',\n 'top-end': 'top-0 end-0',\n 'bottom-start': 'bottom-0 start-0',\n 'bottom-end': 'bottom-0 end-0'\n };\n\n // Base classes\n const baseClasses = [\n 'relative',\n 'inline-flex',\n 'items-center',\n 'justify-center',\n 'shrink-0',\n 'overflow-hidden',\n 'bg-raised',\n 'text-1',\n 'font-medium',\n 'select-none',\n sizeClasses[size],\n roundedClasses[rounded],\n fontSizeClasses[size],\n onClick && 'cursor-pointer hover:opacity-80 transition',\n className\n ]\n .filter(Boolean)\n .join(' ');\n\n // Get initials from name\n const getInitials = (name: string): string => {\n return name\n .split(' ')\n .map(word => word[0])\n .join('')\n .toUpperCase()\n .slice(0, 2);\n };\n\n // Determine what to display\n let content;\n if (src) {\n content = <img src={src} alt={alt || name || 'Avatar'} class=\"size-full object-cover\" />;\n } else if (name) {\n content = <span>{getInitials(name)}</span>;\n } else if (fallback) {\n content = <span>{fallback}</span>;\n } else {\n // Default user icon\n content = (\n <svg class=\"size-3/5 text-3\" fill=\"currentColor\" viewBox=\"0 0 24 24\">\n <path d=\"M12 12c2.21 0 4-1.79 4-4s-1.79-4-4-4-4 1.79-4 4 1.79 4 4 4zm0 2c-2.67 0-8 1.34-8 4v2h16v-2c0-2.66-5.33-4-8-4z\" />\n </svg>\n );\n }\n\n return (\n <div class={baseClasses} onClick={onClick} {...restProps}>\n {content}\n\n {badge && (\n <span class={`absolute ${badgePositionClasses[badgePosition]} -translate-x-1/4 -translate-y-1/4`}>\n {badge}\n </span>\n )}\n </div>\n );\n }\n\n export function AvatarGroup(props: AvatarGroupProps): JSXElement {\n const { children, max = 5, spacing = 'normal', class: className } = props;\n\n const spacingClasses = {\n tight: '[&>*:not(:first-child)]:-ms-2',\n normal: '[&>*:not(:first-child)]:-ms-3',\n loose: '[&>*:not(:first-child)]:-ms-4'\n };\n\n const classes = [\n 'inline-flex',\n 'items-center',\n spacingClasses[spacing],\n '[&>*]:border-2',\n '[&>*]:border-surface',\n className\n ]\n .filter(Boolean)\n .join(' ');\n\n // Handle max display logic\n const childArray = Array.isArray(children) ? children : [children];\n const displayChildren = childArray.slice(0, max);\n const remainingCount = childArray.length - max;\n\n return (\n <div class={classes}>\n {displayChildren}\n {remainingCount > 0 && (\n <Avatar\n fallback={`+${remainingCount}`}\n class=\"bg-tertiary text-2 font-semibold\"\n />\n )}\n </div>\n );\n }\n\n// ╚══════════════════════════════════════════════════════════════════════════════════════╝\n\n\n\n// ╔════════════════════════════════════════ ════ ════════════════════════════════════════╗\n\n export default { Avatar, AvatarGroup };\n\n// ╚══════════════════════════════════════════════════════════════════════════════════════╝\n","// src/kit/primitives/text.tsx\n//\n// Made with ❤️ by Maysara.\n\n\n\n// ╔════════════════════════════════════════ PACK ════════════════════════════════════════╗\n\n import type { JSXElement } from '@minejs/jsx';\n\n// ╚══════════════════════════════════════════════════════════════════════════════════════╝\n\n\n\n// ╔════════════════════════════════════════ TYPE ════════════════════════════════════════╗\n\n export interface BadgeProps {\n // Variants\n variant?: 'solid' | 'outline' | 'subtle';\n color?: 'brand' | 'success' | 'warning' | 'error' | 'neutral';\n size?: 'sm' | 'md' | 'lg';\n\n // Shape\n rounded?: 'base' | 'full';\n\n // Content\n children?: JSXElement | string | number;\n\n // Icon\n leftIcon?: JSXElement;\n rightIcon?: JSXElement;\n\n // Layout\n dot?: boolean;\n\n // Styling\n class?: string;\n\n // Accessibility\n 'aria-label'?: string;\n }\n\n// ╚══════════════════════════════════════════════════════════════════════════════════════╝\n\n\n\n// ╔════════════════════════════════════════ CORE ════════════════════════════════════════╗\n\n export function Badge(props: BadgeProps): JSXElement {\n const {\n variant = 'solid',\n color = 'neutral',\n size = 'md',\n rounded = 'full',\n children,\n leftIcon,\n rightIcon,\n dot = false,\n class: className,\n ...restProps\n } = props;\n\n // Base classes\n const baseClasses = [\n 'inline-flex',\n 'items-center',\n 'gap-1',\n 'font-medium',\n 'shrink-0'\n ];\n\n // Size classes\n const sizeClasses = {\n sm: ['h-5', 'px-2', 'text-xs'],\n md: ['h-6', 'px-2.5', 'text-sm'],\n lg: ['h-7', 'px-3', 'text-base']\n };\n\n // Rounded classes\n const roundedClasses = {\n base: 'rounded-md',\n full: 'rounded-full'\n };\n\n // Variant classes\n const variantClasses = {\n solid: {\n brand: ['bg-brand', 'text-inverse'],\n success: ['bg-success', 'text-inverse'],\n warning: ['bg-warning', 'text-inverse'],\n error: ['bg-error', 'text-inverse'],\n neutral: ['bg-surface', 'text-1', 'border', 'border-1']\n },\n outline: {\n brand: ['border', 'border-brand', 'text-brand'],\n success: ['border', 'border-success', 'text-success'],\n warning: ['border', 'border-warning', 'text-warning'],\n error: ['border', 'border-error', 'text-error'],\n neutral: ['border', 'border-1', 'text-1']\n },\n subtle: {\n brand: ['bg-brand-subtle', 'text-brand'],\n success: ['bg-success-subtle', 'text-success'],\n warning: ['bg-warning-subtle', 'text-warning'],\n error: ['bg-error-subtle', 'text-error'],\n neutral: ['bg-raised', 'text-1']\n }\n };\n\n // Combine classes\n const classes = [\n ...baseClasses,\n ...sizeClasses[size],\n roundedClasses[rounded],\n ...variantClasses[variant][color],\n className\n ]\n .filter(Boolean)\n .join(' ');\n\n // Dot element\n const dotElement = dot && (\n <span class={`size-1.5 rounded-full ${variant === 'solid' ? 'bg-inverse' : `bg-${color}`}`} />\n );\n\n return (\n <span class={classes} {...restProps}>\n {dotElement}\n {leftIcon && <span class=\"inline-flex shrink-0\">{leftIcon}</span>}\n {children}\n {rightIcon && <span class=\"inline-flex shrink-0\">{rightIcon}</span>}\n </span>\n );\n }\n\n// ╚══════════════════════════════════════════════════════════════════════════════════════╝\n\n\n\n// ╔════════════════════════════════════════ ════ ════════════════════════════════════════╗\n\n export default Badge;\n\n// ╚══════════════════════════════════════════════════════════════════════════════════════╝\n","// src/kit/primitives/spinner.tsx\n//\n// Made with ❤️ by Maysara.\n\n\n\n// ╔════════════════════════════════════════ PACK ════════════════════════════════════════╗\n\n import type { JSXElement } from '@minejs/jsx';\n\n// ╚══════════════════════════════════════════════════════════════════════════════════════╝\n\n\n\n// ╔════════════════════════════════════════ TYPE ════════════════════════════════════════╗\n\n export interface SpinnerProps {\n size?: 'xs' | 'sm' | 'md' | 'lg' | 'xl';\n color?: 'current' | 'brand' | 'success' | 'warning' | 'error';\n thickness?: 'thin' | 'normal' | 'thick';\n speed?: 'slow' | 'normal' | 'fast';\n class?: string;\n 'aria-label'?: string;\n }\n\n// ╚══════════════════════════════════════════════════════════════════════════════════════╝\n\n\n\n// ╔════════════════════════════════════════ CORE ════════════════════════════════════════╗\n\n export function Spinner(props: SpinnerProps): JSXElement {\n const {\n size = 'md',\n color = 'current',\n thickness = 'normal',\n speed = 'normal',\n class: className,\n ...restProps\n } = props;\n\n // Size classes\n const sizeClasses = {\n xs: 'size-3',\n sm: 'size-4',\n md: 'size-6',\n lg: 'size-8',\n xl: 'size-12'\n };\n\n // Color classes\n const colorClasses = {\n current: 'text-current',\n brand: 'text-brand',\n success: 'text-success',\n warning: 'text-warning',\n error: 'text-error'\n };\n\n // Thickness (stroke width)\n const thicknessValues = {\n thin: '2',\n normal: '3',\n thick: '4'\n };\n\n // Speed classes\n const speedClasses = {\n slow: 'duration-1000',\n normal: 'duration-700',\n fast: 'duration-500'\n };\n\n const classes = [\n 'inline-block',\n 'animate-spin',\n sizeClasses[size],\n colorClasses[color],\n speedClasses[speed],\n className\n ]\n .filter(Boolean)\n .join(' ');\n\n return (\n <svg\n class={classes}\n xmlns=\"http://www.w3.org/2000/svg\"\n fill=\"none\"\n viewBox=\"0 0 24 24\"\n role=\"status\"\n aria-label={props['aria-label'] || 'Loading'}\n {...restProps}\n >\n <circle\n class=\"opacity-25\"\n cx=\"12\"\n cy=\"12\"\n r=\"10\"\n stroke=\"currentColor\"\n stroke-width={thicknessValues[thickness]}\n />\n <path\n class=\"opacity-75\"\n fill=\"currentColor\"\n d=\"M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4zm2 5.291A7.962 7.962 0 014 12H0c0 3.042 1.135 5.824 3 7.938l3-2.647z\"\n />\n </svg>\n );\n }\n\n// ╚══════════════════════════════════════════════════════════════════════════════════════╝\n\n\n\n// ╔════════════════════════════════════════ ════ ════════════════════════════════════════╗\n\n export default Spinner;\n\n// ╚══════════════════════════════════════════════════════════════════════════════════════╝\n","// src/kit/primitives/skeleton.tsx\n//\n// Made with ❤️ by Maysara.\n\n\n\n// ╔════════════════════════════════════════ PACK ════════════════════════════════════════╗\n\n import type { JSXElement } from '@minejs/jsx';\n\n// ╚══════════════════════════════════════════════════════════════════════════════════════╝\n\n\n\n// ╔════════════════════════════════════════ TYPE ════════════════════════════════════════╗\n\n export interface SkeletonProps {\n width?: string;\n height?: string;\n variant?: 'text' | 'circular' | 'rectangular';\n animate?: boolean;\n class?: string;\n }\n\n// ╚══════════════════════════════════════════════════════════════════════════════════════╝\n\n\n\n// ╔════════════════════════════════════════ CORE ════════════════════════════════════════╗\n\n export function Skeleton(props: SkeletonProps): JSXElement {\n const {\n width,\n height,\n variant = 'text',\n animate = true,\n class: className\n } = props;\n\n const variantClasses = {\n text: 'rounded h-4',\n circular: 'rounded-full',\n rectangular: 'rounded-md'\n };\n\n const classes = [\n 'bg-raised',\n animate && 'animate-pulse',\n variantClasses[variant],\n className\n ]\n .filter(Boolean)\n .join(' ');\n\n const style = {\n width: width || (variant === 'text' ? '100%' : undefined),\n height: height || (variant === 'text' ? undefined : '100%')\n };\n\n return <div class={classes} style={style} />;\n }\n\n// ╚══════════════════════════════════════════════════════════════════════════════════════╝\n\n\n\n// ╔════════════════════════════════════════ ════ ════════════════════════════════════════╗\n\n export default Skeleton;\n\n// ╚══════════════════════════════════════════════════════════════════════════════════════╝\n","// src/kit/layout/container.tsx\r\n//\r\n// Made with ❤️ by Maysara.\r\n\r\n\r\n\r\n// ╔════════════════════════════════════════ PACK ════════════════════════════════════════╗\r\n\r\n import type { JSXElement } from '@minejs/jsx';\r\n\r\n// ╚══════════════════════════════════════════════════════════════════════════════════════╝\r\n\r\n\r\n\r\n// ╔════════════════════════════════════════ TYPE ════════════════════════════════════════╗\r\n\r\n export interface ContainerProps {\r\n // Size\r\n maxWidth?: 'xs' | 'sm' | 'md' | 'lg' | 'xl' | '2xl' | 'full';\r\n\r\n // Padding\r\n px?: 0 | 1 | 2 | 3 | 4 | 6 | 8 | 12;\r\n py?: 0 | 1 | 2 | 3 | 4 | 6 | 8 | 12;\r\n\r\n // Center content\r\n centerContent?: boolean;\r\n\r\n // Content\r\n children?: JSXElement | JSXElement[];\r\n\r\n // Styling\r\n class?: string;\r\n\r\n // HTML attributes\r\n id?: string;\r\n as?: 'div' | 'main' | 'section' | 'article' | 'aside' | 'header' | 'footer';\r\n }\r\n\r\n// ╚══════════════════════════════════════════════════════════════════════════════════════╝\r\n\r\n\r\n\r\n// ╔════════════════════════════════════════ CORE ════════════════════════════════════════╗\r\n\r\n export function Container(props: ContainerProps): JSXElement {\r\n const {\r\n maxWidth = 'xl',\r\n px = 4,\r\n py,\r\n centerContent = false,\r\n children,\r\n class: className,\r\n as: Tag = 'div',\r\n ...restProps\r\n } = props;\r\n\r\n // Max width classes\r\n const maxWidthClasses = {\r\n xs: 'max-w-xs', // 320px\r\n sm: 'max-w-sm', // 384px\r\n md: 'max-w-md', // 448px\r\n lg: 'max-w-lg', // 512px\r\n xl: 'max-w-xl', // 576px\r\n '2xl': 'max-w-2xl', // 672px\r\n full: 'max-w-full'\r\n };\r\n\r\n // Padding classes\r\n const pxClasses = {\r\n 0: 'px-0',\r\n 1: 'px-1',\r\n 2: 'px-2',\r\n 3: 'px-3',\r\n 4: 'px-4',\r\n 6: 'px-6',\r\n 8: 'px-8',\r\n 12: 'px-12'\r\n };\r\n\r\n const pyClasses = py !== undefined ? {\r\n 0: 'py-0',\r\n 1: 'py-1',\r\n 2: 'py-2',\r\n 3: 'py-3',\r\n 4: 'py-4',\r\n 6: 'py-6',\r\n 8: 'py-8',\r\n 12: 'py-12'\r\n }[py] : '';\r\n\r\n // Base classes\r\n const baseClasses = [\r\n 'w-full',\r\n 'mx-auto',\r\n maxWidthClasses[maxWidth],\r\n pxClasses[px],\r\n pyClasses,\r\n centerContent && 'flex items-center justify-center',\r\n className\r\n ]\r\n .filter(Boolean)\r\n .join(' ');\r\n\r\n return <Tag class={baseClasses} {...restProps}> {children} </Tag>;\r\n }\r\n\r\n// ╚══════════════════════════════════════════════════════════════════════════════════════╝\r\n","// src/kit/layout/stack.tsx\r\n//\r\n// Made with ❤️ by Maysara.\r\n\r\n\r\n\r\n// ╔════════════════════════════════════════ PACK ════════════════════════════════════════╗\r\n\r\n import type { JSXElement } from '@minejs/jsx';\r\n\r\n// ╚══════════════════════════════════════════════════════════════════════════════════════╝\r\n\r\n\r\n\r\n// ╔════════════════════════════════════════ TYPE ════════════════════════════════════════╗\r\n\r\n export interface StackProps {\r\n // Spacing\r\n gap?: 0 | 1 | 2 | 3 | 4 | 5 | 6 | 8 | 10 | 12 | 16 | 20 | 24;\r\n\r\n // Alignment\r\n align?: 'start' | 'center' | 'end' | 'stretch' | 'baseline';\r\n justify?: 'start' | 'center' | 'end' | 'between' | 'around' | 'evenly';\r\n\r\n // Direction\r\n reverse?: boolean;\r\n\r\n // Layout\r\n wrap?: boolean;\r\n\r\n // Content\r\n children?: JSXElement | JSXElement[];\r\n\r\n // Styling\r\n class?: string;\r\n\r\n // HTML attributes\r\n id?: string;\r\n as?: 'div' | 'section' | 'article' | 'aside' | 'header' | 'footer' | 'nav' | 'ul' | 'ol';\r\n }\r\n\r\n// ╚══════════════════════════════════════════════════════════════════════════════════════╝\r\n\r\n\r\n\r\n// ╔════════════════════════════════════════ CORE ════════════════════════════════════════╗\r\n\r\n export function Stack(props: StackProps): JSXElement {\r\n const {\r\n gap = 4,\r\n align = 'stretch',\r\n justify = 'start',\r\n reverse = false,\r\n wrap = false,\r\n children,\r\n class: className,\r\n as: Tag = 'div',\r\n ...restProps\r\n } = props;\r\n\r\n // Gap classes\r\n const gapClasses = {\r\n 0: 'gap-0',\r\n 1: 'gap-1',\r\n 2: 'gap-2',\r\n 3: 'gap-3',\r\n 4: 'gap-4',\r\n 5: 'gap-5',\r\n 6: 'gap-6',\r\n 8: 'gap-8',\r\n 10: 'gap-10',\r\n 12: 'gap-12',\r\n 16: 'gap-16',\r\n 20: 'gap-20',\r\n 24: 'gap-24'\r\n };\r\n\r\n // Align classes\r\n const alignClasses = {\r\n start: 'items-start',\r\n center: 'items-center',\r\n end: 'items-end',\r\n stretch: 'items-stretch',\r\n baseline: 'items-baseline'\r\n };\r\n\r\n // Justify classes\r\n const justifyClasses = {\r\n start: 'justify-start',\r\n center: 'justify-center',\r\n end: 'justify-end',\r\n between: 'justify-between',\r\n around: 'justify-around',\r\n evenly: 'justify-evenly'\r\n };\r\n\r\n const classes = [\r\n 'flex',\r\n reverse ? 'flex-col-reverse' : 'flex-col',\r\n gapClasses[gap],\r\n alignClasses[align],\r\n justifyClasses[justify],\r\n wrap && 'flex-wrap',\r\n className\r\n ]\r\n .filter(Boolean)\r\n .join(' ');\r\n\r\n return <Tag class={classes} {...restProps}> {children} </Tag>;\r\n }\r\n\r\n// ╚══════════════════════════════════════════════════════════════════════════════════════╝\r\n","// src/kit/layout/group.tsx\r\n//\r\n// Made with ❤️ by Maysara.\r\n\r\n\r\n\r\n// ╔════════════════════════════════════════ PACK ════════════════════════════════════════╗\r\n\r\n import type { JSXElement } from '@minejs/jsx';\r\n\r\n// ╚══════════════════════════════════════════════════════════════════════════════════════╝\r\n\r\n\r\n\r\n// ╔════════════════════════════════════════ TYPE ════════════════════════════════════════╗\r\n\r\n export interface GroupProps {\r\n // Spacing\r\n gap?: 0 | 1 | 2 | 3 | 4 | 5 | 6 | 8 | 10 | 12 | 16 | 20 | 24;\r\n\r\n // Alignment\r\n align?: 'start' | 'center' | 'end' | 'stretch' | 'baseline';\r\n justify?: 'start' | 'center' | 'end' | 'between' | 'around' | 'evenly';\r\n\r\n // Direction\r\n reverse?: boolean;\r\n\r\n // Layout\r\n wrap?: boolean;\r\n\r\n // Content\r\n children?: JSXElement | JSXElement[];\r\n\r\n // Styling\r\n class?: string;\r\n\r\n // HTML attributes\r\n id?: string;\r\n as?: 'div' | 'section' | 'article' | 'aside' | 'header' | 'footer' | 'nav' | 'ul' | 'ol';\r\n }\r\n\r\n// ╚══════════════════════════════════════════════════════════════════════════════════════╝\r\n\r\n\r\n\r\n// ╔════════════════════════════════════════ CORE ════════════════════════════════════════╗\r\n\r\n export function Group(props: GroupProps): JSXElement {\r\n const {\r\n gap = 4,\r\n align = 'center',\r\n justify = 'start',\r\n reverse = false,\r\n wrap = false,\r\n children,\r\n class: className,\r\n as: Tag = 'div',\r\n ...restProps\r\n } = props;\r\n\r\n // Gap classes\r\n const gapClasses = {\r\n 0: 'gap-0',\r\n 1: 'gap-1',\r\n 2: 'gap-2',\r\n 3: 'gap-3',\r\n 4: 'gap-4',\r\n 5: 'gap-5',\r\n 6: 'gap-6',\r\n 8: 'gap-8',\r\n 10: 'gap-10',\r\n 12: 'gap-12',\r\n 16: 'gap-16',\r\n 20: 'gap-20',\r\n 24: 'gap-24'\r\n };\r\n\r\n const alignClasses = {\r\n start: 'items-start',\r\n center: 'items-center',\r\n end: 'items-end',\r\n stretch: 'items-stretch',\r\n baseline: 'items-baseline'\r\n };\r\n\r\n const justifyClasses = {\r\n start: 'justify-start',\r\n center: 'justify-center',\r\n end: 'justify-end',\r\n between: 'justify-between',\r\n around: 'justify-around',\r\n evenly: 'justify-evenly'\r\n };\r\n\r\n const classes = [\r\n 'flex',\r\n reverse ? 'flex-row-reverse' : 'flex-row',\r\n gapClasses[gap],\r\n alignClasses[align],\r\n justifyClasses[justify],\r\n wrap && 'flex-wrap',\r\n className\r\n ]\r\n .filter(Boolean)\r\n .join(' ');\r\n\r\n return <Tag class={classes} {...restProps}> {children} </Tag>;\r\n }\r\n\r\n// ╚══════════════════════════════════════════════════════════════════════════════════════╝\r\n","// src/kit/layout/grid.tsx\r\n//\r\n// Made with ❤️ by Maysara.\r\n\r\n\r\n\r\n// ╔════════════════════════════════════════ PACK ════════════════════════════════════════╗\r\n\r\n import type { JSXElement } from '@minejs/jsx';\r\n\r\n// ╚══════════════════════════════════════════════════════════════════════════════════════╝\r\n\r\n\r\n\r\n// ╔════════════════════════════════════════ TYPE ════════════════════════════════════════╗\r\n\r\n export interface GridProps {\r\n // Columns\r\n cols?: 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12;\r\n\r\n // Responsive columns\r\n colsSm?: GridProps['cols'];\r\n colsMd?: GridProps['cols'];\r\n colsLg?: GridProps['cols'];\r\n colsXl?: GridProps['cols'];\r\n\r\n // Rows\r\n rows?: 1 | 2 | 3 | 4 | 5 | 6;\r\n\r\n // Gap\r\n gap?: 0 | 1 | 2 | 3 | 4 | 5 | 6 | 8 | 10 | 12 | 16 | 20 | 24;\r\n gapX?: GridProps['gap'];\r\n gapY?: GridProps['gap'];\r\n\r\n // Alignment\r\n align?: 'start' | 'center' | 'end' | 'stretch';\r\n justify?: 'start' | 'center' | 'end' | 'between' | 'around' | 'evenly';\r\n\r\n // Flow\r\n flow?: 'row' | 'col' | 'dense' | 'row-dense' | 'col-dense';\r\n\r\n // Content\r\n children?: JSXElement | JSXElement[];\r\n\r\n // Styling\r\n class?: string;\r\n\r\n // HTML attributes\r\n id?: string;\r\n as?: 'div' | 'section' | 'article' | 'ul' | 'ol';\r\n }\r\n\r\n// ╚══════════════════════════════════════════════════════════════════════════════════════╝\r\n\r\n\r\n\r\n// ╔════════════════════════════════════════ CORE ════════════════════════════════════════╗\r\n\r\n export function Grid(props: GridProps): JSXElement {\r\n const {\r\n cols,\r\n colsSm,\r\n colsMd,\r\n colsLg,\r\n colsXl,\r\n rows,\r\n gap,\r\n gapX,\r\n gapY,\r\n align,\r\n justify,\r\n flow,\r\n children,\r\n class: className,\r\n as: Tag = 'div',\r\n ...restProps\r\n } = props;\r\n\r\n // Columns classes\r\n const getColsClass = (num?: number) =>\r\n num ? `grid-cols-${num}` : '';\r\n\r\n // Gap classes\r\n const gapClasses = {\r\n 0: 'gap-0',\r\n 1: 'gap-1',\r\n 2: 'gap-2',\r\n 3: 'gap-3',\r\n 4: 'gap-4',\r\n 5: 'gap-5',\r\n 6: 'gap-6',\r\n 8: 'gap-8',\r\n 10: 'gap-10',\r\n 12: 'gap-12',\r\n 16: 'gap-16',\r\n 20: 'gap-20',\r\n 24: 'gap-24'\r\n };\r\n\r\n const gapXClasses = gapX !== undefined ? {\r\n 0: 'gap-x-0',\r\n 1: 'gap-x-1',\r\n 2: 'gap-x-2',\r\n 3: 'gap-x-3',\r\n 4: 'gap-x-4',\r\n 5: 'gap-x-5',\r\n 6: 'gap-x-6',\r\n 8: 'gap-x-8',\r\n 10: 'gap-x-10',\r\n 12: 'gap-x-12',\r\n 16: 'gap-x-16',\r\n 20: 'gap-x-20',\r\n 24: 'gap-x-24'\r\n }[gapX] : '';\r\n\r\n const gapYClasses = gapY !== undefined ? {\r\n 0: 'gap-y-0',\r\n 1: 'gap-y-1',\r\n 2: 'gap-y-2',\r\n 3: 'gap-y-3',\r\n 4: 'gap-y-4',\r\n 5: 'gap-y-5',\r\n 6: 'gap-y-6',\r\n 8: 'gap-y-8',\r\n 10: 'gap-y-10',\r\n 12: 'gap-y-12',\r\n 16: 'gap-y-16',\r\n 20: 'gap-y-20',\r\n 24: 'gap-y-24'\r\n }[gapY] : '';\r\n\r\n // Align & Justify\r\n const alignClasses = align ? {\r\n start: 'items-start',\r\n center: 'items-center',\r\n end: 'items-end',\r\n stretch: 'items-stretch'\r\n }[align] : '';\r\n\r\n const justifyClasses = justify ? {\r\n start: 'justify-start',\r\n center: 'justify-center',\r\n end: 'justify-end',\r\n between: 'justify-between',\r\n around: 'justify-around',\r\n evenly: 'justify-evenly'\r\n }[justify] : '';\r\n\r\n // Flow\r\n const flowClasses = flow ? {\r\n row: 'grid-flow-row',\r\n col: 'grid-flow-col',\r\n dense: 'grid-flow-dense',\r\n 'row-dense': 'grid-flow-row-dense',\r\n 'col-dense': 'grid-flow-col-dense'\r\n }[flow] : '';\r\n\r\n // Rows\r\n const rowsClass = rows ? `grid-rows-${rows}` : '';\r\n\r\n const classes = [\r\n 'grid',\r\n getColsClass(cols),\r\n colsSm && `sm:${getColsClass(colsSm)}`,\r\n colsMd && `md:${getColsClass(colsMd)}`,\r\n colsLg && `lg:${getColsClass(colsLg)}`,\r\n colsXl && `xl:${getColsClass(colsXl)}`,\r\n rowsClass,\r\n gap !== undefined ? gapClasses[gap] : '',\r\n gapXClasses,\r\n gapYClasses,\r\n alignClasses,\r\n justifyClasses,\r\n flowClasses,\r\n className\r\n ]\r\n .filter(Boolean)\r\n .join(' ');\r\n\r\n return <Tag class={classes} {...restProps}> {children} </Tag>;\r\n }\r\n\r\n// ╚══════════════════════════════════════════════════════════════════════════════════════╝\r\n","// src/kit/layout/spacer.tsx\r\n//\r\n// Made with ❤️ by Maysara.\r\n\r\n\r\n\r\n// ╔════════════════════════════════════════ PACK ════════════════════════════════════════╗\r\n\r\n import type { JSXElement } from '@minejs/jsx';\r\n\r\n// ╚══════════════════════════════════════════════════════════════════════════════════════╝\r\n\r\n\r\n\r\n// ╔════════════════════════════════════════ TYPE ════════════════════════════════════════╗\r\n\r\n export interface SpacerProps {\r\n // Size\r\n size?: 1 | 2 | 3 | 4 | 6 | 8 | 10 | 12 | 16 | 20 | 24;\r\n\r\n // Direction\r\n axis?: 'x' | 'y' | 'both';\r\n\r\n // Flex grow\r\n flex?: boolean;\r\n\r\n // Styling\r\n class?: string;\r\n }\r\n\r\n// ╚══════════════════════════════════════════════════════════════════════════════════════╝\r\n\r\n\r\n\r\n// ╔════════════════════════════════════════ CORE ════════════════════════════════════════╗\r\n\r\n export function Spacer(props: SpacerProps): JSXElement {\r\n const {\r\n size,\r\n axis = 'both',\r\n flex = false,\r\n class: className\r\n } = props;\r\n\r\n const sizeClasses = size ? {\r\n x: {\r\n 1: 'w-1',\r\n 2: 'w-2',\r\n 3: 'w-3',\r\n 4: 'w-4',\r\n 6: 'w-6',\r\n 8: 'w-8',\r\n 10: 'w-10',\r\n 12: 'w-12',\r\n 16: 'w-16',\r\n 20: 'w-20',\r\n 24: 'w-24'\r\n },\r\n y: {\r\n 1: 'h-1',\r\n 2: 'h-2',\r\n 3: 'h-3',\r\n 4: 'h-4',\r\n 6: 'h-6',\r\n 8: 'h-8',\r\n 10: 'h-10',\r\n 12: 'h-12',\r\n 16: 'h-16',\r\n 20: 'h-20',\r\n 24: 'h-24'\r\n },\r\n both: {\r\n 1: 'size-1',\r\n 2: 'size-2',\r\n 3: 'size-3',\r\n 4: 'size-4',\r\n 6: 'size-6',\r\n 8: 'size-8',\r\n 10: 'size-10',\r\n 12: 'size-12',\r\n 16: 'size-16',\r\n 20: 'size-20',\r\n 24: 'size-24'\r\n }\r\n }[axis][size] : '';\r\n\r\n const classes = [\r\n flex && 'flex-1',\r\n !flex && sizeClasses,\r\n className\r\n ]\r\n .filter(Boolean)\r\n .join(' ');\r\n\r\n return <div class={classes} aria-hidden=\"true\" />;\r\n }\r\n\r\n// ╚══════════════════════════════════════════════════════════════════════════════════════╝\r\n","// src/kit/layout/divider.tsx\r\n//\r\n// Made with ❤️ by Maysara.\r\n\r\n\r\n\r\n// ╔════════════════════════════════════════ PACK ════════════════════════════════════════╗\r\n\r\n import type { JSXElement } from '@minejs/jsx';\r\n\r\n// ╚══════════════════════════════════════════════════════════════════════════════════════╝\r\n\r\n\r\n\r\n// ╔════════════════════════════════════════ TYPE ════════════════════════════════════════╗\r\n\r\n export interface DividerProps {\r\n // Orientation\r\n orientation?: 'horizontal' | 'vertical';\r\n\r\n // Variant\r\n variant?: 'solid' | 'dashed' | 'dotted';\r\n\r\n // Thickness\r\n thickness?: 'thin' | 'medium' | 'thick';\r\n\r\n // Color\r\n color?: '1' | '2' | '3' | 'brand' | 'current';\r\n\r\n // Label\r\n label?: string | JSXElement;\r\n labelPosition?: 'start' | 'center' | 'end';\r\n\r\n // Spacing\r\n spacing?: 0 | 1 | 2 | 3 | 4 | 6 | 8 | 12;\r\n\r\n // Styling\r\n class?: string;\r\n\r\n // Accessibility\r\n role?: string;\r\n 'aria-orientation'?: 'horizontal' | 'vertical';\r\n }\r\n\r\n// ╚══════════════════════════════════════════════════════════════════════════════════════╝\r\n\r\n\r\n\r\n// ╔════════════════════════════════════════ CORE ════════════════════════════════════════╗\r\n\r\n export function Divider(props: DividerProps): JSXElement {\r\n const {\r\n orientation = 'horizontal',\r\n variant = 'solid',\r\n thickness = 'thin',\r\n color = '2',\r\n label,\r\n labelPosition = 'center',\r\n spacing,\r\n class: className,\r\n role = 'separator',\r\n ...restProps\r\n } = props;\r\n\r\n // Thickness classes\r\n const thicknessClasses = {\r\n horizontal: {\r\n thin: 'border-t',\r\n medium: 'border-t-2',\r\n thick: 'border-t-4'\r\n },\r\n vertical: {\r\n thin: 'border-s',\r\n medium: 'border-s-2',\r\n thick: 'border-s-4'\r\n }\r\n };\r\n\r\n // Variant classes\r\n const variantClasses = {\r\n solid: 'border-solid',\r\n dashed: 'border-dashed',\r\n dotted: 'border-dotted'\r\n };\r\n\r\n // Color classes\r\n const colorClasses = {\r\n '1': 'border-1',\r\n '2': 'border-2',\r\n '3': 'border-3',\r\n 'brand': 'border-brand',\r\n 'current': 'border-current'\r\n };\r\n\r\n // Spacing classes\r\n const spacingClasses = spacing !== undefined ? {\r\n horizontal: {\r\n 0: 'my-0',\r\n 1: 'my-1',\r\n 2: 'my-2',\r\n 3: 'my-3',\r\n 4: 'my-4',\r\n 6: 'my-6',\r\n 8: 'my-8',\r\n 12: 'my-12'\r\n },\r\n vertical: {\r\n 0: 'mx-0',\r\n 1: 'mx-1',\r\n 2: 'mx-2',\r\n 3: 'mx-3',\r\n 4: 'mx-4',\r\n 6: 'mx-6',\r\n 8: 'mx-8',\r\n 12: 'mx-12'\r\n }\r\n }[orientation][spacing] : '';\r\n\r\n // Base classes\r\n const baseClasses = [\r\n thicknessClasses[orientation][thickness],\r\n variantClasses[variant],\r\n colorClasses[color],\r\n spacingClasses,\r\n orientation === 'horizontal' ? 'w-full' : 'h-full',\r\n className\r\n ]\r\n .filter(Boolean)\r\n .join(' ');\r\n\r\n // If no label, simple divider\r\n if (!label) {\r\n return (\r\n <div\r\n class={baseClasses}\r\n role={role}\r\n aria-orientation={orientation}\r\n {...restProps}\r\n />\r\n );\r\n }\r\n\r\n // With label\r\n const containerClasses = orientation === 'horizontal'\r\n ? 'flex items-center w-full'\r\n : 'flex flex-col items-center h-full';\r\n\r\n const labelPositionClasses = {\r\n horizontal: {\r\n start: 'justify-start',\r\n center: 'justify-center',\r\n end: 'justify-end'\r\n },\r\n vertical: {\r\n start: 'justify-start',\r\n center: 'justify-center',\r\n end: 'justify-end'\r\n }\r\n };\r\n\r\n return (\r\n <div\r\n class={`${containerClasses} ${labelPositionClasses[orientation][labelPosition]} ${spacingClasses}`}\r\n role={role}\r\n aria-orientation={orientation}\r\n {...restProps}\r\n >\r\n {labelPosition !== 'start' && (\r\n <div class={`flex-1 ${baseClasses}`} />\r\n )}\r\n <span class={`${orientation === 'horizontal' ? 'px-3' : 'py-3'} text-2 text-sm`}>\r\n {label}\r\n </span>\r\n {labelPosition !== 'end' && (\r\n <div class={`flex-1 ${baseClasses}`} />\r\n )}\r\n </div>\r\n );\r\n }\r\n\r\n// ╚══════════════════════════════════════════════════════════════════════════════════════╝\r\n","// src/kit/layout/center.tsx\r\n//\r\n// Made with ❤️ by Maysara.\r\n\r\n\r\n\r\n// ╔════════════════════════════════════════ PACK ════════════════════════════════════════╗\r\n\r\n import type { JSXElement } from '@minejs/jsx';\r\n\r\n// ╚══════════════════════════════════════════════════════════════════════════════════════╝\r\n\r\n\r\n\r\n// ╔════════════════════════════════════════ TYPE ════════════════════════════════════════╗\r\n\r\n export interface CenterProps {\r\n // Inline (horizontal only)\r\n inline?: boolean;\r\n\r\n // Content\r\n children?: JSXElement | JSXElement[];\r\n\r\n // Styling\r\n class?: string;\r\n\r\n // HTML attributes\r\n id?: string;\r\n as?: 'div' | 'section' | 'article';\r\n }\r\n\r\n// ╚══════════════════════════════════════════════════════════════════════════════════════╝\r\n\r\n\r\n\r\n// ╔════════════════════════════════════════ CORE ════════════════════════════════════════╗\r\n\r\n export function Center(props: CenterProps): JSXElement {\r\n const {\r\n inline = false,\r\n children,\r\n class: className,\r\n as: Tag = 'div',\r\n ...restProps\r\n } = props;\r\n\r\n const classes = inline\r\n ? ['flex', 'justify-center', className].filter(Boolean).join(' ')\r\n : ['flex', 'items-center', 'justify-center', className].filter(Boolean).join(' ');\r\n\r\n return <Tag class={classes} {...restProps}> {children} </Tag>;\r\n }\r\n\r\n// ╚══════════════════════════════════════════════════════════════════════════════════════╝\r\n","// src/kit/layout/box.tsx\r\n//\r\n// Made with ❤️ by Maysara.\r\n\r\n\r\n\r\n// ╔════════════════════════════════════════ PACK ════════════════════════════════════════╗\r\n\r\n import type { JSXElement } from '@minejs/jsx';\r\n\r\n// ╚══════════════════════════════════════════════════════════════════════════════════════╝\r\n\r\n\r\n\r\n// ╔════════════════════════════════════════ TYPE ════════════════════════════════════════╗\r\n\r\n export interface BoxProps {\r\n // Content\r\n children?: JSXElement | JSXElement[];\r\n\r\n // Styling\r\n class?: string;\r\n\r\n // HTML attributes\r\n id?: string;\r\n as?: 'div' | 'section' | 'article' | 'aside' | 'header' | 'footer' | 'main' | 'nav' | 'span';\r\n\r\n // Events\r\n onClick?: (e: MouseEvent) => void;\r\n\r\n // Accessibility\r\n role?: string;\r\n 'aria-label'?: string;\r\n }\r\n\r\n// ╚══════════════════════════════════════════════════════════════════════════════════════╝\r\n\r\n\r\n\r\n// ╔════════════════════════════════════════ CORE ════════════════════════════════════════╗\r\n\r\n export function Box(props: BoxProps): JSXElement {\r\n const {\r\n children,\r\n class: className,\r\n as: Tag = 'div',\r\n ...restProps\r\n } = props;\r\n\r\n return <Tag class={className} {...restProps}> {children} </Tag>;\r\n }\r\n\r\n// ╚══════════════════════════════════════════════════════════════════════════════════════╝\r\n","// src/kit/feedback/alert.tsx\r\n//\r\n// Made with ❤️ by Maysara.\r\n\r\n\r\n\r\n// ╔════════════════════════════════════════ PACK ════════════════════════════════════════╗\r\n\r\n import type { JSXElement } from '@minejs/jsx';\r\n import { signal } from '@minejs/signals';\r\n\r\n// ╚══════════════════════════════════════════════════════════════════════════════════════╝\r\n\r\n\r\n\r\n// ╔════════════════════════════════════════ TYPE ════════════════════════════════════════╗\r\n\r\n export interface AlertProps {\r\n // Status\r\n status?: 'info' | 'success' | 'warning' | 'error';\r\n\r\n // Variant\r\n variant?: 'solid' | 'subtle' | 'left-accent' | 'top-accent';\r\n\r\n // Title\r\n title?: string | JSXElement;\r\n\r\n // Description\r\n description?: string | JSXElement;\r\n children?: JSXElement | string;\r\n\r\n // Icon\r\n icon?: JSXElement;\r\n showIcon?: boolean;\r\n\r\n // Closable\r\n closable?: boolean;\r\n onClose?: () => void;\r\n\r\n // Actions\r\n actions?: JSXElement;\r\n\r\n // Styling\r\n class?: string;\r\n\r\n // Accessibility\r\n role?: 'alert' | 'status';\r\n 'aria-live'?: 'polite' | 'assertive';\r\n }\r\n\r\n// ╚══════════════════════════════════════════════════════════════════════════════════════╝\r\n\r\n\r\n\r\n// ╔════════════════════════════════════════ CORE ════════════════════════════════════════╗\r\n\r\n export function Alert(props: AlertProps): JSXElement | null {\r\n const {\r\n status = 'info',\r\n variant = 'subtle',\r\n title,\r\n description,\r\n children,\r\n icon,\r\n showIcon = true,\r\n closable = false,\r\n onClose,\r\n actions,\r\n class: className,\r\n role = 'alert',\r\n 'aria-live': ariaLive = 'polite',\r\n ...restProps\r\n } = props;\r\n\r\n const isVisible = signal(true);\r\n\r\n const handleClose = () => {\r\n isVisible.set(false);\r\n onClose?.();\r\n };\r\n\r\n if (!isVisible()) return null;\r\n\r\n // Status colors using @mineui semantic tokens\r\n const statusColors = {\r\n solid: {\r\n info: ['bg-color-primary', 'text-white', 'border border-color-primary'],\r\n success: ['bg-color-success', 'text-white', 'border border-color-success'],\r\n warning: ['bg-color-warning', 'text-white', 'border border-color-warning'],\r\n error: ['bg-color-error', 'text-white', 'border border-color-error']\r\n },\r\n subtle: {\r\n info: ['bg-color-primary-subtle', 'text-primary', 'border border-color-primary'],\r\n success: ['bg-color-success-subtle', 'text-primary', 'border border-color-success'],\r\n warning: ['bg-color-warning-subtle', 'text-primary', 'border border-color-warning'],\r\n error: ['bg-color-error-subtle', 'text-primary', 'border border-color-error']\r\n },\r\n 'left-accent': {\r\n info: ['bg-color-primary-subtle', 'text-primary', 'border-s-4', 'border-color-primary'],\r\n success: ['bg-color-success-subtle', 'text-primary', 'border-s-4', 'border-color-success'],\r\n warning: ['bg-color-warning-subtle', 'text-primary', 'border-s-4', 'border-color-warning'],\r\n error: ['bg-color-error-subtle', 'text-primary', 'border-s-4', 'border-color-error']\r\n },\r\n 'top-accent': {\r\n info: ['bg-color-primary-subtle', 'text-primary', 'border-t-4', 'border-color-primary'],\r\n success: ['bg-color-success-subtle', 'text-primary', 'border-t-4', 'border-color-success'],\r\n warning: ['bg-color-warning-subtle', 'text-primary', 'border-t-4', 'border-color-warning'],\r\n error: ['bg-color-error-subtle', 'text-primary', 'border-t-4', 'border-color-error']\r\n }\r\n };\r\n\r\n // Default icons\r\n const defaultIcons = {\r\n info: (\r\n <svg class=\"size-5\" fill=\"currentColor\" viewBox=\"0 0 20 20\">\r\n <path fill-rule=\"evenodd\" d=\"M18 10a8 8 0 11-16 0 8 8 0 0116 0zm-7-4a1 1 0 11-2 0 1 1 0 012 0zM9 9a1 1 0 000 2v3a1 1 0 001 1h1a1 1 0 100-2v-3a1 1 0 00-1-1H9z\" clip-rule=\"evenodd\" />\r\n </svg>\r\n ),\r\n success: (\r\n <svg class=\"size-5\" fill=\"currentColor\" viewBox=\"0 0 20 20\">\r\n <path fill-rule=\"evenodd\" d=\"M10 18a8 8 0 100-16 8 8 0 000 16zm3.707-9.293a1 1 0 00-1.414-1.414L9 10.586 7.707 9.293a1 1 0 00-1.414 1.414l2 2a1 1 0 001.414 0l4-4z\" clip-rule=\"evenodd\" />\r\n </svg>\r\n ),\r\n warning: (\r\n <svg class=\"size-5\" fill=\"currentColor\" viewBox=\"0 0 20 20\">\r\n <path fill-rule=\"evenodd\" d=\"M8.257 3.099c.765-1.36 2.722-1.36 3.486 0l5.58 9.92c.75 1.334-.213 2.98-1.742 2.98H4.42c-1.53 0-2.493-1.646-1.743-2.98l5.58-9.92zM11 13a1 1 0 11-2 0 1 1 0 012 0zm-1-8a1 1 0 00-1 1v3a1 1 0 002 0V6a1 1 0 00-1-1z\" clip-rule=\"evenodd\" />\r\n </svg>\r\n ),\r\n error: (\r\n <svg class=\"size-5\" fill=\"currentColor\" viewBox=\"0 0 20 20\">\r\n <path fill-rule=\"evenodd\" d=\"M10 18a8 8 0 100-16 8 8 0 000 16zM8.707 7.293a1 1 0 00-1.414 1.414L8.586 10l-1.293 1.293a1 1 0 101.414 1.414L10 11.414l1.293 1.293a1 1 0 001.414-1.414L11.414 10l1.293-1.293a1 1 0 00-1.414-1.414L10 8.586 8.707 7.293z\" clip-rule=\"evenodd\" />\r\n </svg>\r\n )\r\n };\r\n\r\n const classes = [\r\n 'flex gap-3 p-4 rounded-lg',\r\n ...statusColors[variant][status],\r\n className\r\n ]\r\n .filter(Boolean)\r\n .join(' ');\r\n\r\n const iconElement = showIcon && (icon || defaultIcons[status]);\r\n\r\n return (\r\n <div class={classes} role={role} aria-live={ariaLive} {...restProps}>\r\n {iconElement && (\r\n <div class=\"shrink-0 pt-0.5\">\r\n {iconElement}\r\n </div>\r\n )}\r\n\r\n <div class=\"flex-1 min-w-0\">\r\n {title && (\r\n <div class=\"font-semibold mb-1\">\r\n {title}\r\n </div>\r\n )}\r\n\r\n {(description || children) && (\r\n <div class=\"text-sm opacity-90\">\r\n {description || children}\r\n </div>\r\n )}\r\n\r\n {actions && (\r\n <div class=\"mt-3\">\r\n {actions}\r\n </div>\r\n )}\r\n </div>\r\n\r\n {closable && (\r\n <button\r\n onClick={handleClose}\r\n class=\"shrink-0 p-1 rounded hover:bg-black hover:bg-opacity-10 transition\"\r\n aria-label=\"Close alert\"\r\n >\r\n <svg class=\"size-4\" fill=\"currentColor\" viewBox=\"0 0 20 20\">\r\n <path fill-rule=\"evenodd\" d=\"M4.293 4.293a1 1 0 011.414 0L10 8.586l4.293-4.293a1 1 0 111.414 1.414L11.414 10l4.293 4.293a1 1 0 01-1.414 1.414L10 11.414l-4.293 4.293a1 1 0 01-1.414-1.414L8.586 10 4.293 5.707a1 1 0 010-1.414z\" clip-rule=\"evenodd\" />\r\n </svg>\r\n </button>\r\n )}\r\n </div>\r\n );\r\n }\r\n\r\n// ╚══════════════════════════════════════════════════════════════════════════════════════╝\r\n","// src/kit/feedback/toast.tsx\r\n//\r\n// Made with ❤️ by Maysara.\r\n\r\n\r\n\r\n// ╔════════════════════════════════════════ PACK ════════════════════════════════════════╗\r\n\r\n import type { JSXElement } from '@minejs/jsx';\r\n import { signal, effect } from '@minejs/signals';\r\n\r\n// ╚══════════════════════════════════════════════════════════════════════════════════════╝\r\n\r\n\r\n\r\n// ╔════════════════════════════════════════ TYPE ════════════════════════════════════════╗\r\n\r\n export interface ToastProps {\r\n // Status\r\n status?: 'info' | 'success' | 'warning' | 'error';\r\n\r\n // Title & Description\r\n title?: string | JSXElement;\r\n description?: string | JSXElement;\r\n\r\n // Duration (ms)\r\n duration?: number;\r\n\r\n // Closable\r\n closable?: boolean;\r\n\r\n // Icon\r\n icon?: JSXElement;\r\n\r\n // Actions\r\n action?: JSXElement;\r\n\r\n // Callbacks\r\n onClose?: () => void;\r\n\r\n // ID\r\n id?: string;\r\n\r\n // Styling\r\n class?: string;\r\n }\r\n\r\n// ╚══════════════════════════════════════════════════════════════════════════════════════╝\r\n\r\n\r\n\r\n// ╔════════════════════════════════════════ CORE ════════════════════════════════════════╗\r\n\r\n export function Toast(props: ToastProps): JSXElement | null {\r\n const {\r\n status = 'info',\r\n title,\r\n description,\r\n duration = 5000,\r\n closable = true,\r\n icon,\r\n action,\r\n onClose,\r\n class: className\r\n } = props;\r\n\r\n const isVisible = signal(true);\r\n const progress = signal(100);\r\n\r\n // Auto-close timer\r\n effect(() => {\r\n if (duration > 0) {\r\n const interval = setInterval(() => {\r\n progress.update((prev: number) => {\r\n const next = prev - (100 / (duration / 50));\r\n if (next <= 0) {\r\n clearInterval(interval);\r\n handleClose();\r\n return 0;\r\n }\r\n return next;\r\n });\r\n }, 50);\r\n\r\n return () => clearInterval(interval);\r\n }\r\n });\r\n\r\n const handleClose = () => {\r\n isVisible.set(false);\r\n setTimeout(() => onClose?.(), 200);\r\n };\r\n\r\n if (!isVisible()) return null;\r\n\r\n const statusColors = {\r\n info: ['bg-color-primary', 'text-white'],\r\n success: ['bg-color-success', 'text-white'],\r\n warning: ['bg-color-warning', 'text-white'],\r\n error: ['bg-color-error', 'text-white']\r\n };\r\n\r\n const classes = [\r\n 'relative flex gap-3 p-4 rounded-lg shadow-lg min-w-80 max-w-md',\r\n 'animate-in slide-in-from-bottom-4 fade-in duration-300',\r\n ...statusColors[status],\r\n className\r\n ]\r\n .filter(Boolean)\r\n .join(' ');\r\n\r\n return (\r\n <div class={classes} role=\"alert\">\r\n {icon && (\r\n <div class=\"shrink-0 pt-0.5\">\r\n {icon}\r\n </div>\r\n )}\r\n\r\n <div class=\"flex-1 min-w-0\">\r\n {title && (\r\n <div class=\"font-semibold mb-1\">\r\n {title}\r\n </div>\r\n )}\r\n\r\n {description && (\r\n <div class=\"text-sm opacity-90\">\r\n {description}\r\n </div>\r\n )}\r\n\r\n {action && (\r\n <div class=\"mt-2\">\r\n {action}\r\n </div>\r\n )}\r\n </div>\r\n\r\n {closable && (\r\n <button\r\n onClick={handleClose}\r\n class=\"shrink-0 p-1 rounded hover:bg-black hover:bg-opacity-10 transition\"\r\n aria-label=\"Close notification\"\r\n >\r\n <svg class=\"size-4\" fill=\"currentColor\" viewBox=\"0 0 20 20\">\r\n <path fill-rule=\"evenodd\" d=\"M4.293 4.293a1 1 0 011.414 0L10 8.586l4.293-4.293a1 1 0 111.414 1.414L11.414 10l4.293 4.293a1 1 0 01-1.414 1.414L10 11.414l-4.293 4.293a1 1 0 01-1.414-1.414L8.586 10 4.293 5.707a1 1 0 010-1.414z\" clip-rule=\"evenodd\" />\r\n </svg>\r\n </button>\r\n )}\r\n\r\n {/* Progress bar */}\r\n {duration > 0 && (\r\n <div class=\"absolute bottom-0 left-0 right-0 h-1 bg-black bg-opacity-20 rounded-b-lg overflow-hidden\">\r\n <div\r\n class=\"h-full bg-inverse transition-all duration-50 ease-linear\"\r\n style={{ width: `${progress()}%` }}\r\n />\r\n </div>\r\n )}\r\n </div>\r\n );\r\n }\r\n\r\n// ╚══════════════════════════════════════════════════════════════════════════════════════╝\r\n","// src/kit/feedback/progress.tsx\r\n//\r\n// Made with ❤️ by Maysara.\r\n\r\n\r\n\r\n// ╔════════════════════════════════════════ PACK ════════════════════════════════════════╗\r\n\r\n import type { JSXElement } from '@minejs/jsx';\r\n\r\n// ╚══════════════════════════════════════════════════════════════════════════════════════╝\r\n\r\n\r\n\r\n// ╔════════════════════════════════════════ TYPE ════════════════════════════════════════╗\r\n\r\n export interface ProgressProps {\r\n // Value (0-100)\r\n value?: number;\r\n\r\n // Max value\r\n max?: number;\r\n\r\n // Size\r\n size?: 'xs' | 'sm' | 'md' | 'lg';\r\n\r\n // Color\r\n color?: 'brand' | 'success' | 'warning' | 'error';\r\n\r\n // Variant\r\n variant?: 'linear' | 'circular';\r\n\r\n // Label\r\n label?: string | JSXElement;\r\n showValue?: boolean;\r\n\r\n // Indeterminate (loading)\r\n indeterminate?: boolean;\r\n\r\n // Striped\r\n striped?: boolean;\r\n animated?: boolean;\r\n\r\n // Styling\r\n class?: string;\r\n\r\n // Accessibility\r\n 'aria-label'?: string;\r\n }\r\n\r\n// ╚══════════════════════════════════════════════════════════════════════════════════════╝\r\n\r\n\r\n\r\n// ╔════════════════════════════════════════ CORE ════════════════════════════════════════╗\r\n\r\n export function Progress(props: ProgressProps): JSXElement {\r\n const {\r\n value = 0,\r\n max = 100,\r\n size = 'md',\r\n color = 'brand',\r\n variant = 'linear',\r\n label,\r\n showValue = false,\r\n indeterminate = false,\r\n striped = false,\r\n animated = false,\r\n class: className,\r\n ...restProps\r\n } = props;\r\n\r\n const percentage = Math.min(Math.max((value / max) * 100, 0), 100);\r\n\r\n if (variant === 'circular') {\r\n const sizeValues = {\r\n xs: 32,\r\n sm: 40,\r\n md: 48,\r\n lg: 64\r\n };\r\n\r\n const strokeWidthValues = {\r\n xs: 3,\r\n sm: 4,\r\n md: 4,\r\n lg: 5\r\n };\r\n\r\n const circleSize = sizeValues[size];\r\n const strokeWidth = strokeWidthValues[size];\r\n const radius = (circleSize - strokeWidth) / 2;\r\n const circumference = 2 * Math.PI * radius;\r\n const offset = circumference - (percentage / 100) * circumference;\r\n\r\n const colorClasses = {\r\n brand: 'text-color-primary',\r\n success: 'text-color-success',\r\n warning: 'text-color-warning',\r\n error: 'text-color-error'\r\n };\r\n\r\n return (\r\n <div class={`inline-flex flex-col items-center gap-2 ${className || ''}`}>\r\n <div class=\"relative\" style={{ width: `${circleSize}px`, height: `${circleSize}px` }}>\r\n <svg\r\n class=\"transform -rotate-90\"\r\n width={circleSize}\r\n height={circleSize}\r\n >\r\n {/* Background circle */}\r\n <circle\r\n cx={circleSize / 2}\r\n cy={circleSize / 2}\r\n r={radius}\r\n stroke=\"currentColor\"\r\n stroke-width={strokeWidth}\r\n fill=\"none\"\r\n class=\"text-raised opacity-30\"\r\n />\r\n\r\n {/* Progress circle */}\r\n {!indeterminate && (\r\n <circle\r\n cx={circleSize / 2}\r\n cy={circleSize / 2}\r\n r={radius}\r\n stroke=\"currentColor\"\r\n stroke-width={strokeWidth}\r\n fill=\"none\"\r\n stroke-linecap=\"round\"\r\n stroke-dasharray={circumference}\r\n stroke-dashoffset={offset}\r\n class={`${colorClasses[color]} transition-all duration-300`}\r\n />\r\n )}\r\n\r\n {/* Indeterminate animation */}\r\n {indeterminate && (\r\n <circle\r\n cx={circleSize / 2}\r\n cy={circleSize / 2}\r\n r={radius}\r\n stroke=\"currentColor\"\r\n stroke-width={strokeWidth}\r\n fill=\"none\"\r\n stroke-linecap=\"round\"\r\n stroke-dasharray={circumference * 0.25}\r\n class={`${colorClasses[color]} animate-spin`}\r\n />\r\n )}\r\n </svg>\r\n\r\n {showValue && !indeterminate && (\r\n <div class=\"absolute inset-0 flex items-center justify-center\">\r\n <span class=\"text-sm font-semibold\">{Math.round(percentage)}%</span>\r\n </div>\r\n )}\r\n </div>\r\n\r\n {label && (\r\n <span class=\"text-sm text-2\">\r\n {label}\r\n </span>\r\n )}\r\n </div>\r\n );\r\n }\r\n\r\n // Linear progress\r\n const sizeClasses = {\r\n xs: 'h-1',\r\n sm: 'h-2',\r\n md: 'h-3',\r\n lg: 'h-4'\r\n };\r\n\r\n const colorClasses = {\r\n brand: 'bg-color-primary',\r\n success: 'bg-color-success',\r\n warning: 'bg-color-warning',\r\n error: 'bg-color-error'\r\n };\r\n\r\n const trackClasses = [\r\n 'w-full rounded-full overflow-hidden bg-raised',\r\n sizeClasses[size],\r\n className\r\n ]\r\n .filter(Boolean)\r\n .join(' ');\r\n\r\n const barClasses = [\r\n 'h-full rounded-full transition-all duration-300',\r\n colorClasses[color],\r\n striped && 'bg-stripes',\r\n animated && striped && 'animate-stripes',\r\n indeterminate && 'animate-progress-indeterminate'\r\n ]\r\n .filter(Boolean)\r\n .join(' ');\r\n\r\n return (\r\n <div class=\"w-full\">\r\n {(label || showValue) && (\r\n <div class=\"flex justify-between items-center mb-2\">\r\n {label && <span class=\"text-sm text-2\">{label}</span>}\r\n {showValue && !indeterminate && (\r\n <span class=\"text-sm font-semibold\">{Math.round(percentage)}%</span>\r\n )}\r\n </div>\r\n )}\r\n\r\n <div\r\n class={trackClasses}\r\n role=\"progressbar\"\r\n aria-valuenow={indeterminate ? undefined : value}\r\n aria-valuemin={0}\r\n aria-valuemax={max}\r\n {...restProps}\r\n >\r\n <div\r\n class={barClasses}\r\n style={{ width: indeterminate ? '30%' : `${percentage}%` }}\r\n />\r\n </div>\r\n </div>\r\n );\r\n }\r\n\r\n// ╚══════════════════════════════════════════════════════════════════════════════════════╝\r\n","// src/kit/feedback/notification.tsx\r\n//\r\n// Made with ❤️ by Maysara.\r\n\r\n\r\n\r\n// ╔════════════════════════════════════════ PACK ════════════════════════════════════════╗\r\n\r\n import type { JSXElement } from '@minejs/jsx';\r\n import { signal, effect } from '@minejs/signals';\r\n import { Alert, type AlertProps } from './alert';\r\n\r\n// ╚══════════════════════════════════════════════════════════════════════════════════════╝\r\n\r\n\r\n\r\n// ╔════════════════════════════════════════ TYPE ════════════════════════════════════════╗\r\n\r\n export interface NotificationProps extends Omit<AlertProps, 'variant'> {\r\n // Position for toast-like behavior\r\n position?: 'top' | 'bottom' | 'top-start' | 'top-end' | 'bottom-start' | 'bottom-end';\r\n\r\n // Duration (auto-close)\r\n duration?: number;\r\n }\r\n\r\n// ╚══════════════════════════════════════════════════════════════════════════════════════╝\r\n\r\n\r\n\r\n// ╔════════════════════════════════════════ CORE ════════════════════════════════════════╗\r\n\r\n export function Notification(props: NotificationProps): JSXElement | null {\r\n const {\r\n position = 'top-end',\r\n duration,\r\n onClose,\r\n ...alertProps\r\n } = props;\r\n\r\n const isVisible = signal(true);\r\n\r\n // Auto-close\r\n effect(() => {\r\n if (duration && duration > 0) {\r\n const timer = setTimeout(() => {\r\n isVisible.set(false);\r\n setTimeout(() => onClose?.(), 200);\r\n }, duration);\r\n\r\n return () => clearTimeout(timer);\r\n }\r\n });\r\n\r\n const handleClose = () => {\r\n isVisible.set(false);\r\n setTimeout(() => onClose?.(), 200);\r\n };\r\n\r\n if (!isVisible()) return null;\r\n\r\n const positionClasses = {\r\n 'top': 'top-4 left-1/2 -translate-x-1/2',\r\n 'bottom': 'bottom-4 left-1/2 -translate-x-1/2',\r\n 'top-start': 'top-4 start-4',\r\n 'top-end': 'top-4 end-4',\r\n 'bottom-start': 'bottom-4 start-4',\r\n 'bottom-end': 'bottom-4 end-4'\r\n };\r\n\r\n return (\r\n <div class={`fixed ${positionClasses[position]} z-notification max-w-md animate-in slide-in-from-top-4 fade-in duration-300`}>\r\n <Alert\r\n {...alertProps}\r\n variant=\"subtle\"\r\n closable={true}\r\n onClose={handleClose}\r\n class=\"shadow-xl\"\r\n />\r\n </div>\r\n );\r\n }\r\n\r\n// ╚══════════════════════════════════════════════════════════════════════════════════════╝\r\n","// src/kit/overlays/modal.tsx\r\n//\r\n// Made with ❤️ by Maysara.\r\n\r\n\r\n\r\n// ╔════════════════════════════════════════ PACK ════════════════════════════════════════╗\r\n\r\n import type { JSXElement } from '@minejs/jsx';\r\n import { signal } from '@minejs/signals';\r\n\r\n// ╚══════════════════════════════════════════════════════════════════════════════════════╝\r\n\r\n\r\n\r\n// ╔════════════════════════════════════════ TYPE ════════════════════════════════════════╗\r\n\r\n export interface ModalProps {\r\n // Visibility\r\n isOpen?: boolean;\r\n onClose?: () => void;\r\n\r\n // Title & description\r\n title?: string | JSXElement;\r\n description?: string | JSXElement;\r\n\r\n // Content\r\n children?: JSXElement | string;\r\n\r\n // Footer actions\r\n actions?: JSXElement;\r\n\r\n // Size\r\n size?: 'sm' | 'md' | 'lg' | 'xl' | 'full';\r\n\r\n // Backdrop\r\n backdrop?: boolean;\r\n closeOnBackdrop?: boolean;\r\n\r\n // Styling\r\n class?: string;\r\n\r\n // Accessibility\r\n role?: 'dialog' | 'alertdialog';\r\n 'aria-modal'?: boolean;\r\n 'aria-labelledby'?: string;\r\n 'aria-describedby'?: string;\r\n }\r\n\r\n// ╚══════════════════════════════════════════════════════════════════════════════════════╝\r\n\r\n\r\n\r\n// ╔════════════════════════════════════════ CORE ════════════════════════════════════════╗\r\n\r\n export function Modal(props: ModalProps): JSXElement | null {\r\n const {\r\n isOpen = false,\r\n onClose,\r\n title,\r\n description,\r\n children,\r\n actions,\r\n size = 'md',\r\n backdrop = true,\r\n closeOnBackdrop = true,\r\n class: className,\r\n role = 'dialog',\r\n ...restProps\r\n } = props;\r\n\r\n const isVisible = signal(isOpen);\r\n\r\n const sizeClasses = {\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 full: 'max-w-full'\r\n };\r\n\r\n const handleBackdropClick = () => {\r\n if (closeOnBackdrop) {\r\n isVisible.set(false);\r\n onClose?.();\r\n }\r\n };\r\n\r\n const handleClose = () => {\r\n isVisible.set(false);\r\n onClose?.();\r\n };\r\n\r\n if (!isVisible()) return null;\r\n\r\n return (\r\n <>\r\n {backdrop && (\r\n <div\r\n class=\"fixed inset-0 bg-black/40 z-modal-backdrop animate-in fade-in duration-200\"\r\n onClick={handleBackdropClick}\r\n aria-hidden=\"true\"\r\n />\r\n )}\r\n\r\n <div class=\"fixed inset-0 flex items-center justify-center z-modal pointer-events-none\">\r\n <div\r\n class={`\r\n relative w-full mx-4 ${sizeClasses[size]} rounded-lg\r\n bg-surface shadow-lg animate-in zoom-in-95 fade-in duration-200\r\n pointer-events-auto border border-border-primary\r\n ${className || ''}\r\n `.trim()}\r\n role={role}\r\n aria-modal=\"true\"\r\n {...restProps}\r\n >\r\n {/* Header */}\r\n {(title || description) && (\r\n <div class=\"px-6 py-4 border-b border-border-primary\">\r\n {title && (\r\n <h2 class=\"text-lg font-semibold text-primary mb-1\">\r\n {title}\r\n </h2>\r\n )}\r\n {description && (\r\n <p class=\"text-sm text-primary/70\">\r\n {description}\r\n </p>\r\n )}\r\n </div>\r\n )}\r\n\r\n {/* Body */}\r\n {children && (\r\n <div class=\"px-6 py-4\">\r\n {children}\r\n </div>\r\n )}\r\n\r\n {/* Footer */}\r\n {actions && (\r\n <div class=\"px-6 py-4 border-t border-border-primary flex gap-3 justify-end\">\r\n {actions}\r\n </div>\r\n )}\r\n\r\n {/* Close button */}\r\n <button\r\n onClick={handleClose}\r\n class=\"absolute top-4 right-4 p-1 rounded-md hover:bg-surface-hover transition\"\r\n aria-label=\"Close modal\"\r\n >\r\n <svg class=\"size-5\" fill=\"currentColor\" viewBox=\"0 0 20 20\">\r\n <path fill-rule=\"evenodd\" d=\"M4.293 4.293a1 1 0 011.414 0L10 8.586l4.293-4.293a1 1 0 111.414 1.414L11.414 10l4.293 4.293a1 1 0 01-1.414 1.414L10 11.414l-4.293 4.293a1 1 0 01-1.414-1.414L8.586 10 4.293 5.707a1 1 0 010-1.414z\" clip-rule=\"evenodd\" />\r\n </svg>\r\n </button>\r\n </div>\r\n </div>\r\n </>\r\n );\r\n }\r\n\r\n// ╚══════════════════════════════════════════════════════════════════════════════════════╝\r\n","// src/kit/overlays/drawer.tsx\r\n//\r\n// Made with ❤️ by Maysara.\r\n\r\n\r\n\r\n// ╔════════════════════════════════════════ PACK ════════════════════════════════════════╗\r\n\r\n import type { JSXElement } from '@minejs/jsx';\r\n import { signal } from '@minejs/signals';\r\n\r\n// ╚══════════════════════════════════════════════════════════════════════════════════════╝\r\n\r\n\r\n\r\n// ╔════════════════════════════════════════ TYPE ════════════════════════════════════════╗\r\n\r\n export interface DrawerProps {\r\n // Visibility\r\n isOpen?: boolean;\r\n onClose?: () => void;\r\n\r\n // Title\r\n title?: string | JSXElement;\r\n\r\n // Content\r\n children?: JSXElement | string;\r\n\r\n // Position\r\n position?: 'left' | 'right' | 'top' | 'bottom';\r\n\r\n // Size\r\n size?: 'sm' | 'md' | 'lg' | 'xl';\r\n\r\n // Backdrop\r\n backdrop?: boolean;\r\n closeOnBackdrop?: boolean;\r\n\r\n // Styling\r\n class?: string;\r\n\r\n // Accessibility\r\n role?: 'dialog' | 'navigation';\r\n 'aria-modal'?: boolean;\r\n 'aria-labelledby'?: string;\r\n }\r\n\r\n// ╚══════════════════════════════════════════════════════════════════════════════════════╝\r\n\r\n\r\n\r\n// ╔════════════════════════════════════════ CORE ════════════════════════════════════════╗\r\n\r\n export function Drawer(props: DrawerProps): JSXElement | null {\r\n const {\r\n isOpen = false,\r\n onClose,\r\n title,\r\n children,\r\n position = 'left',\r\n size = 'md',\r\n backdrop = true,\r\n closeOnBackdrop = true,\r\n class: className,\r\n role = 'dialog',\r\n ...restProps\r\n } = props;\r\n\r\n const isVisible = signal(isOpen);\r\n\r\n const sizeClasses = {\r\n left: { sm: 'w-64', md: 'w-80', lg: 'w-96', xl: 'w-[28rem]' },\r\n right: { sm: 'w-64', md: 'w-80', lg: 'w-96', xl: 'w-[28rem]' },\r\n top: { sm: 'h-40', md: 'h-48', lg: 'h-64', xl: 'h-80' },\r\n bottom: { sm: 'h-40', md: 'h-48', lg: 'h-64', xl: 'h-80' }\r\n };\r\n\r\n const directionClasses = {\r\n left: 'inset-y-0 left-0 animate-in slide-in-from-left',\r\n right: 'inset-y-0 right-0 animate-in slide-in-from-right',\r\n top: 'inset-x-0 top-0 animate-in slide-in-from-top',\r\n bottom: 'inset-x-0 bottom-0 animate-in slide-in-from-bottom'\r\n };\r\n\r\n const handleBackdropClick = () => {\r\n if (closeOnBackdrop) {\r\n isVisible.set(false);\r\n onClose?.();\r\n }\r\n };\r\n\r\n const handleClose = () => {\r\n isVisible.set(false);\r\n onClose?.();\r\n };\r\n\r\n if (!isVisible()) return null;\r\n\r\n return (\r\n <>\r\n {backdrop && (\r\n <div\r\n class=\"fixed inset-0 bg-black/40 z-drawer-backdrop animate-in fade-in duration-200\"\r\n onClick={handleBackdropClick}\r\n aria-hidden=\"true\"\r\n />\r\n )}\r\n\r\n <div\r\n class={`\r\n fixed ${directionClasses[position]} ${sizeClasses[position][size]}\r\n z-drawer bg-surface shadow-lg duration-200 flex flex-col\r\n border-border-primary\r\n ${position === 'left' || position === 'right' ? 'border-e' : 'border-t'}\r\n ${className || ''}\r\n `.trim()}\r\n role={role}\r\n aria-modal=\"true\"\r\n {...restProps}\r\n >\r\n {/* Header */}\r\n <div class=\"flex items-center justify-between px-6 py-4 border-b border-border-primary shrink-0\">\r\n {title && (\r\n <h2 class=\"text-lg font-semibold text-primary\">\r\n {title}\r\n </h2>\r\n )}\r\n <button\r\n onClick={handleClose}\r\n class=\"p-1 rounded-md hover:bg-surface-hover transition ml-auto\"\r\n aria-label=\"Close drawer\"\r\n >\r\n <svg class=\"size-5\" fill=\"currentColor\" viewBox=\"0 0 20 20\">\r\n <path fill-rule=\"evenodd\" d=\"M4.293 4.293a1 1 0 011.414 0L10 8.586l4.293-4.293a1 1 0 111.414 1.414L11.414 10l4.293 4.293a1 1 0 01-1.414 1.414L10 11.414l-4.293 4.293a1 1 0 01-1.414-1.414L8.586 10 4.293 5.707a1 1 0 010-1.414z\" clip-rule=\"evenodd\" />\r\n </svg>\r\n </button>\r\n </div>\r\n\r\n {/* Body */}\r\n <div class=\"flex-1 overflow-y-auto px-6 py-4\">\r\n {children}\r\n </div>\r\n </div>\r\n </>\r\n );\r\n }\r\n\r\n// ╚══════════════════════════════════════════════════════════════════════════════════════╝\r\n","// src/kit/overlays/popover.tsx\r\n//\r\n// Made with ❤️ by Maysara.\r\n\r\n\r\n\r\n// ╔════════════════════════════════════════ PACK ════════════════════════════════════════╗\r\n\r\n import type { JSXElement } from '@minejs/jsx';\r\n import { signal } from '@minejs/signals';\r\n\r\n// ╚══════════════════════════════════════════════════════════════════════════════════════╝\r\n\r\n\r\n\r\n// ╔════════════════════════════════════════ TYPE ════════════════════════════════════════╗\r\n\r\n export interface PopoverProps {\r\n // Trigger\r\n trigger?: JSXElement;\r\n\r\n // Content\r\n children?: JSXElement | string;\r\n\r\n // Position\r\n position?: 'top' | 'bottom' | 'left' | 'right';\r\n\r\n // Visibility\r\n isOpen?: boolean;\r\n onOpenChange?: (open: boolean) => void;\r\n\r\n // Behavior\r\n closeOnClickOutside?: boolean;\r\n closeOnEscape?: boolean;\r\n\r\n // Styling\r\n class?: string;\r\n\r\n // Accessibility\r\n role?: 'dialog' | 'tooltip';\r\n 'aria-label'?: string;\r\n }\r\n\r\n// ╚══════════════════════════════════════════════════════════════════════════════════════╝\r\n\r\n\r\n\r\n// ╔════════════════════════════════════════ CORE ════════════════════════════════════════╗\r\n\r\n export function Popover(props: PopoverProps): JSXElement {\r\n const {\r\n trigger,\r\n children,\r\n position = 'bottom',\r\n isOpen: initialOpen = false,\r\n onOpenChange,\r\n closeOnClickOutside = true,\r\n closeOnEscape = true,\r\n class: className,\r\n role = 'dialog',\r\n ...restProps\r\n } = props;\r\n\r\n const isOpen = signal(initialOpen);\r\n\r\n const positionClasses = {\r\n top: 'bottom-full mb-2',\r\n bottom: 'top-full mt-2',\r\n left: 'right-full mr-2',\r\n right: 'left-full ml-2'\r\n };\r\n\r\n const handleToggle = () => {\r\n const newState = !isOpen();\r\n isOpen.set(newState);\r\n onOpenChange?.(newState);\r\n };\r\n\r\n const handleClose = () => {\r\n isOpen.set(false);\r\n onOpenChange?.(false);\r\n };\r\n\r\n const handleKeyDown = (e: KeyboardEvent) => {\r\n if (closeOnEscape && e.key === 'Escape') {\r\n handleClose();\r\n }\r\n };\r\n\r\n return (\r\n <div class=\"relative inline-block\">\r\n {/* Trigger */}\r\n <div onClick={handleToggle} class=\"cursor-pointer\">\r\n {trigger}\r\n </div>\r\n\r\n {/* Content */}\r\n {isOpen() && (\r\n <div\r\n class={`\r\n absolute z-popover ${positionClasses[position]}\r\n bg-surface rounded-lg shadow-lg border border-border-primary\r\n p-3 min-w-48 max-w-xs animate-in fade-in zoom-in-95 duration-200\r\n ${className || ''}\r\n `.trim()}\r\n role={role}\r\n onKeyDown={handleKeyDown}\r\n onClick={(e: MouseEvent) => e.stopPropagation()}\r\n {...restProps}\r\n >\r\n {children}\r\n </div>\r\n )}\r\n\r\n {/* Backdrop click handler */}\r\n {isOpen() && closeOnClickOutside && (\r\n <div\r\n class=\"fixed inset-0 z-popover-backdrop\"\r\n onClick={handleClose}\r\n aria-hidden=\"true\"\r\n />\r\n )}\r\n </div>\r\n );\r\n }\r\n\r\n// ╚══════════════════════════════════════════════════════════════════════════════════════╝\r\n","// src/kit/overlays/tooltip.tsx\r\n//\r\n// Made with ❤️ by Maysara.\r\n\r\n\r\n\r\n// ╔════════════════════════════════════════ PACK ════════════════════════════════════════╗\r\n\r\n import type { JSXElement } from '@minejs/jsx';\r\n import { signal } from '@minejs/signals';\r\n\r\n// ╚══════════════════════════════════════════════════════════════════════════════════════╝\r\n\r\n\r\n\r\n// ╔════════════════════════════════════════ TYPE ════════════════════════════════════════╗\r\n\r\n export interface TooltipProps {\r\n // Content\r\n content?: string | JSXElement;\r\n\r\n // Trigger element\r\n children?: JSXElement;\r\n\r\n // Position\r\n position?: 'top' | 'bottom' | 'left' | 'right';\r\n\r\n // Delay\r\n delayShow?: number;\r\n delayHide?: number;\r\n\r\n // Styling\r\n class?: string;\r\n contentClass?: string;\r\n\r\n // Accessibility\r\n role?: 'tooltip';\r\n 'aria-label'?: string;\r\n }\r\n\r\n// ╚══════════════════════════════════════════════════════════════════════════════════════╝\r\n\r\n\r\n\r\n// ╔════════════════════════════════════════ CORE ════════════════════════════════════════╗\r\n\r\n export function Tooltip(props: TooltipProps): JSXElement {\r\n const {\r\n content,\r\n children,\r\n position = 'top',\r\n delayShow = 200,\r\n delayHide = 100,\r\n class: className,\r\n contentClass,\r\n ...restProps\r\n } = props;\r\n\r\n const isVisible = signal(false);\r\n let showTimeout: ReturnType<typeof setTimeout> | null = null;\r\n let hideTimeout: ReturnType<typeof setTimeout> | null = null;\r\n\r\n const positionClasses = {\r\n top: 'bottom-full mb-2',\r\n bottom: 'top-full mt-2',\r\n left: 'right-full mr-2',\r\n right: 'left-full ml-2'\r\n };\r\n\r\n const arrowClasses = {\r\n top: '-bottom-1 left-1/2 -translate-x-1/2 border-t-8 border-l-4 border-r-4 border-l-transparent border-r-transparent border-t-surface',\r\n bottom: '-top-1 left-1/2 -translate-x-1/2 border-b-8 border-l-4 border-r-4 border-l-transparent border-r-transparent border-b-surface',\r\n left: '-right-1 top-1/2 -translate-y-1/2 border-l-8 border-t-4 border-b-4 border-t-transparent border-b-transparent border-l-surface',\r\n right: '-left-1 top-1/2 -translate-y-1/2 border-r-8 border-t-4 border-b-4 border-t-transparent border-b-transparent border-r-surface'\r\n };\r\n\r\n const handleMouseEnter = () => {\r\n if (hideTimeout) clearTimeout(hideTimeout);\r\n showTimeout = setTimeout(() => {\r\n isVisible.set(true);\r\n }, delayShow);\r\n };\r\n\r\n const handleMouseLeave = () => {\r\n if (showTimeout) clearTimeout(showTimeout);\r\n hideTimeout = setTimeout(() => {\r\n isVisible.set(false);\r\n }, delayHide);\r\n };\r\n\r\n return (\r\n <div\r\n class={`relative inline-block ${className || ''}`}\r\n onMouseEnter={handleMouseEnter}\r\n onMouseLeave={handleMouseLeave}\r\n >\r\n {/* Trigger */}\r\n {children}\r\n\r\n {/* Tooltip content */}\r\n {isVisible() && content && (\r\n <div\r\n class={`\r\n absolute z-tooltip ${positionClasses[position]}\r\n bg-surface text-primary text-sm rounded-md shadow-lg\r\n px-2 py-1 whitespace-nowrap pointer-events-none\r\n animate-in fade-in zoom-in-95 duration-200\r\n border border-border-primary\r\n ${contentClass || ''}\r\n `.trim()}\r\n role=\"tooltip\"\r\n {...restProps}\r\n >\r\n {content}\r\n <div class={`absolute ${arrowClasses[position]}`} />\r\n </div>\r\n )}\r\n </div>\r\n );\r\n }\r\n\r\n// ╚══════════════════════════════════════════════════════════════════════════════════════╝\r\n","// src/kit/overlays/dropdown-menu.tsx\r\n//\r\n// Made with ❤️ by Maysara.\r\n\r\n\r\n\r\n// ╔════════════════════════════════════════ PACK ════════════════════════════════════════╗\r\n\r\n import type { JSXElement } from '@minejs/jsx';\r\n import { signal } from '@minejs/signals';\r\n\r\n// ╚══════════════════════════════════════════════════════════════════════════════════════╝\r\n\r\n\r\n\r\n// ╔════════════════════════════════════════ TYPE ════════════════════════════════════════╗\r\n\r\n export interface DropdownMenuItemProps {\r\n label: string | JSXElement;\r\n onClick?: () => void;\r\n disabled?: boolean;\r\n variant?: 'default' | 'danger';\r\n icon?: JSXElement;\r\n class?: string;\r\n }\r\n\r\n export interface DropdownMenuProps {\r\n // Trigger\r\n trigger?: JSXElement;\r\n\r\n // Items\r\n items: DropdownMenuItemProps[];\r\n\r\n // Position\r\n position?: 'top' | 'bottom';\r\n\r\n // Visibility\r\n isOpen?: boolean;\r\n onOpenChange?: (open: boolean) => void;\r\n\r\n // Behavior\r\n closeOnSelect?: boolean;\r\n closeOnClickOutside?: boolean;\r\n\r\n // Styling\r\n class?: string;\r\n\r\n // Accessibility\r\n role?: 'menu';\r\n }\r\n\r\n// ╚══════════════════════════════════════════════════════════════════════════════════════╝\r\n\r\n\r\n\r\n// ╔════════════════════════════════════════ CORE ════════════════════════════════════════╗\r\n\r\n export function DropdownMenu(props: DropdownMenuProps): JSXElement {\r\n const {\r\n trigger,\r\n items,\r\n position = 'bottom',\r\n isOpen: initialOpen = false,\r\n onOpenChange,\r\n closeOnSelect = true,\r\n closeOnClickOutside = true,\r\n class: className,\r\n role = 'menu',\r\n ...restProps\r\n } = props;\r\n\r\n const isOpen = signal(initialOpen);\r\n\r\n const positionClasses = {\r\n top: 'bottom-full mb-2',\r\n bottom: 'top-full mt-2'\r\n };\r\n\r\n const handleToggle = () => {\r\n const newState = !isOpen();\r\n isOpen.set(newState);\r\n onOpenChange?.(newState);\r\n };\r\n\r\n const handleClose = () => {\r\n isOpen.set(false);\r\n onOpenChange?.(false);\r\n };\r\n\r\n const handleItemClick = (item: DropdownMenuItemProps) => {\r\n if (!item.disabled) {\r\n item.onClick?.();\r\n if (closeOnSelect) {\r\n handleClose();\r\n }\r\n }\r\n };\r\n\r\n const getVariantClass = (variant: string = 'default', disabled: boolean = false) => {\r\n if (disabled) return 'opacity-50 cursor-not-allowed';\r\n if (variant === 'danger') return 'text-color-error hover:bg-color-error/10';\r\n return 'hover:bg-surface-hover';\r\n };\r\n\r\n return (\r\n <div class=\"relative inline-block\">\r\n {/* Trigger */}\r\n <div onClick={handleToggle} class=\"cursor-pointer\">\r\n {trigger}\r\n </div>\r\n\r\n {/* Menu */}\r\n {isOpen() && (\r\n <div\r\n class={`\r\n absolute z-dropdown-menu ${positionClasses[position]} right-0\r\n bg-surface rounded-lg shadow-lg border border-border-primary\r\n min-w-48 py-1 animate-in fade-in zoom-in-95 duration-200\r\n ${className || ''}\r\n `.trim()}\r\n role={role}\r\n {...restProps}\r\n >\r\n {items.map((item, index) => (\r\n <button\r\n key={index}\r\n onClick={() => handleItemClick(item)}\r\n disabled={item.disabled}\r\n class={`\r\n w-full flex items-center gap-3 px-4 py-2 text-sm\r\n text-left transition-colors\r\n ${getVariantClass(item.variant, item.disabled)}\r\n ${item.class || ''}\r\n `.trim()}\r\n role=\"menuitem\"\r\n >\r\n {item.icon && (\r\n <span class=\"shrink-0 size-4\">\r\n {item.icon}\r\n </span>\r\n )}\r\n <span class=\"flex-1\">\r\n {item.label}\r\n </span>\r\n </button>\r\n ))}\r\n </div>\r\n )}\r\n\r\n {/* Backdrop click handler */}\r\n {isOpen() && closeOnClickOutside && (\r\n <div\r\n class=\"fixed inset-0 z-dropdown-backdrop\"\r\n onClick={handleClose}\r\n aria-hidden=\"true\"\r\n />\r\n )}\r\n </div>\r\n );\r\n }\r\n\r\n// ╚══════════════════════════════════════════════════════════════════════════════════════╝\r\n","// src/kit/forms/form.tsx\r\n//\r\n// Made with ❤️ by Maysara.\r\n\r\n\r\n\r\n// ╔════════════════════════════════════════ PACK ════════════════════════════════════════╗\r\n\r\n import type { JSXElement } from '@minejs/jsx';\r\n\r\n// ╚══════════════════════════════════════════════════════════════════════════════════════╝\r\n\r\n\r\n\r\n// ╔════════════════════════════════════════ TYPE ════════════════════════════════════════╗\r\n\r\n export interface FormProps {\r\n // Content\r\n children?: JSXElement | JSXElement[];\r\n\r\n // Events\r\n onSubmit?: (e: SubmitEvent) => void;\r\n onChange?: (e: Event) => void;\r\n\r\n // Styling\r\n class?: string;\r\n\r\n // HTML attributes\r\n id?: string;\r\n method?: 'GET' | 'POST';\r\n action?: string;\r\n noValidate?: boolean;\r\n }\r\n\r\n export interface FormFieldProps {\r\n label?: string | JSXElement;\r\n error?: string;\r\n required?: boolean;\r\n hint?: string;\r\n class?: string;\r\n children?: JSXElement;\r\n }\r\n\r\n export interface FormLabelProps {\r\n for?: string;\r\n required?: boolean;\r\n children?: JSXElement | string;\r\n class?: string;\r\n }\r\n\r\n export interface FormErrorProps {\r\n children?: JSXElement | string;\r\n class?: string;\r\n }\r\n\r\n export interface FormHintProps {\r\n children?: JSXElement | string;\r\n class?: string;\r\n }\r\n\r\n// ╚══════════════════════════════════════════════════════════════════════════════════════╝\r\n\r\n\r\n\r\n// ╔════════════════════════════════════════ CORE ════════════════════════════════════════╗\r\n\r\n export function Form(props: FormProps): JSXElement {\r\n const {\r\n children,\r\n onSubmit,\r\n onChange,\r\n class: className,\r\n noValidate = false,\r\n ...restProps\r\n } = props;\r\n\r\n return (\r\n <form\r\n class={className}\r\n onSubmit={onSubmit}\r\n onChange={onChange}\r\n noValidate={noValidate}\r\n {...restProps}\r\n >\r\n {children}\r\n </form>\r\n );\r\n }\r\n\r\n export function FormField(props: FormFieldProps): JSXElement {\r\n const {\r\n label,\r\n error,\r\n required = false,\r\n hint,\r\n class: className,\r\n children\r\n } = props;\r\n\r\n return (\r\n <div class={`flex flex-col gap-2 ${className || ''}`}>\r\n {label && (\r\n <label class=\"text-sm font-semibold text-primary\">\r\n {label}\r\n {required && <span class=\"text-color-error ml-1\">*</span>}\r\n </label>\r\n )}\r\n\r\n <div>\r\n {children}\r\n </div>\r\n\r\n {error && (\r\n <div class=\"text-sm text-color-error\">\r\n {error}\r\n </div>\r\n )}\r\n\r\n {hint && !error && (\r\n <div class=\"text-sm text-primary/60\">\r\n {hint}\r\n </div>\r\n )}\r\n </div>\r\n );\r\n }\r\n\r\n export function FormLabel(props: FormLabelProps): JSXElement {\r\n const {\r\n for: htmlFor,\r\n required = false,\r\n children,\r\n class: className\r\n } = props;\r\n\r\n return (\r\n <label\r\n for={htmlFor}\r\n class={`text-sm font-semibold text-primary ${className || ''}`}\r\n >\r\n {children}\r\n {required && <span class=\"text-color-error ml-1\">*</span>}\r\n </label>\r\n );\r\n }\r\n\r\n export function FormError(props: FormErrorProps): JSXElement {\r\n const {\r\n children,\r\n class: className\r\n } = props;\r\n\r\n return (\r\n <div class={`text-sm text-color-error ${className || ''}`}>\r\n {children}\r\n </div>\r\n );\r\n }\r\n\r\n export function FormHint(props: FormHintProps): JSXElement {\r\n const {\r\n children,\r\n class: className\r\n } = props;\r\n\r\n return (\r\n <div class={`text-sm text-primary/60 ${className || ''}`}>\r\n {children}\r\n </div>\r\n );\r\n }\r\n\r\n// ╚══════════════════════════════════════════════════════════════════════════════════════╝\r\n","// src/kit/forms/checkbox.tsx\r\n//\r\n// Made with ❤️ by Maysara.\r\n\r\n\r\n\r\n// ╔════════════════════════════════════════ PACK ════════════════════════════════════════╗\r\n\r\n import type { JSXElement } from '@minejs/jsx';\r\n import { signal } from '@minejs/signals';\r\n\r\n// ╚══════════════════════════════════════════════════════════════════════════════════════╝\r\n\r\n\r\n\r\n// ╔════════════════════════════════════════ TYPE ════════════════════════════════════════╗\r\n\r\n export interface CheckboxProps {\r\n // Value\r\n checked?: boolean;\r\n onChange?: (checked: boolean) => void;\r\n\r\n // Label\r\n label?: string | JSXElement;\r\n\r\n // States\r\n disabled?: boolean;\r\n\r\n // Styling\r\n class?: string;\r\n\r\n // HTML attributes\r\n id?: string;\r\n name?: string;\r\n value?: string;\r\n\r\n // Accessibility\r\n 'aria-label'?: string;\r\n 'aria-describedby'?: string;\r\n }\r\n\r\n// ╚══════════════════════════════════════════════════════════════════════════════════════╝\r\n\r\n\r\n\r\n// ╔════════════════════════════════════════ CORE ════════════════════════════════════════╗\r\n\r\n export function Checkbox(props: CheckboxProps): JSXElement {\r\n const {\r\n checked: initialChecked = false,\r\n onChange,\r\n label,\r\n disabled = false,\r\n class: className,\r\n ...restProps\r\n } = props;\r\n\r\n const isChecked = signal(initialChecked);\r\n\r\n const handleChange = (e: Event) => {\r\n const target = e.target as HTMLInputElement;\r\n isChecked.set(target.checked);\r\n onChange?.(target.checked);\r\n };\r\n\r\n return (\r\n <label class={`flex items-center gap-2 cursor-pointer ${disabled ? 'opacity-50 cursor-not-allowed' : ''} ${className || ''}`}>\r\n <input\r\n type=\"checkbox\"\r\n checked={isChecked()}\r\n onChange={handleChange}\r\n disabled={disabled}\r\n class={`\r\n w-5 h-5 rounded border-2 border-border-primary\r\n bg-surface cursor-pointer transition-colors\r\n checked:bg-color-primary checked:border-color-primary\r\n focus:outline-none focus:ring-2 focus:ring-color-primary/50\r\n disabled:opacity-50 disabled:cursor-not-allowed\r\n accent-color-primary\r\n `.trim()}\r\n {...restProps}\r\n />\r\n {label && (\r\n <span class=\"text-sm text-primary font-medium\">\r\n {label}\r\n </span>\r\n )}\r\n </label>\r\n );\r\n }\r\n\r\n// ╚══════════════════════════════════════════════════════════════════════════════════════╝\r\n","// src/kit/forms/radio.tsx\r\n//\r\n// Made with ❤️ by Maysara.\r\n\r\n\r\n\r\n// ╔════════════════════════════════════════ PACK ════════════════════════════════════════╗\r\n\r\n import type { JSXElement } from '@minejs/jsx';\r\n import { signal } from '@minejs/signals';\r\n\r\n// ╚══════════════════════════════════════════════════════════════════════════════════════╝\r\n\r\n\r\n\r\n// ╔════════════════════════════════════════ TYPE ════════════════════════════════════════╗\r\n\r\n export interface RadioProps {\r\n // Value\r\n value: string;\r\n checked?: boolean;\r\n onChange?: (value: string) => void;\r\n\r\n // Label\r\n label?: string | JSXElement;\r\n\r\n // States\r\n disabled?: boolean;\r\n\r\n // Styling\r\n class?: string;\r\n\r\n // HTML attributes\r\n id?: string;\r\n name?: string;\r\n\r\n // Accessibility\r\n 'aria-label'?: string;\r\n 'aria-describedby'?: string;\r\n }\r\n\r\n export interface RadioGroupProps {\r\n // Value\r\n value?: string;\r\n onChange?: (value: string) => void;\r\n\r\n // Options\r\n options: {\r\n value: string;\r\n label: string | JSXElement;\r\n disabled?: boolean;\r\n }[];\r\n\r\n // Direction\r\n direction?: 'vertical' | 'horizontal';\r\n\r\n // States\r\n disabled?: boolean;\r\n\r\n // Styling\r\n class?: string;\r\n\r\n // HTML attributes\r\n name?: string;\r\n }\r\n\r\n// ╚══════════════════════════════════════════════════════════════════════════════════════╝\r\n\r\n\r\n\r\n// ╔════════════════════════════════════════ CORE ════════════════════════════════════════╗\r\n\r\n export function Radio(props: RadioProps): JSXElement {\r\n const {\r\n value,\r\n checked: initialChecked = false,\r\n onChange,\r\n label,\r\n disabled = false,\r\n class: className,\r\n ...restProps\r\n } = props;\r\n\r\n const isChecked = signal(initialChecked);\r\n\r\n const handleChange = (e: Event) => {\r\n const target = e.target as HTMLInputElement;\r\n if (target.checked) {\r\n isChecked.set(true);\r\n onChange?.(value);\r\n }\r\n };\r\n\r\n return (\r\n <label class={`flex items-center gap-2 cursor-pointer ${disabled ? 'opacity-50 cursor-not-allowed' : ''} ${className || ''}`}>\r\n <input\r\n type=\"radio\"\r\n value={value}\r\n checked={isChecked()}\r\n onChange={handleChange}\r\n disabled={disabled}\r\n class={`\r\n w-5 h-5 rounded-full border-2 border-border-primary\r\n bg-surface cursor-pointer transition-colors\r\n checked:border-color-primary\r\n focus:outline-none focus:ring-2 focus:ring-color-primary/50\r\n disabled:opacity-50 disabled:cursor-not-allowed\r\n accent-color-primary\r\n `.trim()}\r\n {...restProps}\r\n />\r\n {label && (\r\n <span class=\"text-sm text-primary font-medium\">\r\n {label}\r\n </span>\r\n )}\r\n </label>\r\n );\r\n }\r\n\r\n export function RadioGroup(props: RadioGroupProps): JSXElement {\r\n const {\r\n value: initialValue = '',\r\n onChange,\r\n options,\r\n direction = 'vertical',\r\n disabled = false,\r\n class: className,\r\n name,\r\n ...restProps\r\n } = props;\r\n\r\n const selectedValue = signal(initialValue);\r\n\r\n const handleChange = (value: string) => {\r\n selectedValue.set(value);\r\n onChange?.(value);\r\n };\r\n\r\n const directionClass = direction === 'horizontal' ? 'flex-row' : 'flex-col';\r\n\r\n return (\r\n <div class={`flex ${directionClass} gap-3 ${className || ''}`} {...restProps}>\r\n {options.map((option) => (\r\n <Radio\r\n value={option.value}\r\n label={option.label}\r\n checked={selectedValue() === option.value}\r\n onChange={handleChange}\r\n disabled={disabled || option.disabled}\r\n name={name}\r\n />\r\n ))}\r\n </div>\r\n );\r\n }\r\n\r\n// ╚══════════════════════════════════════════════════════════════════════════════════════╝\r\n","// src/kit/forms/switch.tsx\r\n//\r\n// Made with ❤️ by Maysara.\r\n\r\n\r\n\r\n// ╔════════════════════════════════════════ PACK ════════════════════════════════════════╗\r\n\r\n import type { JSXElement } from '@minejs/jsx';\r\n import { signal } from '@minejs/signals';\r\n\r\n// ╚══════════════════════════════════════════════════════════════════════════════════════╝\r\n\r\n\r\n\r\n// ╔════════════════════════════════════════ TYPE ════════════════════════════════════════╗\r\n\r\n export interface SwitchProps {\r\n // Value\r\n checked?: boolean;\r\n onChange?: (checked: boolean) => void;\r\n\r\n // Label\r\n label?: string | JSXElement;\r\n\r\n // States\r\n disabled?: boolean;\r\n\r\n // Styling\r\n class?: string;\r\n\r\n // HTML attributes\r\n id?: string;\r\n name?: string;\r\n\r\n // Accessibility\r\n 'aria-label'?: string;\r\n 'aria-describedby'?: string;\r\n }\r\n\r\n// ╚══════════════════════════════════════════════════════════════════════════════════════╝\r\n\r\n\r\n\r\n// ╔════════════════════════════════════════ CORE ════════════════════════════════════════╗\r\n\r\n export function Switch(props: SwitchProps): JSXElement {\r\n const {\r\n checked: initialChecked = false,\r\n onChange,\r\n label,\r\n disabled = false,\r\n class: className,\r\n ...restProps\r\n } = props;\r\n\r\n const isChecked = signal(initialChecked);\r\n\r\n const handleChange = (e: Event) => {\r\n const target = e.target as HTMLInputElement;\r\n isChecked.set(target.checked);\r\n onChange?.(target.checked);\r\n };\r\n\r\n return (\r\n <label class={`flex items-center gap-3 cursor-pointer ${disabled ? 'opacity-50 cursor-not-allowed' : ''} ${className || ''}`}>\r\n <div class=\"relative inline-block\">\r\n <input\r\n type=\"checkbox\"\r\n checked={isChecked()}\r\n onChange={handleChange}\r\n disabled={disabled}\r\n class=\"sr-only\"\r\n {...restProps}\r\n />\r\n <div\r\n class={`\r\n w-11 h-6 rounded-full transition-colors\r\n ${isChecked() ? 'bg-color-primary' : 'bg-border-primary'}\r\n ${disabled ? 'opacity-50' : ''}\r\n `.trim()}\r\n />\r\n <div\r\n class={`\r\n absolute top-0.5 left-0.5 w-5 h-5 rounded-full\r\n bg-white shadow-md transition-transform\r\n ${isChecked() ? 'translate-x-5' : 'translate-x-0'}\r\n `.trim()}\r\n />\r\n </div>\r\n {label && (\r\n <span class=\"text-sm text-primary font-medium\">\r\n {label}\r\n </span>\r\n )}\r\n </label>\r\n );\r\n }\r\n\r\n// ╚══════════════════════════════════════════════════════════════════════════════════════╝\r\n","// src/kit/forms/select.tsx\r\n//\r\n// Made with ❤️ by Maysara.\r\n\r\n\r\n\r\n// ╔════════════════════════════════════════ PACK ════════════════════════════════════════╗\r\n\r\n import type { JSXElement } from '@minejs/jsx';\r\n import { signal } from '@minejs/signals';\r\n\r\n// ╚══════════════════════════════════════════════════════════════════════════════════════╝\r\n\r\n\r\n\r\n// ╔════════════════════════════════════════ TYPE ════════════════════════════════════════╗\r\n\r\n export interface SelectOption {\r\n value: string;\r\n label: string;\r\n disabled?: boolean;\r\n }\r\n\r\n export interface SelectProps {\r\n // Value\r\n value?: string;\r\n onChange?: (value: string) => void;\r\n\r\n // Options\r\n options: SelectOption[];\r\n\r\n // Placeholder\r\n placeholder?: string;\r\n\r\n // States\r\n disabled?: boolean;\r\n\r\n // Styling\r\n class?: string;\r\n\r\n // HTML attributes\r\n id?: string;\r\n name?: string;\r\n\r\n // Accessibility\r\n 'aria-label'?: string;\r\n 'aria-describedby'?: string;\r\n }\r\n\r\n// ╚══════════════════════════════════════════════════════════════════════════════════════╝\r\n\r\n\r\n\r\n// ╔════════════════════════════════════════ CORE ════════════════════════════════════════╗\r\n\r\n export function Select(props: SelectProps): JSXElement {\r\n const {\r\n value: initialValue = '',\r\n onChange,\r\n options,\r\n placeholder = 'Select an option',\r\n disabled = false,\r\n class: className,\r\n ...restProps\r\n } = props;\r\n\r\n const selectedValue = signal(initialValue);\r\n\r\n const handleChange = (e: Event) => {\r\n const target = e.target as HTMLSelectElement;\r\n selectedValue.set(target.value);\r\n onChange?.(target.value);\r\n };\r\n\r\n return (\r\n <select\r\n value={selectedValue()}\r\n onChange={handleChange}\r\n disabled={disabled}\r\n class={`\r\n w-full px-4 py-2 rounded-lg border border-border-primary\r\n bg-surface text-primary text-sm font-medium\r\n transition-colors focus:outline-none focus:ring-2\r\n focus:ring-color-primary/50 focus:border-color-primary\r\n disabled:opacity-50 disabled:cursor-not-allowed\r\n appearance-none cursor-pointer\r\n ${className || ''}\r\n `.trim()}\r\n {...restProps}\r\n >\r\n {placeholder && (\r\n <option value=\"\" disabled>\r\n {placeholder}\r\n </option>\r\n )}\r\n {options.map((option) => (\r\n <option\r\n key={option.value}\r\n value={option.value}\r\n disabled={option.disabled}\r\n >\r\n {option.label}\r\n </option>\r\n ))}\r\n </select>\r\n );\r\n }\r\n\r\n// ╚══════════════════════════════════════════════════════════════════════════════════════╝\r\n","// src/kit/forms/slider.tsx\r\n//\r\n// Made with ❤️ by Maysara.\r\n\r\n\r\n\r\n// ╔════════════════════════════════════════ PACK ════════════════════════════════════════╗\r\n\r\n import type { JSXElement } from '@minejs/jsx';\r\n import { signal } from '@minejs/signals';\r\n\r\n// ╚══════════════════════════════════════════════════════════════════════════════════════╝\r\n\r\n\r\n\r\n// ╔════════════════════════════════════════ TYPE ════════════════════════════════════════╗\r\n\r\n export interface SliderProps {\r\n // Value\r\n value?: number;\r\n onChange?: (value: number) => void;\r\n\r\n // Range\r\n min?: number;\r\n max?: number;\r\n step?: number;\r\n\r\n // Label\r\n label?: string | JSXElement;\r\n showValue?: boolean;\r\n\r\n // States\r\n disabled?: boolean;\r\n\r\n // Styling\r\n class?: string;\r\n\r\n // HTML attributes\r\n id?: string;\r\n name?: string;\r\n\r\n // Accessibility\r\n 'aria-label'?: string;\r\n 'aria-describedby'?: string;\r\n }\r\n\r\n// ╚══════════════════════════════════════════════════════════════════════════════════════╝\r\n\r\n\r\n\r\n// ╔════════════════════════════════════════ CORE ════════════════════════════════════════╗\r\n\r\n export function Slider(props: SliderProps): JSXElement {\r\n const {\r\n value: initialValue = 50,\r\n onChange,\r\n min = 0,\r\n max = 100,\r\n step = 1,\r\n label,\r\n showValue = true,\r\n disabled = false,\r\n class: className,\r\n ...restProps\r\n } = props;\r\n\r\n const sliderValue = signal(initialValue);\r\n\r\n const handleChange = (e: Event) => {\r\n const target = e.target as HTMLInputElement;\r\n const newValue = parseFloat(target.value);\r\n sliderValue.set(newValue);\r\n onChange?.(newValue);\r\n };\r\n\r\n const percentage = ((sliderValue() - min) / (max - min)) * 100;\r\n\r\n return (\r\n <div class={`flex flex-col gap-3 ${className || ''}`}>\r\n {(label || showValue) && (\r\n <div class=\"flex items-center justify-between\">\r\n {label && (\r\n <span class=\"text-sm font-semibold text-primary\">\r\n {label}\r\n </span>\r\n )}\r\n {showValue && (\r\n <span class=\"text-sm font-medium text-primary\">\r\n {sliderValue()}\r\n </span>\r\n )}\r\n </div>\r\n )}\r\n\r\n <div class=\"relative w-full\">\r\n {/* Background track */}\r\n <div\r\n class={`\r\n absolute top-1/2 -translate-y-1/2 left-0 h-2\r\n rounded-full bg-color-primary\r\n `.trim()}\r\n style={{ width: `${percentage}%` }}\r\n />\r\n\r\n {/* Full track */}\r\n <div class=\"absolute top-1/2 -translate-y-1/2 w-full h-2 rounded-full bg-border-primary\" />\r\n\r\n {/* Slider input */}\r\n <input\r\n type=\"range\"\r\n value={sliderValue()}\r\n onChange={handleChange}\r\n min={min}\r\n max={max}\r\n step={step}\r\n disabled={disabled}\r\n class={`\r\n relative w-full h-2 rounded-full appearance-none\r\n bg-transparent cursor-pointer z-5\r\n accent-color-primary\r\n [&::-webkit-slider-thumb]:appearance-none\r\n [&::-webkit-slider-thumb]:w-5\r\n [&::-webkit-slider-thumb]:h-5\r\n [&::-webkit-slider-thumb]:rounded-full\r\n [&::-webkit-slider-thumb]:bg-color-primary\r\n [&::-webkit-slider-thumb]:cursor-pointer\r\n [&::-webkit-slider-thumb]:shadow-md\r\n [&::-webkit-slider-thumb]:border-2\r\n [&::-webkit-slider-thumb]:border-white\r\n [&::-moz-range-thumb]:w-5\r\n [&::-moz-range-thumb]:h-5\r\n [&::-moz-range-thumb]:rounded-full\r\n [&::-moz-range-thumb]:bg-color-primary\r\n [&::-moz-range-thumb]:cursor-pointer\r\n [&::-moz-range-thumb]:border-2\r\n [&::-moz-range-thumb]:border-white\r\n [&::-moz-range-thumb]:shadow-md\r\n disabled:opacity-50\r\n disabled:cursor-not-allowed\r\n `.trim()}\r\n {...restProps}\r\n />\r\n </div>\r\n </div>\r\n );\r\n }\r\n\r\n// ╚══════════════════════════════════════════════════════════════════════════════════════╝\r\n","// src/kit/navigation/nav.tsx\r\n//\r\n// Made with ❤️ by Maysara.\r\n\r\n\r\n\r\n// ╔════════════════════════════════════════ PACK ════════════════════════════════════════╗\r\n\r\n import type { JSXElement } from '@minejs/jsx';\r\n\r\n// ╚══════════════════════════════════════════════════════════════════════════════════════╝\r\n\r\n\r\n\r\n// ╔════════════════════════════════════════ TYPE ════════════════════════════════════════╗\r\n\r\n export interface NavItem {\r\n label: string | JSXElement;\r\n href: string;\r\n active?: boolean;\r\n disabled?: boolean;\r\n icon?: JSXElement;\r\n }\r\n\r\n export interface NavProps {\r\n // Items\r\n items: NavItem[];\r\n\r\n // Orientation\r\n orientation?: 'horizontal' | 'vertical';\r\n\r\n // Styling\r\n class?: string;\r\n\r\n // Accessibility\r\n role?: 'navigation' | 'menubar';\r\n 'aria-label'?: string;\r\n }\r\n\r\n// ╚══════════════════════════════════════════════════════════════════════════════════════╝\r\n\r\n\r\n\r\n// ╔════════════════════════════════════════ CORE ════════════════════════════════════════╗\r\n\r\n export function Nav(props: NavProps): JSXElement {\r\n const {\r\n items,\r\n orientation = 'horizontal',\r\n class: className,\r\n role = 'navigation',\r\n ...restProps\r\n } = props;\r\n\r\n const directionClass = orientation === 'vertical' ? 'flex-col' : 'flex-row';\r\n\r\n return (\r\n <nav\r\n class={`\r\n flex ${directionClass} gap-1\r\n ${className || ''}\r\n `.trim()}\r\n role={role}\r\n {...restProps}\r\n >\r\n {items.map((item) => (\r\n <a\r\n href={item.href}\r\n class={`\r\n flex items-center gap-2 px-4 py-2 rounded-lg\r\n text-sm font-medium transition-colors\r\n ${item.active\r\n ? 'bg-color-primary text-white'\r\n : 'text-primary hover:bg-surface-hover'\r\n }\r\n ${item.disabled\r\n ? 'opacity-50 cursor-not-allowed pointer-events-none'\r\n : ''\r\n }\r\n `.trim()}\r\n >\r\n {item.icon && (\r\n <span class=\"shrink-0 size-4\">\r\n {item.icon}\r\n </span>\r\n )}\r\n <span>{item.label}</span>\r\n </a>\r\n ))}\r\n </nav>\r\n );\r\n }\r\n\r\n// ╚══════════════════════════════════════════════════════════════════════════════════════╝\r\n","// src/kit/navigation/tabs.tsx\r\n//\r\n// Made with ❤️ by Maysara.\r\n\r\n\r\n\r\n// ╔════════════════════════════════════════ PACK ════════════════════════════════════════╗\r\n\r\n import type { JSXElement } from '@minejs/jsx';\r\n import { signal } from '@minejs/signals';\r\n\r\n// ╚══════════════════════════════════════════════════════════════════════════════════════╝\r\n\r\n\r\n\r\n// ╔════════════════════════════════════════ TYPE ════════════════════════════════════════╗\r\n\r\n export interface TabItem {\r\n id: string;\r\n label: string | JSXElement;\r\n content?: JSXElement | string;\r\n disabled?: boolean;\r\n icon?: JSXElement;\r\n }\r\n\r\n export interface TabsProps {\r\n // Tabs\r\n tabs: TabItem[];\r\n defaultTab?: string;\r\n activeTab?: string;\r\n onTabChange?: (tabId: string) => void;\r\n\r\n // Variant\r\n variant?: 'line' | 'solid' | 'outline';\r\n\r\n // Styling\r\n class?: string;\r\n tabsClass?: string;\r\n contentClass?: string;\r\n\r\n // Accessibility\r\n role?: 'tablist';\r\n }\r\n\r\n// ╚══════════════════════════════════════════════════════════════════════════════════════╝\r\n\r\n\r\n\r\n// ╔════════════════════════════════════════ CORE ════════════════════════════════════════╗\r\n\r\n export function Tabs(props: TabsProps): JSXElement {\r\n const {\r\n tabs,\r\n defaultTab = tabs[0]?.id || '',\r\n activeTab: externalActiveTab,\r\n onTabChange,\r\n variant = 'line',\r\n class: className,\r\n tabsClass,\r\n contentClass,\r\n ...restProps\r\n } = props;\r\n\r\n const internalActiveTab = signal(externalActiveTab || defaultTab);\r\n\r\n const handleTabClick = (tabId: string) => {\r\n internalActiveTab.set(tabId);\r\n onTabChange?.(tabId);\r\n };\r\n\r\n const activeTabId = externalActiveTab || internalActiveTab();\r\n\r\n const getTabClasses = (tabId: string, isActive: boolean) => {\r\n const baseClasses = 'flex items-center gap-2 px-4 py-2 text-sm font-medium transition-colors cursor-pointer';\r\n\r\n if (variant === 'line') {\r\n return isActive\r\n ? `${baseClasses} text-color-primary border-b-2 border-color-primary`\r\n : `${baseClasses} text-primary hover:text-primary border-b-2 border-transparent`;\r\n }\r\n\r\n if (variant === 'solid') {\r\n return isActive\r\n ? `${baseClasses} bg-color-primary text-white rounded-t-lg`\r\n : `${baseClasses} text-primary hover:bg-surface-hover rounded-t-lg`;\r\n }\r\n\r\n // outline variant\r\n return isActive\r\n ? `${baseClasses} bg-color-primary text-white rounded-lg`\r\n : `${baseClasses} text-primary border border-border-primary hover:border-color-primary`;\r\n };\r\n\r\n return (\r\n <div class={`w-full ${className || ''}`} {...restProps}>\r\n {/* Tab list */}\r\n <div\r\n class={`\r\n flex gap-1 overflow-x-auto border-b\r\n border-border-primary pb-0\r\n ${variant === 'solid' ? 'bg-surface' : ''}\r\n ${tabsClass || ''}\r\n `.trim()}\r\n role=\"tablist\"\r\n >\r\n {tabs.map((tab) => (\r\n <button\r\n key={tab.id}\r\n onClick={() => !tab.disabled && handleTabClick(tab.id)}\r\n disabled={tab.disabled}\r\n class={`\r\n ${getTabClasses(tab.id, activeTabId === tab.id)}\r\n ${tab.disabled ? 'opacity-50 cursor-not-allowed' : ''}\r\n `.trim()}\r\n role=\"tab\"\r\n aria-selected={activeTabId === tab.id}\r\n >\r\n {tab.icon && (\r\n <span class=\"shrink-0 size-4\">\r\n {tab.icon}\r\n </span>\r\n )}\r\n <span>{tab.label}</span>\r\n </button>\r\n ))}\r\n </div>\r\n\r\n {/* Tab content */}\r\n <div class={`pt-4 ${contentClass || ''}`}>\r\n {tabs.map((tab) => (\r\n activeTabId === tab.id && (\r\n <div\r\n key={tab.id}\r\n role=\"tabpanel\"\r\n class=\"animate-in fade-in duration-200\"\r\n >\r\n {tab.content}\r\n </div>\r\n )\r\n ))}\r\n </div>\r\n </div>\r\n );\r\n }\r\n\r\n// ╚══════════════════════════════════════════════════════════════════════════════════════╝\r\n","// src/kit/navigation/breadcrumb.tsx\r\n//\r\n// Made with ❤️ by Maysara.\r\n\r\n\r\n\r\n// ╔════════════════════════════════════════ PACK ════════════════════════════════════════╗\r\n\r\n import type { JSXElement } from '@minejs/jsx';\r\n\r\n// ╚══════════════════════════════════════════════════════════════════════════════════════╝\r\n\r\n\r\n\r\n// ╔════════════════════════════════════════ TYPE ════════════════════════════════════════╗\r\n\r\n export interface BreadcrumbItem {\r\n label: string | JSXElement;\r\n href?: string;\r\n active?: boolean;\r\n icon?: JSXElement;\r\n }\r\n\r\n export interface BreadcrumbProps {\r\n // Items\r\n items: BreadcrumbItem[];\r\n\r\n // Separator\r\n separator?: JSXElement | string;\r\n\r\n // Styling\r\n class?: string;\r\n itemClass?: string;\r\n\r\n // Accessibility\r\n role?: 'navigation';\r\n }\r\n\r\n// ╚══════════════════════════════════════════════════════════════════════════════════════╝\r\n\r\n\r\n\r\n// ╔════════════════════════════════════════ CORE ════════════════════════════════════════╗\r\n\r\n export function Breadcrumb(props: BreadcrumbProps): JSXElement {\r\n const {\r\n items,\r\n separator = '/',\r\n class: className,\r\n itemClass,\r\n ...restProps\r\n } = props;\r\n\r\n return (\r\n <nav\r\n class={`flex items-center gap-1 ${className || ''}`}\r\n role=\"navigation\"\r\n aria-label=\"breadcrumb\"\r\n {...restProps}\r\n >\r\n <ol class=\"flex items-center gap-1\">\r\n {items.map((item, index) => {\r\n const isLast = index === items.length - 1;\r\n\r\n return (\r\n <li key={index} class=\"flex items-center gap-1\">\r\n {/* Separator */}\r\n {index > 0 && (\r\n <span class={`\r\n text-xs font-semibold text-primary opacity-60\r\n mx-1\r\n `}>\r\n {separator}\r\n </span>\r\n )}\r\n\r\n {/* Item */}\r\n {item.href ? (\r\n <a\r\n href={item.href}\r\n class={`\r\n inline-flex items-center gap-1 px-2 py-1 text-sm\r\n rounded-md transition-colors\r\n ${isLast\r\n ? 'text-color-primary font-semibold cursor-default'\r\n : 'text-primary hover:text-color-primary hover:bg-surface-hover'\r\n }\r\n ${itemClass || ''}\r\n `.trim()}\r\n aria-current={isLast ? 'page' : undefined}\r\n >\r\n {item.icon && (\r\n <span class=\"shrink-0 size-4\">\r\n {item.icon}\r\n </span>\r\n )}\r\n <span>{item.label}</span>\r\n </a>\r\n ) : (\r\n <span\r\n class={`\r\n inline-flex items-center gap-1 px-2 py-1 text-sm\r\n rounded-md\r\n ${isLast\r\n ? 'text-color-primary font-semibold'\r\n : 'text-primary'\r\n }\r\n ${itemClass || ''}\r\n `.trim()}\r\n >\r\n {item.icon && (\r\n <span class=\"shrink-0 size-4\">\r\n {item.icon}\r\n </span>\r\n )}\r\n <span>{item.label}</span>\r\n </span>\r\n )}\r\n </li>\r\n );\r\n })}\r\n </ol>\r\n </nav>\r\n );\r\n }\r\n\r\n// ╚══════════════════════════════════════════════════════════════════════════════════════╝\r\n","// src/kit/navigation/pagination.tsx\r\n//\r\n// Made with ❤️ by Maysara.\r\n\r\n\r\n\r\n// ╔════════════════════════════════════════ PACK ════════════════════════════════════════╗\r\n\r\n import type { JSXElement } from '@minejs/jsx';\r\n\r\n// ╚══════════════════════════════════════════════════════════════════════════════════════╝\r\n\r\n\r\n\r\n// ╔════════════════════════════════════════ TYPE ════════════════════════════════════════╗\r\n\r\n export interface PaginationProps {\r\n // Pagination state\r\n current: number;\r\n total: number;\r\n onChange: (page: number) => void;\r\n\r\n // Display\r\n siblingCount?: number;\r\n showFirstLast?: boolean;\r\n\r\n // Styling\r\n class?: string;\r\n buttonClass?: string;\r\n activeButtonClass?: string;\r\n\r\n // Accessibility\r\n role?: 'navigation';\r\n }\r\n\r\n// ╚══════════════════════════════════════════════════════════════════════════════════════╝\r\n\r\n\r\n\r\n// ╔════════════════════════════════════════ CORE ════════════════════════════════════════╗\r\n\r\n export function Pagination(props: PaginationProps): JSXElement {\r\n const {\r\n current,\r\n total,\r\n onChange,\r\n siblingCount = 1,\r\n showFirstLast = true,\r\n class: className,\r\n buttonClass,\r\n activeButtonClass,\r\n ...restProps\r\n } = props;\r\n\r\n const generatePages = () => {\r\n const pages: (number | string)[] = [];\r\n const leftSibling = Math.max(2, current - siblingCount);\r\n const rightSibling = Math.min(total - 1, current + siblingCount);\r\n\r\n // First page\r\n pages.push(1);\r\n\r\n // Left ellipsis\r\n if (leftSibling > 2) {\r\n pages.push('...');\r\n }\r\n\r\n // Sibling pages\r\n for (let i = leftSibling; i <= rightSibling; i++) {\r\n if (i !== 1 && i !== total) {\r\n pages.push(i);\r\n }\r\n }\r\n\r\n // Right ellipsis\r\n if (rightSibling < total - 1) {\r\n pages.push('...');\r\n }\r\n\r\n // Last page\r\n if (total > 1) {\r\n pages.push(total);\r\n }\r\n\r\n return pages;\r\n };\r\n\r\n const isFirstPage = current === 1;\r\n const isLastPage = current === total;\r\n\r\n const buttonBaseClasses = `\r\n inline-flex items-center justify-center gap-2 px-3 py-2 text-sm\r\n font-medium rounded-lg transition-all\r\n border border-border-primary\r\n hover:border-color-primary hover:text-color-primary\r\n disabled:opacity-50 disabled:cursor-not-allowed\r\n ${buttonClass || ''}\r\n `.trim();\r\n\r\n const getButtonClasses = (isActive: boolean) => {\r\n if (isActive) {\r\n return `\r\n ${buttonBaseClasses}\r\n bg-color-primary text-white border-color-primary\r\n ${activeButtonClass || ''}\r\n `.trim();\r\n }\r\n return buttonBaseClasses;\r\n };\r\n\r\n return (\r\n <nav\r\n class={`flex items-center gap-2 justify-center ${className || ''}`}\r\n role=\"navigation\"\r\n aria-label=\"pagination\"\r\n {...restProps}\r\n >\r\n {/* Previous button */}\r\n <button\r\n onClick={() => current > 1 && onChange(current - 1)}\r\n disabled={isFirstPage}\r\n class={getButtonClasses(false)}\r\n aria-label=\"Previous page\"\r\n >\r\n ← Previous\r\n </button>\r\n\r\n {/* First page */}\r\n {showFirstLast && current > 1 && (\r\n <button\r\n onClick={() => onChange(1)}\r\n class={getButtonClasses(false)}\r\n aria-label=\"First page\"\r\n >\r\n 1\r\n </button>\r\n )}\r\n\r\n {/* Page list */}\r\n <div class=\"flex items-center gap-1\">\r\n {generatePages().map((page, index) => {\r\n if (page === '...') {\r\n return (\r\n <span\r\n key={`ellipsis-${index}`}\r\n class=\"px-2 py-2 text-sm text-primary opacity-60\"\r\n >\r\n {page}\r\n </span>\r\n );\r\n }\r\n\r\n const pageNum = page as number;\r\n const isActive = pageNum === current;\r\n\r\n return (\r\n <button\r\n key={pageNum}\r\n onClick={() => onChange(pageNum)}\r\n class={getButtonClasses(isActive)}\r\n aria-current={isActive ? 'page' : undefined}\r\n aria-label={`Page ${pageNum}`}\r\n >\r\n {pageNum}\r\n </button>\r\n );\r\n })}\r\n </div>\r\n\r\n {/* Next button */}\r\n <button\r\n onClick={() => current < total && onChange(current + 1)}\r\n disabled={isLastPage}\r\n class={getButtonClasses(false)}\r\n aria-label=\"Next page\"\r\n >\r\n Next →\r\n </button>\r\n </nav>\r\n );\r\n }\r\n\r\n// ╚══════════════════════════════════════════════════════════════════════════════════════╝\r\n","// src/kit/data-display/card.tsx\r\n//\r\n// Made with ❤️ by Maysara.\r\n\r\n\r\n\r\n// ╔════════════════════════════════════════ PACK ════════════════════════════════════════╗\r\n\r\n import type { JSXElement } from '@minejs/jsx';\r\n\r\n// ╚══════════════════════════════════════════════════════════════════════════════════════╝\r\n\r\n\r\n\r\n// ╔════════════════════════════════════════ TYPE ════════════════════════════════════════╗\r\n\r\n export interface CardProps {\r\n // Children\r\n children: JSXElement;\r\n\r\n // Styling\r\n class?: string;\r\n variant?: 'elevated' | 'outlined' | 'filled';\r\n padding?: 'xs' | 'sm' | 'md' | 'lg' | 'xl' | 'none';\r\n rounded?: 'none' | 'sm' | 'md' | 'lg' | 'xl' | 'full';\r\n\r\n // Interactive\r\n hover?: boolean;\r\n clickable?: boolean;\r\n onClick?: () => void;\r\n }\r\n\r\n export interface CardHeaderProps {\r\n children: JSXElement;\r\n class?: string;\r\n divider?: boolean;\r\n }\r\n\r\n export interface CardBodyProps {\r\n children: JSXElement;\r\n class?: string;\r\n }\r\n\r\n export interface CardFooterProps {\r\n children: JSXElement;\r\n class?: string;\r\n divider?: boolean;\r\n }\r\n\r\n// ╚══════════════════════════════════════════════════════════════════════════════════════╝\r\n\r\n\r\n\r\n// ╔════════════════════════════════════════ CORE ════════════════════════════════════════╗\r\n\r\n export function Card(props: CardProps): JSXElement {\r\n const {\r\n children,\r\n class: className,\r\n variant = 'outlined',\r\n padding = 'md',\r\n rounded = 'md',\r\n hover = false,\r\n clickable = false,\r\n onClick,\r\n ...restProps\r\n } = props;\r\n\r\n const paddingClasses: Record<string, string> = {\r\n none: 'p-0',\r\n xs: 'p-2',\r\n sm: 'p-3',\r\n md: 'p-4',\r\n lg: 'p-6',\r\n xl: 'p-8',\r\n };\r\n\r\n const roundedClasses: Record<string, string> = {\r\n none: 'rounded-none',\r\n sm: 'rounded-sm',\r\n md: 'rounded-lg',\r\n lg: 'rounded-xl',\r\n xl: 'rounded-2xl',\r\n full: 'rounded-full',\r\n };\r\n\r\n const variantClasses: Record<string, string> = {\r\n elevated: 'bg-surface shadow-lg border border-border-primary',\r\n outlined: 'bg-surface border border-border-primary',\r\n filled: 'bg-surface-subtle border-none',\r\n };\r\n\r\n const interactiveClasses = `\r\n ${clickable ? 'cursor-pointer' : ''}\r\n ${hover ? 'hover:shadow-lg hover:border-color-primary transition-all' : ''}\r\n `.trim();\r\n\r\n return (\r\n <div\r\n class={`\r\n ${variantClasses[variant]}\r\n ${paddingClasses[padding]}\r\n ${roundedClasses[rounded]}\r\n ${interactiveClasses}\r\n ${className || ''}\r\n `.trim()}\r\n onClick={clickable && onClick ? onClick : undefined}\r\n {...restProps}\r\n >\r\n {children}\r\n </div>\r\n );\r\n }\r\n\r\n export function CardHeader(props: CardHeaderProps): JSXElement {\r\n const { children, class: className, divider = false } = props;\r\n\r\n return (\r\n <div\r\n class={`\r\n ${divider ? 'border-b border-border-primary pb-4' : ''}\r\n ${className || ''}\r\n `.trim()}\r\n >\r\n {children}\r\n </div>\r\n );\r\n }\r\n\r\n export function CardBody(props: CardBodyProps): JSXElement {\r\n const { children, class: className } = props;\r\n\r\n return (\r\n <div class={`${className || ''}`}>\r\n {children}\r\n </div>\r\n );\r\n }\r\n\r\n export function CardFooter(props: CardFooterProps): JSXElement {\r\n const { children, class: className, divider = false } = props;\r\n\r\n return (\r\n <div\r\n class={`\r\n ${divider ? 'border-t border-border-primary pt-4' : ''}\r\n ${className || ''}\r\n `.trim()}\r\n >\r\n {children}\r\n </div>\r\n );\r\n }\r\n\r\n// ╚══════════════════════════════════════════════════════════════════════════════════════╝\r\n","/* eslint-disable @typescript-eslint/no-explicit-any */\r\n// src/kit/data-display/table.tsx\r\n//\r\n// Made with ❤️ by Maysara.\r\n\r\n\r\n\r\n// ╔════════════════════════════════════════ PACK ════════════════════════════════════════╗\r\n\r\n import type { JSXElement } from '@minejs/jsx';\r\n\r\n// ╚══════════════════════════════════════════════════════════════════════════════════════╝\r\n\r\n\r\n\r\n// ╔════════════════════════════════════════ TYPE ════════════════════════════════════════╗\r\n\r\n export interface TableColumn<T = any> {\r\n key: keyof T;\r\n label: string;\r\n width?: string | number;\r\n align?: 'left' | 'center' | 'right';\r\n sortable?: boolean;\r\n render?: (value: any, row: T, index: number) => JSXElement | string;\r\n }\r\n\r\n export interface TableProps<T = any> {\r\n // Data\r\n data: T[];\r\n columns: TableColumn<T>[];\r\n\r\n // Behavior\r\n striped?: boolean;\r\n bordered?: boolean;\r\n hoverable?: boolean;\r\n compact?: boolean;\r\n\r\n // Sorting\r\n sortBy?: keyof T;\r\n sortOrder?: 'asc' | 'desc';\r\n onSort?: (column: keyof T, order: 'asc' | 'desc') => void;\r\n\r\n // Styling\r\n class?: string;\r\n headerClass?: string;\r\n rowClass?: string;\r\n cellClass?: string;\r\n }\r\n\r\n export interface TableHeaderProps<T = any> {\r\n columns: TableColumn<T>[];\r\n sortBy?: keyof T;\r\n sortOrder?: 'asc' | 'desc';\r\n onSort?: (column: keyof T, order: 'asc' | 'desc') => void;\r\n headerClass?: string;\r\n cellClass?: string;\r\n }\r\n\r\n export interface TableBodyProps<T = any> {\r\n data: T[];\r\n columns: TableColumn<T>[];\r\n striped?: boolean;\r\n hoverable?: boolean;\r\n rowClass?: string;\r\n cellClass?: string;\r\n }\r\n\r\n// ╚══════════════════════════════════════════════════════════════════════════════════════╝\r\n\r\n\r\n\r\n// ╔════════════════════════════════════════ CORE ════════════════════════════════════════╗\r\n\r\n export function Table<T = any>(props: TableProps<T>): JSXElement {\r\n const {\r\n data,\r\n columns,\r\n striped = false,\r\n hoverable = false,\r\n sortBy,\r\n sortOrder = 'asc',\r\n onSort,\r\n class: className,\r\n headerClass,\r\n rowClass,\r\n cellClass,\r\n ...restProps\r\n } = props;\r\n\r\n return (\r\n <div\r\n class={`\r\n w-full overflow-x-auto rounded-lg border border-border-primary\r\n ${className || ''}\r\n `.trim()}\r\n {...restProps}\r\n >\r\n <table class=\"w-full border-collapse\">\r\n <TableHeader\r\n columns={columns}\r\n sortBy={sortBy}\r\n sortOrder={sortOrder}\r\n onSort={onSort}\r\n headerClass={headerClass}\r\n cellClass={cellClass}\r\n />\r\n <TableBody\r\n data={data}\r\n columns={columns}\r\n striped={striped}\r\n hoverable={hoverable}\r\n rowClass={rowClass}\r\n cellClass={cellClass}\r\n />\r\n </table>\r\n </div>\r\n );\r\n }\r\n\r\n export function TableHeader<T = any>(props: TableHeaderProps<T>): JSXElement {\r\n const {\r\n columns,\r\n sortBy,\r\n sortOrder = 'asc',\r\n onSort,\r\n headerClass,\r\n cellClass,\r\n } = props;\r\n\r\n return (\r\n <thead class={`bg-surface-subtle border-b border-border-primary ${headerClass || ''}`}>\r\n <tr>\r\n {columns.map((column) => (\r\n <th\r\n key={String(column.key)}\r\n class={`\r\n px-4 py-3 text-left font-semibold text-sm\r\n ${column.align === 'center' ? 'text-center' : ''}\r\n ${column.align === 'right' ? 'text-right' : ''}\r\n ${column.sortable && onSort ? 'cursor-pointer hover:bg-surface-hover' : ''}\r\n ${cellClass || ''}\r\n `.trim()}\r\n style={{\r\n width: column.width ? (typeof column.width === 'number' ? `${column.width}px` : column.width) : undefined,\r\n }}\r\n onClick={() => {\r\n if (column.sortable && onSort) {\r\n const newOrder = sortBy === column.key && sortOrder === 'asc' ? 'desc' : 'asc';\r\n onSort(column.key, newOrder);\r\n }\r\n }}\r\n >\r\n <div class=\"flex items-center gap-2\">\r\n <span>{column.label}</span>\r\n {column.sortable && sortBy === column.key && (\r\n <span class=\"text-xs\">\r\n {sortOrder === 'asc' ? '↑' : '↓'}\r\n </span>\r\n )}\r\n </div>\r\n </th>\r\n ))}\r\n </tr>\r\n </thead>\r\n );\r\n }\r\n\r\n export function TableBody<T = any>(props: TableBodyProps<T>): JSXElement {\r\n const {\r\n data,\r\n columns,\r\n striped = false,\r\n hoverable = false,\r\n rowClass,\r\n cellClass,\r\n } = props;\r\n\r\n return (\r\n <tbody>\r\n {data.map((row, rowIndex) => (\r\n <tr\r\n key={rowIndex}\r\n class={`\r\n border-b border-border-primary\r\n ${striped && rowIndex % 2 !== 0 ? 'bg-surface-subtle' : ''}\r\n ${hoverable ? 'hover:bg-surface-subtle transition-colors' : ''}\r\n ${rowClass || ''}\r\n `.trim()}\r\n >\r\n {columns.map((column) => {\r\n const value = row[column.key];\r\n const rendered = column.render\r\n ? column.render(value, row, rowIndex)\r\n : value;\r\n\r\n return (\r\n <td\r\n key={String(column.key)}\r\n class={`\r\n px-4 py-3 text-sm text-primary\r\n ${column.align === 'center' ? 'text-center' : ''}\r\n ${column.align === 'right' ? 'text-right' : ''}\r\n ${cellClass || ''}\r\n `.trim()}\r\n >\r\n {rendered}\r\n </td>\r\n );\r\n })}\r\n </tr>\r\n ))}\r\n </tbody>\r\n );\r\n }\r\n\r\n// ╚══════════════════════════════════════════════════════════════════════════════════════╝\r\n","/* eslint-disable @typescript-eslint/no-explicit-any */\r\n// src/kit/data-display/list.tsx\r\n//\r\n// Made with ❤️ by Maysara.\r\n\r\n\r\n\r\n// ╔════════════════════════════════════════ PACK ════════════════════════════════════════╗\r\n\r\n import type { JSXElement } from '@minejs/jsx';\r\n\r\n// ╚══════════════════════════════════════════════════════════════════════════════════════╝\r\n\r\n\r\n\r\n// ╔════════════════════════════════════════ TYPE ════════════════════════════════════════╗\r\n\r\n export interface ListItem<T = any> {\r\n id?: string | number;\r\n label?: string | JSXElement;\r\n description?: string | JSXElement;\r\n icon?: JSXElement;\r\n avatar?: JSXElement;\r\n trailing?: JSXElement;\r\n disabled?: boolean;\r\n onClick?: () => void;\r\n data?: T;\r\n }\r\n\r\n export interface ListProps<T = any> {\r\n // Items\r\n items: ListItem<T>[];\r\n\r\n // Display\r\n variant?: 'simple' | 'divider' | 'spaced';\r\n size?: 'sm' | 'md' | 'lg';\r\n\r\n // Styling\r\n class?: string;\r\n itemClass?: string;\r\n\r\n // Behavior\r\n selectable?: boolean;\r\n onItemClick?: (item: ListItem<T>, index: number) => void;\r\n }\r\n\r\n// ╚══════════════════════════════════════════════════════════════════════════════════════╝\r\n\r\n\r\n\r\n// ╔════════════════════════════════════════ CORE ════════════════════════════════════════╗\r\n\r\n export function List<T = any>(props: ListProps<T>): JSXElement {\r\n const {\r\n items,\r\n variant = 'simple',\r\n size = 'md',\r\n class: className,\r\n itemClass,\r\n selectable = false,\r\n onItemClick,\r\n ...restProps\r\n } = props;\r\n\r\n const sizeClasses: Record<string, string> = {\r\n sm: 'gap-1',\r\n md: 'gap-2',\r\n lg: 'gap-3',\r\n };\r\n\r\n return (\r\n <ul\r\n class={`\r\n flex flex-col w-full list-none\r\n ${sizeClasses[size]}\r\n ${className || ''}\r\n `.trim()}\r\n {...restProps}\r\n >\r\n {items.map((item, index) => (\r\n <li\r\n key={item.id || index}\r\n class={`\r\n flex items-center gap-3 px-3 py-2 rounded-lg\r\n transition-colors\r\n ${item.disabled ? 'opacity-50 cursor-not-allowed' : ''}\r\n ${!item.disabled && (selectable || item.onClick || onItemClick) ? 'cursor-pointer hover:bg-surface-hover' : ''}\r\n ${variant === 'divider' ? 'border-b border-border-primary last:border-b-0' : ''}\r\n ${variant === 'spaced' && index > 0 ? 'mt-1' : ''}\r\n ${itemClass || ''}\r\n `.trim()}\r\n onClick={() => {\r\n if (!item.disabled) {\r\n item.onClick?.();\r\n onItemClick?.(item, index);\r\n }\r\n }}\r\n >\r\n {/* Avatar or Icon */}\r\n {item.avatar && (\r\n <div class=\"shrink-0\">\r\n {item.avatar}\r\n </div>\r\n )}\r\n\r\n {item.icon && !item.avatar && (\r\n <div class=\"shrink-0 size-5 flex items-center justify-center text-color-primary\">\r\n {item.icon}\r\n </div>\r\n )}\r\n\r\n {/* Content */}\r\n <div class=\"flex-1 min-w-0\">\r\n {item.label && (\r\n <div class={`\r\n font-medium text-sm text-primary\r\n ${item.description ? 'mb-0.5' : ''}\r\n `}>\r\n {item.label}\r\n </div>\r\n )}\r\n\r\n {item.description && (\r\n <div class=\"text-xs text-primary opacity-60\">\r\n {item.description}\r\n </div>\r\n )}\r\n </div>\r\n\r\n {/* Trailing element */}\r\n {item.trailing && (\r\n <div class=\"shrink-0\">\r\n {item.trailing}\r\n </div>\r\n )}\r\n </li>\r\n ))}\r\n </ul>\r\n );\r\n }\r\n\r\n// ╚══════════════════════════════════════════════════════════════════════════════════════╝\r\n","// src/kit/data-display/tag.tsx\r\n//\r\n// Made with ❤️ by Maysara.\r\n\r\n\r\n\r\n// ╔════════════════════════════════════════ PACK ════════════════════════════════════════╗\r\n\r\n import type { JSXElement } from '@minejs/jsx';\r\n\r\n// ╚══════════════════════════════════════════════════════════════════════════════════════╝\r\n\r\n\r\n\r\n// ╔════════════════════════════════════════ TYPE ════════════════════════════════════════╗\r\n\r\n export interface TagProps {\r\n // Content\r\n children: JSXElement | string;\r\n icon?: JSXElement;\r\n\r\n // Style\r\n variant?: 'solid' | 'outline' | 'subtle';\r\n color?: 'primary' | 'success' | 'warning' | 'error';\r\n size?: 'sm' | 'md' | 'lg';\r\n\r\n // Behavior\r\n closeable?: boolean;\r\n onClose?: () => void;\r\n disabled?: boolean;\r\n\r\n // Styling\r\n class?: string;\r\n }\r\n\r\n// ╚══════════════════════════════════════════════════════════════════════════════════════╝\r\n\r\n\r\n\r\n// ╔════════════════════════════════════════ CORE ════════════════════════════════════════╗\r\n\r\n export function Tag(props: TagProps): JSXElement {\r\n const {\r\n children,\r\n icon,\r\n variant = 'solid',\r\n color = 'primary',\r\n size = 'md',\r\n closeable = false,\r\n onClose,\r\n disabled = false,\r\n class: className,\r\n ...restProps\r\n } = props;\r\n\r\n const sizeClasses: Record<string, string> = {\r\n sm: 'px-2 py-1 text-xs gap-1',\r\n md: 'px-3 py-1.5 text-sm gap-1.5',\r\n lg: 'px-4 py-2 text-base gap-2',\r\n };\r\n\r\n const colorMap: Record<string, { solid: string; outline: string; subtle: string }> = {\r\n primary: {\r\n solid: 'bg-color-primary text-white',\r\n outline: 'border border-color-primary text-color-primary',\r\n subtle: 'bg-color-primary bg-opacity-10 text-color-primary',\r\n },\r\n success: {\r\n solid: 'bg-color-success text-white',\r\n outline: 'border border-color-success text-color-success',\r\n subtle: 'bg-color-success bg-opacity-10 text-color-success',\r\n },\r\n warning: {\r\n solid: 'bg-color-warning text-white',\r\n outline: 'border border-color-warning text-color-warning',\r\n subtle: 'bg-color-warning bg-opacity-10 text-color-warning',\r\n },\r\n error: {\r\n solid: 'bg-color-error text-white',\r\n outline: 'border border-color-error text-color-error',\r\n subtle: 'bg-color-error bg-opacity-10 text-color-error',\r\n },\r\n };\r\n\r\n const variantClass = colorMap[color]?.[variant] || colorMap.primary.solid;\r\n\r\n return (\r\n <div\r\n class={`\r\n inline-flex items-center rounded-full font-medium\r\n transition-all\r\n ${sizeClasses[size]}\r\n ${variantClass}\r\n ${disabled ? 'opacity-50 cursor-not-allowed' : ''}\r\n ${className || ''}\r\n `.trim()}\r\n {...restProps}\r\n >\r\n {/* Icon */}\r\n {icon && (\r\n <span class=\"shrink-0 flex items-center justify-center\">\r\n {icon}\r\n </span>\r\n )}\r\n\r\n {/* Content */}\r\n <span class=\"truncate\">{children}</span>\r\n\r\n {/* Close button */}\r\n {closeable && !disabled && (\r\n <button\r\n onClick={onClose}\r\n class={`\r\n shrink-0 ml-1 rounded-full hover:opacity-70\r\n transition-opacity flex items-center justify-center\r\n w-4 h-4\r\n `}\r\n aria-label=\"Remove tag\"\r\n >\r\n ✕\r\n </button>\r\n )}\r\n </div>\r\n );\r\n }\r\n\r\n// ╚══════════════════════════════════════════════════════════════════════════════════════╝\r\n","// src/kit/data-display/stat.tsx\r\n//\r\n// Made with ❤️ by Maysara.\r\n\r\n\r\n\r\n// ╔════════════════════════════════════════ PACK ════════════════════════════════════════╗\r\n\r\n import type { JSXElement } from '@minejs/jsx';\r\n\r\n// ╚══════════════════════════════════════════════════════════════════════════════════════╝\r\n\r\n\r\n\r\n// ╔════════════════════════════════════════ TYPE ════════════════════════════════════════╗\r\n\r\n export interface StatProps {\r\n // Content\r\n value: string | number | JSXElement;\r\n label: string | JSXElement;\r\n description?: string | JSXElement;\r\n icon?: JSXElement;\r\n\r\n // Styling\r\n class?: string;\r\n variant?: 'card' | 'simple' | 'bordered';\r\n size?: 'sm' | 'md' | 'lg';\r\n\r\n // Change indicator\r\n change?: number;\r\n changeLabel?: string;\r\n trend?: 'up' | 'down' | 'neutral';\r\n\r\n // Color\r\n color?: 'primary' | 'success' | 'warning' | 'error';\r\n }\r\n\r\n// ╚══════════════════════════════════════════════════════════════════════════════════════╝\r\n\r\n\r\n\r\n// ╔════════════════════════════════════════ CORE ════════════════════════════════════════╗\r\n\r\n export function Stat(props: StatProps): JSXElement {\r\n const {\r\n value,\r\n label,\r\n description,\r\n icon,\r\n class: className,\r\n variant = 'card',\r\n size = 'md',\r\n change,\r\n changeLabel,\r\n trend = 'neutral',\r\n color = 'primary',\r\n ...restProps\r\n } = props;\r\n\r\n const sizeClasses: Record<string, string> = {\r\n sm: 'px-3 py-2',\r\n md: 'px-4 py-3',\r\n lg: 'px-6 py-4',\r\n };\r\n\r\n const valueClasses: Record<string, string> = {\r\n sm: 'text-2xl',\r\n md: 'text-3xl',\r\n lg: 'text-4xl',\r\n };\r\n\r\n const labelClasses: Record<string, string> = {\r\n sm: 'text-sm',\r\n md: 'text-base',\r\n lg: 'text-lg',\r\n };\r\n\r\n const variantClasses: Record<string, string> = {\r\n card: 'bg-surface border border-border-primary rounded-lg',\r\n simple: 'bg-transparent border-0',\r\n bordered: 'bg-surface-subtle border-l-4 border-l-color-primary pl-4',\r\n };\r\n\r\n const trendColors: Record<string, string> = {\r\n up: 'text-color-success',\r\n down: 'text-color-error',\r\n neutral: 'text-primary opacity-60',\r\n };\r\n\r\n const colorClasses: Record<string, string> = {\r\n primary: 'text-color-primary',\r\n success: 'text-color-success',\r\n warning: 'text-color-warning',\r\n error: 'text-color-error',\r\n };\r\n\r\n return (\r\n <div\r\n class={`\r\n ${variantClasses[variant]}\r\n ${sizeClasses[size]}\r\n flex items-center gap-4\r\n ${className || ''}\r\n `.trim()}\r\n {...restProps}\r\n >\r\n {/* Icon */}\r\n {icon && (\r\n <div class={`\r\n shrink-0 flex items-center justify-center size-10\r\n ${colorClasses[color]} opacity-80\r\n `}>\r\n {icon}\r\n </div>\r\n )}\r\n\r\n {/* Content */}\r\n <div class=\"flex-1 min-w-0\">\r\n {/* Value */}\r\n <div class={`\r\n font-bold font-mono\r\n ${valueClasses[size]}\r\n ${colorClasses[color]}\r\n leading-tight\r\n `}>\r\n {value}\r\n </div>\r\n\r\n {/* Label */}\r\n <div class={`\r\n ${labelClasses[size]}\r\n font-medium text-primary mt-1\r\n `}>\r\n {label}\r\n </div>\r\n\r\n {/* Description or Trend */}\r\n {description && (\r\n <div class=\"text-xs text-primary opacity-60 mt-1\">\r\n {description}\r\n </div>\r\n )}\r\n\r\n {change !== undefined && (\r\n <div class={`\r\n text-xs font-semibold mt-2\r\n flex items-center gap-1\r\n ${trendColors[trend]}\r\n `}>\r\n <span>\r\n {trend === 'up' && '↑'}\r\n {trend === 'down' && '↓'}\r\n {trend === 'neutral' && '→'}\r\n </span>\r\n <span>\r\n {Math.abs(change)}%\r\n </span>\r\n {changeLabel && (\r\n <span class=\"opacity-70\">\r\n {changeLabel}\r\n </span>\r\n )}\r\n </div>\r\n )}\r\n </div>\r\n </div>\r\n );\r\n }\r\n\r\n// ╚══════════════════════════════════════════════════════════════════════════════════════╝\r\n"]}