gov-layout 1.1.0 → 1.1.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.
- package/dist/index.js +2 -3
- package/dist/index.js.map +1 -1
- package/dist/index.mjs +2 -3
- package/dist/index.mjs.map +1 -1
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -568,12 +568,11 @@ function StaffSidebar({
|
|
|
568
568
|
},
|
|
569
569
|
style: {
|
|
570
570
|
position: "fixed",
|
|
571
|
-
top: "
|
|
571
|
+
top: "10%",
|
|
572
572
|
left: currentWidth,
|
|
573
|
-
transform: "translateY(-50%)",
|
|
574
573
|
zIndex: 41,
|
|
575
574
|
width: "24px",
|
|
576
|
-
height: "
|
|
575
|
+
height: "40px",
|
|
577
576
|
borderRadius: "0 6px 6px 0",
|
|
578
577
|
border: "1px solid var(--color-border-colors-neutral, #c8cedd)",
|
|
579
578
|
borderLeft: "none",
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/sidebar/SidebarHeader.tsx","../src/sidebar/SidebarMenu.tsx","../src/sidebar/SidebarUserProfile.tsx","../src/sidebar/StaffSidebar.tsx","../src/header/UserHeader.tsx","../src/header/UserSidebar.tsx"],"names":["jsx","jsxs","useState","Fragment","useRef","useEffect","LogoutIcon"],"mappings":"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","file":"index.js","sourcesContent":["'use client';\n\ninterface SidebarHeaderProps {\n orgLogo?: string;\n orgName: string;\n orgSubtitle?: string;\n collapsed?: boolean;\n}\n\nexport default function SidebarHeader({ orgLogo, orgName, orgSubtitle, collapsed }: SidebarHeaderProps) {\n if (collapsed) {\n return (\n <div style={{\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n padding: '20px 8px',\n }}>\n {orgLogo ? (\n <img\n src={orgLogo}\n alt={orgName}\n style={{\n width: '36px',\n height: '36px',\n borderRadius: '50%',\n objectFit: 'cover',\n }}\n />\n ) : (\n <div style={{\n width: '36px',\n height: '36px',\n borderRadius: '50%',\n background: 'var(--color-alias-color-brand-primary, #1e7d55)',\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n color: '#fff',\n fontWeight: 700,\n fontSize: '14px',\n }}>\n {orgName.charAt(0)}\n </div>\n )}\n </div>\n );\n }\n\n return (\n <div style={{\n display: 'flex',\n alignItems: 'center',\n gap: '12px',\n padding: '24px 20px',\n }}>\n {orgLogo && (\n <img\n src={orgLogo}\n alt={orgName}\n style={{\n width: '48px',\n height: '48px',\n borderRadius: '50%',\n objectFit: 'cover',\n flexShrink: 0,\n }}\n />\n )}\n <div style={{ minWidth: 0 }}>\n <p style={{\n fontWeight: 700,\n fontSize: '16px',\n lineHeight: '22px',\n color: 'var(--color-alias-color-brand-text-dark, #05010e)',\n margin: 0,\n overflow: 'hidden',\n textOverflow: 'ellipsis',\n whiteSpace: 'nowrap',\n }}>\n {orgName}\n </p>\n {orgSubtitle && (\n <p style={{\n fontSize: '14px',\n lineHeight: '20px',\n color: 'var(--color-alias-text-colors-tertiary, #475272)',\n margin: 0,\n overflow: 'hidden',\n textOverflow: 'ellipsis',\n whiteSpace: 'nowrap',\n }}>\n {orgSubtitle}\n </p>\n )}\n </div>\n </div>\n );\n}\n","'use client';\n\nimport { useState } from 'react';\nimport type { MenuItem } from './types';\n\ninterface SidebarMenuProps {\n menuItems: MenuItem[];\n onItemClick: (path: string) => void;\n currentPath?: string;\n collapsed?: boolean;\n}\n\nfunction ChevronDownIcon({ isOpen }: { isOpen: boolean }) {\n return (\n <svg\n width=\"16\"\n height=\"16\"\n viewBox=\"0 0 20 20\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n style={{\n transition: 'transform 0.2s ease',\n transform: isOpen ? 'rotate(180deg)' : 'rotate(0deg)',\n flexShrink: 0,\n }}\n >\n <path d=\"M5 7.5L10 12.5L15 7.5\" />\n </svg>\n );\n}\n\nfunction MenuItemComponent({\n item,\n onItemClick,\n currentPath,\n depth = 0,\n collapsed = false,\n}: {\n item: MenuItem;\n onItemClick: (path: string) => void;\n currentPath?: string;\n depth?: number;\n collapsed?: boolean;\n}) {\n const [isOpen, setIsOpen] = useState(false);\n const hasChildren = item.children && item.children.length > 0;\n const isActive = item.path ? currentPath === item.path : false;\n const isChildActive = hasChildren\n ? item.children!.some((child) => child.path === currentPath)\n : false;\n const expanded = isOpen || isChildActive;\n\n const handleClick = () => {\n if (hasChildren) {\n setIsOpen(!isOpen);\n } else if (item.path) {\n onItemClick(item.path);\n }\n };\n\n const activeColor = 'var(--color-alias-color-brand-primary, #1e7d55)';\n const hoverBg = 'var(--color-foundations-fuji-pallet-light, #ebedf5)';\n\n // Collapsed mode: icon only\n if (collapsed && depth === 0) {\n return (\n <li>\n <button\n onClick={handleClick}\n title={item.title}\n onMouseEnter={(e) => {\n if (!isActive) e.currentTarget.style.backgroundColor = hoverBg;\n }}\n onMouseLeave={(e) => {\n if (!isActive) e.currentTarget.style.backgroundColor = 'transparent';\n }}\n style={{\n width: '100%',\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n padding: '12px 0',\n borderRadius: '8px',\n border: 'none',\n background: isActive || isChildActive\n ? `color-mix(in srgb, ${activeColor} 10%, transparent)`\n : 'transparent',\n color: isActive || isChildActive\n ? activeColor\n : 'var(--color-alias-text-colors-tertiary, #475272)',\n cursor: 'pointer',\n transition: 'background-color 0.15s ease',\n }}\n >\n {item.icon && (\n <span style={{\n width: '24px',\n height: '24px',\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n }}>\n {item.icon}\n </span>\n )}\n </button>\n {item.dividerAfter && (\n <hr style={{\n border: 'none',\n borderTop: '1px solid var(--color-border-colors-neutral, #c8cedd)',\n margin: '8px 4px',\n }} />\n )}\n </li>\n );\n }\n\n return (\n <>\n <li>\n <button\n onClick={handleClick}\n onMouseEnter={(e) => {\n if (!isActive) e.currentTarget.style.backgroundColor = hoverBg;\n }}\n onMouseLeave={(e) => {\n if (!isActive) e.currentTarget.style.backgroundColor = 'transparent';\n }}\n style={{\n width: '100%',\n display: 'flex',\n alignItems: 'center',\n gap: '12px',\n padding: depth > 0 ? '10px 16px 10px 52px' : '12px 16px',\n borderRadius: '8px',\n border: 'none',\n background: isActive ? `color-mix(in srgb, ${activeColor} 10%, transparent)` : 'transparent',\n color: isActive\n ? activeColor\n : 'var(--color-alias-text-colors-primary, #060d26)',\n cursor: 'pointer',\n transition: 'background-color 0.15s ease',\n textAlign: 'left',\n fontSize: '15px',\n fontWeight: isActive ? 600 : 400,\n lineHeight: '22px',\n }}\n >\n {item.icon && (\n <span style={{\n width: '24px',\n height: '24px',\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n flexShrink: 0,\n color: isActive\n ? activeColor\n : 'var(--color-alias-text-colors-tertiary, #475272)',\n }}>\n {item.icon}\n </span>\n )}\n <span style={{ flex: 1 }}>{item.title}</span>\n {hasChildren && <ChevronDownIcon isOpen={expanded} />}\n </button>\n </li>\n {hasChildren && expanded && (\n <ul style={{ listStyle: 'none', margin: 0, padding: 0 }}>\n {item.children!.map((child) => (\n <MenuItemComponent\n key={child.id}\n item={child}\n onItemClick={onItemClick}\n currentPath={currentPath}\n depth={depth + 1}\n />\n ))}\n </ul>\n )}\n {item.dividerAfter && (\n <li>\n <hr style={{\n border: 'none',\n borderTop: '1px solid var(--color-border-colors-neutral, #c8cedd)',\n margin: '8px 0',\n }} />\n </li>\n )}\n </>\n );\n}\n\nexport default function SidebarMenu({ menuItems, onItemClick, currentPath, collapsed }: SidebarMenuProps) {\n return (\n <nav style={{\n flex: collapsed ? undefined : 1,\n padding: collapsed ? '8px 8px' : '8px 12px',\n overflowY: 'auto',\n }}>\n <ul style={{\n listStyle: 'none',\n margin: 0,\n padding: 0,\n display: 'flex',\n flexDirection: 'column',\n gap: '2px',\n }}>\n {menuItems.map((item) => (\n <MenuItemComponent\n key={item.id}\n item={item}\n onItemClick={onItemClick}\n currentPath={currentPath}\n collapsed={collapsed}\n />\n ))}\n </ul>\n </nav>\n );\n}\n","'use client';\n\nimport type { User } from './types';\n\ninterface SidebarUserProfileProps {\n user: User | null;\n roleLabel: string;\n onLogout: () => void;\n collapsed?: boolean;\n}\n\nfunction LogoutIcon() {\n return (\n <svg\n width=\"20\"\n height=\"20\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n >\n <path d=\"M9 21H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h4\" />\n <polyline points=\"16 17 21 12 16 7\" />\n <line x1=\"21\" y1=\"12\" x2=\"9\" y2=\"12\" />\n </svg>\n );\n}\n\nexport default function SidebarUserProfile({\n user,\n roleLabel,\n onLogout,\n collapsed,\n}: SidebarUserProfileProps) {\n if (!user) return null;\n\n const getFullName = () => {\n if (user.firstName && user.lastName) {\n return `${user.firstName} ${user.lastName}`;\n }\n return user.firstName || user.lastName || 'ผู้ใช้';\n };\n\n const getInitial = () => {\n return user.firstName?.charAt(0) || user.lastName?.charAt(0) || '?';\n };\n\n // Collapsed: avatar + logout icon only\n if (collapsed) {\n return (\n <div style={{\n padding: '12px 8px',\n borderTop: '1px solid var(--color-border-colors-neutral, #c8cedd)',\n display: 'flex',\n flexDirection: 'column',\n alignItems: 'center',\n gap: '12px',\n }}>\n {user.pictureUrl ? (\n <img\n src={user.pictureUrl}\n alt={getFullName()}\n title={getFullName()}\n style={{\n width: '36px',\n height: '36px',\n borderRadius: '50%',\n objectFit: 'cover',\n }}\n />\n ) : (\n <div\n title={getFullName()}\n style={{\n width: '36px',\n height: '36px',\n borderRadius: '50%',\n background: 'var(--color-alias-color-brand-primary, #1e7d55)',\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n color: '#fff',\n fontWeight: 700,\n fontSize: '14px',\n }}\n >\n {getInitial()}\n </div>\n )}\n <button\n onClick={onLogout}\n title=\"ออกจากระบบ\"\n onMouseEnter={(e) => {\n e.currentTarget.style.backgroundColor = 'var(--color-foundations-fuan-pallet-light, #ffd2d2)';\n }}\n onMouseLeave={(e) => {\n e.currentTarget.style.backgroundColor = 'transparent';\n }}\n style={{\n width: '36px',\n height: '36px',\n borderRadius: '8px',\n border: 'none',\n background: 'transparent',\n color: 'var(--color-alias-semantic-critical, #f21515)',\n cursor: 'pointer',\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n transition: 'background-color 0.15s ease',\n }}\n >\n <LogoutIcon />\n </button>\n </div>\n );\n }\n\n // Expanded\n return (\n <div\n style={{\n padding: '16px 20px',\n borderTop: '1px solid var(--color-border-colors-neutral, #c8cedd)',\n display: 'flex',\n alignItems: 'center',\n gap: '12px',\n }}\n >\n {user.pictureUrl ? (\n <img\n src={user.pictureUrl}\n alt={getFullName()}\n style={{\n width: '40px',\n height: '40px',\n borderRadius: '50%',\n objectFit: 'cover',\n flexShrink: 0,\n }}\n />\n ) : (\n <div\n style={{\n width: '40px',\n height: '40px',\n borderRadius: '50%',\n background: 'var(--color-alias-color-brand-primary, #1e7d55)',\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n color: '#fff',\n fontWeight: 700,\n fontSize: '16px',\n flexShrink: 0,\n }}\n >\n {getInitial()}\n </div>\n )}\n <div style={{ flex: 1, minWidth: 0 }}>\n <p style={{\n fontWeight: 600,\n fontSize: '14px',\n lineHeight: '20px',\n color: 'var(--color-alias-text-colors-primary, #060d26)',\n margin: 0,\n overflow: 'hidden',\n textOverflow: 'ellipsis',\n whiteSpace: 'nowrap',\n }}>\n {getFullName()}\n </p>\n <p style={{\n fontSize: '12px',\n lineHeight: '16px',\n color: 'var(--color-alias-text-colors-tertiary, #475272)',\n margin: 0,\n }}>\n {roleLabel}\n </p>\n </div>\n <button\n onClick={onLogout}\n title=\"ออกจากระบบ\"\n onMouseEnter={(e) => {\n e.currentTarget.style.backgroundColor = 'var(--color-foundations-fuan-pallet-light, #ffd2d2)';\n e.currentTarget.style.color = 'var(--color-alias-semantic-critical, #f21515)';\n }}\n onMouseLeave={(e) => {\n e.currentTarget.style.backgroundColor = 'transparent';\n e.currentTarget.style.color = 'var(--color-alias-semantic-critical, #f21515)';\n }}\n style={{\n width: '36px',\n height: '36px',\n borderRadius: '8px',\n border: 'none',\n background: 'transparent',\n color: 'var(--color-alias-semantic-critical, #f21515)',\n cursor: 'pointer',\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n transition: 'background-color 0.15s ease',\n flexShrink: 0,\n }}\n >\n <LogoutIcon />\n </button>\n </div>\n );\n}\n","'use client';\n\nimport { useState } from 'react';\nimport SidebarHeader from './SidebarHeader';\nimport SidebarMenu from './SidebarMenu';\nimport SidebarUserProfile from './SidebarUserProfile';\nimport type { StaffSidebarProps } from './types';\n\nfunction ToggleIcon({ isOpen }: { isOpen: boolean }) {\n return (\n <svg\n width=\"18\"\n height=\"18\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n style={{\n transition: 'transform 0.2s ease',\n transform: isOpen ? 'rotate(0deg)' : 'rotate(180deg)',\n }}\n >\n <path d=\"M15 18l-6-6 6-6\" />\n </svg>\n );\n}\n\nexport default function StaffSidebar({\n orgLogo,\n orgName,\n orgSubtitle,\n menuItems,\n bottomMenuItems,\n user,\n roleLabel,\n onNavigate,\n onLogout,\n currentPath,\n width = '280px',\n className,\n collapsible = false,\n isOpen: controlledIsOpen,\n onToggle,\n}: StaffSidebarProps) {\n const [internalOpen, setInternalOpen] = useState(true);\n const sidebarOpen = controlledIsOpen !== undefined ? controlledIsOpen : internalOpen;\n const collapsed = collapsible && !sidebarOpen;\n const collapsedWidth = '64px';\n const currentWidth = collapsed ? collapsedWidth : width;\n\n const handleToggle = () => {\n if (onToggle) {\n onToggle();\n } else {\n setInternalOpen(!internalOpen);\n }\n };\n\n return (\n <>\n <aside\n className={className}\n style={{\n position: 'fixed',\n top: 0,\n left: 0,\n height: '100vh',\n width: currentWidth,\n background: '#fff',\n borderRight: '1px solid var(--color-border-colors-neutral, #c8cedd)',\n display: 'flex',\n flexDirection: 'column',\n zIndex: 40,\n overflow: 'hidden',\n transition: 'width 0.3s ease',\n }}\n >\n {/* Organization Header */}\n <SidebarHeader\n orgLogo={orgLogo}\n orgName={orgName}\n orgSubtitle={orgSubtitle}\n collapsed={collapsed}\n />\n\n {/* Main Menu */}\n <SidebarMenu\n menuItems={menuItems}\n onItemClick={onNavigate}\n currentPath={currentPath}\n collapsed={collapsed}\n />\n\n {/* Bottom Menu (e.g. Settings) */}\n {bottomMenuItems && bottomMenuItems.length > 0 && (\n <SidebarMenu\n menuItems={bottomMenuItems}\n onItemClick={onNavigate}\n currentPath={currentPath}\n collapsed={collapsed}\n />\n )}\n\n {/* User Profile */}\n <SidebarUserProfile\n user={user}\n roleLabel={roleLabel}\n onLogout={onLogout}\n collapsed={collapsed}\n />\n </aside>\n\n {/* Toggle Button */}\n {collapsible && (\n <button\n onClick={handleToggle}\n title={sidebarOpen ? 'ย่อ Sidebar' : 'ขยาย Sidebar'}\n onMouseEnter={(e) => {\n e.currentTarget.style.backgroundColor = '#f3f4f6';\n }}\n onMouseLeave={(e) => {\n e.currentTarget.style.backgroundColor = '#fff';\n }}\n style={{\n position: 'fixed',\n top: '50%',\n left: currentWidth,\n transform: 'translateY(-50%)',\n zIndex: 41,\n width: '24px',\n height: '48px',\n borderRadius: '0 6px 6px 0',\n border: '1px solid var(--color-border-colors-neutral, #c8cedd)',\n borderLeft: 'none',\n background: '#fff',\n cursor: 'pointer',\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n boxShadow: '2px 0 8px rgba(0,0,0,0.06)',\n transition: 'left 0.3s ease',\n color: 'var(--color-alias-text-colors-tertiary, #475272)',\n }}\n >\n <ToggleIcon isOpen={sidebarOpen} />\n </button>\n )}\n </>\n );\n}\n","'use client';\n\nimport { useState, useRef, useEffect } from 'react';\n\nexport interface NotificationItem {\n id: string | number;\n title: string;\n description: string;\n date: string;\n type: 'info' | 'success' | 'warning' | 'error' | 'reminder';\n isRead: boolean;\n}\n\ninterface UserHeaderProps {\n user?: {\n firstName?: string;\n lastName?: string;\n pictureUrl?: string;\n };\n notifications?: NotificationItem[];\n onToggleSidebar?: () => void;\n /** Custom bell icon */\n notificationBell?: React.ReactNode;\n onMarkAllRead?: () => void;\n onViewAll?: () => void;\n className?: string;\n}\n\nfunction BellIcon() {\n return (\n <svg width=\"22\" height=\"24\" viewBox=\"0 0 22 24\" fill=\"none\">\n <path\n d=\"M21.2321 13.4463L19.3618 6.71712C18.8136 4.74574 17.6222 3.01418 15.9769 1.79767C14.3316 0.581165 12.3269 -0.0504751 10.2814 0.00315377C8.23593 0.0567826 6.26708 0.792603 4.6878 2.09365C3.10852 3.3947 2.00945 5.18632 1.5653 7.18371L0.11728 13.6954C-0.0426654 14.4149 -0.0389674 15.1611 0.128101 15.879C0.29517 16.5969 0.621344 17.2681 1.08254 17.8431C1.54374 18.418 2.12818 18.8821 2.79272 19.2009C3.45727 19.5198 4.18494 19.6853 4.92202 19.6853H6.01861C6.24454 20.7979 6.84817 21.7982 7.72723 22.5167C8.60629 23.2352 9.70671 23.6277 10.842 23.6277C11.9774 23.6277 13.0778 23.2352 13.9569 22.5167C14.8359 21.7982 15.4396 20.7979 15.6655 19.6853H16.4904C17.2492 19.6853 17.9977 19.5099 18.6774 19.1728C19.3572 18.8357 19.9498 18.346 20.409 17.742C20.8682 17.1379 21.1815 16.4359 21.3245 15.6907C21.4674 14.9455 21.4352 14.1774 21.2321 13.4463ZM10.842 21.654C10.2334 21.6515 9.64049 21.461 9.1443 21.1086C8.6481 20.7562 8.27291 20.2591 8.07005 19.6853H13.614C13.4112 20.2591 13.036 20.7562 12.5398 21.1086C12.0436 21.461 11.4506 21.6515 10.842 21.654ZM18.8411 16.55C18.5668 16.9139 18.2114 17.2088 17.8032 17.4113C17.3949 17.6138 16.9451 17.7183 16.4894 17.7165H4.92202C4.47982 17.7164 4.04328 17.6171 3.64463 17.4257C3.24598 17.2344 2.89539 16.9559 2.61874 16.611C2.34208 16.266 2.14643 15.8633 2.04622 15.4326C1.94602 15.0019 1.94381 14.5542 2.03977 14.1226L3.4868 7.60994C3.83561 6.04105 4.69886 4.63379 5.93932 3.61186C7.17978 2.58992 8.72625 2.01197 10.3329 1.96988C11.9395 1.92779 13.5142 2.42398 14.8064 3.37956C16.0987 4.33515 17.0344 5.69528 17.4649 7.24376L19.3352 13.9729C19.4588 14.4114 19.4785 14.8725 19.3927 15.3199C19.3069 15.7672 19.1181 16.1884 18.8411 16.55Z\"\n fill=\"var(--color-alias-color-brand-text-dark, #05010e)\"\n />\n </svg>\n );\n}\n\nfunction HamburgerIcon() {\n return (\n <svg width=\"24\" height=\"18\" viewBox=\"0 0 27 18\" fill=\"none\">\n <path\n d=\"M1.1875 17.8426C0.851042 17.8426 0.569077 17.7287 0.341604 17.501C0.113868 17.2735 0 16.9914 0 16.6547C0 16.3182 0.113868 16.0363 0.341604 15.8088C0.569077 15.5816 0.851042 15.468 1.1875 15.468H25.7292C26.0656 15.468 26.3476 15.5817 26.5751 15.8092C26.8028 16.0369 26.9167 16.3192 26.9167 16.6559C26.9167 16.9923 26.8028 17.2743 26.5751 17.5018C26.3476 17.729 26.0656 17.8426 25.7292 17.8426H1.1875ZM1.1875 10.1088C0.851042 10.1088 0.569077 9.99492 0.341604 9.76719C0.113868 9.53945 0 9.25735 0 8.9209C0 8.58417 0.113868 8.30221 0.341604 8.075C0.569077 7.84753 0.851042 7.73379 1.1875 7.73379H25.7292C26.0656 7.73379 26.3476 7.84766 26.5751 8.0754C26.8028 8.30313 26.9167 8.58523 26.9167 8.92169C26.9167 9.25841 26.8028 9.54037 26.5751 9.76758C26.3476 9.99506 26.0656 10.1088 25.7292 10.1088H1.1875ZM1.1875 2.3746C0.851042 2.3746 0.569077 2.26087 0.341604 2.0334C0.113868 1.80566 0 1.52343 0 1.18671C0 0.850249 0.113868 0.568284 0.341604 0.340812C0.569077 0.113604 0.851042 0 1.1875 0H25.7292C26.0656 0 26.3476 0.113868 26.5751 0.341604C26.8028 0.569077 26.9167 0.851174 26.9167 1.1879C26.9167 1.52435 26.8028 1.80632 26.5751 2.03379C26.3476 2.261 26.0656 2.3746 25.7292 2.3746H1.1875Z\"\n fill=\"var(--color-alias-color-brand-text-dark, #05010e)\"\n />\n </svg>\n );\n}\n\nfunction getNotifBg(type: NotificationItem['type']) {\n const map: Record<string, string> = {\n success: '#dcfce7',\n warning: '#fef9c3',\n error: '#fee2e2',\n reminder: '#f3e8ff',\n info: '#dbeafe',\n };\n return map[type] || map.info;\n}\n\nfunction getNotifIcon(type: NotificationItem['type']) {\n const map: Record<string, string> = {\n success: '✓',\n warning: '!',\n error: '✕',\n reminder: '⏰',\n info: 'i',\n };\n return map[type] || map.info;\n}\n\nexport default function UserHeader({\n user,\n notifications = [],\n onToggleSidebar,\n notificationBell,\n onMarkAllRead,\n onViewAll,\n className,\n}: UserHeaderProps) {\n const displayName =\n `${user?.firstName || ''} ${user?.lastName || ''}`.trim() || 'ผู้ใช้';\n const firstChar = user?.firstName?.charAt(0) || 'ผ';\n const [isNotifOpen, setIsNotifOpen] = useState(false);\n const notifRef = useRef<HTMLDivElement>(null);\n\n useEffect(() => {\n const handleClickOutside = (e: MouseEvent) => {\n if (notifRef.current && !notifRef.current.contains(e.target as Node)) {\n setIsNotifOpen(false);\n }\n };\n document.addEventListener('mousedown', handleClickOutside);\n return () => document.removeEventListener('mousedown', handleClickOutside);\n }, []);\n\n const unreadCount = notifications.filter((n) => !n.isRead).length;\n\n return (\n <header\n className={className}\n style={{\n background: '#fff',\n boxShadow: '0 1px 3px rgba(0,0,0,0.08)',\n position: 'sticky',\n top: 0,\n zIndex: 10,\n }}\n >\n <div\n style={{\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'space-between',\n padding: '14px 20px',\n }}\n >\n {/* Avatar & Name */}\n <div style={{ display: 'flex', alignItems: 'center', gap: '12px' }}>\n {user?.pictureUrl ? (\n <img\n src={user.pictureUrl}\n alt={displayName}\n style={{\n width: '44px',\n height: '44px',\n borderRadius: '50%',\n objectFit: 'cover',\n border: '2px solid var(--color-alias-color-brand-surface, #faf9e5)',\n }}\n />\n ) : (\n <div\n style={{\n width: '44px',\n height: '44px',\n borderRadius: '50%',\n background: 'linear-gradient(135deg, var(--color-alias-color-brand-secondary, #80d897), var(--color-alias-color-brand-primary, #1e7d55))',\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n boxShadow: '0 1px 3px rgba(0,0,0,0.1)',\n }}\n >\n <span\n style={{ color: '#fff', fontSize: '18px', fontWeight: 600 }}\n >\n {firstChar}\n </span>\n </div>\n )}\n <div>\n <p\n style={{\n fontSize: '14px',\n fontWeight: 600,\n color: 'var(--color-alias-color-brand-text-dark, #05010e)',\n margin: 0,\n }}\n >\n สวัสดี,{' '}\n <span\n style={{\n color: 'var(--color-alias-color-brand-primary, #1e7d55)',\n }}\n >\n {displayName}\n </span>\n </p>\n </div>\n </div>\n\n {/* Right Side */}\n <div style={{ display: 'flex', alignItems: 'center', gap: '4px' }}>\n {/* Notification Bell */}\n <div style={{ position: 'relative' }} ref={notifRef}>\n {notificationBell || (\n <button\n onClick={() => setIsNotifOpen(!isNotifOpen)}\n style={{\n padding: '10px',\n borderRadius: '8px',\n border: 'none',\n background: 'transparent',\n cursor: 'pointer',\n position: 'relative',\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n }}\n onMouseEnter={(e) => {\n e.currentTarget.style.backgroundColor = '#f3f4f6';\n }}\n onMouseLeave={(e) => {\n e.currentTarget.style.backgroundColor = 'transparent';\n }}\n >\n <BellIcon />\n {unreadCount > 0 && (\n <span\n style={{\n position: 'absolute',\n top: '6px',\n right: '6px',\n minWidth: '18px',\n height: '18px',\n background: 'var(--color-alias-semantic-critical, #f21515)',\n borderRadius: '50%',\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n fontSize: '10px',\n fontWeight: 700,\n color: '#fff',\n padding: '0 4px',\n border: '2px solid #fff',\n }}\n >\n {unreadCount}\n </span>\n )}\n </button>\n )}\n\n {/* Notification Dropdown */}\n {isNotifOpen && (\n <div\n style={{\n position: 'absolute',\n right: 0,\n marginTop: '8px',\n width: '360px',\n background: '#fff',\n borderRadius: '12px',\n boxShadow: '0 10px 40px rgba(0,0,0,0.12)',\n zIndex: 50,\n overflow: 'hidden',\n border: '1px solid #e5e7eb',\n }}\n >\n {/* Header */}\n <div\n style={{\n padding: '16px',\n borderBottom: '1px solid #f3f4f6',\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'space-between',\n background: '#fafafa',\n }}\n >\n <span style={{ fontWeight: 600, fontSize: '14px', color: '#111' }}>\n การแจ้งเตือน\n </span>\n {onMarkAllRead && (\n <button\n onClick={onMarkAllRead}\n style={{\n fontSize: '12px',\n color: 'var(--color-alias-color-brand-primary, #1e7d55)',\n background: 'none',\n border: 'none',\n cursor: 'pointer',\n fontWeight: 500,\n }}\n >\n อ่านทั้งหมด\n </button>\n )}\n </div>\n {/* Items */}\n <div style={{ maxHeight: '60vh', overflowY: 'auto' }}>\n {notifications.length === 0 ? (\n <div\n style={{\n padding: '32px',\n textAlign: 'center',\n color: '#9ca3af',\n fontSize: '14px',\n }}\n >\n 🔔 ไม่มีการแจ้งเตือนใหม่\n </div>\n ) : (\n notifications.map((item) => (\n <div\n key={item.id}\n style={{\n padding: '12px 16px',\n borderBottom: '1px solid #f9fafb',\n cursor: 'pointer',\n background: !item.isRead ? 'rgba(219,234,254,0.3)' : 'transparent',\n position: 'relative',\n display: 'flex',\n gap: '12px',\n alignItems: 'flex-start',\n }}\n onMouseEnter={(e) => {\n e.currentTarget.style.backgroundColor = '#f9fafb';\n }}\n onMouseLeave={(e) => {\n e.currentTarget.style.backgroundColor = !item.isRead\n ? 'rgba(219,234,254,0.3)'\n : 'transparent';\n }}\n >\n {!item.isRead && (\n <span\n style={{\n position: 'absolute',\n top: '12px',\n right: '12px',\n width: '8px',\n height: '8px',\n background: '#ef4444',\n borderRadius: '50%',\n }}\n />\n )}\n <div\n style={{\n width: '32px',\n height: '32px',\n borderRadius: '50%',\n background: getNotifBg(item.type),\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n fontSize: '13px',\n flexShrink: 0,\n marginTop: '2px',\n }}\n >\n {getNotifIcon(item.type)}\n </div>\n <div style={{ flex: 1, minWidth: 0 }}>\n <p\n style={{\n fontSize: '13px',\n fontWeight: !item.isRead ? 600 : 500,\n color: '#111',\n margin: '0 0 2px',\n }}\n >\n {item.title}\n </p>\n <p\n style={{\n fontSize: '12px',\n color: '#6b7280',\n margin: '0 0 4px',\n lineHeight: '18px',\n }}\n >\n {item.description}\n </p>\n <p\n style={{\n fontSize: '10px',\n color: '#9ca3af',\n margin: 0,\n fontWeight: 500,\n }}\n >\n {item.date}\n </p>\n </div>\n </div>\n ))\n )}\n </div>\n {/* Footer */}\n {onViewAll && (\n <div\n style={{\n padding: '10px',\n borderTop: '1px solid #f3f4f6',\n textAlign: 'center',\n background: '#fafafa',\n }}\n >\n <button\n onClick={onViewAll}\n style={{\n fontSize: '13px',\n color: '#6b7280',\n background: 'none',\n border: 'none',\n cursor: 'pointer',\n fontWeight: 500,\n width: '100%',\n padding: '4px',\n }}\n >\n ดูทั้งหมด\n </button>\n </div>\n )}\n </div>\n )}\n </div>\n\n {/* Hamburger Button */}\n {onToggleSidebar && (\n <button\n onClick={onToggleSidebar}\n style={{\n padding: '10px',\n borderRadius: '8px',\n border: 'none',\n background: 'transparent',\n cursor: 'pointer',\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n }}\n onMouseEnter={(e) => {\n e.currentTarget.style.backgroundColor = '#f3f4f6';\n }}\n onMouseLeave={(e) => {\n e.currentTarget.style.backgroundColor = 'transparent';\n }}\n >\n <HamburgerIcon />\n </button>\n )}\n </div>\n </div>\n </header>\n );\n}\n","'use client';\n\nimport { useEffect } from 'react';\nimport SidebarMenu from '../sidebar/SidebarMenu';\nimport type { User, MenuItem } from '../sidebar/types';\n\ninterface UserSidebarProps {\n user: User | null;\n roleLabel: string;\n menuItems: MenuItem[];\n onNavigate: (path: string) => void;\n onLogout: () => void;\n isOpen: boolean;\n onClose: () => void;\n roleColor?: string;\n}\n\nfunction LogoutIcon() {\n return (\n <svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" strokeWidth=\"2\" strokeLinecap=\"round\" strokeLinejoin=\"round\">\n <path d=\"M9 21H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h4\" />\n <polyline points=\"16 17 21 12 16 7\" />\n <line x1=\"21\" y1=\"12\" x2=\"9\" y2=\"12\" />\n </svg>\n );\n}\n\nexport default function UserSidebar({\n user,\n roleLabel,\n menuItems,\n onNavigate,\n onLogout,\n isOpen,\n onClose,\n roleColor = 'var(--color-alias-semantic-warning, orange)',\n}: UserSidebarProps) {\n // Prevent body scroll when open\n useEffect(() => {\n if (isOpen) {\n document.body.style.overflow = 'hidden';\n } else {\n document.body.style.overflow = '';\n }\n return () => {\n document.body.style.overflow = '';\n };\n }, [isOpen]);\n\n const getFullName = () => {\n if (!user) return 'ผู้ใช้';\n if (user.firstName && user.lastName) return `${user.firstName} ${user.lastName}`;\n return user.firstName || user.lastName || 'ผู้ใช้';\n };\n\n const getInitial = () => {\n if (!user) return '?';\n return user.firstName?.charAt(0) || user.lastName?.charAt(0) || '?';\n };\n\n const handleMenuClick = (path: string) => {\n onNavigate(path);\n onClose();\n };\n\n const handleLogout = () => {\n onClose();\n onLogout();\n };\n\n return (\n <>\n {/* Overlay */}\n {isOpen && (\n <div\n onClick={onClose}\n style={{\n position: 'fixed',\n inset: 0,\n background: 'rgba(0,0,0,0.5)',\n zIndex: 40,\n transition: 'opacity 0.3s ease',\n }}\n />\n )}\n\n {/* Sidebar Panel */}\n <aside\n style={{\n position: 'fixed',\n top: 0,\n right: 0,\n height: '100%',\n width: '80vw',\n maxWidth: '320px',\n background: '#fff',\n boxShadow: '-4px 0 24px rgba(0,0,0,0.12)',\n zIndex: 50,\n transform: isOpen ? 'translateX(0)' : 'translateX(100%)',\n transition: 'transform 0.3s ease',\n display: 'flex',\n flexDirection: 'column',\n }}\n >\n {/* User Profile */}\n {user && (\n <div\n style={{\n padding: '20px',\n borderBottom: '1px solid var(--color-border-colors-neutral, #e5e7eb)',\n }}\n >\n <div style={{ display: 'flex', alignItems: 'center', gap: '12px' }}>\n {user.pictureUrl ? (\n <img\n src={user.pictureUrl}\n alt={getFullName()}\n style={{\n width: '56px',\n height: '56px',\n borderRadius: '50%',\n objectFit: 'cover',\n boxShadow: '0 2px 8px rgba(0,0,0,0.1)',\n }}\n />\n ) : (\n <div\n style={{\n width: '56px',\n height: '56px',\n borderRadius: '50%',\n background: 'linear-gradient(135deg, var(--color-alias-color-brand-secondary, #80d897), var(--color-alias-color-brand-primary, #1e7d55))',\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n color: '#fff',\n fontWeight: 700,\n fontSize: '20px',\n boxShadow: '0 2px 8px rgba(0,0,0,0.1)',\n }}\n >\n {getInitial()}\n </div>\n )}\n <div style={{ flex: 1, minWidth: 0 }}>\n <p\n style={{\n fontWeight: 700,\n fontSize: '16px',\n color: 'var(--color-alias-text-colors-primary, #060d26)',\n margin: 0,\n overflow: 'hidden',\n textOverflow: 'ellipsis',\n whiteSpace: 'nowrap',\n }}\n >\n {getFullName()}\n </p>\n <p\n style={{\n fontSize: '13px',\n color: 'var(--color-alias-text-colors-tertiary, #6b7280)',\n margin: '2px 0 0',\n display: 'flex',\n alignItems: 'center',\n gap: '6px',\n }}\n >\n <span\n style={{\n width: '8px',\n height: '8px',\n borderRadius: '50%',\n background: roleColor,\n display: 'inline-block',\n }}\n />\n {roleLabel}\n </p>\n </div>\n </div>\n </div>\n )}\n\n {/* Menu Items */}\n <SidebarMenu\n menuItems={menuItems}\n onItemClick={handleMenuClick}\n />\n\n {/* Logout Button */}\n <div\n style={{\n padding: '20px',\n borderTop: '1px solid var(--color-border-colors-neutral, #e5e7eb)',\n }}\n >\n <button\n onClick={handleLogout}\n onMouseEnter={(e) => {\n e.currentTarget.style.backgroundColor = '#fef2f2';\n }}\n onMouseLeave={(e) => {\n e.currentTarget.style.backgroundColor = 'transparent';\n }}\n style={{\n width: '100%',\n display: 'flex',\n alignItems: 'center',\n gap: '16px',\n padding: '14px 16px',\n borderRadius: '8px',\n border: 'none',\n background: 'transparent',\n color: 'var(--color-alias-semantic-critical, #ef4444)',\n cursor: 'pointer',\n transition: 'background-color 0.15s ease',\n fontSize: '15px',\n fontWeight: 500,\n }}\n >\n <LogoutIcon />\n <span>ออกจากระบบ</span>\n </button>\n </div>\n </aside>\n </>\n );\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["../src/sidebar/SidebarHeader.tsx","../src/sidebar/SidebarMenu.tsx","../src/sidebar/SidebarUserProfile.tsx","../src/sidebar/StaffSidebar.tsx","../src/header/UserHeader.tsx","../src/header/UserSidebar.tsx"],"names":["jsx","jsxs","useState","Fragment","useRef","useEffect","LogoutIcon"],"mappings":"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","file":"index.js","sourcesContent":["'use client';\n\ninterface SidebarHeaderProps {\n orgLogo?: string;\n orgName: string;\n orgSubtitle?: string;\n collapsed?: boolean;\n}\n\nexport default function SidebarHeader({ orgLogo, orgName, orgSubtitle, collapsed }: SidebarHeaderProps) {\n if (collapsed) {\n return (\n <div style={{\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n padding: '20px 8px',\n }}>\n {orgLogo ? (\n <img\n src={orgLogo}\n alt={orgName}\n style={{\n width: '36px',\n height: '36px',\n borderRadius: '50%',\n objectFit: 'cover',\n }}\n />\n ) : (\n <div style={{\n width: '36px',\n height: '36px',\n borderRadius: '50%',\n background: 'var(--color-alias-color-brand-primary, #1e7d55)',\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n color: '#fff',\n fontWeight: 700,\n fontSize: '14px',\n }}>\n {orgName.charAt(0)}\n </div>\n )}\n </div>\n );\n }\n\n return (\n <div style={{\n display: 'flex',\n alignItems: 'center',\n gap: '12px',\n padding: '24px 20px',\n }}>\n {orgLogo && (\n <img\n src={orgLogo}\n alt={orgName}\n style={{\n width: '48px',\n height: '48px',\n borderRadius: '50%',\n objectFit: 'cover',\n flexShrink: 0,\n }}\n />\n )}\n <div style={{ minWidth: 0 }}>\n <p style={{\n fontWeight: 700,\n fontSize: '16px',\n lineHeight: '22px',\n color: 'var(--color-alias-color-brand-text-dark, #05010e)',\n margin: 0,\n overflow: 'hidden',\n textOverflow: 'ellipsis',\n whiteSpace: 'nowrap',\n }}>\n {orgName}\n </p>\n {orgSubtitle && (\n <p style={{\n fontSize: '14px',\n lineHeight: '20px',\n color: 'var(--color-alias-text-colors-tertiary, #475272)',\n margin: 0,\n overflow: 'hidden',\n textOverflow: 'ellipsis',\n whiteSpace: 'nowrap',\n }}>\n {orgSubtitle}\n </p>\n )}\n </div>\n </div>\n );\n}\n","'use client';\n\nimport { useState } from 'react';\nimport type { MenuItem } from './types';\n\ninterface SidebarMenuProps {\n menuItems: MenuItem[];\n onItemClick: (path: string) => void;\n currentPath?: string;\n collapsed?: boolean;\n}\n\nfunction ChevronDownIcon({ isOpen }: { isOpen: boolean }) {\n return (\n <svg\n width=\"16\"\n height=\"16\"\n viewBox=\"0 0 20 20\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n style={{\n transition: 'transform 0.2s ease',\n transform: isOpen ? 'rotate(180deg)' : 'rotate(0deg)',\n flexShrink: 0,\n }}\n >\n <path d=\"M5 7.5L10 12.5L15 7.5\" />\n </svg>\n );\n}\n\nfunction MenuItemComponent({\n item,\n onItemClick,\n currentPath,\n depth = 0,\n collapsed = false,\n}: {\n item: MenuItem;\n onItemClick: (path: string) => void;\n currentPath?: string;\n depth?: number;\n collapsed?: boolean;\n}) {\n const [isOpen, setIsOpen] = useState(false);\n const hasChildren = item.children && item.children.length > 0;\n const isActive = item.path ? currentPath === item.path : false;\n const isChildActive = hasChildren\n ? item.children!.some((child) => child.path === currentPath)\n : false;\n const expanded = isOpen || isChildActive;\n\n const handleClick = () => {\n if (hasChildren) {\n setIsOpen(!isOpen);\n } else if (item.path) {\n onItemClick(item.path);\n }\n };\n\n const activeColor = 'var(--color-alias-color-brand-primary, #1e7d55)';\n const hoverBg = 'var(--color-foundations-fuji-pallet-light, #ebedf5)';\n\n // Collapsed mode: icon only\n if (collapsed && depth === 0) {\n return (\n <li>\n <button\n onClick={handleClick}\n title={item.title}\n onMouseEnter={(e) => {\n if (!isActive) e.currentTarget.style.backgroundColor = hoverBg;\n }}\n onMouseLeave={(e) => {\n if (!isActive) e.currentTarget.style.backgroundColor = 'transparent';\n }}\n style={{\n width: '100%',\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n padding: '12px 0',\n borderRadius: '8px',\n border: 'none',\n background: isActive || isChildActive\n ? `color-mix(in srgb, ${activeColor} 10%, transparent)`\n : 'transparent',\n color: isActive || isChildActive\n ? activeColor\n : 'var(--color-alias-text-colors-tertiary, #475272)',\n cursor: 'pointer',\n transition: 'background-color 0.15s ease',\n }}\n >\n {item.icon && (\n <span style={{\n width: '24px',\n height: '24px',\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n }}>\n {item.icon}\n </span>\n )}\n </button>\n {item.dividerAfter && (\n <hr style={{\n border: 'none',\n borderTop: '1px solid var(--color-border-colors-neutral, #c8cedd)',\n margin: '8px 4px',\n }} />\n )}\n </li>\n );\n }\n\n return (\n <>\n <li>\n <button\n onClick={handleClick}\n onMouseEnter={(e) => {\n if (!isActive) e.currentTarget.style.backgroundColor = hoverBg;\n }}\n onMouseLeave={(e) => {\n if (!isActive) e.currentTarget.style.backgroundColor = 'transparent';\n }}\n style={{\n width: '100%',\n display: 'flex',\n alignItems: 'center',\n gap: '12px',\n padding: depth > 0 ? '10px 16px 10px 52px' : '12px 16px',\n borderRadius: '8px',\n border: 'none',\n background: isActive ? `color-mix(in srgb, ${activeColor} 10%, transparent)` : 'transparent',\n color: isActive\n ? activeColor\n : 'var(--color-alias-text-colors-primary, #060d26)',\n cursor: 'pointer',\n transition: 'background-color 0.15s ease',\n textAlign: 'left',\n fontSize: '15px',\n fontWeight: isActive ? 600 : 400,\n lineHeight: '22px',\n }}\n >\n {item.icon && (\n <span style={{\n width: '24px',\n height: '24px',\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n flexShrink: 0,\n color: isActive\n ? activeColor\n : 'var(--color-alias-text-colors-tertiary, #475272)',\n }}>\n {item.icon}\n </span>\n )}\n <span style={{ flex: 1 }}>{item.title}</span>\n {hasChildren && <ChevronDownIcon isOpen={expanded} />}\n </button>\n </li>\n {hasChildren && expanded && (\n <ul style={{ listStyle: 'none', margin: 0, padding: 0 }}>\n {item.children!.map((child) => (\n <MenuItemComponent\n key={child.id}\n item={child}\n onItemClick={onItemClick}\n currentPath={currentPath}\n depth={depth + 1}\n />\n ))}\n </ul>\n )}\n {item.dividerAfter && (\n <li>\n <hr style={{\n border: 'none',\n borderTop: '1px solid var(--color-border-colors-neutral, #c8cedd)',\n margin: '8px 0',\n }} />\n </li>\n )}\n </>\n );\n}\n\nexport default function SidebarMenu({ menuItems, onItemClick, currentPath, collapsed }: SidebarMenuProps) {\n return (\n <nav style={{\n flex: collapsed ? undefined : 1,\n padding: collapsed ? '8px 8px' : '8px 12px',\n overflowY: 'auto',\n }}>\n <ul style={{\n listStyle: 'none',\n margin: 0,\n padding: 0,\n display: 'flex',\n flexDirection: 'column',\n gap: '2px',\n }}>\n {menuItems.map((item) => (\n <MenuItemComponent\n key={item.id}\n item={item}\n onItemClick={onItemClick}\n currentPath={currentPath}\n collapsed={collapsed}\n />\n ))}\n </ul>\n </nav>\n );\n}\n","'use client';\n\nimport type { User } from './types';\n\ninterface SidebarUserProfileProps {\n user: User | null;\n roleLabel: string;\n onLogout: () => void;\n collapsed?: boolean;\n}\n\nfunction LogoutIcon() {\n return (\n <svg\n width=\"20\"\n height=\"20\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n >\n <path d=\"M9 21H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h4\" />\n <polyline points=\"16 17 21 12 16 7\" />\n <line x1=\"21\" y1=\"12\" x2=\"9\" y2=\"12\" />\n </svg>\n );\n}\n\nexport default function SidebarUserProfile({\n user,\n roleLabel,\n onLogout,\n collapsed,\n}: SidebarUserProfileProps) {\n if (!user) return null;\n\n const getFullName = () => {\n if (user.firstName && user.lastName) {\n return `${user.firstName} ${user.lastName}`;\n }\n return user.firstName || user.lastName || 'ผู้ใช้';\n };\n\n const getInitial = () => {\n return user.firstName?.charAt(0) || user.lastName?.charAt(0) || '?';\n };\n\n // Collapsed: avatar + logout icon only\n if (collapsed) {\n return (\n <div style={{\n padding: '12px 8px',\n borderTop: '1px solid var(--color-border-colors-neutral, #c8cedd)',\n display: 'flex',\n flexDirection: 'column',\n alignItems: 'center',\n gap: '12px',\n }}>\n {user.pictureUrl ? (\n <img\n src={user.pictureUrl}\n alt={getFullName()}\n title={getFullName()}\n style={{\n width: '36px',\n height: '36px',\n borderRadius: '50%',\n objectFit: 'cover',\n }}\n />\n ) : (\n <div\n title={getFullName()}\n style={{\n width: '36px',\n height: '36px',\n borderRadius: '50%',\n background: 'var(--color-alias-color-brand-primary, #1e7d55)',\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n color: '#fff',\n fontWeight: 700,\n fontSize: '14px',\n }}\n >\n {getInitial()}\n </div>\n )}\n <button\n onClick={onLogout}\n title=\"ออกจากระบบ\"\n onMouseEnter={(e) => {\n e.currentTarget.style.backgroundColor = 'var(--color-foundations-fuan-pallet-light, #ffd2d2)';\n }}\n onMouseLeave={(e) => {\n e.currentTarget.style.backgroundColor = 'transparent';\n }}\n style={{\n width: '36px',\n height: '36px',\n borderRadius: '8px',\n border: 'none',\n background: 'transparent',\n color: 'var(--color-alias-semantic-critical, #f21515)',\n cursor: 'pointer',\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n transition: 'background-color 0.15s ease',\n }}\n >\n <LogoutIcon />\n </button>\n </div>\n );\n }\n\n // Expanded\n return (\n <div\n style={{\n padding: '16px 20px',\n borderTop: '1px solid var(--color-border-colors-neutral, #c8cedd)',\n display: 'flex',\n alignItems: 'center',\n gap: '12px',\n }}\n >\n {user.pictureUrl ? (\n <img\n src={user.pictureUrl}\n alt={getFullName()}\n style={{\n width: '40px',\n height: '40px',\n borderRadius: '50%',\n objectFit: 'cover',\n flexShrink: 0,\n }}\n />\n ) : (\n <div\n style={{\n width: '40px',\n height: '40px',\n borderRadius: '50%',\n background: 'var(--color-alias-color-brand-primary, #1e7d55)',\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n color: '#fff',\n fontWeight: 700,\n fontSize: '16px',\n flexShrink: 0,\n }}\n >\n {getInitial()}\n </div>\n )}\n <div style={{ flex: 1, minWidth: 0 }}>\n <p style={{\n fontWeight: 600,\n fontSize: '14px',\n lineHeight: '20px',\n color: 'var(--color-alias-text-colors-primary, #060d26)',\n margin: 0,\n overflow: 'hidden',\n textOverflow: 'ellipsis',\n whiteSpace: 'nowrap',\n }}>\n {getFullName()}\n </p>\n <p style={{\n fontSize: '12px',\n lineHeight: '16px',\n color: 'var(--color-alias-text-colors-tertiary, #475272)',\n margin: 0,\n }}>\n {roleLabel}\n </p>\n </div>\n <button\n onClick={onLogout}\n title=\"ออกจากระบบ\"\n onMouseEnter={(e) => {\n e.currentTarget.style.backgroundColor = 'var(--color-foundations-fuan-pallet-light, #ffd2d2)';\n e.currentTarget.style.color = 'var(--color-alias-semantic-critical, #f21515)';\n }}\n onMouseLeave={(e) => {\n e.currentTarget.style.backgroundColor = 'transparent';\n e.currentTarget.style.color = 'var(--color-alias-semantic-critical, #f21515)';\n }}\n style={{\n width: '36px',\n height: '36px',\n borderRadius: '8px',\n border: 'none',\n background: 'transparent',\n color: 'var(--color-alias-semantic-critical, #f21515)',\n cursor: 'pointer',\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n transition: 'background-color 0.15s ease',\n flexShrink: 0,\n }}\n >\n <LogoutIcon />\n </button>\n </div>\n );\n}\n","'use client';\n\nimport { useState } from 'react';\nimport SidebarHeader from './SidebarHeader';\nimport SidebarMenu from './SidebarMenu';\nimport SidebarUserProfile from './SidebarUserProfile';\nimport type { StaffSidebarProps } from './types';\n\nfunction ToggleIcon({ isOpen }: { isOpen: boolean }) {\n return (\n <svg\n width=\"18\"\n height=\"18\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n style={{\n transition: 'transform 0.2s ease',\n transform: isOpen ? 'rotate(0deg)' : 'rotate(180deg)',\n }}\n >\n <path d=\"M15 18l-6-6 6-6\" />\n </svg>\n );\n}\n\nexport default function StaffSidebar({\n orgLogo,\n orgName,\n orgSubtitle,\n menuItems,\n bottomMenuItems,\n user,\n roleLabel,\n onNavigate,\n onLogout,\n currentPath,\n width = '280px',\n className,\n collapsible = false,\n isOpen: controlledIsOpen,\n onToggle,\n}: StaffSidebarProps) {\n const [internalOpen, setInternalOpen] = useState(true);\n const sidebarOpen = controlledIsOpen !== undefined ? controlledIsOpen : internalOpen;\n const collapsed = collapsible && !sidebarOpen;\n const collapsedWidth = '64px';\n const currentWidth = collapsed ? collapsedWidth : width;\n\n const handleToggle = () => {\n if (onToggle) {\n onToggle();\n } else {\n setInternalOpen(!internalOpen);\n }\n };\n\n return (\n <>\n <aside\n className={className}\n style={{\n position: 'fixed',\n top: 0,\n left: 0,\n height: '100vh',\n width: currentWidth,\n background: '#fff',\n borderRight: '1px solid var(--color-border-colors-neutral, #c8cedd)',\n display: 'flex',\n flexDirection: 'column',\n zIndex: 40,\n overflow: 'hidden',\n transition: 'width 0.3s ease',\n }}\n >\n {/* Organization Header */}\n <SidebarHeader\n orgLogo={orgLogo}\n orgName={orgName}\n orgSubtitle={orgSubtitle}\n collapsed={collapsed}\n />\n\n {/* Main Menu */}\n <SidebarMenu\n menuItems={menuItems}\n onItemClick={onNavigate}\n currentPath={currentPath}\n collapsed={collapsed}\n />\n\n {/* Bottom Menu (e.g. Settings) */}\n {bottomMenuItems && bottomMenuItems.length > 0 && (\n <SidebarMenu\n menuItems={bottomMenuItems}\n onItemClick={onNavigate}\n currentPath={currentPath}\n collapsed={collapsed}\n />\n )}\n\n {/* User Profile */}\n <SidebarUserProfile\n user={user}\n roleLabel={roleLabel}\n onLogout={onLogout}\n collapsed={collapsed}\n />\n </aside>\n\n {/* Toggle Button — top edge */}\n {collapsible && (\n <button\n onClick={handleToggle}\n title={sidebarOpen ? 'ย่อ Sidebar' : 'ขยาย Sidebar'}\n onMouseEnter={(e) => {\n e.currentTarget.style.backgroundColor = '#f3f4f6';\n }}\n onMouseLeave={(e) => {\n e.currentTarget.style.backgroundColor = '#fff';\n }}\n style={{\n position: 'fixed',\n top: '10%',\n left: currentWidth,\n zIndex: 41,\n width: '24px',\n height: '40px',\n borderRadius: '0 6px 6px 0',\n border: '1px solid var(--color-border-colors-neutral, #c8cedd)',\n borderLeft: 'none',\n background: '#fff',\n cursor: 'pointer',\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n boxShadow: '2px 0 8px rgba(0,0,0,0.06)',\n transition: 'left 0.3s ease',\n color: 'var(--color-alias-text-colors-tertiary, #475272)',\n }}\n >\n <ToggleIcon isOpen={sidebarOpen} />\n </button>\n )}\n </>\n );\n}\n","'use client';\n\nimport { useState, useRef, useEffect } from 'react';\n\nexport interface NotificationItem {\n id: string | number;\n title: string;\n description: string;\n date: string;\n type: 'info' | 'success' | 'warning' | 'error' | 'reminder';\n isRead: boolean;\n}\n\ninterface UserHeaderProps {\n user?: {\n firstName?: string;\n lastName?: string;\n pictureUrl?: string;\n };\n notifications?: NotificationItem[];\n onToggleSidebar?: () => void;\n /** Custom bell icon */\n notificationBell?: React.ReactNode;\n onMarkAllRead?: () => void;\n onViewAll?: () => void;\n className?: string;\n}\n\nfunction BellIcon() {\n return (\n <svg width=\"22\" height=\"24\" viewBox=\"0 0 22 24\" fill=\"none\">\n <path\n d=\"M21.2321 13.4463L19.3618 6.71712C18.8136 4.74574 17.6222 3.01418 15.9769 1.79767C14.3316 0.581165 12.3269 -0.0504751 10.2814 0.00315377C8.23593 0.0567826 6.26708 0.792603 4.6878 2.09365C3.10852 3.3947 2.00945 5.18632 1.5653 7.18371L0.11728 13.6954C-0.0426654 14.4149 -0.0389674 15.1611 0.128101 15.879C0.29517 16.5969 0.621344 17.2681 1.08254 17.8431C1.54374 18.418 2.12818 18.8821 2.79272 19.2009C3.45727 19.5198 4.18494 19.6853 4.92202 19.6853H6.01861C6.24454 20.7979 6.84817 21.7982 7.72723 22.5167C8.60629 23.2352 9.70671 23.6277 10.842 23.6277C11.9774 23.6277 13.0778 23.2352 13.9569 22.5167C14.8359 21.7982 15.4396 20.7979 15.6655 19.6853H16.4904C17.2492 19.6853 17.9977 19.5099 18.6774 19.1728C19.3572 18.8357 19.9498 18.346 20.409 17.742C20.8682 17.1379 21.1815 16.4359 21.3245 15.6907C21.4674 14.9455 21.4352 14.1774 21.2321 13.4463ZM10.842 21.654C10.2334 21.6515 9.64049 21.461 9.1443 21.1086C8.6481 20.7562 8.27291 20.2591 8.07005 19.6853H13.614C13.4112 20.2591 13.036 20.7562 12.5398 21.1086C12.0436 21.461 11.4506 21.6515 10.842 21.654ZM18.8411 16.55C18.5668 16.9139 18.2114 17.2088 17.8032 17.4113C17.3949 17.6138 16.9451 17.7183 16.4894 17.7165H4.92202C4.47982 17.7164 4.04328 17.6171 3.64463 17.4257C3.24598 17.2344 2.89539 16.9559 2.61874 16.611C2.34208 16.266 2.14643 15.8633 2.04622 15.4326C1.94602 15.0019 1.94381 14.5542 2.03977 14.1226L3.4868 7.60994C3.83561 6.04105 4.69886 4.63379 5.93932 3.61186C7.17978 2.58992 8.72625 2.01197 10.3329 1.96988C11.9395 1.92779 13.5142 2.42398 14.8064 3.37956C16.0987 4.33515 17.0344 5.69528 17.4649 7.24376L19.3352 13.9729C19.4588 14.4114 19.4785 14.8725 19.3927 15.3199C19.3069 15.7672 19.1181 16.1884 18.8411 16.55Z\"\n fill=\"var(--color-alias-color-brand-text-dark, #05010e)\"\n />\n </svg>\n );\n}\n\nfunction HamburgerIcon() {\n return (\n <svg width=\"24\" height=\"18\" viewBox=\"0 0 27 18\" fill=\"none\">\n <path\n d=\"M1.1875 17.8426C0.851042 17.8426 0.569077 17.7287 0.341604 17.501C0.113868 17.2735 0 16.9914 0 16.6547C0 16.3182 0.113868 16.0363 0.341604 15.8088C0.569077 15.5816 0.851042 15.468 1.1875 15.468H25.7292C26.0656 15.468 26.3476 15.5817 26.5751 15.8092C26.8028 16.0369 26.9167 16.3192 26.9167 16.6559C26.9167 16.9923 26.8028 17.2743 26.5751 17.5018C26.3476 17.729 26.0656 17.8426 25.7292 17.8426H1.1875ZM1.1875 10.1088C0.851042 10.1088 0.569077 9.99492 0.341604 9.76719C0.113868 9.53945 0 9.25735 0 8.9209C0 8.58417 0.113868 8.30221 0.341604 8.075C0.569077 7.84753 0.851042 7.73379 1.1875 7.73379H25.7292C26.0656 7.73379 26.3476 7.84766 26.5751 8.0754C26.8028 8.30313 26.9167 8.58523 26.9167 8.92169C26.9167 9.25841 26.8028 9.54037 26.5751 9.76758C26.3476 9.99506 26.0656 10.1088 25.7292 10.1088H1.1875ZM1.1875 2.3746C0.851042 2.3746 0.569077 2.26087 0.341604 2.0334C0.113868 1.80566 0 1.52343 0 1.18671C0 0.850249 0.113868 0.568284 0.341604 0.340812C0.569077 0.113604 0.851042 0 1.1875 0H25.7292C26.0656 0 26.3476 0.113868 26.5751 0.341604C26.8028 0.569077 26.9167 0.851174 26.9167 1.1879C26.9167 1.52435 26.8028 1.80632 26.5751 2.03379C26.3476 2.261 26.0656 2.3746 25.7292 2.3746H1.1875Z\"\n fill=\"var(--color-alias-color-brand-text-dark, #05010e)\"\n />\n </svg>\n );\n}\n\nfunction getNotifBg(type: NotificationItem['type']) {\n const map: Record<string, string> = {\n success: '#dcfce7',\n warning: '#fef9c3',\n error: '#fee2e2',\n reminder: '#f3e8ff',\n info: '#dbeafe',\n };\n return map[type] || map.info;\n}\n\nfunction getNotifIcon(type: NotificationItem['type']) {\n const map: Record<string, string> = {\n success: '✓',\n warning: '!',\n error: '✕',\n reminder: '⏰',\n info: 'i',\n };\n return map[type] || map.info;\n}\n\nexport default function UserHeader({\n user,\n notifications = [],\n onToggleSidebar,\n notificationBell,\n onMarkAllRead,\n onViewAll,\n className,\n}: UserHeaderProps) {\n const displayName =\n `${user?.firstName || ''} ${user?.lastName || ''}`.trim() || 'ผู้ใช้';\n const firstChar = user?.firstName?.charAt(0) || 'ผ';\n const [isNotifOpen, setIsNotifOpen] = useState(false);\n const notifRef = useRef<HTMLDivElement>(null);\n\n useEffect(() => {\n const handleClickOutside = (e: MouseEvent) => {\n if (notifRef.current && !notifRef.current.contains(e.target as Node)) {\n setIsNotifOpen(false);\n }\n };\n document.addEventListener('mousedown', handleClickOutside);\n return () => document.removeEventListener('mousedown', handleClickOutside);\n }, []);\n\n const unreadCount = notifications.filter((n) => !n.isRead).length;\n\n return (\n <header\n className={className}\n style={{\n background: '#fff',\n boxShadow: '0 1px 3px rgba(0,0,0,0.08)',\n position: 'sticky',\n top: 0,\n zIndex: 10,\n }}\n >\n <div\n style={{\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'space-between',\n padding: '14px 20px',\n }}\n >\n {/* Avatar & Name */}\n <div style={{ display: 'flex', alignItems: 'center', gap: '12px' }}>\n {user?.pictureUrl ? (\n <img\n src={user.pictureUrl}\n alt={displayName}\n style={{\n width: '44px',\n height: '44px',\n borderRadius: '50%',\n objectFit: 'cover',\n border: '2px solid var(--color-alias-color-brand-surface, #faf9e5)',\n }}\n />\n ) : (\n <div\n style={{\n width: '44px',\n height: '44px',\n borderRadius: '50%',\n background: 'linear-gradient(135deg, var(--color-alias-color-brand-secondary, #80d897), var(--color-alias-color-brand-primary, #1e7d55))',\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n boxShadow: '0 1px 3px rgba(0,0,0,0.1)',\n }}\n >\n <span\n style={{ color: '#fff', fontSize: '18px', fontWeight: 600 }}\n >\n {firstChar}\n </span>\n </div>\n )}\n <div>\n <p\n style={{\n fontSize: '14px',\n fontWeight: 600,\n color: 'var(--color-alias-color-brand-text-dark, #05010e)',\n margin: 0,\n }}\n >\n สวัสดี,{' '}\n <span\n style={{\n color: 'var(--color-alias-color-brand-primary, #1e7d55)',\n }}\n >\n {displayName}\n </span>\n </p>\n </div>\n </div>\n\n {/* Right Side */}\n <div style={{ display: 'flex', alignItems: 'center', gap: '4px' }}>\n {/* Notification Bell */}\n <div style={{ position: 'relative' }} ref={notifRef}>\n {notificationBell || (\n <button\n onClick={() => setIsNotifOpen(!isNotifOpen)}\n style={{\n padding: '10px',\n borderRadius: '8px',\n border: 'none',\n background: 'transparent',\n cursor: 'pointer',\n position: 'relative',\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n }}\n onMouseEnter={(e) => {\n e.currentTarget.style.backgroundColor = '#f3f4f6';\n }}\n onMouseLeave={(e) => {\n e.currentTarget.style.backgroundColor = 'transparent';\n }}\n >\n <BellIcon />\n {unreadCount > 0 && (\n <span\n style={{\n position: 'absolute',\n top: '6px',\n right: '6px',\n minWidth: '18px',\n height: '18px',\n background: 'var(--color-alias-semantic-critical, #f21515)',\n borderRadius: '50%',\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n fontSize: '10px',\n fontWeight: 700,\n color: '#fff',\n padding: '0 4px',\n border: '2px solid #fff',\n }}\n >\n {unreadCount}\n </span>\n )}\n </button>\n )}\n\n {/* Notification Dropdown */}\n {isNotifOpen && (\n <div\n style={{\n position: 'absolute',\n right: 0,\n marginTop: '8px',\n width: '360px',\n background: '#fff',\n borderRadius: '12px',\n boxShadow: '0 10px 40px rgba(0,0,0,0.12)',\n zIndex: 50,\n overflow: 'hidden',\n border: '1px solid #e5e7eb',\n }}\n >\n {/* Header */}\n <div\n style={{\n padding: '16px',\n borderBottom: '1px solid #f3f4f6',\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'space-between',\n background: '#fafafa',\n }}\n >\n <span style={{ fontWeight: 600, fontSize: '14px', color: '#111' }}>\n การแจ้งเตือน\n </span>\n {onMarkAllRead && (\n <button\n onClick={onMarkAllRead}\n style={{\n fontSize: '12px',\n color: 'var(--color-alias-color-brand-primary, #1e7d55)',\n background: 'none',\n border: 'none',\n cursor: 'pointer',\n fontWeight: 500,\n }}\n >\n อ่านทั้งหมด\n </button>\n )}\n </div>\n {/* Items */}\n <div style={{ maxHeight: '60vh', overflowY: 'auto' }}>\n {notifications.length === 0 ? (\n <div\n style={{\n padding: '32px',\n textAlign: 'center',\n color: '#9ca3af',\n fontSize: '14px',\n }}\n >\n 🔔 ไม่มีการแจ้งเตือนใหม่\n </div>\n ) : (\n notifications.map((item) => (\n <div\n key={item.id}\n style={{\n padding: '12px 16px',\n borderBottom: '1px solid #f9fafb',\n cursor: 'pointer',\n background: !item.isRead ? 'rgba(219,234,254,0.3)' : 'transparent',\n position: 'relative',\n display: 'flex',\n gap: '12px',\n alignItems: 'flex-start',\n }}\n onMouseEnter={(e) => {\n e.currentTarget.style.backgroundColor = '#f9fafb';\n }}\n onMouseLeave={(e) => {\n e.currentTarget.style.backgroundColor = !item.isRead\n ? 'rgba(219,234,254,0.3)'\n : 'transparent';\n }}\n >\n {!item.isRead && (\n <span\n style={{\n position: 'absolute',\n top: '12px',\n right: '12px',\n width: '8px',\n height: '8px',\n background: '#ef4444',\n borderRadius: '50%',\n }}\n />\n )}\n <div\n style={{\n width: '32px',\n height: '32px',\n borderRadius: '50%',\n background: getNotifBg(item.type),\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n fontSize: '13px',\n flexShrink: 0,\n marginTop: '2px',\n }}\n >\n {getNotifIcon(item.type)}\n </div>\n <div style={{ flex: 1, minWidth: 0 }}>\n <p\n style={{\n fontSize: '13px',\n fontWeight: !item.isRead ? 600 : 500,\n color: '#111',\n margin: '0 0 2px',\n }}\n >\n {item.title}\n </p>\n <p\n style={{\n fontSize: '12px',\n color: '#6b7280',\n margin: '0 0 4px',\n lineHeight: '18px',\n }}\n >\n {item.description}\n </p>\n <p\n style={{\n fontSize: '10px',\n color: '#9ca3af',\n margin: 0,\n fontWeight: 500,\n }}\n >\n {item.date}\n </p>\n </div>\n </div>\n ))\n )}\n </div>\n {/* Footer */}\n {onViewAll && (\n <div\n style={{\n padding: '10px',\n borderTop: '1px solid #f3f4f6',\n textAlign: 'center',\n background: '#fafafa',\n }}\n >\n <button\n onClick={onViewAll}\n style={{\n fontSize: '13px',\n color: '#6b7280',\n background: 'none',\n border: 'none',\n cursor: 'pointer',\n fontWeight: 500,\n width: '100%',\n padding: '4px',\n }}\n >\n ดูทั้งหมด\n </button>\n </div>\n )}\n </div>\n )}\n </div>\n\n {/* Hamburger Button */}\n {onToggleSidebar && (\n <button\n onClick={onToggleSidebar}\n style={{\n padding: '10px',\n borderRadius: '8px',\n border: 'none',\n background: 'transparent',\n cursor: 'pointer',\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n }}\n onMouseEnter={(e) => {\n e.currentTarget.style.backgroundColor = '#f3f4f6';\n }}\n onMouseLeave={(e) => {\n e.currentTarget.style.backgroundColor = 'transparent';\n }}\n >\n <HamburgerIcon />\n </button>\n )}\n </div>\n </div>\n </header>\n );\n}\n","'use client';\n\nimport { useEffect } from 'react';\nimport SidebarMenu from '../sidebar/SidebarMenu';\nimport type { User, MenuItem } from '../sidebar/types';\n\ninterface UserSidebarProps {\n user: User | null;\n roleLabel: string;\n menuItems: MenuItem[];\n onNavigate: (path: string) => void;\n onLogout: () => void;\n isOpen: boolean;\n onClose: () => void;\n roleColor?: string;\n}\n\nfunction LogoutIcon() {\n return (\n <svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" strokeWidth=\"2\" strokeLinecap=\"round\" strokeLinejoin=\"round\">\n <path d=\"M9 21H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h4\" />\n <polyline points=\"16 17 21 12 16 7\" />\n <line x1=\"21\" y1=\"12\" x2=\"9\" y2=\"12\" />\n </svg>\n );\n}\n\nexport default function UserSidebar({\n user,\n roleLabel,\n menuItems,\n onNavigate,\n onLogout,\n isOpen,\n onClose,\n roleColor = 'var(--color-alias-semantic-warning, orange)',\n}: UserSidebarProps) {\n // Prevent body scroll when open\n useEffect(() => {\n if (isOpen) {\n document.body.style.overflow = 'hidden';\n } else {\n document.body.style.overflow = '';\n }\n return () => {\n document.body.style.overflow = '';\n };\n }, [isOpen]);\n\n const getFullName = () => {\n if (!user) return 'ผู้ใช้';\n if (user.firstName && user.lastName) return `${user.firstName} ${user.lastName}`;\n return user.firstName || user.lastName || 'ผู้ใช้';\n };\n\n const getInitial = () => {\n if (!user) return '?';\n return user.firstName?.charAt(0) || user.lastName?.charAt(0) || '?';\n };\n\n const handleMenuClick = (path: string) => {\n onNavigate(path);\n onClose();\n };\n\n const handleLogout = () => {\n onClose();\n onLogout();\n };\n\n return (\n <>\n {/* Overlay */}\n {isOpen && (\n <div\n onClick={onClose}\n style={{\n position: 'fixed',\n inset: 0,\n background: 'rgba(0,0,0,0.5)',\n zIndex: 40,\n transition: 'opacity 0.3s ease',\n }}\n />\n )}\n\n {/* Sidebar Panel */}\n <aside\n style={{\n position: 'fixed',\n top: 0,\n right: 0,\n height: '100%',\n width: '80vw',\n maxWidth: '320px',\n background: '#fff',\n boxShadow: '-4px 0 24px rgba(0,0,0,0.12)',\n zIndex: 50,\n transform: isOpen ? 'translateX(0)' : 'translateX(100%)',\n transition: 'transform 0.3s ease',\n display: 'flex',\n flexDirection: 'column',\n }}\n >\n {/* User Profile */}\n {user && (\n <div\n style={{\n padding: '20px',\n borderBottom: '1px solid var(--color-border-colors-neutral, #e5e7eb)',\n }}\n >\n <div style={{ display: 'flex', alignItems: 'center', gap: '12px' }}>\n {user.pictureUrl ? (\n <img\n src={user.pictureUrl}\n alt={getFullName()}\n style={{\n width: '56px',\n height: '56px',\n borderRadius: '50%',\n objectFit: 'cover',\n boxShadow: '0 2px 8px rgba(0,0,0,0.1)',\n }}\n />\n ) : (\n <div\n style={{\n width: '56px',\n height: '56px',\n borderRadius: '50%',\n background: 'linear-gradient(135deg, var(--color-alias-color-brand-secondary, #80d897), var(--color-alias-color-brand-primary, #1e7d55))',\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n color: '#fff',\n fontWeight: 700,\n fontSize: '20px',\n boxShadow: '0 2px 8px rgba(0,0,0,0.1)',\n }}\n >\n {getInitial()}\n </div>\n )}\n <div style={{ flex: 1, minWidth: 0 }}>\n <p\n style={{\n fontWeight: 700,\n fontSize: '16px',\n color: 'var(--color-alias-text-colors-primary, #060d26)',\n margin: 0,\n overflow: 'hidden',\n textOverflow: 'ellipsis',\n whiteSpace: 'nowrap',\n }}\n >\n {getFullName()}\n </p>\n <p\n style={{\n fontSize: '13px',\n color: 'var(--color-alias-text-colors-tertiary, #6b7280)',\n margin: '2px 0 0',\n display: 'flex',\n alignItems: 'center',\n gap: '6px',\n }}\n >\n <span\n style={{\n width: '8px',\n height: '8px',\n borderRadius: '50%',\n background: roleColor,\n display: 'inline-block',\n }}\n />\n {roleLabel}\n </p>\n </div>\n </div>\n </div>\n )}\n\n {/* Menu Items */}\n <SidebarMenu\n menuItems={menuItems}\n onItemClick={handleMenuClick}\n />\n\n {/* Logout Button */}\n <div\n style={{\n padding: '20px',\n borderTop: '1px solid var(--color-border-colors-neutral, #e5e7eb)',\n }}\n >\n <button\n onClick={handleLogout}\n onMouseEnter={(e) => {\n e.currentTarget.style.backgroundColor = '#fef2f2';\n }}\n onMouseLeave={(e) => {\n e.currentTarget.style.backgroundColor = 'transparent';\n }}\n style={{\n width: '100%',\n display: 'flex',\n alignItems: 'center',\n gap: '16px',\n padding: '14px 16px',\n borderRadius: '8px',\n border: 'none',\n background: 'transparent',\n color: 'var(--color-alias-semantic-critical, #ef4444)',\n cursor: 'pointer',\n transition: 'background-color 0.15s ease',\n fontSize: '15px',\n fontWeight: 500,\n }}\n >\n <LogoutIcon />\n <span>ออกจากระบบ</span>\n </button>\n </div>\n </aside>\n </>\n );\n}\n"]}
|
package/dist/index.mjs
CHANGED
|
@@ -566,12 +566,11 @@ function StaffSidebar({
|
|
|
566
566
|
},
|
|
567
567
|
style: {
|
|
568
568
|
position: "fixed",
|
|
569
|
-
top: "
|
|
569
|
+
top: "10%",
|
|
570
570
|
left: currentWidth,
|
|
571
|
-
transform: "translateY(-50%)",
|
|
572
571
|
zIndex: 41,
|
|
573
572
|
width: "24px",
|
|
574
|
-
height: "
|
|
573
|
+
height: "40px",
|
|
575
574
|
borderRadius: "0 6px 6px 0",
|
|
576
575
|
border: "1px solid var(--color-border-colors-neutral, #c8cedd)",
|
|
577
576
|
borderLeft: "none",
|
package/dist/index.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/sidebar/SidebarHeader.tsx","../src/sidebar/SidebarMenu.tsx","../src/sidebar/SidebarUserProfile.tsx","../src/sidebar/StaffSidebar.tsx","../src/header/UserHeader.tsx","../src/header/UserSidebar.tsx"],"names":["jsx","jsxs","useState","Fragment","LogoutIcon","useEffect"],"mappings":"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","file":"index.mjs","sourcesContent":["'use client';\n\ninterface SidebarHeaderProps {\n orgLogo?: string;\n orgName: string;\n orgSubtitle?: string;\n collapsed?: boolean;\n}\n\nexport default function SidebarHeader({ orgLogo, orgName, orgSubtitle, collapsed }: SidebarHeaderProps) {\n if (collapsed) {\n return (\n <div style={{\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n padding: '20px 8px',\n }}>\n {orgLogo ? (\n <img\n src={orgLogo}\n alt={orgName}\n style={{\n width: '36px',\n height: '36px',\n borderRadius: '50%',\n objectFit: 'cover',\n }}\n />\n ) : (\n <div style={{\n width: '36px',\n height: '36px',\n borderRadius: '50%',\n background: 'var(--color-alias-color-brand-primary, #1e7d55)',\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n color: '#fff',\n fontWeight: 700,\n fontSize: '14px',\n }}>\n {orgName.charAt(0)}\n </div>\n )}\n </div>\n );\n }\n\n return (\n <div style={{\n display: 'flex',\n alignItems: 'center',\n gap: '12px',\n padding: '24px 20px',\n }}>\n {orgLogo && (\n <img\n src={orgLogo}\n alt={orgName}\n style={{\n width: '48px',\n height: '48px',\n borderRadius: '50%',\n objectFit: 'cover',\n flexShrink: 0,\n }}\n />\n )}\n <div style={{ minWidth: 0 }}>\n <p style={{\n fontWeight: 700,\n fontSize: '16px',\n lineHeight: '22px',\n color: 'var(--color-alias-color-brand-text-dark, #05010e)',\n margin: 0,\n overflow: 'hidden',\n textOverflow: 'ellipsis',\n whiteSpace: 'nowrap',\n }}>\n {orgName}\n </p>\n {orgSubtitle && (\n <p style={{\n fontSize: '14px',\n lineHeight: '20px',\n color: 'var(--color-alias-text-colors-tertiary, #475272)',\n margin: 0,\n overflow: 'hidden',\n textOverflow: 'ellipsis',\n whiteSpace: 'nowrap',\n }}>\n {orgSubtitle}\n </p>\n )}\n </div>\n </div>\n );\n}\n","'use client';\n\nimport { useState } from 'react';\nimport type { MenuItem } from './types';\n\ninterface SidebarMenuProps {\n menuItems: MenuItem[];\n onItemClick: (path: string) => void;\n currentPath?: string;\n collapsed?: boolean;\n}\n\nfunction ChevronDownIcon({ isOpen }: { isOpen: boolean }) {\n return (\n <svg\n width=\"16\"\n height=\"16\"\n viewBox=\"0 0 20 20\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n style={{\n transition: 'transform 0.2s ease',\n transform: isOpen ? 'rotate(180deg)' : 'rotate(0deg)',\n flexShrink: 0,\n }}\n >\n <path d=\"M5 7.5L10 12.5L15 7.5\" />\n </svg>\n );\n}\n\nfunction MenuItemComponent({\n item,\n onItemClick,\n currentPath,\n depth = 0,\n collapsed = false,\n}: {\n item: MenuItem;\n onItemClick: (path: string) => void;\n currentPath?: string;\n depth?: number;\n collapsed?: boolean;\n}) {\n const [isOpen, setIsOpen] = useState(false);\n const hasChildren = item.children && item.children.length > 0;\n const isActive = item.path ? currentPath === item.path : false;\n const isChildActive = hasChildren\n ? item.children!.some((child) => child.path === currentPath)\n : false;\n const expanded = isOpen || isChildActive;\n\n const handleClick = () => {\n if (hasChildren) {\n setIsOpen(!isOpen);\n } else if (item.path) {\n onItemClick(item.path);\n }\n };\n\n const activeColor = 'var(--color-alias-color-brand-primary, #1e7d55)';\n const hoverBg = 'var(--color-foundations-fuji-pallet-light, #ebedf5)';\n\n // Collapsed mode: icon only\n if (collapsed && depth === 0) {\n return (\n <li>\n <button\n onClick={handleClick}\n title={item.title}\n onMouseEnter={(e) => {\n if (!isActive) e.currentTarget.style.backgroundColor = hoverBg;\n }}\n onMouseLeave={(e) => {\n if (!isActive) e.currentTarget.style.backgroundColor = 'transparent';\n }}\n style={{\n width: '100%',\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n padding: '12px 0',\n borderRadius: '8px',\n border: 'none',\n background: isActive || isChildActive\n ? `color-mix(in srgb, ${activeColor} 10%, transparent)`\n : 'transparent',\n color: isActive || isChildActive\n ? activeColor\n : 'var(--color-alias-text-colors-tertiary, #475272)',\n cursor: 'pointer',\n transition: 'background-color 0.15s ease',\n }}\n >\n {item.icon && (\n <span style={{\n width: '24px',\n height: '24px',\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n }}>\n {item.icon}\n </span>\n )}\n </button>\n {item.dividerAfter && (\n <hr style={{\n border: 'none',\n borderTop: '1px solid var(--color-border-colors-neutral, #c8cedd)',\n margin: '8px 4px',\n }} />\n )}\n </li>\n );\n }\n\n return (\n <>\n <li>\n <button\n onClick={handleClick}\n onMouseEnter={(e) => {\n if (!isActive) e.currentTarget.style.backgroundColor = hoverBg;\n }}\n onMouseLeave={(e) => {\n if (!isActive) e.currentTarget.style.backgroundColor = 'transparent';\n }}\n style={{\n width: '100%',\n display: 'flex',\n alignItems: 'center',\n gap: '12px',\n padding: depth > 0 ? '10px 16px 10px 52px' : '12px 16px',\n borderRadius: '8px',\n border: 'none',\n background: isActive ? `color-mix(in srgb, ${activeColor} 10%, transparent)` : 'transparent',\n color: isActive\n ? activeColor\n : 'var(--color-alias-text-colors-primary, #060d26)',\n cursor: 'pointer',\n transition: 'background-color 0.15s ease',\n textAlign: 'left',\n fontSize: '15px',\n fontWeight: isActive ? 600 : 400,\n lineHeight: '22px',\n }}\n >\n {item.icon && (\n <span style={{\n width: '24px',\n height: '24px',\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n flexShrink: 0,\n color: isActive\n ? activeColor\n : 'var(--color-alias-text-colors-tertiary, #475272)',\n }}>\n {item.icon}\n </span>\n )}\n <span style={{ flex: 1 }}>{item.title}</span>\n {hasChildren && <ChevronDownIcon isOpen={expanded} />}\n </button>\n </li>\n {hasChildren && expanded && (\n <ul style={{ listStyle: 'none', margin: 0, padding: 0 }}>\n {item.children!.map((child) => (\n <MenuItemComponent\n key={child.id}\n item={child}\n onItemClick={onItemClick}\n currentPath={currentPath}\n depth={depth + 1}\n />\n ))}\n </ul>\n )}\n {item.dividerAfter && (\n <li>\n <hr style={{\n border: 'none',\n borderTop: '1px solid var(--color-border-colors-neutral, #c8cedd)',\n margin: '8px 0',\n }} />\n </li>\n )}\n </>\n );\n}\n\nexport default function SidebarMenu({ menuItems, onItemClick, currentPath, collapsed }: SidebarMenuProps) {\n return (\n <nav style={{\n flex: collapsed ? undefined : 1,\n padding: collapsed ? '8px 8px' : '8px 12px',\n overflowY: 'auto',\n }}>\n <ul style={{\n listStyle: 'none',\n margin: 0,\n padding: 0,\n display: 'flex',\n flexDirection: 'column',\n gap: '2px',\n }}>\n {menuItems.map((item) => (\n <MenuItemComponent\n key={item.id}\n item={item}\n onItemClick={onItemClick}\n currentPath={currentPath}\n collapsed={collapsed}\n />\n ))}\n </ul>\n </nav>\n );\n}\n","'use client';\n\nimport type { User } from './types';\n\ninterface SidebarUserProfileProps {\n user: User | null;\n roleLabel: string;\n onLogout: () => void;\n collapsed?: boolean;\n}\n\nfunction LogoutIcon() {\n return (\n <svg\n width=\"20\"\n height=\"20\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n >\n <path d=\"M9 21H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h4\" />\n <polyline points=\"16 17 21 12 16 7\" />\n <line x1=\"21\" y1=\"12\" x2=\"9\" y2=\"12\" />\n </svg>\n );\n}\n\nexport default function SidebarUserProfile({\n user,\n roleLabel,\n onLogout,\n collapsed,\n}: SidebarUserProfileProps) {\n if (!user) return null;\n\n const getFullName = () => {\n if (user.firstName && user.lastName) {\n return `${user.firstName} ${user.lastName}`;\n }\n return user.firstName || user.lastName || 'ผู้ใช้';\n };\n\n const getInitial = () => {\n return user.firstName?.charAt(0) || user.lastName?.charAt(0) || '?';\n };\n\n // Collapsed: avatar + logout icon only\n if (collapsed) {\n return (\n <div style={{\n padding: '12px 8px',\n borderTop: '1px solid var(--color-border-colors-neutral, #c8cedd)',\n display: 'flex',\n flexDirection: 'column',\n alignItems: 'center',\n gap: '12px',\n }}>\n {user.pictureUrl ? (\n <img\n src={user.pictureUrl}\n alt={getFullName()}\n title={getFullName()}\n style={{\n width: '36px',\n height: '36px',\n borderRadius: '50%',\n objectFit: 'cover',\n }}\n />\n ) : (\n <div\n title={getFullName()}\n style={{\n width: '36px',\n height: '36px',\n borderRadius: '50%',\n background: 'var(--color-alias-color-brand-primary, #1e7d55)',\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n color: '#fff',\n fontWeight: 700,\n fontSize: '14px',\n }}\n >\n {getInitial()}\n </div>\n )}\n <button\n onClick={onLogout}\n title=\"ออกจากระบบ\"\n onMouseEnter={(e) => {\n e.currentTarget.style.backgroundColor = 'var(--color-foundations-fuan-pallet-light, #ffd2d2)';\n }}\n onMouseLeave={(e) => {\n e.currentTarget.style.backgroundColor = 'transparent';\n }}\n style={{\n width: '36px',\n height: '36px',\n borderRadius: '8px',\n border: 'none',\n background: 'transparent',\n color: 'var(--color-alias-semantic-critical, #f21515)',\n cursor: 'pointer',\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n transition: 'background-color 0.15s ease',\n }}\n >\n <LogoutIcon />\n </button>\n </div>\n );\n }\n\n // Expanded\n return (\n <div\n style={{\n padding: '16px 20px',\n borderTop: '1px solid var(--color-border-colors-neutral, #c8cedd)',\n display: 'flex',\n alignItems: 'center',\n gap: '12px',\n }}\n >\n {user.pictureUrl ? (\n <img\n src={user.pictureUrl}\n alt={getFullName()}\n style={{\n width: '40px',\n height: '40px',\n borderRadius: '50%',\n objectFit: 'cover',\n flexShrink: 0,\n }}\n />\n ) : (\n <div\n style={{\n width: '40px',\n height: '40px',\n borderRadius: '50%',\n background: 'var(--color-alias-color-brand-primary, #1e7d55)',\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n color: '#fff',\n fontWeight: 700,\n fontSize: '16px',\n flexShrink: 0,\n }}\n >\n {getInitial()}\n </div>\n )}\n <div style={{ flex: 1, minWidth: 0 }}>\n <p style={{\n fontWeight: 600,\n fontSize: '14px',\n lineHeight: '20px',\n color: 'var(--color-alias-text-colors-primary, #060d26)',\n margin: 0,\n overflow: 'hidden',\n textOverflow: 'ellipsis',\n whiteSpace: 'nowrap',\n }}>\n {getFullName()}\n </p>\n <p style={{\n fontSize: '12px',\n lineHeight: '16px',\n color: 'var(--color-alias-text-colors-tertiary, #475272)',\n margin: 0,\n }}>\n {roleLabel}\n </p>\n </div>\n <button\n onClick={onLogout}\n title=\"ออกจากระบบ\"\n onMouseEnter={(e) => {\n e.currentTarget.style.backgroundColor = 'var(--color-foundations-fuan-pallet-light, #ffd2d2)';\n e.currentTarget.style.color = 'var(--color-alias-semantic-critical, #f21515)';\n }}\n onMouseLeave={(e) => {\n e.currentTarget.style.backgroundColor = 'transparent';\n e.currentTarget.style.color = 'var(--color-alias-semantic-critical, #f21515)';\n }}\n style={{\n width: '36px',\n height: '36px',\n borderRadius: '8px',\n border: 'none',\n background: 'transparent',\n color: 'var(--color-alias-semantic-critical, #f21515)',\n cursor: 'pointer',\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n transition: 'background-color 0.15s ease',\n flexShrink: 0,\n }}\n >\n <LogoutIcon />\n </button>\n </div>\n );\n}\n","'use client';\n\nimport { useState } from 'react';\nimport SidebarHeader from './SidebarHeader';\nimport SidebarMenu from './SidebarMenu';\nimport SidebarUserProfile from './SidebarUserProfile';\nimport type { StaffSidebarProps } from './types';\n\nfunction ToggleIcon({ isOpen }: { isOpen: boolean }) {\n return (\n <svg\n width=\"18\"\n height=\"18\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n style={{\n transition: 'transform 0.2s ease',\n transform: isOpen ? 'rotate(0deg)' : 'rotate(180deg)',\n }}\n >\n <path d=\"M15 18l-6-6 6-6\" />\n </svg>\n );\n}\n\nexport default function StaffSidebar({\n orgLogo,\n orgName,\n orgSubtitle,\n menuItems,\n bottomMenuItems,\n user,\n roleLabel,\n onNavigate,\n onLogout,\n currentPath,\n width = '280px',\n className,\n collapsible = false,\n isOpen: controlledIsOpen,\n onToggle,\n}: StaffSidebarProps) {\n const [internalOpen, setInternalOpen] = useState(true);\n const sidebarOpen = controlledIsOpen !== undefined ? controlledIsOpen : internalOpen;\n const collapsed = collapsible && !sidebarOpen;\n const collapsedWidth = '64px';\n const currentWidth = collapsed ? collapsedWidth : width;\n\n const handleToggle = () => {\n if (onToggle) {\n onToggle();\n } else {\n setInternalOpen(!internalOpen);\n }\n };\n\n return (\n <>\n <aside\n className={className}\n style={{\n position: 'fixed',\n top: 0,\n left: 0,\n height: '100vh',\n width: currentWidth,\n background: '#fff',\n borderRight: '1px solid var(--color-border-colors-neutral, #c8cedd)',\n display: 'flex',\n flexDirection: 'column',\n zIndex: 40,\n overflow: 'hidden',\n transition: 'width 0.3s ease',\n }}\n >\n {/* Organization Header */}\n <SidebarHeader\n orgLogo={orgLogo}\n orgName={orgName}\n orgSubtitle={orgSubtitle}\n collapsed={collapsed}\n />\n\n {/* Main Menu */}\n <SidebarMenu\n menuItems={menuItems}\n onItemClick={onNavigate}\n currentPath={currentPath}\n collapsed={collapsed}\n />\n\n {/* Bottom Menu (e.g. Settings) */}\n {bottomMenuItems && bottomMenuItems.length > 0 && (\n <SidebarMenu\n menuItems={bottomMenuItems}\n onItemClick={onNavigate}\n currentPath={currentPath}\n collapsed={collapsed}\n />\n )}\n\n {/* User Profile */}\n <SidebarUserProfile\n user={user}\n roleLabel={roleLabel}\n onLogout={onLogout}\n collapsed={collapsed}\n />\n </aside>\n\n {/* Toggle Button */}\n {collapsible && (\n <button\n onClick={handleToggle}\n title={sidebarOpen ? 'ย่อ Sidebar' : 'ขยาย Sidebar'}\n onMouseEnter={(e) => {\n e.currentTarget.style.backgroundColor = '#f3f4f6';\n }}\n onMouseLeave={(e) => {\n e.currentTarget.style.backgroundColor = '#fff';\n }}\n style={{\n position: 'fixed',\n top: '50%',\n left: currentWidth,\n transform: 'translateY(-50%)',\n zIndex: 41,\n width: '24px',\n height: '48px',\n borderRadius: '0 6px 6px 0',\n border: '1px solid var(--color-border-colors-neutral, #c8cedd)',\n borderLeft: 'none',\n background: '#fff',\n cursor: 'pointer',\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n boxShadow: '2px 0 8px rgba(0,0,0,0.06)',\n transition: 'left 0.3s ease',\n color: 'var(--color-alias-text-colors-tertiary, #475272)',\n }}\n >\n <ToggleIcon isOpen={sidebarOpen} />\n </button>\n )}\n </>\n );\n}\n","'use client';\n\nimport { useState, useRef, useEffect } from 'react';\n\nexport interface NotificationItem {\n id: string | number;\n title: string;\n description: string;\n date: string;\n type: 'info' | 'success' | 'warning' | 'error' | 'reminder';\n isRead: boolean;\n}\n\ninterface UserHeaderProps {\n user?: {\n firstName?: string;\n lastName?: string;\n pictureUrl?: string;\n };\n notifications?: NotificationItem[];\n onToggleSidebar?: () => void;\n /** Custom bell icon */\n notificationBell?: React.ReactNode;\n onMarkAllRead?: () => void;\n onViewAll?: () => void;\n className?: string;\n}\n\nfunction BellIcon() {\n return (\n <svg width=\"22\" height=\"24\" viewBox=\"0 0 22 24\" fill=\"none\">\n <path\n d=\"M21.2321 13.4463L19.3618 6.71712C18.8136 4.74574 17.6222 3.01418 15.9769 1.79767C14.3316 0.581165 12.3269 -0.0504751 10.2814 0.00315377C8.23593 0.0567826 6.26708 0.792603 4.6878 2.09365C3.10852 3.3947 2.00945 5.18632 1.5653 7.18371L0.11728 13.6954C-0.0426654 14.4149 -0.0389674 15.1611 0.128101 15.879C0.29517 16.5969 0.621344 17.2681 1.08254 17.8431C1.54374 18.418 2.12818 18.8821 2.79272 19.2009C3.45727 19.5198 4.18494 19.6853 4.92202 19.6853H6.01861C6.24454 20.7979 6.84817 21.7982 7.72723 22.5167C8.60629 23.2352 9.70671 23.6277 10.842 23.6277C11.9774 23.6277 13.0778 23.2352 13.9569 22.5167C14.8359 21.7982 15.4396 20.7979 15.6655 19.6853H16.4904C17.2492 19.6853 17.9977 19.5099 18.6774 19.1728C19.3572 18.8357 19.9498 18.346 20.409 17.742C20.8682 17.1379 21.1815 16.4359 21.3245 15.6907C21.4674 14.9455 21.4352 14.1774 21.2321 13.4463ZM10.842 21.654C10.2334 21.6515 9.64049 21.461 9.1443 21.1086C8.6481 20.7562 8.27291 20.2591 8.07005 19.6853H13.614C13.4112 20.2591 13.036 20.7562 12.5398 21.1086C12.0436 21.461 11.4506 21.6515 10.842 21.654ZM18.8411 16.55C18.5668 16.9139 18.2114 17.2088 17.8032 17.4113C17.3949 17.6138 16.9451 17.7183 16.4894 17.7165H4.92202C4.47982 17.7164 4.04328 17.6171 3.64463 17.4257C3.24598 17.2344 2.89539 16.9559 2.61874 16.611C2.34208 16.266 2.14643 15.8633 2.04622 15.4326C1.94602 15.0019 1.94381 14.5542 2.03977 14.1226L3.4868 7.60994C3.83561 6.04105 4.69886 4.63379 5.93932 3.61186C7.17978 2.58992 8.72625 2.01197 10.3329 1.96988C11.9395 1.92779 13.5142 2.42398 14.8064 3.37956C16.0987 4.33515 17.0344 5.69528 17.4649 7.24376L19.3352 13.9729C19.4588 14.4114 19.4785 14.8725 19.3927 15.3199C19.3069 15.7672 19.1181 16.1884 18.8411 16.55Z\"\n fill=\"var(--color-alias-color-brand-text-dark, #05010e)\"\n />\n </svg>\n );\n}\n\nfunction HamburgerIcon() {\n return (\n <svg width=\"24\" height=\"18\" viewBox=\"0 0 27 18\" fill=\"none\">\n <path\n d=\"M1.1875 17.8426C0.851042 17.8426 0.569077 17.7287 0.341604 17.501C0.113868 17.2735 0 16.9914 0 16.6547C0 16.3182 0.113868 16.0363 0.341604 15.8088C0.569077 15.5816 0.851042 15.468 1.1875 15.468H25.7292C26.0656 15.468 26.3476 15.5817 26.5751 15.8092C26.8028 16.0369 26.9167 16.3192 26.9167 16.6559C26.9167 16.9923 26.8028 17.2743 26.5751 17.5018C26.3476 17.729 26.0656 17.8426 25.7292 17.8426H1.1875ZM1.1875 10.1088C0.851042 10.1088 0.569077 9.99492 0.341604 9.76719C0.113868 9.53945 0 9.25735 0 8.9209C0 8.58417 0.113868 8.30221 0.341604 8.075C0.569077 7.84753 0.851042 7.73379 1.1875 7.73379H25.7292C26.0656 7.73379 26.3476 7.84766 26.5751 8.0754C26.8028 8.30313 26.9167 8.58523 26.9167 8.92169C26.9167 9.25841 26.8028 9.54037 26.5751 9.76758C26.3476 9.99506 26.0656 10.1088 25.7292 10.1088H1.1875ZM1.1875 2.3746C0.851042 2.3746 0.569077 2.26087 0.341604 2.0334C0.113868 1.80566 0 1.52343 0 1.18671C0 0.850249 0.113868 0.568284 0.341604 0.340812C0.569077 0.113604 0.851042 0 1.1875 0H25.7292C26.0656 0 26.3476 0.113868 26.5751 0.341604C26.8028 0.569077 26.9167 0.851174 26.9167 1.1879C26.9167 1.52435 26.8028 1.80632 26.5751 2.03379C26.3476 2.261 26.0656 2.3746 25.7292 2.3746H1.1875Z\"\n fill=\"var(--color-alias-color-brand-text-dark, #05010e)\"\n />\n </svg>\n );\n}\n\nfunction getNotifBg(type: NotificationItem['type']) {\n const map: Record<string, string> = {\n success: '#dcfce7',\n warning: '#fef9c3',\n error: '#fee2e2',\n reminder: '#f3e8ff',\n info: '#dbeafe',\n };\n return map[type] || map.info;\n}\n\nfunction getNotifIcon(type: NotificationItem['type']) {\n const map: Record<string, string> = {\n success: '✓',\n warning: '!',\n error: '✕',\n reminder: '⏰',\n info: 'i',\n };\n return map[type] || map.info;\n}\n\nexport default function UserHeader({\n user,\n notifications = [],\n onToggleSidebar,\n notificationBell,\n onMarkAllRead,\n onViewAll,\n className,\n}: UserHeaderProps) {\n const displayName =\n `${user?.firstName || ''} ${user?.lastName || ''}`.trim() || 'ผู้ใช้';\n const firstChar = user?.firstName?.charAt(0) || 'ผ';\n const [isNotifOpen, setIsNotifOpen] = useState(false);\n const notifRef = useRef<HTMLDivElement>(null);\n\n useEffect(() => {\n const handleClickOutside = (e: MouseEvent) => {\n if (notifRef.current && !notifRef.current.contains(e.target as Node)) {\n setIsNotifOpen(false);\n }\n };\n document.addEventListener('mousedown', handleClickOutside);\n return () => document.removeEventListener('mousedown', handleClickOutside);\n }, []);\n\n const unreadCount = notifications.filter((n) => !n.isRead).length;\n\n return (\n <header\n className={className}\n style={{\n background: '#fff',\n boxShadow: '0 1px 3px rgba(0,0,0,0.08)',\n position: 'sticky',\n top: 0,\n zIndex: 10,\n }}\n >\n <div\n style={{\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'space-between',\n padding: '14px 20px',\n }}\n >\n {/* Avatar & Name */}\n <div style={{ display: 'flex', alignItems: 'center', gap: '12px' }}>\n {user?.pictureUrl ? (\n <img\n src={user.pictureUrl}\n alt={displayName}\n style={{\n width: '44px',\n height: '44px',\n borderRadius: '50%',\n objectFit: 'cover',\n border: '2px solid var(--color-alias-color-brand-surface, #faf9e5)',\n }}\n />\n ) : (\n <div\n style={{\n width: '44px',\n height: '44px',\n borderRadius: '50%',\n background: 'linear-gradient(135deg, var(--color-alias-color-brand-secondary, #80d897), var(--color-alias-color-brand-primary, #1e7d55))',\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n boxShadow: '0 1px 3px rgba(0,0,0,0.1)',\n }}\n >\n <span\n style={{ color: '#fff', fontSize: '18px', fontWeight: 600 }}\n >\n {firstChar}\n </span>\n </div>\n )}\n <div>\n <p\n style={{\n fontSize: '14px',\n fontWeight: 600,\n color: 'var(--color-alias-color-brand-text-dark, #05010e)',\n margin: 0,\n }}\n >\n สวัสดี,{' '}\n <span\n style={{\n color: 'var(--color-alias-color-brand-primary, #1e7d55)',\n }}\n >\n {displayName}\n </span>\n </p>\n </div>\n </div>\n\n {/* Right Side */}\n <div style={{ display: 'flex', alignItems: 'center', gap: '4px' }}>\n {/* Notification Bell */}\n <div style={{ position: 'relative' }} ref={notifRef}>\n {notificationBell || (\n <button\n onClick={() => setIsNotifOpen(!isNotifOpen)}\n style={{\n padding: '10px',\n borderRadius: '8px',\n border: 'none',\n background: 'transparent',\n cursor: 'pointer',\n position: 'relative',\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n }}\n onMouseEnter={(e) => {\n e.currentTarget.style.backgroundColor = '#f3f4f6';\n }}\n onMouseLeave={(e) => {\n e.currentTarget.style.backgroundColor = 'transparent';\n }}\n >\n <BellIcon />\n {unreadCount > 0 && (\n <span\n style={{\n position: 'absolute',\n top: '6px',\n right: '6px',\n minWidth: '18px',\n height: '18px',\n background: 'var(--color-alias-semantic-critical, #f21515)',\n borderRadius: '50%',\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n fontSize: '10px',\n fontWeight: 700,\n color: '#fff',\n padding: '0 4px',\n border: '2px solid #fff',\n }}\n >\n {unreadCount}\n </span>\n )}\n </button>\n )}\n\n {/* Notification Dropdown */}\n {isNotifOpen && (\n <div\n style={{\n position: 'absolute',\n right: 0,\n marginTop: '8px',\n width: '360px',\n background: '#fff',\n borderRadius: '12px',\n boxShadow: '0 10px 40px rgba(0,0,0,0.12)',\n zIndex: 50,\n overflow: 'hidden',\n border: '1px solid #e5e7eb',\n }}\n >\n {/* Header */}\n <div\n style={{\n padding: '16px',\n borderBottom: '1px solid #f3f4f6',\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'space-between',\n background: '#fafafa',\n }}\n >\n <span style={{ fontWeight: 600, fontSize: '14px', color: '#111' }}>\n การแจ้งเตือน\n </span>\n {onMarkAllRead && (\n <button\n onClick={onMarkAllRead}\n style={{\n fontSize: '12px',\n color: 'var(--color-alias-color-brand-primary, #1e7d55)',\n background: 'none',\n border: 'none',\n cursor: 'pointer',\n fontWeight: 500,\n }}\n >\n อ่านทั้งหมด\n </button>\n )}\n </div>\n {/* Items */}\n <div style={{ maxHeight: '60vh', overflowY: 'auto' }}>\n {notifications.length === 0 ? (\n <div\n style={{\n padding: '32px',\n textAlign: 'center',\n color: '#9ca3af',\n fontSize: '14px',\n }}\n >\n 🔔 ไม่มีการแจ้งเตือนใหม่\n </div>\n ) : (\n notifications.map((item) => (\n <div\n key={item.id}\n style={{\n padding: '12px 16px',\n borderBottom: '1px solid #f9fafb',\n cursor: 'pointer',\n background: !item.isRead ? 'rgba(219,234,254,0.3)' : 'transparent',\n position: 'relative',\n display: 'flex',\n gap: '12px',\n alignItems: 'flex-start',\n }}\n onMouseEnter={(e) => {\n e.currentTarget.style.backgroundColor = '#f9fafb';\n }}\n onMouseLeave={(e) => {\n e.currentTarget.style.backgroundColor = !item.isRead\n ? 'rgba(219,234,254,0.3)'\n : 'transparent';\n }}\n >\n {!item.isRead && (\n <span\n style={{\n position: 'absolute',\n top: '12px',\n right: '12px',\n width: '8px',\n height: '8px',\n background: '#ef4444',\n borderRadius: '50%',\n }}\n />\n )}\n <div\n style={{\n width: '32px',\n height: '32px',\n borderRadius: '50%',\n background: getNotifBg(item.type),\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n fontSize: '13px',\n flexShrink: 0,\n marginTop: '2px',\n }}\n >\n {getNotifIcon(item.type)}\n </div>\n <div style={{ flex: 1, minWidth: 0 }}>\n <p\n style={{\n fontSize: '13px',\n fontWeight: !item.isRead ? 600 : 500,\n color: '#111',\n margin: '0 0 2px',\n }}\n >\n {item.title}\n </p>\n <p\n style={{\n fontSize: '12px',\n color: '#6b7280',\n margin: '0 0 4px',\n lineHeight: '18px',\n }}\n >\n {item.description}\n </p>\n <p\n style={{\n fontSize: '10px',\n color: '#9ca3af',\n margin: 0,\n fontWeight: 500,\n }}\n >\n {item.date}\n </p>\n </div>\n </div>\n ))\n )}\n </div>\n {/* Footer */}\n {onViewAll && (\n <div\n style={{\n padding: '10px',\n borderTop: '1px solid #f3f4f6',\n textAlign: 'center',\n background: '#fafafa',\n }}\n >\n <button\n onClick={onViewAll}\n style={{\n fontSize: '13px',\n color: '#6b7280',\n background: 'none',\n border: 'none',\n cursor: 'pointer',\n fontWeight: 500,\n width: '100%',\n padding: '4px',\n }}\n >\n ดูทั้งหมด\n </button>\n </div>\n )}\n </div>\n )}\n </div>\n\n {/* Hamburger Button */}\n {onToggleSidebar && (\n <button\n onClick={onToggleSidebar}\n style={{\n padding: '10px',\n borderRadius: '8px',\n border: 'none',\n background: 'transparent',\n cursor: 'pointer',\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n }}\n onMouseEnter={(e) => {\n e.currentTarget.style.backgroundColor = '#f3f4f6';\n }}\n onMouseLeave={(e) => {\n e.currentTarget.style.backgroundColor = 'transparent';\n }}\n >\n <HamburgerIcon />\n </button>\n )}\n </div>\n </div>\n </header>\n );\n}\n","'use client';\n\nimport { useEffect } from 'react';\nimport SidebarMenu from '../sidebar/SidebarMenu';\nimport type { User, MenuItem } from '../sidebar/types';\n\ninterface UserSidebarProps {\n user: User | null;\n roleLabel: string;\n menuItems: MenuItem[];\n onNavigate: (path: string) => void;\n onLogout: () => void;\n isOpen: boolean;\n onClose: () => void;\n roleColor?: string;\n}\n\nfunction LogoutIcon() {\n return (\n <svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" strokeWidth=\"2\" strokeLinecap=\"round\" strokeLinejoin=\"round\">\n <path d=\"M9 21H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h4\" />\n <polyline points=\"16 17 21 12 16 7\" />\n <line x1=\"21\" y1=\"12\" x2=\"9\" y2=\"12\" />\n </svg>\n );\n}\n\nexport default function UserSidebar({\n user,\n roleLabel,\n menuItems,\n onNavigate,\n onLogout,\n isOpen,\n onClose,\n roleColor = 'var(--color-alias-semantic-warning, orange)',\n}: UserSidebarProps) {\n // Prevent body scroll when open\n useEffect(() => {\n if (isOpen) {\n document.body.style.overflow = 'hidden';\n } else {\n document.body.style.overflow = '';\n }\n return () => {\n document.body.style.overflow = '';\n };\n }, [isOpen]);\n\n const getFullName = () => {\n if (!user) return 'ผู้ใช้';\n if (user.firstName && user.lastName) return `${user.firstName} ${user.lastName}`;\n return user.firstName || user.lastName || 'ผู้ใช้';\n };\n\n const getInitial = () => {\n if (!user) return '?';\n return user.firstName?.charAt(0) || user.lastName?.charAt(0) || '?';\n };\n\n const handleMenuClick = (path: string) => {\n onNavigate(path);\n onClose();\n };\n\n const handleLogout = () => {\n onClose();\n onLogout();\n };\n\n return (\n <>\n {/* Overlay */}\n {isOpen && (\n <div\n onClick={onClose}\n style={{\n position: 'fixed',\n inset: 0,\n background: 'rgba(0,0,0,0.5)',\n zIndex: 40,\n transition: 'opacity 0.3s ease',\n }}\n />\n )}\n\n {/* Sidebar Panel */}\n <aside\n style={{\n position: 'fixed',\n top: 0,\n right: 0,\n height: '100%',\n width: '80vw',\n maxWidth: '320px',\n background: '#fff',\n boxShadow: '-4px 0 24px rgba(0,0,0,0.12)',\n zIndex: 50,\n transform: isOpen ? 'translateX(0)' : 'translateX(100%)',\n transition: 'transform 0.3s ease',\n display: 'flex',\n flexDirection: 'column',\n }}\n >\n {/* User Profile */}\n {user && (\n <div\n style={{\n padding: '20px',\n borderBottom: '1px solid var(--color-border-colors-neutral, #e5e7eb)',\n }}\n >\n <div style={{ display: 'flex', alignItems: 'center', gap: '12px' }}>\n {user.pictureUrl ? (\n <img\n src={user.pictureUrl}\n alt={getFullName()}\n style={{\n width: '56px',\n height: '56px',\n borderRadius: '50%',\n objectFit: 'cover',\n boxShadow: '0 2px 8px rgba(0,0,0,0.1)',\n }}\n />\n ) : (\n <div\n style={{\n width: '56px',\n height: '56px',\n borderRadius: '50%',\n background: 'linear-gradient(135deg, var(--color-alias-color-brand-secondary, #80d897), var(--color-alias-color-brand-primary, #1e7d55))',\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n color: '#fff',\n fontWeight: 700,\n fontSize: '20px',\n boxShadow: '0 2px 8px rgba(0,0,0,0.1)',\n }}\n >\n {getInitial()}\n </div>\n )}\n <div style={{ flex: 1, minWidth: 0 }}>\n <p\n style={{\n fontWeight: 700,\n fontSize: '16px',\n color: 'var(--color-alias-text-colors-primary, #060d26)',\n margin: 0,\n overflow: 'hidden',\n textOverflow: 'ellipsis',\n whiteSpace: 'nowrap',\n }}\n >\n {getFullName()}\n </p>\n <p\n style={{\n fontSize: '13px',\n color: 'var(--color-alias-text-colors-tertiary, #6b7280)',\n margin: '2px 0 0',\n display: 'flex',\n alignItems: 'center',\n gap: '6px',\n }}\n >\n <span\n style={{\n width: '8px',\n height: '8px',\n borderRadius: '50%',\n background: roleColor,\n display: 'inline-block',\n }}\n />\n {roleLabel}\n </p>\n </div>\n </div>\n </div>\n )}\n\n {/* Menu Items */}\n <SidebarMenu\n menuItems={menuItems}\n onItemClick={handleMenuClick}\n />\n\n {/* Logout Button */}\n <div\n style={{\n padding: '20px',\n borderTop: '1px solid var(--color-border-colors-neutral, #e5e7eb)',\n }}\n >\n <button\n onClick={handleLogout}\n onMouseEnter={(e) => {\n e.currentTarget.style.backgroundColor = '#fef2f2';\n }}\n onMouseLeave={(e) => {\n e.currentTarget.style.backgroundColor = 'transparent';\n }}\n style={{\n width: '100%',\n display: 'flex',\n alignItems: 'center',\n gap: '16px',\n padding: '14px 16px',\n borderRadius: '8px',\n border: 'none',\n background: 'transparent',\n color: 'var(--color-alias-semantic-critical, #ef4444)',\n cursor: 'pointer',\n transition: 'background-color 0.15s ease',\n fontSize: '15px',\n fontWeight: 500,\n }}\n >\n <LogoutIcon />\n <span>ออกจากระบบ</span>\n </button>\n </div>\n </aside>\n </>\n );\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["../src/sidebar/SidebarHeader.tsx","../src/sidebar/SidebarMenu.tsx","../src/sidebar/SidebarUserProfile.tsx","../src/sidebar/StaffSidebar.tsx","../src/header/UserHeader.tsx","../src/header/UserSidebar.tsx"],"names":["jsx","jsxs","useState","Fragment","LogoutIcon","useEffect"],"mappings":";;;;AASe,SAAR,cAA+B,EAAE,OAAA,EAAS,OAAA,EAAS,WAAA,EAAa,WAAU,EAAuB;AACtG,EAAA,IAAI,SAAA,EAAW;AACb,IAAA,uBACE,GAAA,CAAC,SAAI,KAAA,EAAO;AAAA,MACV,OAAA,EAAS,MAAA;AAAA,MACT,UAAA,EAAY,QAAA;AAAA,MACZ,cAAA,EAAgB,QAAA;AAAA,MAChB,OAAA,EAAS;AAAA,OAER,QAAA,EAAA,OAAA,mBACC,GAAA;AAAA,MAAC,KAAA;AAAA,MAAA;AAAA,QACC,GAAA,EAAK,OAAA;AAAA,QACL,GAAA,EAAK,OAAA;AAAA,QACL,KAAA,EAAO;AAAA,UACL,KAAA,EAAO,MAAA;AAAA,UACP,MAAA,EAAQ,MAAA;AAAA,UACR,YAAA,EAAc,KAAA;AAAA,UACd,SAAA,EAAW;AAAA;AACb;AAAA,KACF,mBAEA,GAAA,CAAC,KAAA,EAAA,EAAI,KAAA,EAAO;AAAA,MACV,KAAA,EAAO,MAAA;AAAA,MACP,MAAA,EAAQ,MAAA;AAAA,MACR,YAAA,EAAc,KAAA;AAAA,MACd,UAAA,EAAY,iDAAA;AAAA,MACZ,OAAA,EAAS,MAAA;AAAA,MACT,UAAA,EAAY,QAAA;AAAA,MACZ,cAAA,EAAgB,QAAA;AAAA,MAChB,KAAA,EAAO,MAAA;AAAA,MACP,UAAA,EAAY,GAAA;AAAA,MACZ,QAAA,EAAU;AAAA,KACZ,EACG,QAAA,EAAA,OAAA,CAAQ,MAAA,CAAO,CAAC,GACnB,CAAA,EAEJ,CAAA;AAAA,EAEJ;AAEA,EAAA,uBACE,IAAA,CAAC,SAAI,KAAA,EAAO;AAAA,IACV,OAAA,EAAS,MAAA;AAAA,IACT,UAAA,EAAY,QAAA;AAAA,IACZ,GAAA,EAAK,MAAA;AAAA,IACL,OAAA,EAAS;AAAA,GACX,EACG,QAAA,EAAA;AAAA,IAAA,OAAA,oBACC,GAAA;AAAA,MAAC,KAAA;AAAA,MAAA;AAAA,QACC,GAAA,EAAK,OAAA;AAAA,QACL,GAAA,EAAK,OAAA;AAAA,QACL,KAAA,EAAO;AAAA,UACL,KAAA,EAAO,MAAA;AAAA,UACP,MAAA,EAAQ,MAAA;AAAA,UACR,YAAA,EAAc,KAAA;AAAA,UACd,SAAA,EAAW,OAAA;AAAA,UACX,UAAA,EAAY;AAAA;AACd;AAAA,KACF;AAAA,yBAED,KAAA,EAAA,EAAI,KAAA,EAAO,EAAE,QAAA,EAAU,GAAE,EACxB,QAAA,EAAA;AAAA,sBAAA,GAAA,CAAC,OAAE,KAAA,EAAO;AAAA,QACR,UAAA,EAAY,GAAA;AAAA,QACZ,QAAA,EAAU,MAAA;AAAA,QACV,UAAA,EAAY,MAAA;AAAA,QACZ,KAAA,EAAO,mDAAA;AAAA,QACP,MAAA,EAAQ,CAAA;AAAA,QACR,QAAA,EAAU,QAAA;AAAA,QACV,YAAA,EAAc,UAAA;AAAA,QACd,UAAA,EAAY;AAAA,SAEX,QAAA,EAAA,OAAA,EACH,CAAA;AAAA,MACC,WAAA,oBACC,GAAA,CAAC,GAAA,EAAA,EAAE,KAAA,EAAO;AAAA,QACR,QAAA,EAAU,MAAA;AAAA,QACV,UAAA,EAAY,MAAA;AAAA,QACZ,KAAA,EAAO,kDAAA;AAAA,QACP,MAAA,EAAQ,CAAA;AAAA,QACR,QAAA,EAAU,QAAA;AAAA,QACV,YAAA,EAAc,UAAA;AAAA,QACd,UAAA,EAAY;AAAA,SAEX,QAAA,EAAA,WAAA,EACH;AAAA,KAAA,EAEJ;AAAA,GAAA,EACF,CAAA;AAEJ;ACtFA,SAAS,eAAA,CAAgB,EAAE,MAAA,EAAO,EAAwB;AACxD,EAAA,uBACEA,GAAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACC,KAAA,EAAM,IAAA;AAAA,MACN,MAAA,EAAO,IAAA;AAAA,MACP,OAAA,EAAQ,WAAA;AAAA,MACR,IAAA,EAAK,MAAA;AAAA,MACL,MAAA,EAAO,cAAA;AAAA,MACP,WAAA,EAAY,GAAA;AAAA,MACZ,aAAA,EAAc,OAAA;AAAA,MACd,cAAA,EAAe,OAAA;AAAA,MACf,KAAA,EAAO;AAAA,QACL,UAAA,EAAY,qBAAA;AAAA,QACZ,SAAA,EAAW,SAAS,gBAAA,GAAmB,cAAA;AAAA,QACvC,UAAA,EAAY;AAAA,OACd;AAAA,MAEA,QAAA,kBAAAA,GAAAA,CAAC,MAAA,EAAA,EAAK,CAAA,EAAE,uBAAA,EAAwB;AAAA;AAAA,GAClC;AAEJ;AAEA,SAAS,iBAAA,CAAkB;AAAA,EACzB,IAAA;AAAA,EACA,WAAA;AAAA,EACA,WAAA;AAAA,EACA,KAAA,GAAQ,CAAA;AAAA,EACR,SAAA,GAAY;AACd,CAAA,EAMG;AACD,EAAA,MAAM,CAAC,MAAA,EAAQ,SAAS,CAAA,GAAI,SAAS,KAAK,CAAA;AAC1C,EAAA,MAAM,WAAA,GAAc,IAAA,CAAK,QAAA,IAAY,IAAA,CAAK,SAAS,MAAA,GAAS,CAAA;AAC5D,EAAA,MAAM,QAAA,GAAW,IAAA,CAAK,IAAA,GAAO,WAAA,KAAgB,KAAK,IAAA,GAAO,KAAA;AACzD,EAAA,MAAM,aAAA,GAAgB,WAAA,GAClB,IAAA,CAAK,QAAA,CAAU,IAAA,CAAK,CAAC,KAAA,KAAU,KAAA,CAAM,IAAA,KAAS,WAAW,CAAA,GACzD,KAAA;AACJ,EAAA,MAAM,WAAW,MAAA,IAAU,aAAA;AAE3B,EAAA,MAAM,cAAc,MAAM;AACxB,IAAA,IAAI,WAAA,EAAa;AACf,MAAA,SAAA,CAAU,CAAC,MAAM,CAAA;AAAA,IACnB,CAAA,MAAA,IAAW,KAAK,IAAA,EAAM;AACpB,MAAA,WAAA,CAAY,KAAK,IAAI,CAAA;AAAA,IACvB;AAAA,EACF,CAAA;AAEA,EAAA,MAAM,WAAA,GAAc,iDAAA;AACpB,EAAA,MAAM,OAAA,GAAU,qDAAA;AAGhB,EAAA,IAAI,SAAA,IAAa,UAAU,CAAA,EAAG;AAC5B,IAAA,uBACEC,KAAC,IAAA,EAAA,EACC,QAAA,EAAA;AAAA,sBAAAD,GAAAA;AAAA,QAAC,QAAA;AAAA,QAAA;AAAA,UACC,OAAA,EAAS,WAAA;AAAA,UACT,OAAO,IAAA,CAAK,KAAA;AAAA,UACZ,YAAA,EAAc,CAAC,CAAA,KAAM;AACnB,YAAA,IAAI,CAAC,QAAA,EAAU,CAAA,CAAE,aAAA,CAAc,MAAM,eAAA,GAAkB,OAAA;AAAA,UACzD,CAAA;AAAA,UACA,YAAA,EAAc,CAAC,CAAA,KAAM;AACnB,YAAA,IAAI,CAAC,QAAA,EAAU,CAAA,CAAE,aAAA,CAAc,MAAM,eAAA,GAAkB,aAAA;AAAA,UACzD,CAAA;AAAA,UACA,KAAA,EAAO;AAAA,YACL,KAAA,EAAO,MAAA;AAAA,YACP,OAAA,EAAS,MAAA;AAAA,YACT,UAAA,EAAY,QAAA;AAAA,YACZ,cAAA,EAAgB,QAAA;AAAA,YAChB,OAAA,EAAS,QAAA;AAAA,YACT,YAAA,EAAc,KAAA;AAAA,YACd,MAAA,EAAQ,MAAA;AAAA,YACR,UAAA,EAAY,QAAA,IAAY,aAAA,GACpB,CAAA,mBAAA,EAAsB,WAAW,CAAA,kBAAA,CAAA,GACjC,aAAA;AAAA,YACJ,KAAA,EAAO,QAAA,IAAY,aAAA,GACf,WAAA,GACA,kDAAA;AAAA,YACJ,MAAA,EAAQ,SAAA;AAAA,YACR,UAAA,EAAY;AAAA,WACd;AAAA,UAEC,QAAA,EAAA,IAAA,CAAK,IAAA,oBACJA,GAAAA,CAAC,UAAK,KAAA,EAAO;AAAA,YACX,KAAA,EAAO,MAAA;AAAA,YACP,MAAA,EAAQ,MAAA;AAAA,YACR,OAAA,EAAS,MAAA;AAAA,YACT,UAAA,EAAY,QAAA;AAAA,YACZ,cAAA,EAAgB;AAAA,WAClB,EACG,eAAK,IAAA,EACR;AAAA;AAAA,OAEJ;AAAA,MACC,IAAA,CAAK,YAAA,oBACJA,GAAAA,CAAC,QAAG,KAAA,EAAO;AAAA,QACT,MAAA,EAAQ,MAAA;AAAA,QACR,SAAA,EAAW,uDAAA;AAAA,QACX,MAAA,EAAQ;AAAA,OACV,EAAG;AAAA,KAAA,EAEP,CAAA;AAAA,EAEJ;AAEA,EAAA,uBACEC,KAAA,QAAA,EAAA,EACE,QAAA,EAAA;AAAA,oBAAAD,GAAAA,CAAC,QACC,QAAA,kBAAAC,IAAAA;AAAA,MAAC,QAAA;AAAA,MAAA;AAAA,QACC,OAAA,EAAS,WAAA;AAAA,QACT,YAAA,EAAc,CAAC,CAAA,KAAM;AACnB,UAAA,IAAI,CAAC,QAAA,EAAU,CAAA,CAAE,aAAA,CAAc,MAAM,eAAA,GAAkB,OAAA;AAAA,QACzD,CAAA;AAAA,QACA,YAAA,EAAc,CAAC,CAAA,KAAM;AACnB,UAAA,IAAI,CAAC,QAAA,EAAU,CAAA,CAAE,aAAA,CAAc,MAAM,eAAA,GAAkB,aAAA;AAAA,QACzD,CAAA;AAAA,QACA,KAAA,EAAO;AAAA,UACL,KAAA,EAAO,MAAA;AAAA,UACP,OAAA,EAAS,MAAA;AAAA,UACT,UAAA,EAAY,QAAA;AAAA,UACZ,GAAA,EAAK,MAAA;AAAA,UACL,OAAA,EAAS,KAAA,GAAQ,CAAA,GAAI,qBAAA,GAAwB,WAAA;AAAA,UAC7C,YAAA,EAAc,KAAA;AAAA,UACd,MAAA,EAAQ,MAAA;AAAA,UACR,UAAA,EAAY,QAAA,GAAW,CAAA,mBAAA,EAAsB,WAAW,CAAA,kBAAA,CAAA,GAAuB,aAAA;AAAA,UAC/E,KAAA,EAAO,WACH,WAAA,GACA,iDAAA;AAAA,UACJ,MAAA,EAAQ,SAAA;AAAA,UACR,UAAA,EAAY,6BAAA;AAAA,UACZ,SAAA,EAAW,MAAA;AAAA,UACX,QAAA,EAAU,MAAA;AAAA,UACV,UAAA,EAAY,WAAW,GAAA,GAAM,GAAA;AAAA,UAC7B,UAAA,EAAY;AAAA,SACd;AAAA,QAEC,QAAA,EAAA;AAAA,UAAA,IAAA,CAAK,IAAA,oBACJD,GAAAA,CAAC,MAAA,EAAA,EAAK,KAAA,EAAO;AAAA,YACX,KAAA,EAAO,MAAA;AAAA,YACP,MAAA,EAAQ,MAAA;AAAA,YACR,OAAA,EAAS,MAAA;AAAA,YACT,UAAA,EAAY,QAAA;AAAA,YACZ,cAAA,EAAgB,QAAA;AAAA,YAChB,UAAA,EAAY,CAAA;AAAA,YACZ,KAAA,EAAO,WACH,WAAA,GACA;AAAA,WACN,EACG,eAAK,IAAA,EACR,CAAA;AAAA,0BAEFA,IAAC,MAAA,EAAA,EAAK,KAAA,EAAO,EAAE,IAAA,EAAM,CAAA,EAAE,EAAI,QAAA,EAAA,IAAA,CAAK,KAAA,EAAM,CAAA;AAAA,UACrC,WAAA,oBAAeA,GAAAA,CAAC,eAAA,EAAA,EAAgB,QAAQ,QAAA,EAAU;AAAA;AAAA;AAAA,KACrD,EACF,CAAA;AAAA,IACC,eAAe,QAAA,oBACdA,IAAC,IAAA,EAAA,EAAG,KAAA,EAAO,EAAE,SAAA,EAAW,MAAA,EAAQ,QAAQ,CAAA,EAAG,OAAA,EAAS,GAAE,EACnD,QAAA,EAAA,IAAA,CAAK,SAAU,GAAA,CAAI,CAAC,0BACnBA,GAAAA;AAAA,MAAC,iBAAA;AAAA,MAAA;AAAA,QAEC,IAAA,EAAM,KAAA;AAAA,QACN,WAAA;AAAA,QACA,WAAA;AAAA,QACA,OAAO,KAAA,GAAQ;AAAA,OAAA;AAAA,MAJV,KAAA,CAAM;AAAA,KAMd,CAAA,EACH,CAAA;AAAA,IAED,IAAA,CAAK,gCACJA,GAAAA,CAAC,QACC,QAAA,kBAAAA,GAAAA,CAAC,QAAG,KAAA,EAAO;AAAA,MACT,MAAA,EAAQ,MAAA;AAAA,MACR,SAAA,EAAW,uDAAA;AAAA,MACX,MAAA,EAAQ;AAAA,OACP,CAAA,EACL;AAAA,GAAA,EAEJ,CAAA;AAEJ;AAEe,SAAR,YAA6B,EAAE,SAAA,EAAW,WAAA,EAAa,WAAA,EAAa,WAAU,EAAqB;AACxG,EAAA,uBACEA,GAAAA,CAAC,KAAA,EAAA,EAAI,KAAA,EAAO;AAAA,IACV,IAAA,EAAM,YAAY,MAAA,GAAY,CAAA;AAAA,IAC9B,OAAA,EAAS,YAAY,SAAA,GAAY,UAAA;AAAA,IACjC,SAAA,EAAW;AAAA,GACb,EACE,QAAA,kBAAAA,GAAAA,CAAC,IAAA,EAAA,EAAG,KAAA,EAAO;AAAA,IACT,SAAA,EAAW,MAAA;AAAA,IACX,MAAA,EAAQ,CAAA;AAAA,IACR,OAAA,EAAS,CAAA;AAAA,IACT,OAAA,EAAS,MAAA;AAAA,IACT,aAAA,EAAe,QAAA;AAAA,IACf,GAAA,EAAK;AAAA,GACP,EACG,QAAA,EAAA,SAAA,CAAU,GAAA,CAAI,CAAC,yBACdA,GAAAA;AAAA,IAAC,iBAAA;AAAA,IAAA;AAAA,MAEC,IAAA;AAAA,MACA,WAAA;AAAA,MACA,WAAA;AAAA,MACA;AAAA,KAAA;AAAA,IAJK,IAAA,CAAK;AAAA,GAMb,GACH,CAAA,EACF,CAAA;AAEJ;ACpNA,SAAS,UAAA,GAAa;AACpB,EAAA,uBACEC,IAAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACC,KAAA,EAAM,IAAA;AAAA,MACN,MAAA,EAAO,IAAA;AAAA,MACP,OAAA,EAAQ,WAAA;AAAA,MACR,IAAA,EAAK,MAAA;AAAA,MACL,MAAA,EAAO,cAAA;AAAA,MACP,WAAA,EAAY,GAAA;AAAA,MACZ,aAAA,EAAc,OAAA;AAAA,MACd,cAAA,EAAe,OAAA;AAAA,MAEf,QAAA,EAAA;AAAA,wBAAAD,GAAAA,CAAC,MAAA,EAAA,EAAK,CAAA,EAAE,yCAAA,EAA0C,CAAA;AAAA,wBAClDA,GAAAA,CAAC,UAAA,EAAA,EAAS,MAAA,EAAO,kBAAA,EAAmB,CAAA;AAAA,wBACpCA,GAAAA,CAAC,MAAA,EAAA,EAAK,EAAA,EAAG,IAAA,EAAK,IAAG,IAAA,EAAK,EAAA,EAAG,GAAA,EAAI,EAAA,EAAG,IAAA,EAAK;AAAA;AAAA;AAAA,GACvC;AAEJ;AAEe,SAAR,kBAAA,CAAoC;AAAA,EACzC,IAAA;AAAA,EACA,SAAA;AAAA,EACA,QAAA;AAAA,EACA;AACF,CAAA,EAA4B;AAC1B,EAAA,IAAI,CAAC,MAAM,OAAO,IAAA;AAElB,EAAA,MAAM,cAAc,MAAM;AACxB,IAAA,IAAI,IAAA,CAAK,SAAA,IAAa,IAAA,CAAK,QAAA,EAAU;AACnC,MAAA,OAAO,CAAA,EAAG,IAAA,CAAK,SAAS,CAAA,CAAA,EAAI,KAAK,QAAQ,CAAA,CAAA;AAAA,IAC3C;AACA,IAAA,OAAO,IAAA,CAAK,SAAA,IAAa,IAAA,CAAK,QAAA,IAAY,sCAAA;AAAA,EAC5C,CAAA;AAEA,EAAA,MAAM,aAAa,MAAM;AACvB,IAAA,OAAO,IAAA,CAAK,WAAW,MAAA,CAAO,CAAC,KAAK,IAAA,CAAK,QAAA,EAAU,MAAA,CAAO,CAAC,CAAA,IAAK,GAAA;AAAA,EAClE,CAAA;AAGA,EAAA,IAAI,SAAA,EAAW;AACb,IAAA,uBACEC,IAAAA,CAAC,KAAA,EAAA,EAAI,KAAA,EAAO;AAAA,MACV,OAAA,EAAS,UAAA;AAAA,MACT,SAAA,EAAW,uDAAA;AAAA,MACX,OAAA,EAAS,MAAA;AAAA,MACT,aAAA,EAAe,QAAA;AAAA,MACf,UAAA,EAAY,QAAA;AAAA,MACZ,GAAA,EAAK;AAAA,KACP,EACG,QAAA,EAAA;AAAA,MAAA,IAAA,CAAK,6BACJD,GAAAA;AAAA,QAAC,KAAA;AAAA,QAAA;AAAA,UACC,KAAK,IAAA,CAAK,UAAA;AAAA,UACV,KAAK,WAAA,EAAY;AAAA,UACjB,OAAO,WAAA,EAAY;AAAA,UACnB,KAAA,EAAO;AAAA,YACL,KAAA,EAAO,MAAA;AAAA,YACP,MAAA,EAAQ,MAAA;AAAA,YACR,YAAA,EAAc,KAAA;AAAA,YACd,SAAA,EAAW;AAAA;AACb;AAAA,0BAGFA,GAAAA;AAAA,QAAC,KAAA;AAAA,QAAA;AAAA,UACC,OAAO,WAAA,EAAY;AAAA,UACnB,KAAA,EAAO;AAAA,YACL,KAAA,EAAO,MAAA;AAAA,YACP,MAAA,EAAQ,MAAA;AAAA,YACR,YAAA,EAAc,KAAA;AAAA,YACd,UAAA,EAAY,iDAAA;AAAA,YACZ,OAAA,EAAS,MAAA;AAAA,YACT,UAAA,EAAY,QAAA;AAAA,YACZ,cAAA,EAAgB,QAAA;AAAA,YAChB,KAAA,EAAO,MAAA;AAAA,YACP,UAAA,EAAY,GAAA;AAAA,YACZ,QAAA,EAAU;AAAA,WACZ;AAAA,UAEC,QAAA,EAAA,UAAA;AAAW;AAAA,OACd;AAAA,sBAEFA,GAAAA;AAAA,QAAC,QAAA;AAAA,QAAA;AAAA,UACC,OAAA,EAAS,QAAA;AAAA,UACT,KAAA,EAAM,8DAAA;AAAA,UACN,YAAA,EAAc,CAAC,CAAA,KAAM;AACnB,YAAA,CAAA,CAAE,aAAA,CAAc,MAAM,eAAA,GAAkB,qDAAA;AAAA,UAC1C,CAAA;AAAA,UACA,YAAA,EAAc,CAAC,CAAA,KAAM;AACnB,YAAA,CAAA,CAAE,aAAA,CAAc,MAAM,eAAA,GAAkB,aAAA;AAAA,UAC1C,CAAA;AAAA,UACA,KAAA,EAAO;AAAA,YACL,KAAA,EAAO,MAAA;AAAA,YACP,MAAA,EAAQ,MAAA;AAAA,YACR,YAAA,EAAc,KAAA;AAAA,YACd,MAAA,EAAQ,MAAA;AAAA,YACR,UAAA,EAAY,aAAA;AAAA,YACZ,KAAA,EAAO,+CAAA;AAAA,YACP,MAAA,EAAQ,SAAA;AAAA,YACR,OAAA,EAAS,MAAA;AAAA,YACT,UAAA,EAAY,QAAA;AAAA,YACZ,cAAA,EAAgB,QAAA;AAAA,YAChB,UAAA,EAAY;AAAA,WACd;AAAA,UAEA,QAAA,kBAAAA,IAAC,UAAA,EAAA,EAAW;AAAA;AAAA;AACd,KAAA,EACF,CAAA;AAAA,EAEJ;AAGA,EAAA,uBACEC,IAAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACC,KAAA,EAAO;AAAA,QACL,OAAA,EAAS,WAAA;AAAA,QACT,SAAA,EAAW,uDAAA;AAAA,QACX,OAAA,EAAS,MAAA;AAAA,QACT,UAAA,EAAY,QAAA;AAAA,QACZ,GAAA,EAAK;AAAA,OACP;AAAA,MAEC,QAAA,EAAA;AAAA,QAAA,IAAA,CAAK,6BACJD,GAAAA;AAAA,UAAC,KAAA;AAAA,UAAA;AAAA,YACC,KAAK,IAAA,CAAK,UAAA;AAAA,YACV,KAAK,WAAA,EAAY;AAAA,YACjB,KAAA,EAAO;AAAA,cACL,KAAA,EAAO,MAAA;AAAA,cACP,MAAA,EAAQ,MAAA;AAAA,cACR,YAAA,EAAc,KAAA;AAAA,cACd,SAAA,EAAW,OAAA;AAAA,cACX,UAAA,EAAY;AAAA;AACd;AAAA,4BAGFA,GAAAA;AAAA,UAAC,KAAA;AAAA,UAAA;AAAA,YACC,KAAA,EAAO;AAAA,cACL,KAAA,EAAO,MAAA;AAAA,cACP,MAAA,EAAQ,MAAA;AAAA,cACR,YAAA,EAAc,KAAA;AAAA,cACd,UAAA,EAAY,iDAAA;AAAA,cACZ,OAAA,EAAS,MAAA;AAAA,cACT,UAAA,EAAY,QAAA;AAAA,cACZ,cAAA,EAAgB,QAAA;AAAA,cAChB,KAAA,EAAO,MAAA;AAAA,cACP,UAAA,EAAY,GAAA;AAAA,cACZ,QAAA,EAAU,MAAA;AAAA,cACV,UAAA,EAAY;AAAA,aACd;AAAA,YAEC,QAAA,EAAA,UAAA;AAAW;AAAA,SACd;AAAA,wBAEFC,KAAC,KAAA,EAAA,EAAI,KAAA,EAAO,EAAE,IAAA,EAAM,CAAA,EAAG,QAAA,EAAU,CAAA,EAAE,EACjC,QAAA,EAAA;AAAA,0BAAAD,GAAAA,CAAC,OAAE,KAAA,EAAO;AAAA,YACR,UAAA,EAAY,GAAA;AAAA,YACZ,QAAA,EAAU,MAAA;AAAA,YACV,UAAA,EAAY,MAAA;AAAA,YACZ,KAAA,EAAO,iDAAA;AAAA,YACP,MAAA,EAAQ,CAAA;AAAA,YACR,QAAA,EAAU,QAAA;AAAA,YACV,YAAA,EAAc,UAAA;AAAA,YACd,UAAA,EAAY;AAAA,WACd,EACG,uBAAY,EACf,CAAA;AAAA,0BACAA,GAAAA,CAAC,GAAA,EAAA,EAAE,KAAA,EAAO;AAAA,YACR,QAAA,EAAU,MAAA;AAAA,YACV,UAAA,EAAY,MAAA;AAAA,YACZ,KAAA,EAAO,kDAAA;AAAA,YACP,MAAA,EAAQ;AAAA,aAEP,QAAA,EAAA,SAAA,EACH;AAAA,SAAA,EACF,CAAA;AAAA,wBACAA,GAAAA;AAAA,UAAC,QAAA;AAAA,UAAA;AAAA,YACC,OAAA,EAAS,QAAA;AAAA,YACT,KAAA,EAAM,8DAAA;AAAA,YACN,YAAA,EAAc,CAAC,CAAA,KAAM;AACnB,cAAA,CAAA,CAAE,aAAA,CAAc,MAAM,eAAA,GAAkB,qDAAA;AACxC,cAAA,CAAA,CAAE,aAAA,CAAc,MAAM,KAAA,GAAQ,+CAAA;AAAA,YAChC,CAAA;AAAA,YACA,YAAA,EAAc,CAAC,CAAA,KAAM;AACnB,cAAA,CAAA,CAAE,aAAA,CAAc,MAAM,eAAA,GAAkB,aAAA;AACxC,cAAA,CAAA,CAAE,aAAA,CAAc,MAAM,KAAA,GAAQ,+CAAA;AAAA,YAChC,CAAA;AAAA,YACA,KAAA,EAAO;AAAA,cACL,KAAA,EAAO,MAAA;AAAA,cACP,MAAA,EAAQ,MAAA;AAAA,cACR,YAAA,EAAc,KAAA;AAAA,cACd,MAAA,EAAQ,MAAA;AAAA,cACR,UAAA,EAAY,aAAA;AAAA,cACZ,KAAA,EAAO,+CAAA;AAAA,cACP,MAAA,EAAQ,SAAA;AAAA,cACR,OAAA,EAAS,MAAA;AAAA,cACT,UAAA,EAAY,QAAA;AAAA,cACZ,cAAA,EAAgB,QAAA;AAAA,cAChB,UAAA,EAAY,6BAAA;AAAA,cACZ,UAAA,EAAY;AAAA,aACd;AAAA,YAEA,QAAA,kBAAAA,IAAC,UAAA,EAAA,EAAW;AAAA;AAAA;AACd;AAAA;AAAA,GACF;AAEJ;AC9MA,SAAS,UAAA,CAAW,EAAE,MAAA,EAAO,EAAwB;AACnD,EAAA,uBACEA,GAAAA;AAAA,IAAC,KAAA;AAAA,IAAA;AAAA,MACC,KAAA,EAAM,IAAA;AAAA,MACN,MAAA,EAAO,IAAA;AAAA,MACP,OAAA,EAAQ,WAAA;AAAA,MACR,IAAA,EAAK,MAAA;AAAA,MACL,MAAA,EAAO,cAAA;AAAA,MACP,WAAA,EAAY,GAAA;AAAA,MACZ,aAAA,EAAc,OAAA;AAAA,MACd,cAAA,EAAe,OAAA;AAAA,MACf,KAAA,EAAO;AAAA,QACL,UAAA,EAAY,qBAAA;AAAA,QACZ,SAAA,EAAW,SAAS,cAAA,GAAiB;AAAA,OACvC;AAAA,MAEA,QAAA,kBAAAA,GAAAA,CAAC,MAAA,EAAA,EAAK,CAAA,EAAE,iBAAA,EAAkB;AAAA;AAAA,GAC5B;AAEJ;AAEe,SAAR,YAAA,CAA8B;AAAA,EACnC,OAAA;AAAA,EACA,OAAA;AAAA,EACA,WAAA;AAAA,EACA,SAAA;AAAA,EACA,eAAA;AAAA,EACA,IAAA;AAAA,EACA,SAAA;AAAA,EACA,UAAA;AAAA,EACA,QAAA;AAAA,EACA,WAAA;AAAA,EACA,KAAA,GAAQ,OAAA;AAAA,EACR,SAAA;AAAA,EACA,WAAA,GAAc,KAAA;AAAA,EACd,MAAA,EAAQ,gBAAA;AAAA,EACR;AACF,CAAA,EAAsB;AACpB,EAAA,MAAM,CAAC,YAAA,EAAc,eAAe,CAAA,GAAIE,SAAS,IAAI,CAAA;AACrD,EAAA,MAAM,WAAA,GAAc,gBAAA,KAAqB,MAAA,GAAY,gBAAA,GAAmB,YAAA;AACxE,EAAA,MAAM,SAAA,GAAY,eAAe,CAAC,WAAA;AAClC,EAAA,MAAM,cAAA,GAAiB,MAAA;AACvB,EAAA,MAAM,YAAA,GAAe,YAAY,cAAA,GAAiB,KAAA;AAElD,EAAA,MAAM,eAAe,MAAM;AACzB,IAAA,IAAI,QAAA,EAAU;AACZ,MAAA,QAAA,EAAS;AAAA,IACX,CAAA,MAAO;AACL,MAAA,eAAA,CAAgB,CAAC,YAAY,CAAA;AAAA,IAC/B;AAAA,EACF,CAAA;AAEA,EAAA,uBACED,IAAAA,CAAAE,QAAAA,EAAA,EACE,QAAA,EAAA;AAAA,oBAAAF,IAAAA;AAAA,MAAC,OAAA;AAAA,MAAA;AAAA,QACC,SAAA;AAAA,QACA,KAAA,EAAO;AAAA,UACL,QAAA,EAAU,OAAA;AAAA,UACV,GAAA,EAAK,CAAA;AAAA,UACL,IAAA,EAAM,CAAA;AAAA,UACN,MAAA,EAAQ,OAAA;AAAA,UACR,KAAA,EAAO,YAAA;AAAA,UACP,UAAA,EAAY,MAAA;AAAA,UACZ,WAAA,EAAa,uDAAA;AAAA,UACb,OAAA,EAAS,MAAA;AAAA,UACT,aAAA,EAAe,QAAA;AAAA,UACf,MAAA,EAAQ,EAAA;AAAA,UACR,QAAA,EAAU,QAAA;AAAA,UACV,UAAA,EAAY;AAAA,SACd;AAAA,QAGA,QAAA,EAAA;AAAA,0BAAAD,GAAAA;AAAA,YAAC,aAAA;AAAA,YAAA;AAAA,cACC,OAAA;AAAA,cACA,OAAA;AAAA,cACA,WAAA;AAAA,cACA;AAAA;AAAA,WACF;AAAA,0BAGAA,GAAAA;AAAA,YAAC,WAAA;AAAA,YAAA;AAAA,cACC,SAAA;AAAA,cACA,WAAA,EAAa,UAAA;AAAA,cACb,WAAA;AAAA,cACA;AAAA;AAAA,WACF;AAAA,UAGC,eAAA,IAAmB,eAAA,CAAgB,MAAA,GAAS,CAAA,oBAC3CA,GAAAA;AAAA,YAAC,WAAA;AAAA,YAAA;AAAA,cACC,SAAA,EAAW,eAAA;AAAA,cACX,WAAA,EAAa,UAAA;AAAA,cACb,WAAA;AAAA,cACA;AAAA;AAAA,WACF;AAAA,0BAIFA,GAAAA;AAAA,YAAC,kBAAA;AAAA,YAAA;AAAA,cACC,IAAA;AAAA,cACA,SAAA;AAAA,cACA,QAAA;AAAA,cACA;AAAA;AAAA;AACF;AAAA;AAAA,KACF;AAAA,IAGC,+BACCA,GAAAA;AAAA,MAAC,QAAA;AAAA,MAAA;AAAA,QACC,OAAA,EAAS,YAAA;AAAA,QACT,KAAA,EAAO,cAAc,4BAAA,GAAgB,kCAAA;AAAA,QACrC,YAAA,EAAc,CAAC,CAAA,KAAM;AACnB,UAAA,CAAA,CAAE,aAAA,CAAc,MAAM,eAAA,GAAkB,SAAA;AAAA,QAC1C,CAAA;AAAA,QACA,YAAA,EAAc,CAAC,CAAA,KAAM;AACnB,UAAA,CAAA,CAAE,aAAA,CAAc,MAAM,eAAA,GAAkB,MAAA;AAAA,QAC1C,CAAA;AAAA,QACA,KAAA,EAAO;AAAA,UACL,QAAA,EAAU,OAAA;AAAA,UACV,GAAA,EAAK,KAAA;AAAA,UACL,IAAA,EAAM,YAAA;AAAA,UACN,MAAA,EAAQ,EAAA;AAAA,UACR,KAAA,EAAO,MAAA;AAAA,UACP,MAAA,EAAQ,MAAA;AAAA,UACR,YAAA,EAAc,aAAA;AAAA,UACd,MAAA,EAAQ,uDAAA;AAAA,UACR,UAAA,EAAY,MAAA;AAAA,UACZ,UAAA,EAAY,MAAA;AAAA,UACZ,MAAA,EAAQ,SAAA;AAAA,UACR,OAAA,EAAS,MAAA;AAAA,UACT,UAAA,EAAY,QAAA;AAAA,UACZ,cAAA,EAAgB,QAAA;AAAA,UAChB,SAAA,EAAW,4BAAA;AAAA,UACX,UAAA,EAAY,gBAAA;AAAA,UACZ,KAAA,EAAO;AAAA,SACT;AAAA,QAEA,QAAA,kBAAAA,GAAAA,CAAC,UAAA,EAAA,EAAW,MAAA,EAAQ,WAAA,EAAa;AAAA;AAAA;AACnC,GAAA,EAEJ,CAAA;AAEJ;AC1HA,SAAS,QAAA,GAAW;AAClB,EAAA,uBACEA,GAAAA,CAAC,KAAA,EAAA,EAAI,KAAA,EAAM,IAAA,EAAK,MAAA,EAAO,IAAA,EAAK,OAAA,EAAQ,WAAA,EAAY,IAAA,EAAK,MAAA,EACnD,QAAA,kBAAAA,GAAAA;AAAA,IAAC,MAAA;AAAA,IAAA;AAAA,MACC,CAAA,EAAE,6oDAAA;AAAA,MACF,IAAA,EAAK;AAAA;AAAA,GACP,EACF,CAAA;AAEJ;AAEA,SAAS,aAAA,GAAgB;AACvB,EAAA,uBACEA,GAAAA,CAAC,KAAA,EAAA,EAAI,KAAA,EAAM,IAAA,EAAK,MAAA,EAAO,IAAA,EAAK,OAAA,EAAQ,WAAA,EAAY,IAAA,EAAK,MAAA,EACnD,QAAA,kBAAAA,GAAAA;AAAA,IAAC,MAAA;AAAA,IAAA;AAAA,MACC,CAAA,EAAE,mqCAAA;AAAA,MACF,IAAA,EAAK;AAAA;AAAA,GACP,EACF,CAAA;AAEJ;AAEA,SAAS,WAAW,IAAA,EAAgC;AAClD,EAAA,MAAM,GAAA,GAA8B;AAAA,IAClC,OAAA,EAAS,SAAA;AAAA,IACT,OAAA,EAAS,SAAA;AAAA,IACT,KAAA,EAAO,SAAA;AAAA,IACP,QAAA,EAAU,SAAA;AAAA,IACV,IAAA,EAAM;AAAA,GACR;AACA,EAAA,OAAO,GAAA,CAAI,IAAI,CAAA,IAAK,GAAA,CAAI,IAAA;AAC1B;AAEA,SAAS,aAAa,IAAA,EAAgC;AACpD,EAAA,MAAM,GAAA,GAA8B;AAAA,IAClC,OAAA,EAAS,QAAA;AAAA,IACT,OAAA,EAAS,GAAA;AAAA,IACT,KAAA,EAAO,QAAA;AAAA,IACP,QAAA,EAAU,QAAA;AAAA,IACV,IAAA,EAAM;AAAA,GACR;AACA,EAAA,OAAO,GAAA,CAAI,IAAI,CAAA,IAAK,GAAA,CAAI,IAAA;AAC1B;AAEe,SAAR,UAAA,CAA4B;AAAA,EACjC,IAAA;AAAA,EACA,gBAAgB,EAAC;AAAA,EACjB,eAAA;AAAA,EACA,gBAAA;AAAA,EACA,aAAA;AAAA,EACA,SAAA;AAAA,EACA;AACF,CAAA,EAAoB;AAClB,EAAA,MAAM,WAAA,GACJ,CAAA,EAAG,IAAA,EAAM,SAAA,IAAa,EAAE,CAAA,CAAA,EAAI,IAAA,EAAM,QAAA,IAAY,EAAE,CAAA,CAAA,CAAG,IAAA,EAAK,IAAK,sCAAA;AAC/D,EAAA,MAAM,SAAA,GAAY,IAAA,EAAM,SAAA,EAAW,MAAA,CAAO,CAAC,CAAA,IAAK,QAAA;AAChD,EAAA,MAAM,CAAC,WAAA,EAAa,cAAc,CAAA,GAAIE,SAAS,KAAK,CAAA;AACpD,EAAA,MAAM,QAAA,GAAW,OAAuB,IAAI,CAAA;AAE5C,EAAA,SAAA,CAAU,MAAM;AACd,IAAA,MAAM,kBAAA,GAAqB,CAAC,CAAA,KAAkB;AAC5C,MAAA,IAAI,QAAA,CAAS,WAAW,CAAC,QAAA,CAAS,QAAQ,QAAA,CAAS,CAAA,CAAE,MAAc,CAAA,EAAG;AACpE,QAAA,cAAA,CAAe,KAAK,CAAA;AAAA,MACtB;AAAA,IACF,CAAA;AACA,IAAA,QAAA,CAAS,gBAAA,CAAiB,aAAa,kBAAkB,CAAA;AACzD,IAAA,OAAO,MAAM,QAAA,CAAS,mBAAA,CAAoB,WAAA,EAAa,kBAAkB,CAAA;AAAA,EAC3E,CAAA,EAAG,EAAE,CAAA;AAEL,EAAA,MAAM,WAAA,GAAc,cAAc,MAAA,CAAO,CAAC,MAAM,CAAC,CAAA,CAAE,MAAM,CAAA,CAAE,MAAA;AAE3D,EAAA,uBACEF,GAAAA;AAAA,IAAC,QAAA;AAAA,IAAA;AAAA,MACC,SAAA;AAAA,MACA,KAAA,EAAO;AAAA,QACL,UAAA,EAAY,MAAA;AAAA,QACZ,SAAA,EAAW,4BAAA;AAAA,QACX,QAAA,EAAU,QAAA;AAAA,QACV,GAAA,EAAK,CAAA;AAAA,QACL,MAAA,EAAQ;AAAA,OACV;AAAA,MAEA,QAAA,kBAAAC,IAAAA;AAAA,QAAC,KAAA;AAAA,QAAA;AAAA,UACC,KAAA,EAAO;AAAA,YACL,OAAA,EAAS,MAAA;AAAA,YACT,UAAA,EAAY,QAAA;AAAA,YACZ,cAAA,EAAgB,eAAA;AAAA,YAChB,OAAA,EAAS;AAAA,WACX;AAAA,UAGA,QAAA,EAAA;AAAA,4BAAAA,IAAAA,CAAC,KAAA,EAAA,EAAI,KAAA,EAAO,EAAE,OAAA,EAAS,QAAQ,UAAA,EAAY,QAAA,EAAU,GAAA,EAAK,MAAA,EAAO,EAC9D,QAAA,EAAA;AAAA,cAAA,IAAA,EAAM,6BACLD,GAAAA;AAAA,gBAAC,KAAA;AAAA,gBAAA;AAAA,kBACC,KAAK,IAAA,CAAK,UAAA;AAAA,kBACV,GAAA,EAAK,WAAA;AAAA,kBACL,KAAA,EAAO;AAAA,oBACL,KAAA,EAAO,MAAA;AAAA,oBACP,MAAA,EAAQ,MAAA;AAAA,oBACR,YAAA,EAAc,KAAA;AAAA,oBACd,SAAA,EAAW,OAAA;AAAA,oBACX,MAAA,EAAQ;AAAA;AACV;AAAA,kCAGFA,GAAAA;AAAA,gBAAC,KAAA;AAAA,gBAAA;AAAA,kBACC,KAAA,EAAO;AAAA,oBACL,KAAA,EAAO,MAAA;AAAA,oBACP,MAAA,EAAQ,MAAA;AAAA,oBACR,YAAA,EAAc,KAAA;AAAA,oBACd,UAAA,EAAY,6HAAA;AAAA,oBACZ,OAAA,EAAS,MAAA;AAAA,oBACT,UAAA,EAAY,QAAA;AAAA,oBACZ,cAAA,EAAgB,QAAA;AAAA,oBAChB,SAAA,EAAW;AAAA,mBACb;AAAA,kBAEA,QAAA,kBAAAA,GAAAA;AAAA,oBAAC,MAAA;AAAA,oBAAA;AAAA,sBACC,OAAO,EAAE,KAAA,EAAO,QAAQ,QAAA,EAAU,MAAA,EAAQ,YAAY,GAAA,EAAI;AAAA,sBAEzD,QAAA,EAAA;AAAA;AAAA;AACH;AAAA,eACF;AAAA,8BAEFA,GAAAA,CAAC,KAAA,EAAA,EACC,QAAA,kBAAAC,IAAAA;AAAA,gBAAC,GAAA;AAAA,gBAAA;AAAA,kBACC,KAAA,EAAO;AAAA,oBACL,QAAA,EAAU,MAAA;AAAA,oBACV,UAAA,EAAY,GAAA;AAAA,oBACZ,KAAA,EAAO,mDAAA;AAAA,oBACP,MAAA,EAAQ;AAAA,mBACV;AAAA,kBACD,QAAA,EAAA;AAAA,oBAAA,uCAAA;AAAA,oBACS,GAAA;AAAA,oCACRD,GAAAA;AAAA,sBAAC,MAAA;AAAA,sBAAA;AAAA,wBACC,KAAA,EAAO;AAAA,0BACL,KAAA,EAAO;AAAA,yBACT;AAAA,wBAEC,QAAA,EAAA;AAAA;AAAA;AACH;AAAA;AAAA,eACF,EACF;AAAA,aAAA,EACF,CAAA;AAAA,4BAGAC,IAAAA,CAAC,KAAA,EAAA,EAAI,KAAA,EAAO,EAAE,OAAA,EAAS,MAAA,EAAQ,UAAA,EAAY,QAAA,EAAU,GAAA,EAAK,KAAA,EAAM,EAE9D,QAAA,EAAA;AAAA,8BAAAA,IAAAA,CAAC,SAAI,KAAA,EAAO,EAAE,UAAU,UAAA,EAAW,EAAG,KAAK,QAAA,EACxC,QAAA,EAAA;AAAA,gBAAA,gBAAA,oBACCA,IAAAA;AAAA,kBAAC,QAAA;AAAA,kBAAA;AAAA,oBACC,OAAA,EAAS,MAAM,cAAA,CAAe,CAAC,WAAW,CAAA;AAAA,oBAC1C,KAAA,EAAO;AAAA,sBACL,OAAA,EAAS,MAAA;AAAA,sBACT,YAAA,EAAc,KAAA;AAAA,sBACd,MAAA,EAAQ,MAAA;AAAA,sBACR,UAAA,EAAY,aAAA;AAAA,sBACZ,MAAA,EAAQ,SAAA;AAAA,sBACR,QAAA,EAAU,UAAA;AAAA,sBACV,OAAA,EAAS,MAAA;AAAA,sBACT,UAAA,EAAY,QAAA;AAAA,sBACZ,cAAA,EAAgB;AAAA,qBAClB;AAAA,oBACA,YAAA,EAAc,CAAC,CAAA,KAAM;AACnB,sBAAA,CAAA,CAAE,aAAA,CAAc,MAAM,eAAA,GAAkB,SAAA;AAAA,oBAC1C,CAAA;AAAA,oBACA,YAAA,EAAc,CAAC,CAAA,KAAM;AACnB,sBAAA,CAAA,CAAE,aAAA,CAAc,MAAM,eAAA,GAAkB,aAAA;AAAA,oBAC1C,CAAA;AAAA,oBAEA,QAAA,EAAA;AAAA,sCAAAD,IAAC,QAAA,EAAA,EAAS,CAAA;AAAA,sBACT,WAAA,GAAc,qBACbA,GAAAA;AAAA,wBAAC,MAAA;AAAA,wBAAA;AAAA,0BACC,KAAA,EAAO;AAAA,4BACL,QAAA,EAAU,UAAA;AAAA,4BACV,GAAA,EAAK,KAAA;AAAA,4BACL,KAAA,EAAO,KAAA;AAAA,4BACP,QAAA,EAAU,MAAA;AAAA,4BACV,MAAA,EAAQ,MAAA;AAAA,4BACR,UAAA,EAAY,+CAAA;AAAA,4BACZ,YAAA,EAAc,KAAA;AAAA,4BACd,OAAA,EAAS,MAAA;AAAA,4BACT,UAAA,EAAY,QAAA;AAAA,4BACZ,cAAA,EAAgB,QAAA;AAAA,4BAChB,QAAA,EAAU,MAAA;AAAA,4BACV,UAAA,EAAY,GAAA;AAAA,4BACZ,KAAA,EAAO,MAAA;AAAA,4BACP,OAAA,EAAS,OAAA;AAAA,4BACT,MAAA,EAAQ;AAAA,2BACV;AAAA,0BAEC,QAAA,EAAA;AAAA;AAAA;AACH;AAAA;AAAA,iBAEJ;AAAA,gBAID,+BACCC,IAAAA;AAAA,kBAAC,KAAA;AAAA,kBAAA;AAAA,oBACC,KAAA,EAAO;AAAA,sBACL,QAAA,EAAU,UAAA;AAAA,sBACV,KAAA,EAAO,CAAA;AAAA,sBACP,SAAA,EAAW,KAAA;AAAA,sBACX,KAAA,EAAO,OAAA;AAAA,sBACP,UAAA,EAAY,MAAA;AAAA,sBACZ,YAAA,EAAc,MAAA;AAAA,sBACd,SAAA,EAAW,8BAAA;AAAA,sBACX,MAAA,EAAQ,EAAA;AAAA,sBACR,QAAA,EAAU,QAAA;AAAA,sBACV,MAAA,EAAQ;AAAA,qBACV;AAAA,oBAGA,QAAA,EAAA;AAAA,sCAAAA,IAAAA;AAAA,wBAAC,KAAA;AAAA,wBAAA;AAAA,0BACC,KAAA,EAAO;AAAA,4BACL,OAAA,EAAS,MAAA;AAAA,4BACT,YAAA,EAAc,mBAAA;AAAA,4BACd,OAAA,EAAS,MAAA;AAAA,4BACT,UAAA,EAAY,QAAA;AAAA,4BACZ,cAAA,EAAgB,eAAA;AAAA,4BAChB,UAAA,EAAY;AAAA,2BACd;AAAA,0BAEA,QAAA,EAAA;AAAA,4CAAAD,GAAAA,CAAC,MAAA,EAAA,EAAK,KAAA,EAAO,EAAE,UAAA,EAAY,GAAA,EAAK,QAAA,EAAU,MAAA,EAAQ,KAAA,EAAO,MAAA,EAAO,EAAG,QAAA,EAAA,0EAAA,EAEnE,CAAA;AAAA,4BACC,iCACCA,GAAAA;AAAA,8BAAC,QAAA;AAAA,8BAAA;AAAA,gCACC,OAAA,EAAS,aAAA;AAAA,gCACT,KAAA,EAAO;AAAA,kCACL,QAAA,EAAU,MAAA;AAAA,kCACV,KAAA,EAAO,iDAAA;AAAA,kCACP,UAAA,EAAY,MAAA;AAAA,kCACZ,MAAA,EAAQ,MAAA;AAAA,kCACR,MAAA,EAAQ,SAAA;AAAA,kCACR,UAAA,EAAY;AAAA,iCACd;AAAA,gCACD,QAAA,EAAA;AAAA;AAAA;AAED;AAAA;AAAA,uBAEJ;AAAA,sCAEAA,GAAAA,CAAC,KAAA,EAAA,EAAI,KAAA,EAAO,EAAE,SAAA,EAAW,MAAA,EAAQ,SAAA,EAAW,MAAA,EAAO,EAChD,QAAA,EAAA,aAAA,CAAc,MAAA,KAAW,oBACxBA,GAAAA;AAAA,wBAAC,KAAA;AAAA,wBAAA;AAAA,0BACC,KAAA,EAAO;AAAA,4BACL,OAAA,EAAS,MAAA;AAAA,4BACT,SAAA,EAAW,QAAA;AAAA,4BACX,KAAA,EAAO,SAAA;AAAA,4BACP,QAAA,EAAU;AAAA,2BACZ;AAAA,0BACD,QAAA,EAAA;AAAA;AAAA,uBAED,GAEA,aAAA,CAAc,GAAA,CAAI,CAAC,yBACjBC,IAAAA;AAAA,wBAAC,KAAA;AAAA,wBAAA;AAAA,0BAEC,KAAA,EAAO;AAAA,4BACL,OAAA,EAAS,WAAA;AAAA,4BACT,YAAA,EAAc,mBAAA;AAAA,4BACd,MAAA,EAAQ,SAAA;AAAA,4BACR,UAAA,EAAY,CAAC,IAAA,CAAK,MAAA,GAAS,uBAAA,GAA0B,aAAA;AAAA,4BACrD,QAAA,EAAU,UAAA;AAAA,4BACV,OAAA,EAAS,MAAA;AAAA,4BACT,GAAA,EAAK,MAAA;AAAA,4BACL,UAAA,EAAY;AAAA,2BACd;AAAA,0BACA,YAAA,EAAc,CAAC,CAAA,KAAM;AACnB,4BAAA,CAAA,CAAE,aAAA,CAAc,MAAM,eAAA,GAAkB,SAAA;AAAA,0BAC1C,CAAA;AAAA,0BACA,YAAA,EAAc,CAAC,CAAA,KAAM;AACnB,4BAAA,CAAA,CAAE,cAAc,KAAA,CAAM,eAAA,GAAkB,CAAC,IAAA,CAAK,SAC1C,uBAAA,GACA,aAAA;AAAA,0BACN,CAAA;AAAA,0BAEC,QAAA,EAAA;AAAA,4BAAA,CAAC,IAAA,CAAK,0BACLD,GAAAA;AAAA,8BAAC,MAAA;AAAA,8BAAA;AAAA,gCACC,KAAA,EAAO;AAAA,kCACL,QAAA,EAAU,UAAA;AAAA,kCACV,GAAA,EAAK,MAAA;AAAA,kCACL,KAAA,EAAO,MAAA;AAAA,kCACP,KAAA,EAAO,KAAA;AAAA,kCACP,MAAA,EAAQ,KAAA;AAAA,kCACR,UAAA,EAAY,SAAA;AAAA,kCACZ,YAAA,EAAc;AAAA;AAChB;AAAA,6BACF;AAAA,4CAEFA,GAAAA;AAAA,8BAAC,KAAA;AAAA,8BAAA;AAAA,gCACC,KAAA,EAAO;AAAA,kCACL,KAAA,EAAO,MAAA;AAAA,kCACP,MAAA,EAAQ,MAAA;AAAA,kCACR,YAAA,EAAc,KAAA;AAAA,kCACd,UAAA,EAAY,UAAA,CAAW,IAAA,CAAK,IAAI,CAAA;AAAA,kCAChC,OAAA,EAAS,MAAA;AAAA,kCACT,UAAA,EAAY,QAAA;AAAA,kCACZ,cAAA,EAAgB,QAAA;AAAA,kCAChB,QAAA,EAAU,MAAA;AAAA,kCACV,UAAA,EAAY,CAAA;AAAA,kCACZ,SAAA,EAAW;AAAA,iCACb;AAAA,gCAEC,QAAA,EAAA,YAAA,CAAa,KAAK,IAAI;AAAA;AAAA,6BACzB;AAAA,4CACAC,KAAC,KAAA,EAAA,EAAI,KAAA,EAAO,EAAE,IAAA,EAAM,CAAA,EAAG,QAAA,EAAU,CAAA,EAAE,EACjC,QAAA,EAAA;AAAA,8CAAAD,GAAAA;AAAA,gCAAC,GAAA;AAAA,gCAAA;AAAA,kCACC,KAAA,EAAO;AAAA,oCACL,QAAA,EAAU,MAAA;AAAA,oCACV,UAAA,EAAY,CAAC,IAAA,CAAK,MAAA,GAAS,GAAA,GAAM,GAAA;AAAA,oCACjC,KAAA,EAAO,MAAA;AAAA,oCACP,MAAA,EAAQ;AAAA,mCACV;AAAA,kCAEC,QAAA,EAAA,IAAA,CAAK;AAAA;AAAA,+BACR;AAAA,8CACAA,GAAAA;AAAA,gCAAC,GAAA;AAAA,gCAAA;AAAA,kCACC,KAAA,EAAO;AAAA,oCACL,QAAA,EAAU,MAAA;AAAA,oCACV,KAAA,EAAO,SAAA;AAAA,oCACP,MAAA,EAAQ,SAAA;AAAA,oCACR,UAAA,EAAY;AAAA,mCACd;AAAA,kCAEC,QAAA,EAAA,IAAA,CAAK;AAAA;AAAA,+BACR;AAAA,8CACAA,GAAAA;AAAA,gCAAC,GAAA;AAAA,gCAAA;AAAA,kCACC,KAAA,EAAO;AAAA,oCACL,QAAA,EAAU,MAAA;AAAA,oCACV,KAAA,EAAO,SAAA;AAAA,oCACP,MAAA,EAAQ,CAAA;AAAA,oCACR,UAAA,EAAY;AAAA,mCACd;AAAA,kCAEC,QAAA,EAAA,IAAA,CAAK;AAAA;AAAA;AACR,6BAAA,EACF;AAAA;AAAA,yBAAA;AAAA,wBAhFK,IAAA,CAAK;AAAA,uBAkFb,CAAA,EAEL,CAAA;AAAA,sBAEC,6BACCA,GAAAA;AAAA,wBAAC,KAAA;AAAA,wBAAA;AAAA,0BACC,KAAA,EAAO;AAAA,4BACL,OAAA,EAAS,MAAA;AAAA,4BACT,SAAA,EAAW,mBAAA;AAAA,4BACX,SAAA,EAAW,QAAA;AAAA,4BACX,UAAA,EAAY;AAAA,2BACd;AAAA,0BAEA,QAAA,kBAAAA,GAAAA;AAAA,4BAAC,QAAA;AAAA,4BAAA;AAAA,8BACC,OAAA,EAAS,SAAA;AAAA,8BACT,KAAA,EAAO;AAAA,gCACL,QAAA,EAAU,MAAA;AAAA,gCACV,KAAA,EAAO,SAAA;AAAA,gCACP,UAAA,EAAY,MAAA;AAAA,gCACZ,MAAA,EAAQ,MAAA;AAAA,gCACR,MAAA,EAAQ,SAAA;AAAA,gCACR,UAAA,EAAY,GAAA;AAAA,gCACZ,KAAA,EAAO,MAAA;AAAA,gCACP,OAAA,EAAS;AAAA,+BACX;AAAA,8BACD,QAAA,EAAA;AAAA;AAAA;AAED;AAAA;AACF;AAAA;AAAA;AAEJ,eAAA,EAEJ,CAAA;AAAA,cAGC,mCACCA,GAAAA;AAAA,gBAAC,QAAA;AAAA,gBAAA;AAAA,kBACC,OAAA,EAAS,eAAA;AAAA,kBACT,KAAA,EAAO;AAAA,oBACL,OAAA,EAAS,MAAA;AAAA,oBACT,YAAA,EAAc,KAAA;AAAA,oBACd,MAAA,EAAQ,MAAA;AAAA,oBACR,UAAA,EAAY,aAAA;AAAA,oBACZ,MAAA,EAAQ,SAAA;AAAA,oBACR,OAAA,EAAS,MAAA;AAAA,oBACT,UAAA,EAAY,QAAA;AAAA,oBACZ,cAAA,EAAgB;AAAA,mBAClB;AAAA,kBACA,YAAA,EAAc,CAAC,CAAA,KAAM;AACnB,oBAAA,CAAA,CAAE,aAAA,CAAc,MAAM,eAAA,GAAkB,SAAA;AAAA,kBAC1C,CAAA;AAAA,kBACA,YAAA,EAAc,CAAC,CAAA,KAAM;AACnB,oBAAA,CAAA,CAAE,aAAA,CAAc,MAAM,eAAA,GAAkB,aAAA;AAAA,kBAC1C,CAAA;AAAA,kBAEA,QAAA,kBAAAA,IAAC,aAAA,EAAA,EAAc;AAAA;AAAA;AACjB,aAAA,EAEJ;AAAA;AAAA;AAAA;AACF;AAAA,GACF;AAEJ;AC9ZA,SAASI,WAAAA,GAAa;AACpB,EAAA,uBACEH,IAAAA,CAAC,KAAA,EAAA,EAAI,OAAM,IAAA,EAAK,MAAA,EAAO,MAAK,OAAA,EAAQ,WAAA,EAAY,IAAA,EAAK,MAAA,EAAO,QAAO,cAAA,EAAe,WAAA,EAAY,KAAI,aAAA,EAAc,OAAA,EAAQ,gBAAe,OAAA,EACrI,QAAA,EAAA;AAAA,oBAAAD,GAAAA,CAAC,MAAA,EAAA,EAAK,CAAA,EAAE,yCAAA,EAA0C,CAAA;AAAA,oBAClDA,GAAAA,CAAC,UAAA,EAAA,EAAS,MAAA,EAAO,kBAAA,EAAmB,CAAA;AAAA,oBACpCA,GAAAA,CAAC,MAAA,EAAA,EAAK,EAAA,EAAG,IAAA,EAAK,IAAG,IAAA,EAAK,EAAA,EAAG,GAAA,EAAI,EAAA,EAAG,IAAA,EAAK;AAAA,GAAA,EACvC,CAAA;AAEJ;AAEe,SAAR,WAAA,CAA6B;AAAA,EAClC,IAAA;AAAA,EACA,SAAA;AAAA,EACA,SAAA;AAAA,EACA,UAAA;AAAA,EACA,QAAA;AAAA,EACA,MAAA;AAAA,EACA,OAAA;AAAA,EACA,SAAA,GAAY;AACd,CAAA,EAAqB;AAEnB,EAAAK,UAAU,MAAM;AACd,IAAA,IAAI,MAAA,EAAQ;AACV,MAAA,QAAA,CAAS,IAAA,CAAK,MAAM,QAAA,GAAW,QAAA;AAAA,IACjC,CAAA,MAAO;AACL,MAAA,QAAA,CAAS,IAAA,CAAK,MAAM,QAAA,GAAW,EAAA;AAAA,IACjC;AACA,IAAA,OAAO,MAAM;AACX,MAAA,QAAA,CAAS,IAAA,CAAK,MAAM,QAAA,GAAW,EAAA;AAAA,IACjC,CAAA;AAAA,EACF,CAAA,EAAG,CAAC,MAAM,CAAC,CAAA;AAEX,EAAA,MAAM,cAAc,MAAM;AACxB,IAAA,IAAI,CAAC,MAAM,OAAO,sCAAA;AAClB,IAAA,IAAI,IAAA,CAAK,SAAA,IAAa,IAAA,CAAK,QAAA,EAAU,OAAO,GAAG,IAAA,CAAK,SAAS,CAAA,CAAA,EAAI,IAAA,CAAK,QAAQ,CAAA,CAAA;AAC9E,IAAA,OAAO,IAAA,CAAK,SAAA,IAAa,IAAA,CAAK,QAAA,IAAY,sCAAA;AAAA,EAC5C,CAAA;AAEA,EAAA,MAAM,aAAa,MAAM;AACvB,IAAA,IAAI,CAAC,MAAM,OAAO,GAAA;AAClB,IAAA,OAAO,IAAA,CAAK,WAAW,MAAA,CAAO,CAAC,KAAK,IAAA,CAAK,QAAA,EAAU,MAAA,CAAO,CAAC,CAAA,IAAK,GAAA;AAAA,EAClE,CAAA;AAEA,EAAA,MAAM,eAAA,GAAkB,CAAC,IAAA,KAAiB;AACxC,IAAA,UAAA,CAAW,IAAI,CAAA;AACf,IAAA,OAAA,EAAQ;AAAA,EACV,CAAA;AAEA,EAAA,MAAM,eAAe,MAAM;AACzB,IAAA,OAAA,EAAQ;AACR,IAAA,QAAA,EAAS;AAAA,EACX,CAAA;AAEA,EAAA,uBACEJ,IAAAA,CAAAE,QAAAA,EAAA,EAEG,QAAA,EAAA;AAAA,IAAA,MAAA,oBACCH,GAAAA;AAAA,MAAC,KAAA;AAAA,MAAA;AAAA,QACC,OAAA,EAAS,OAAA;AAAA,QACT,KAAA,EAAO;AAAA,UACL,QAAA,EAAU,OAAA;AAAA,UACV,KAAA,EAAO,CAAA;AAAA,UACP,UAAA,EAAY,iBAAA;AAAA,UACZ,MAAA,EAAQ,EAAA;AAAA,UACR,UAAA,EAAY;AAAA;AACd;AAAA,KACF;AAAA,oBAIFC,IAAAA;AAAA,MAAC,OAAA;AAAA,MAAA;AAAA,QACC,KAAA,EAAO;AAAA,UACL,QAAA,EAAU,OAAA;AAAA,UACV,GAAA,EAAK,CAAA;AAAA,UACL,KAAA,EAAO,CAAA;AAAA,UACP,MAAA,EAAQ,MAAA;AAAA,UACR,KAAA,EAAO,MAAA;AAAA,UACP,QAAA,EAAU,OAAA;AAAA,UACV,UAAA,EAAY,MAAA;AAAA,UACZ,SAAA,EAAW,8BAAA;AAAA,UACX,MAAA,EAAQ,EAAA;AAAA,UACR,SAAA,EAAW,SAAS,eAAA,GAAkB,kBAAA;AAAA,UACtC,UAAA,EAAY,qBAAA;AAAA,UACZ,OAAA,EAAS,MAAA;AAAA,UACT,aAAA,EAAe;AAAA,SACjB;AAAA,QAGC,QAAA,EAAA;AAAA,UAAA,IAAA,oBACCD,GAAAA;AAAA,YAAC,KAAA;AAAA,YAAA;AAAA,cACC,KAAA,EAAO;AAAA,gBACL,OAAA,EAAS,MAAA;AAAA,gBACT,YAAA,EAAc;AAAA,eAChB;AAAA,cAEA,QAAA,kBAAAC,IAAAA,CAAC,KAAA,EAAA,EAAI,KAAA,EAAO,EAAE,OAAA,EAAS,MAAA,EAAQ,UAAA,EAAY,QAAA,EAAU,GAAA,EAAK,MAAA,EAAO,EAC9D,QAAA,EAAA;AAAA,gBAAA,IAAA,CAAK,6BACJD,GAAAA;AAAA,kBAAC,KAAA;AAAA,kBAAA;AAAA,oBACC,KAAK,IAAA,CAAK,UAAA;AAAA,oBACV,KAAK,WAAA,EAAY;AAAA,oBACjB,KAAA,EAAO;AAAA,sBACL,KAAA,EAAO,MAAA;AAAA,sBACP,MAAA,EAAQ,MAAA;AAAA,sBACR,YAAA,EAAc,KAAA;AAAA,sBACd,SAAA,EAAW,OAAA;AAAA,sBACX,SAAA,EAAW;AAAA;AACb;AAAA,oCAGFA,GAAAA;AAAA,kBAAC,KAAA;AAAA,kBAAA;AAAA,oBACC,KAAA,EAAO;AAAA,sBACL,KAAA,EAAO,MAAA;AAAA,sBACP,MAAA,EAAQ,MAAA;AAAA,sBACR,YAAA,EAAc,KAAA;AAAA,sBACd,UAAA,EAAY,6HAAA;AAAA,sBACZ,OAAA,EAAS,MAAA;AAAA,sBACT,UAAA,EAAY,QAAA;AAAA,sBACZ,cAAA,EAAgB,QAAA;AAAA,sBAChB,KAAA,EAAO,MAAA;AAAA,sBACP,UAAA,EAAY,GAAA;AAAA,sBACZ,QAAA,EAAU,MAAA;AAAA,sBACV,SAAA,EAAW;AAAA,qBACb;AAAA,oBAEC,QAAA,EAAA,UAAA;AAAW;AAAA,iBACd;AAAA,gCAEFC,KAAC,KAAA,EAAA,EAAI,KAAA,EAAO,EAAE,IAAA,EAAM,CAAA,EAAG,QAAA,EAAU,CAAA,EAAE,EACjC,QAAA,EAAA;AAAA,kCAAAD,GAAAA;AAAA,oBAAC,GAAA;AAAA,oBAAA;AAAA,sBACC,KAAA,EAAO;AAAA,wBACL,UAAA,EAAY,GAAA;AAAA,wBACZ,QAAA,EAAU,MAAA;AAAA,wBACV,KAAA,EAAO,iDAAA;AAAA,wBACP,MAAA,EAAQ,CAAA;AAAA,wBACR,QAAA,EAAU,QAAA;AAAA,wBACV,YAAA,EAAc,UAAA;AAAA,wBACd,UAAA,EAAY;AAAA,uBACd;AAAA,sBAEC,QAAA,EAAA,WAAA;AAAY;AAAA,mBACf;AAAA,kCACAC,IAAAA;AAAA,oBAAC,GAAA;AAAA,oBAAA;AAAA,sBACC,KAAA,EAAO;AAAA,wBACL,QAAA,EAAU,MAAA;AAAA,wBACV,KAAA,EAAO,kDAAA;AAAA,wBACP,MAAA,EAAQ,SAAA;AAAA,wBACR,OAAA,EAAS,MAAA;AAAA,wBACT,UAAA,EAAY,QAAA;AAAA,wBACZ,GAAA,EAAK;AAAA,uBACP;AAAA,sBAEA,QAAA,EAAA;AAAA,wCAAAD,GAAAA;AAAA,0BAAC,MAAA;AAAA,0BAAA;AAAA,4BACC,KAAA,EAAO;AAAA,8BACL,KAAA,EAAO,KAAA;AAAA,8BACP,MAAA,EAAQ,KAAA;AAAA,8BACR,YAAA,EAAc,KAAA;AAAA,8BACd,UAAA,EAAY,SAAA;AAAA,8BACZ,OAAA,EAAS;AAAA;AACX;AAAA,yBACF;AAAA,wBACC;AAAA;AAAA;AAAA;AACH,iBAAA,EACF;AAAA,eAAA,EACF;AAAA;AAAA,WACF;AAAA,0BAIFA,GAAAA;AAAA,YAAC,WAAA;AAAA,YAAA;AAAA,cACC,SAAA;AAAA,cACA,WAAA,EAAa;AAAA;AAAA,WACf;AAAA,0BAGAA,GAAAA;AAAA,YAAC,KAAA;AAAA,YAAA;AAAA,cACC,KAAA,EAAO;AAAA,gBACL,OAAA,EAAS,MAAA;AAAA,gBACT,SAAA,EAAW;AAAA,eACb;AAAA,cAEA,QAAA,kBAAAC,IAAAA;AAAA,gBAAC,QAAA;AAAA,gBAAA;AAAA,kBACC,OAAA,EAAS,YAAA;AAAA,kBACT,YAAA,EAAc,CAAC,CAAA,KAAM;AACnB,oBAAA,CAAA,CAAE,aAAA,CAAc,MAAM,eAAA,GAAkB,SAAA;AAAA,kBAC1C,CAAA;AAAA,kBACA,YAAA,EAAc,CAAC,CAAA,KAAM;AACnB,oBAAA,CAAA,CAAE,aAAA,CAAc,MAAM,eAAA,GAAkB,aAAA;AAAA,kBAC1C,CAAA;AAAA,kBACA,KAAA,EAAO;AAAA,oBACL,KAAA,EAAO,MAAA;AAAA,oBACP,OAAA,EAAS,MAAA;AAAA,oBACT,UAAA,EAAY,QAAA;AAAA,oBACZ,GAAA,EAAK,MAAA;AAAA,oBACL,OAAA,EAAS,WAAA;AAAA,oBACT,YAAA,EAAc,KAAA;AAAA,oBACd,MAAA,EAAQ,MAAA;AAAA,oBACR,UAAA,EAAY,aAAA;AAAA,oBACZ,KAAA,EAAO,+CAAA;AAAA,oBACP,MAAA,EAAQ,SAAA;AAAA,oBACR,UAAA,EAAY,6BAAA;AAAA,oBACZ,QAAA,EAAU,MAAA;AAAA,oBACV,UAAA,EAAY;AAAA,mBACd;AAAA,kBAEA,QAAA,EAAA;AAAA,oCAAAD,GAAAA,CAACI,aAAA,EAAW,CAAA;AAAA,oCACZJ,GAAAA,CAAC,MAAA,EAAA,EAAK,QAAA,EAAA,8DAAA,EAAU;AAAA;AAAA;AAAA;AAClB;AAAA;AACF;AAAA;AAAA;AACF,GAAA,EACF,CAAA;AAEJ","file":"index.mjs","sourcesContent":["'use client';\n\ninterface SidebarHeaderProps {\n orgLogo?: string;\n orgName: string;\n orgSubtitle?: string;\n collapsed?: boolean;\n}\n\nexport default function SidebarHeader({ orgLogo, orgName, orgSubtitle, collapsed }: SidebarHeaderProps) {\n if (collapsed) {\n return (\n <div style={{\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n padding: '20px 8px',\n }}>\n {orgLogo ? (\n <img\n src={orgLogo}\n alt={orgName}\n style={{\n width: '36px',\n height: '36px',\n borderRadius: '50%',\n objectFit: 'cover',\n }}\n />\n ) : (\n <div style={{\n width: '36px',\n height: '36px',\n borderRadius: '50%',\n background: 'var(--color-alias-color-brand-primary, #1e7d55)',\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n color: '#fff',\n fontWeight: 700,\n fontSize: '14px',\n }}>\n {orgName.charAt(0)}\n </div>\n )}\n </div>\n );\n }\n\n return (\n <div style={{\n display: 'flex',\n alignItems: 'center',\n gap: '12px',\n padding: '24px 20px',\n }}>\n {orgLogo && (\n <img\n src={orgLogo}\n alt={orgName}\n style={{\n width: '48px',\n height: '48px',\n borderRadius: '50%',\n objectFit: 'cover',\n flexShrink: 0,\n }}\n />\n )}\n <div style={{ minWidth: 0 }}>\n <p style={{\n fontWeight: 700,\n fontSize: '16px',\n lineHeight: '22px',\n color: 'var(--color-alias-color-brand-text-dark, #05010e)',\n margin: 0,\n overflow: 'hidden',\n textOverflow: 'ellipsis',\n whiteSpace: 'nowrap',\n }}>\n {orgName}\n </p>\n {orgSubtitle && (\n <p style={{\n fontSize: '14px',\n lineHeight: '20px',\n color: 'var(--color-alias-text-colors-tertiary, #475272)',\n margin: 0,\n overflow: 'hidden',\n textOverflow: 'ellipsis',\n whiteSpace: 'nowrap',\n }}>\n {orgSubtitle}\n </p>\n )}\n </div>\n </div>\n );\n}\n","'use client';\n\nimport { useState } from 'react';\nimport type { MenuItem } from './types';\n\ninterface SidebarMenuProps {\n menuItems: MenuItem[];\n onItemClick: (path: string) => void;\n currentPath?: string;\n collapsed?: boolean;\n}\n\nfunction ChevronDownIcon({ isOpen }: { isOpen: boolean }) {\n return (\n <svg\n width=\"16\"\n height=\"16\"\n viewBox=\"0 0 20 20\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n style={{\n transition: 'transform 0.2s ease',\n transform: isOpen ? 'rotate(180deg)' : 'rotate(0deg)',\n flexShrink: 0,\n }}\n >\n <path d=\"M5 7.5L10 12.5L15 7.5\" />\n </svg>\n );\n}\n\nfunction MenuItemComponent({\n item,\n onItemClick,\n currentPath,\n depth = 0,\n collapsed = false,\n}: {\n item: MenuItem;\n onItemClick: (path: string) => void;\n currentPath?: string;\n depth?: number;\n collapsed?: boolean;\n}) {\n const [isOpen, setIsOpen] = useState(false);\n const hasChildren = item.children && item.children.length > 0;\n const isActive = item.path ? currentPath === item.path : false;\n const isChildActive = hasChildren\n ? item.children!.some((child) => child.path === currentPath)\n : false;\n const expanded = isOpen || isChildActive;\n\n const handleClick = () => {\n if (hasChildren) {\n setIsOpen(!isOpen);\n } else if (item.path) {\n onItemClick(item.path);\n }\n };\n\n const activeColor = 'var(--color-alias-color-brand-primary, #1e7d55)';\n const hoverBg = 'var(--color-foundations-fuji-pallet-light, #ebedf5)';\n\n // Collapsed mode: icon only\n if (collapsed && depth === 0) {\n return (\n <li>\n <button\n onClick={handleClick}\n title={item.title}\n onMouseEnter={(e) => {\n if (!isActive) e.currentTarget.style.backgroundColor = hoverBg;\n }}\n onMouseLeave={(e) => {\n if (!isActive) e.currentTarget.style.backgroundColor = 'transparent';\n }}\n style={{\n width: '100%',\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n padding: '12px 0',\n borderRadius: '8px',\n border: 'none',\n background: isActive || isChildActive\n ? `color-mix(in srgb, ${activeColor} 10%, transparent)`\n : 'transparent',\n color: isActive || isChildActive\n ? activeColor\n : 'var(--color-alias-text-colors-tertiary, #475272)',\n cursor: 'pointer',\n transition: 'background-color 0.15s ease',\n }}\n >\n {item.icon && (\n <span style={{\n width: '24px',\n height: '24px',\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n }}>\n {item.icon}\n </span>\n )}\n </button>\n {item.dividerAfter && (\n <hr style={{\n border: 'none',\n borderTop: '1px solid var(--color-border-colors-neutral, #c8cedd)',\n margin: '8px 4px',\n }} />\n )}\n </li>\n );\n }\n\n return (\n <>\n <li>\n <button\n onClick={handleClick}\n onMouseEnter={(e) => {\n if (!isActive) e.currentTarget.style.backgroundColor = hoverBg;\n }}\n onMouseLeave={(e) => {\n if (!isActive) e.currentTarget.style.backgroundColor = 'transparent';\n }}\n style={{\n width: '100%',\n display: 'flex',\n alignItems: 'center',\n gap: '12px',\n padding: depth > 0 ? '10px 16px 10px 52px' : '12px 16px',\n borderRadius: '8px',\n border: 'none',\n background: isActive ? `color-mix(in srgb, ${activeColor} 10%, transparent)` : 'transparent',\n color: isActive\n ? activeColor\n : 'var(--color-alias-text-colors-primary, #060d26)',\n cursor: 'pointer',\n transition: 'background-color 0.15s ease',\n textAlign: 'left',\n fontSize: '15px',\n fontWeight: isActive ? 600 : 400,\n lineHeight: '22px',\n }}\n >\n {item.icon && (\n <span style={{\n width: '24px',\n height: '24px',\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n flexShrink: 0,\n color: isActive\n ? activeColor\n : 'var(--color-alias-text-colors-tertiary, #475272)',\n }}>\n {item.icon}\n </span>\n )}\n <span style={{ flex: 1 }}>{item.title}</span>\n {hasChildren && <ChevronDownIcon isOpen={expanded} />}\n </button>\n </li>\n {hasChildren && expanded && (\n <ul style={{ listStyle: 'none', margin: 0, padding: 0 }}>\n {item.children!.map((child) => (\n <MenuItemComponent\n key={child.id}\n item={child}\n onItemClick={onItemClick}\n currentPath={currentPath}\n depth={depth + 1}\n />\n ))}\n </ul>\n )}\n {item.dividerAfter && (\n <li>\n <hr style={{\n border: 'none',\n borderTop: '1px solid var(--color-border-colors-neutral, #c8cedd)',\n margin: '8px 0',\n }} />\n </li>\n )}\n </>\n );\n}\n\nexport default function SidebarMenu({ menuItems, onItemClick, currentPath, collapsed }: SidebarMenuProps) {\n return (\n <nav style={{\n flex: collapsed ? undefined : 1,\n padding: collapsed ? '8px 8px' : '8px 12px',\n overflowY: 'auto',\n }}>\n <ul style={{\n listStyle: 'none',\n margin: 0,\n padding: 0,\n display: 'flex',\n flexDirection: 'column',\n gap: '2px',\n }}>\n {menuItems.map((item) => (\n <MenuItemComponent\n key={item.id}\n item={item}\n onItemClick={onItemClick}\n currentPath={currentPath}\n collapsed={collapsed}\n />\n ))}\n </ul>\n </nav>\n );\n}\n","'use client';\n\nimport type { User } from './types';\n\ninterface SidebarUserProfileProps {\n user: User | null;\n roleLabel: string;\n onLogout: () => void;\n collapsed?: boolean;\n}\n\nfunction LogoutIcon() {\n return (\n <svg\n width=\"20\"\n height=\"20\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n >\n <path d=\"M9 21H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h4\" />\n <polyline points=\"16 17 21 12 16 7\" />\n <line x1=\"21\" y1=\"12\" x2=\"9\" y2=\"12\" />\n </svg>\n );\n}\n\nexport default function SidebarUserProfile({\n user,\n roleLabel,\n onLogout,\n collapsed,\n}: SidebarUserProfileProps) {\n if (!user) return null;\n\n const getFullName = () => {\n if (user.firstName && user.lastName) {\n return `${user.firstName} ${user.lastName}`;\n }\n return user.firstName || user.lastName || 'ผู้ใช้';\n };\n\n const getInitial = () => {\n return user.firstName?.charAt(0) || user.lastName?.charAt(0) || '?';\n };\n\n // Collapsed: avatar + logout icon only\n if (collapsed) {\n return (\n <div style={{\n padding: '12px 8px',\n borderTop: '1px solid var(--color-border-colors-neutral, #c8cedd)',\n display: 'flex',\n flexDirection: 'column',\n alignItems: 'center',\n gap: '12px',\n }}>\n {user.pictureUrl ? (\n <img\n src={user.pictureUrl}\n alt={getFullName()}\n title={getFullName()}\n style={{\n width: '36px',\n height: '36px',\n borderRadius: '50%',\n objectFit: 'cover',\n }}\n />\n ) : (\n <div\n title={getFullName()}\n style={{\n width: '36px',\n height: '36px',\n borderRadius: '50%',\n background: 'var(--color-alias-color-brand-primary, #1e7d55)',\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n color: '#fff',\n fontWeight: 700,\n fontSize: '14px',\n }}\n >\n {getInitial()}\n </div>\n )}\n <button\n onClick={onLogout}\n title=\"ออกจากระบบ\"\n onMouseEnter={(e) => {\n e.currentTarget.style.backgroundColor = 'var(--color-foundations-fuan-pallet-light, #ffd2d2)';\n }}\n onMouseLeave={(e) => {\n e.currentTarget.style.backgroundColor = 'transparent';\n }}\n style={{\n width: '36px',\n height: '36px',\n borderRadius: '8px',\n border: 'none',\n background: 'transparent',\n color: 'var(--color-alias-semantic-critical, #f21515)',\n cursor: 'pointer',\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n transition: 'background-color 0.15s ease',\n }}\n >\n <LogoutIcon />\n </button>\n </div>\n );\n }\n\n // Expanded\n return (\n <div\n style={{\n padding: '16px 20px',\n borderTop: '1px solid var(--color-border-colors-neutral, #c8cedd)',\n display: 'flex',\n alignItems: 'center',\n gap: '12px',\n }}\n >\n {user.pictureUrl ? (\n <img\n src={user.pictureUrl}\n alt={getFullName()}\n style={{\n width: '40px',\n height: '40px',\n borderRadius: '50%',\n objectFit: 'cover',\n flexShrink: 0,\n }}\n />\n ) : (\n <div\n style={{\n width: '40px',\n height: '40px',\n borderRadius: '50%',\n background: 'var(--color-alias-color-brand-primary, #1e7d55)',\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n color: '#fff',\n fontWeight: 700,\n fontSize: '16px',\n flexShrink: 0,\n }}\n >\n {getInitial()}\n </div>\n )}\n <div style={{ flex: 1, minWidth: 0 }}>\n <p style={{\n fontWeight: 600,\n fontSize: '14px',\n lineHeight: '20px',\n color: 'var(--color-alias-text-colors-primary, #060d26)',\n margin: 0,\n overflow: 'hidden',\n textOverflow: 'ellipsis',\n whiteSpace: 'nowrap',\n }}>\n {getFullName()}\n </p>\n <p style={{\n fontSize: '12px',\n lineHeight: '16px',\n color: 'var(--color-alias-text-colors-tertiary, #475272)',\n margin: 0,\n }}>\n {roleLabel}\n </p>\n </div>\n <button\n onClick={onLogout}\n title=\"ออกจากระบบ\"\n onMouseEnter={(e) => {\n e.currentTarget.style.backgroundColor = 'var(--color-foundations-fuan-pallet-light, #ffd2d2)';\n e.currentTarget.style.color = 'var(--color-alias-semantic-critical, #f21515)';\n }}\n onMouseLeave={(e) => {\n e.currentTarget.style.backgroundColor = 'transparent';\n e.currentTarget.style.color = 'var(--color-alias-semantic-critical, #f21515)';\n }}\n style={{\n width: '36px',\n height: '36px',\n borderRadius: '8px',\n border: 'none',\n background: 'transparent',\n color: 'var(--color-alias-semantic-critical, #f21515)',\n cursor: 'pointer',\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n transition: 'background-color 0.15s ease',\n flexShrink: 0,\n }}\n >\n <LogoutIcon />\n </button>\n </div>\n );\n}\n","'use client';\n\nimport { useState } from 'react';\nimport SidebarHeader from './SidebarHeader';\nimport SidebarMenu from './SidebarMenu';\nimport SidebarUserProfile from './SidebarUserProfile';\nimport type { StaffSidebarProps } from './types';\n\nfunction ToggleIcon({ isOpen }: { isOpen: boolean }) {\n return (\n <svg\n width=\"18\"\n height=\"18\"\n viewBox=\"0 0 24 24\"\n fill=\"none\"\n stroke=\"currentColor\"\n strokeWidth=\"2\"\n strokeLinecap=\"round\"\n strokeLinejoin=\"round\"\n style={{\n transition: 'transform 0.2s ease',\n transform: isOpen ? 'rotate(0deg)' : 'rotate(180deg)',\n }}\n >\n <path d=\"M15 18l-6-6 6-6\" />\n </svg>\n );\n}\n\nexport default function StaffSidebar({\n orgLogo,\n orgName,\n orgSubtitle,\n menuItems,\n bottomMenuItems,\n user,\n roleLabel,\n onNavigate,\n onLogout,\n currentPath,\n width = '280px',\n className,\n collapsible = false,\n isOpen: controlledIsOpen,\n onToggle,\n}: StaffSidebarProps) {\n const [internalOpen, setInternalOpen] = useState(true);\n const sidebarOpen = controlledIsOpen !== undefined ? controlledIsOpen : internalOpen;\n const collapsed = collapsible && !sidebarOpen;\n const collapsedWidth = '64px';\n const currentWidth = collapsed ? collapsedWidth : width;\n\n const handleToggle = () => {\n if (onToggle) {\n onToggle();\n } else {\n setInternalOpen(!internalOpen);\n }\n };\n\n return (\n <>\n <aside\n className={className}\n style={{\n position: 'fixed',\n top: 0,\n left: 0,\n height: '100vh',\n width: currentWidth,\n background: '#fff',\n borderRight: '1px solid var(--color-border-colors-neutral, #c8cedd)',\n display: 'flex',\n flexDirection: 'column',\n zIndex: 40,\n overflow: 'hidden',\n transition: 'width 0.3s ease',\n }}\n >\n {/* Organization Header */}\n <SidebarHeader\n orgLogo={orgLogo}\n orgName={orgName}\n orgSubtitle={orgSubtitle}\n collapsed={collapsed}\n />\n\n {/* Main Menu */}\n <SidebarMenu\n menuItems={menuItems}\n onItemClick={onNavigate}\n currentPath={currentPath}\n collapsed={collapsed}\n />\n\n {/* Bottom Menu (e.g. Settings) */}\n {bottomMenuItems && bottomMenuItems.length > 0 && (\n <SidebarMenu\n menuItems={bottomMenuItems}\n onItemClick={onNavigate}\n currentPath={currentPath}\n collapsed={collapsed}\n />\n )}\n\n {/* User Profile */}\n <SidebarUserProfile\n user={user}\n roleLabel={roleLabel}\n onLogout={onLogout}\n collapsed={collapsed}\n />\n </aside>\n\n {/* Toggle Button — top edge */}\n {collapsible && (\n <button\n onClick={handleToggle}\n title={sidebarOpen ? 'ย่อ Sidebar' : 'ขยาย Sidebar'}\n onMouseEnter={(e) => {\n e.currentTarget.style.backgroundColor = '#f3f4f6';\n }}\n onMouseLeave={(e) => {\n e.currentTarget.style.backgroundColor = '#fff';\n }}\n style={{\n position: 'fixed',\n top: '10%',\n left: currentWidth,\n zIndex: 41,\n width: '24px',\n height: '40px',\n borderRadius: '0 6px 6px 0',\n border: '1px solid var(--color-border-colors-neutral, #c8cedd)',\n borderLeft: 'none',\n background: '#fff',\n cursor: 'pointer',\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n boxShadow: '2px 0 8px rgba(0,0,0,0.06)',\n transition: 'left 0.3s ease',\n color: 'var(--color-alias-text-colors-tertiary, #475272)',\n }}\n >\n <ToggleIcon isOpen={sidebarOpen} />\n </button>\n )}\n </>\n );\n}\n","'use client';\n\nimport { useState, useRef, useEffect } from 'react';\n\nexport interface NotificationItem {\n id: string | number;\n title: string;\n description: string;\n date: string;\n type: 'info' | 'success' | 'warning' | 'error' | 'reminder';\n isRead: boolean;\n}\n\ninterface UserHeaderProps {\n user?: {\n firstName?: string;\n lastName?: string;\n pictureUrl?: string;\n };\n notifications?: NotificationItem[];\n onToggleSidebar?: () => void;\n /** Custom bell icon */\n notificationBell?: React.ReactNode;\n onMarkAllRead?: () => void;\n onViewAll?: () => void;\n className?: string;\n}\n\nfunction BellIcon() {\n return (\n <svg width=\"22\" height=\"24\" viewBox=\"0 0 22 24\" fill=\"none\">\n <path\n d=\"M21.2321 13.4463L19.3618 6.71712C18.8136 4.74574 17.6222 3.01418 15.9769 1.79767C14.3316 0.581165 12.3269 -0.0504751 10.2814 0.00315377C8.23593 0.0567826 6.26708 0.792603 4.6878 2.09365C3.10852 3.3947 2.00945 5.18632 1.5653 7.18371L0.11728 13.6954C-0.0426654 14.4149 -0.0389674 15.1611 0.128101 15.879C0.29517 16.5969 0.621344 17.2681 1.08254 17.8431C1.54374 18.418 2.12818 18.8821 2.79272 19.2009C3.45727 19.5198 4.18494 19.6853 4.92202 19.6853H6.01861C6.24454 20.7979 6.84817 21.7982 7.72723 22.5167C8.60629 23.2352 9.70671 23.6277 10.842 23.6277C11.9774 23.6277 13.0778 23.2352 13.9569 22.5167C14.8359 21.7982 15.4396 20.7979 15.6655 19.6853H16.4904C17.2492 19.6853 17.9977 19.5099 18.6774 19.1728C19.3572 18.8357 19.9498 18.346 20.409 17.742C20.8682 17.1379 21.1815 16.4359 21.3245 15.6907C21.4674 14.9455 21.4352 14.1774 21.2321 13.4463ZM10.842 21.654C10.2334 21.6515 9.64049 21.461 9.1443 21.1086C8.6481 20.7562 8.27291 20.2591 8.07005 19.6853H13.614C13.4112 20.2591 13.036 20.7562 12.5398 21.1086C12.0436 21.461 11.4506 21.6515 10.842 21.654ZM18.8411 16.55C18.5668 16.9139 18.2114 17.2088 17.8032 17.4113C17.3949 17.6138 16.9451 17.7183 16.4894 17.7165H4.92202C4.47982 17.7164 4.04328 17.6171 3.64463 17.4257C3.24598 17.2344 2.89539 16.9559 2.61874 16.611C2.34208 16.266 2.14643 15.8633 2.04622 15.4326C1.94602 15.0019 1.94381 14.5542 2.03977 14.1226L3.4868 7.60994C3.83561 6.04105 4.69886 4.63379 5.93932 3.61186C7.17978 2.58992 8.72625 2.01197 10.3329 1.96988C11.9395 1.92779 13.5142 2.42398 14.8064 3.37956C16.0987 4.33515 17.0344 5.69528 17.4649 7.24376L19.3352 13.9729C19.4588 14.4114 19.4785 14.8725 19.3927 15.3199C19.3069 15.7672 19.1181 16.1884 18.8411 16.55Z\"\n fill=\"var(--color-alias-color-brand-text-dark, #05010e)\"\n />\n </svg>\n );\n}\n\nfunction HamburgerIcon() {\n return (\n <svg width=\"24\" height=\"18\" viewBox=\"0 0 27 18\" fill=\"none\">\n <path\n d=\"M1.1875 17.8426C0.851042 17.8426 0.569077 17.7287 0.341604 17.501C0.113868 17.2735 0 16.9914 0 16.6547C0 16.3182 0.113868 16.0363 0.341604 15.8088C0.569077 15.5816 0.851042 15.468 1.1875 15.468H25.7292C26.0656 15.468 26.3476 15.5817 26.5751 15.8092C26.8028 16.0369 26.9167 16.3192 26.9167 16.6559C26.9167 16.9923 26.8028 17.2743 26.5751 17.5018C26.3476 17.729 26.0656 17.8426 25.7292 17.8426H1.1875ZM1.1875 10.1088C0.851042 10.1088 0.569077 9.99492 0.341604 9.76719C0.113868 9.53945 0 9.25735 0 8.9209C0 8.58417 0.113868 8.30221 0.341604 8.075C0.569077 7.84753 0.851042 7.73379 1.1875 7.73379H25.7292C26.0656 7.73379 26.3476 7.84766 26.5751 8.0754C26.8028 8.30313 26.9167 8.58523 26.9167 8.92169C26.9167 9.25841 26.8028 9.54037 26.5751 9.76758C26.3476 9.99506 26.0656 10.1088 25.7292 10.1088H1.1875ZM1.1875 2.3746C0.851042 2.3746 0.569077 2.26087 0.341604 2.0334C0.113868 1.80566 0 1.52343 0 1.18671C0 0.850249 0.113868 0.568284 0.341604 0.340812C0.569077 0.113604 0.851042 0 1.1875 0H25.7292C26.0656 0 26.3476 0.113868 26.5751 0.341604C26.8028 0.569077 26.9167 0.851174 26.9167 1.1879C26.9167 1.52435 26.8028 1.80632 26.5751 2.03379C26.3476 2.261 26.0656 2.3746 25.7292 2.3746H1.1875Z\"\n fill=\"var(--color-alias-color-brand-text-dark, #05010e)\"\n />\n </svg>\n );\n}\n\nfunction getNotifBg(type: NotificationItem['type']) {\n const map: Record<string, string> = {\n success: '#dcfce7',\n warning: '#fef9c3',\n error: '#fee2e2',\n reminder: '#f3e8ff',\n info: '#dbeafe',\n };\n return map[type] || map.info;\n}\n\nfunction getNotifIcon(type: NotificationItem['type']) {\n const map: Record<string, string> = {\n success: '✓',\n warning: '!',\n error: '✕',\n reminder: '⏰',\n info: 'i',\n };\n return map[type] || map.info;\n}\n\nexport default function UserHeader({\n user,\n notifications = [],\n onToggleSidebar,\n notificationBell,\n onMarkAllRead,\n onViewAll,\n className,\n}: UserHeaderProps) {\n const displayName =\n `${user?.firstName || ''} ${user?.lastName || ''}`.trim() || 'ผู้ใช้';\n const firstChar = user?.firstName?.charAt(0) || 'ผ';\n const [isNotifOpen, setIsNotifOpen] = useState(false);\n const notifRef = useRef<HTMLDivElement>(null);\n\n useEffect(() => {\n const handleClickOutside = (e: MouseEvent) => {\n if (notifRef.current && !notifRef.current.contains(e.target as Node)) {\n setIsNotifOpen(false);\n }\n };\n document.addEventListener('mousedown', handleClickOutside);\n return () => document.removeEventListener('mousedown', handleClickOutside);\n }, []);\n\n const unreadCount = notifications.filter((n) => !n.isRead).length;\n\n return (\n <header\n className={className}\n style={{\n background: '#fff',\n boxShadow: '0 1px 3px rgba(0,0,0,0.08)',\n position: 'sticky',\n top: 0,\n zIndex: 10,\n }}\n >\n <div\n style={{\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'space-between',\n padding: '14px 20px',\n }}\n >\n {/* Avatar & Name */}\n <div style={{ display: 'flex', alignItems: 'center', gap: '12px' }}>\n {user?.pictureUrl ? (\n <img\n src={user.pictureUrl}\n alt={displayName}\n style={{\n width: '44px',\n height: '44px',\n borderRadius: '50%',\n objectFit: 'cover',\n border: '2px solid var(--color-alias-color-brand-surface, #faf9e5)',\n }}\n />\n ) : (\n <div\n style={{\n width: '44px',\n height: '44px',\n borderRadius: '50%',\n background: 'linear-gradient(135deg, var(--color-alias-color-brand-secondary, #80d897), var(--color-alias-color-brand-primary, #1e7d55))',\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n boxShadow: '0 1px 3px rgba(0,0,0,0.1)',\n }}\n >\n <span\n style={{ color: '#fff', fontSize: '18px', fontWeight: 600 }}\n >\n {firstChar}\n </span>\n </div>\n )}\n <div>\n <p\n style={{\n fontSize: '14px',\n fontWeight: 600,\n color: 'var(--color-alias-color-brand-text-dark, #05010e)',\n margin: 0,\n }}\n >\n สวัสดี,{' '}\n <span\n style={{\n color: 'var(--color-alias-color-brand-primary, #1e7d55)',\n }}\n >\n {displayName}\n </span>\n </p>\n </div>\n </div>\n\n {/* Right Side */}\n <div style={{ display: 'flex', alignItems: 'center', gap: '4px' }}>\n {/* Notification Bell */}\n <div style={{ position: 'relative' }} ref={notifRef}>\n {notificationBell || (\n <button\n onClick={() => setIsNotifOpen(!isNotifOpen)}\n style={{\n padding: '10px',\n borderRadius: '8px',\n border: 'none',\n background: 'transparent',\n cursor: 'pointer',\n position: 'relative',\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n }}\n onMouseEnter={(e) => {\n e.currentTarget.style.backgroundColor = '#f3f4f6';\n }}\n onMouseLeave={(e) => {\n e.currentTarget.style.backgroundColor = 'transparent';\n }}\n >\n <BellIcon />\n {unreadCount > 0 && (\n <span\n style={{\n position: 'absolute',\n top: '6px',\n right: '6px',\n minWidth: '18px',\n height: '18px',\n background: 'var(--color-alias-semantic-critical, #f21515)',\n borderRadius: '50%',\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n fontSize: '10px',\n fontWeight: 700,\n color: '#fff',\n padding: '0 4px',\n border: '2px solid #fff',\n }}\n >\n {unreadCount}\n </span>\n )}\n </button>\n )}\n\n {/* Notification Dropdown */}\n {isNotifOpen && (\n <div\n style={{\n position: 'absolute',\n right: 0,\n marginTop: '8px',\n width: '360px',\n background: '#fff',\n borderRadius: '12px',\n boxShadow: '0 10px 40px rgba(0,0,0,0.12)',\n zIndex: 50,\n overflow: 'hidden',\n border: '1px solid #e5e7eb',\n }}\n >\n {/* Header */}\n <div\n style={{\n padding: '16px',\n borderBottom: '1px solid #f3f4f6',\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'space-between',\n background: '#fafafa',\n }}\n >\n <span style={{ fontWeight: 600, fontSize: '14px', color: '#111' }}>\n การแจ้งเตือน\n </span>\n {onMarkAllRead && (\n <button\n onClick={onMarkAllRead}\n style={{\n fontSize: '12px',\n color: 'var(--color-alias-color-brand-primary, #1e7d55)',\n background: 'none',\n border: 'none',\n cursor: 'pointer',\n fontWeight: 500,\n }}\n >\n อ่านทั้งหมด\n </button>\n )}\n </div>\n {/* Items */}\n <div style={{ maxHeight: '60vh', overflowY: 'auto' }}>\n {notifications.length === 0 ? (\n <div\n style={{\n padding: '32px',\n textAlign: 'center',\n color: '#9ca3af',\n fontSize: '14px',\n }}\n >\n 🔔 ไม่มีการแจ้งเตือนใหม่\n </div>\n ) : (\n notifications.map((item) => (\n <div\n key={item.id}\n style={{\n padding: '12px 16px',\n borderBottom: '1px solid #f9fafb',\n cursor: 'pointer',\n background: !item.isRead ? 'rgba(219,234,254,0.3)' : 'transparent',\n position: 'relative',\n display: 'flex',\n gap: '12px',\n alignItems: 'flex-start',\n }}\n onMouseEnter={(e) => {\n e.currentTarget.style.backgroundColor = '#f9fafb';\n }}\n onMouseLeave={(e) => {\n e.currentTarget.style.backgroundColor = !item.isRead\n ? 'rgba(219,234,254,0.3)'\n : 'transparent';\n }}\n >\n {!item.isRead && (\n <span\n style={{\n position: 'absolute',\n top: '12px',\n right: '12px',\n width: '8px',\n height: '8px',\n background: '#ef4444',\n borderRadius: '50%',\n }}\n />\n )}\n <div\n style={{\n width: '32px',\n height: '32px',\n borderRadius: '50%',\n background: getNotifBg(item.type),\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n fontSize: '13px',\n flexShrink: 0,\n marginTop: '2px',\n }}\n >\n {getNotifIcon(item.type)}\n </div>\n <div style={{ flex: 1, minWidth: 0 }}>\n <p\n style={{\n fontSize: '13px',\n fontWeight: !item.isRead ? 600 : 500,\n color: '#111',\n margin: '0 0 2px',\n }}\n >\n {item.title}\n </p>\n <p\n style={{\n fontSize: '12px',\n color: '#6b7280',\n margin: '0 0 4px',\n lineHeight: '18px',\n }}\n >\n {item.description}\n </p>\n <p\n style={{\n fontSize: '10px',\n color: '#9ca3af',\n margin: 0,\n fontWeight: 500,\n }}\n >\n {item.date}\n </p>\n </div>\n </div>\n ))\n )}\n </div>\n {/* Footer */}\n {onViewAll && (\n <div\n style={{\n padding: '10px',\n borderTop: '1px solid #f3f4f6',\n textAlign: 'center',\n background: '#fafafa',\n }}\n >\n <button\n onClick={onViewAll}\n style={{\n fontSize: '13px',\n color: '#6b7280',\n background: 'none',\n border: 'none',\n cursor: 'pointer',\n fontWeight: 500,\n width: '100%',\n padding: '4px',\n }}\n >\n ดูทั้งหมด\n </button>\n </div>\n )}\n </div>\n )}\n </div>\n\n {/* Hamburger Button */}\n {onToggleSidebar && (\n <button\n onClick={onToggleSidebar}\n style={{\n padding: '10px',\n borderRadius: '8px',\n border: 'none',\n background: 'transparent',\n cursor: 'pointer',\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n }}\n onMouseEnter={(e) => {\n e.currentTarget.style.backgroundColor = '#f3f4f6';\n }}\n onMouseLeave={(e) => {\n e.currentTarget.style.backgroundColor = 'transparent';\n }}\n >\n <HamburgerIcon />\n </button>\n )}\n </div>\n </div>\n </header>\n );\n}\n","'use client';\n\nimport { useEffect } from 'react';\nimport SidebarMenu from '../sidebar/SidebarMenu';\nimport type { User, MenuItem } from '../sidebar/types';\n\ninterface UserSidebarProps {\n user: User | null;\n roleLabel: string;\n menuItems: MenuItem[];\n onNavigate: (path: string) => void;\n onLogout: () => void;\n isOpen: boolean;\n onClose: () => void;\n roleColor?: string;\n}\n\nfunction LogoutIcon() {\n return (\n <svg width=\"20\" height=\"20\" viewBox=\"0 0 24 24\" fill=\"none\" stroke=\"currentColor\" strokeWidth=\"2\" strokeLinecap=\"round\" strokeLinejoin=\"round\">\n <path d=\"M9 21H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h4\" />\n <polyline points=\"16 17 21 12 16 7\" />\n <line x1=\"21\" y1=\"12\" x2=\"9\" y2=\"12\" />\n </svg>\n );\n}\n\nexport default function UserSidebar({\n user,\n roleLabel,\n menuItems,\n onNavigate,\n onLogout,\n isOpen,\n onClose,\n roleColor = 'var(--color-alias-semantic-warning, orange)',\n}: UserSidebarProps) {\n // Prevent body scroll when open\n useEffect(() => {\n if (isOpen) {\n document.body.style.overflow = 'hidden';\n } else {\n document.body.style.overflow = '';\n }\n return () => {\n document.body.style.overflow = '';\n };\n }, [isOpen]);\n\n const getFullName = () => {\n if (!user) return 'ผู้ใช้';\n if (user.firstName && user.lastName) return `${user.firstName} ${user.lastName}`;\n return user.firstName || user.lastName || 'ผู้ใช้';\n };\n\n const getInitial = () => {\n if (!user) return '?';\n return user.firstName?.charAt(0) || user.lastName?.charAt(0) || '?';\n };\n\n const handleMenuClick = (path: string) => {\n onNavigate(path);\n onClose();\n };\n\n const handleLogout = () => {\n onClose();\n onLogout();\n };\n\n return (\n <>\n {/* Overlay */}\n {isOpen && (\n <div\n onClick={onClose}\n style={{\n position: 'fixed',\n inset: 0,\n background: 'rgba(0,0,0,0.5)',\n zIndex: 40,\n transition: 'opacity 0.3s ease',\n }}\n />\n )}\n\n {/* Sidebar Panel */}\n <aside\n style={{\n position: 'fixed',\n top: 0,\n right: 0,\n height: '100%',\n width: '80vw',\n maxWidth: '320px',\n background: '#fff',\n boxShadow: '-4px 0 24px rgba(0,0,0,0.12)',\n zIndex: 50,\n transform: isOpen ? 'translateX(0)' : 'translateX(100%)',\n transition: 'transform 0.3s ease',\n display: 'flex',\n flexDirection: 'column',\n }}\n >\n {/* User Profile */}\n {user && (\n <div\n style={{\n padding: '20px',\n borderBottom: '1px solid var(--color-border-colors-neutral, #e5e7eb)',\n }}\n >\n <div style={{ display: 'flex', alignItems: 'center', gap: '12px' }}>\n {user.pictureUrl ? (\n <img\n src={user.pictureUrl}\n alt={getFullName()}\n style={{\n width: '56px',\n height: '56px',\n borderRadius: '50%',\n objectFit: 'cover',\n boxShadow: '0 2px 8px rgba(0,0,0,0.1)',\n }}\n />\n ) : (\n <div\n style={{\n width: '56px',\n height: '56px',\n borderRadius: '50%',\n background: 'linear-gradient(135deg, var(--color-alias-color-brand-secondary, #80d897), var(--color-alias-color-brand-primary, #1e7d55))',\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n color: '#fff',\n fontWeight: 700,\n fontSize: '20px',\n boxShadow: '0 2px 8px rgba(0,0,0,0.1)',\n }}\n >\n {getInitial()}\n </div>\n )}\n <div style={{ flex: 1, minWidth: 0 }}>\n <p\n style={{\n fontWeight: 700,\n fontSize: '16px',\n color: 'var(--color-alias-text-colors-primary, #060d26)',\n margin: 0,\n overflow: 'hidden',\n textOverflow: 'ellipsis',\n whiteSpace: 'nowrap',\n }}\n >\n {getFullName()}\n </p>\n <p\n style={{\n fontSize: '13px',\n color: 'var(--color-alias-text-colors-tertiary, #6b7280)',\n margin: '2px 0 0',\n display: 'flex',\n alignItems: 'center',\n gap: '6px',\n }}\n >\n <span\n style={{\n width: '8px',\n height: '8px',\n borderRadius: '50%',\n background: roleColor,\n display: 'inline-block',\n }}\n />\n {roleLabel}\n </p>\n </div>\n </div>\n </div>\n )}\n\n {/* Menu Items */}\n <SidebarMenu\n menuItems={menuItems}\n onItemClick={handleMenuClick}\n />\n\n {/* Logout Button */}\n <div\n style={{\n padding: '20px',\n borderTop: '1px solid var(--color-border-colors-neutral, #e5e7eb)',\n }}\n >\n <button\n onClick={handleLogout}\n onMouseEnter={(e) => {\n e.currentTarget.style.backgroundColor = '#fef2f2';\n }}\n onMouseLeave={(e) => {\n e.currentTarget.style.backgroundColor = 'transparent';\n }}\n style={{\n width: '100%',\n display: 'flex',\n alignItems: 'center',\n gap: '16px',\n padding: '14px 16px',\n borderRadius: '8px',\n border: 'none',\n background: 'transparent',\n color: 'var(--color-alias-semantic-critical, #ef4444)',\n cursor: 'pointer',\n transition: 'background-color 0.15s ease',\n fontSize: '15px',\n fontWeight: 500,\n }}\n >\n <LogoutIcon />\n <span>ออกจากระบบ</span>\n </button>\n </div>\n </aside>\n </>\n );\n}\n"]}
|