@mks2508/mks-ui 0.6.8 → 0.7.0
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/css/blocks-Sidebar-animations-tooltip.css +330 -0
- package/dist/index.css +587 -357
- package/dist/react-ui/blocks/BottomNavBar/MobileBottomNav.d.ts +64 -0
- package/dist/react-ui/blocks/BottomNavBar/MobileBottomNav.d.ts.map +1 -0
- package/dist/react-ui/blocks/BottomNavBar/MobileBottomNav.js +301 -0
- package/dist/react-ui/blocks/BottomNavBar/MobileBottomNav.styles.d.ts +94 -0
- package/dist/react-ui/blocks/BottomNavBar/MobileBottomNav.styles.d.ts.map +1 -0
- package/dist/react-ui/blocks/BottomNavBar/MobileBottomNav.styles.js +216 -0
- package/dist/react-ui/blocks/BottomNavBar/index.d.ts +10 -0
- package/dist/react-ui/blocks/BottomNavBar/index.d.ts.map +1 -0
- package/dist/react-ui/blocks/BottomNavBar/index.js +4 -0
- package/dist/react-ui/blocks/BottomNavBar/types.d.ts +362 -0
- package/dist/react-ui/blocks/BottomNavBar/types.d.ts.map +1 -0
- package/dist/react-ui/blocks/BottomNavBar/types.js +175 -0
- package/dist/react-ui/blocks/BottomNavBar/useIOSSafariFix.d.ts +73 -0
- package/dist/react-ui/blocks/BottomNavBar/useIOSSafariFix.d.ts.map +1 -0
- package/dist/react-ui/blocks/BottomNavBar/useIOSSafariFix.js +178 -0
- package/dist/react-ui/blocks/Sidebar/Sidebar.constants.d.ts +285 -0
- package/dist/react-ui/blocks/Sidebar/Sidebar.constants.d.ts.map +1 -0
- package/dist/react-ui/blocks/Sidebar/Sidebar.constants.js +208 -0
- package/dist/react-ui/blocks/Sidebar/Sidebar.d.ts +80 -0
- package/dist/react-ui/blocks/Sidebar/Sidebar.d.ts.map +1 -0
- package/dist/react-ui/blocks/Sidebar/Sidebar.js +114 -0
- package/dist/react-ui/blocks/Sidebar/Sidebar.styles.d.ts +77 -0
- package/dist/react-ui/blocks/Sidebar/Sidebar.styles.d.ts.map +1 -0
- package/dist/react-ui/blocks/Sidebar/Sidebar.styles.js +274 -0
- package/dist/react-ui/blocks/Sidebar/Sidebar.types.d.ts +546 -0
- package/dist/react-ui/blocks/Sidebar/Sidebar.types.d.ts.map +1 -0
- package/dist/react-ui/blocks/Sidebar/Sidebar.types.js +149 -0
- package/dist/react-ui/blocks/Sidebar/SidebarContent.d.ts +46 -0
- package/dist/react-ui/blocks/Sidebar/SidebarContent.d.ts.map +1 -0
- package/dist/react-ui/blocks/Sidebar/SidebarContent.js +86 -0
- package/dist/react-ui/blocks/Sidebar/SidebarContext.d.ts +85 -0
- package/dist/react-ui/blocks/Sidebar/SidebarContext.d.ts.map +1 -0
- package/dist/react-ui/blocks/Sidebar/SidebarContext.js +178 -0
- package/dist/react-ui/blocks/Sidebar/SidebarFluidIndicator.d.ts +31 -0
- package/dist/react-ui/blocks/Sidebar/SidebarFluidIndicator.d.ts.map +1 -0
- package/dist/react-ui/blocks/Sidebar/SidebarFluidIndicator.js +37 -0
- package/dist/react-ui/blocks/Sidebar/SidebarIndicator.d.ts +59 -0
- package/dist/react-ui/blocks/Sidebar/SidebarIndicator.d.ts.map +1 -0
- package/dist/react-ui/blocks/Sidebar/SidebarIndicator.js +106 -0
- package/dist/react-ui/blocks/Sidebar/SidebarItem.d.ts +82 -0
- package/dist/react-ui/blocks/Sidebar/SidebarItem.d.ts.map +1 -0
- package/dist/react-ui/blocks/Sidebar/SidebarItem.js +209 -0
- package/dist/react-ui/blocks/Sidebar/SidebarNav.d.ts +48 -0
- package/dist/react-ui/blocks/Sidebar/SidebarNav.d.ts.map +1 -0
- package/dist/react-ui/blocks/Sidebar/SidebarNav.js +317 -0
- package/dist/react-ui/blocks/Sidebar/SidebarSafeArea.d.ts +56 -0
- package/dist/react-ui/blocks/Sidebar/SidebarSafeArea.d.ts.map +1 -0
- package/dist/react-ui/blocks/Sidebar/SidebarSafeArea.js +105 -0
- package/dist/react-ui/blocks/Sidebar/SidebarSubContent.d.ts +27 -0
- package/dist/react-ui/blocks/Sidebar/SidebarSubContent.d.ts.map +1 -0
- package/dist/react-ui/blocks/Sidebar/SidebarSubContent.js +31 -0
- package/dist/react-ui/blocks/Sidebar/SidebarSubLink.d.ts +20 -0
- package/dist/react-ui/blocks/Sidebar/SidebarSubLink.d.ts.map +1 -0
- package/dist/react-ui/blocks/Sidebar/SidebarSubLink.js +44 -0
- package/dist/react-ui/blocks/Sidebar/SidebarToggle.d.ts +52 -0
- package/dist/react-ui/blocks/Sidebar/SidebarToggle.d.ts.map +1 -0
- package/dist/react-ui/blocks/Sidebar/SidebarToggle.js +119 -0
- package/dist/react-ui/blocks/Sidebar/SidebarTooltip.d.ts +15 -0
- package/dist/react-ui/blocks/Sidebar/SidebarTooltip.d.ts.map +1 -0
- package/dist/react-ui/blocks/Sidebar/SidebarTooltip.js +177 -0
- package/dist/react-ui/blocks/Sidebar/animations/tooltip-keyframes.js +0 -0
- package/dist/react-ui/blocks/Sidebar/animations/tooltip.css +330 -0
- package/dist/react-ui/blocks/Sidebar/components/FluidHoverIndicator.d.ts +28 -0
- package/dist/react-ui/blocks/Sidebar/components/FluidHoverIndicator.d.ts.map +1 -0
- package/dist/react-ui/blocks/Sidebar/components/FluidHoverIndicator.js +74 -0
- package/dist/react-ui/blocks/Sidebar/hooks/use-fluid-animation.d.ts +18 -0
- package/dist/react-ui/blocks/Sidebar/hooks/use-fluid-animation.d.ts.map +1 -0
- package/dist/react-ui/blocks/Sidebar/hooks/use-fluid-animation.js +166 -0
- package/dist/react-ui/blocks/Sidebar/hooks/useSidebarContext.d.ts +48 -0
- package/dist/react-ui/blocks/Sidebar/hooks/useSidebarContext.d.ts.map +1 -0
- package/dist/react-ui/blocks/Sidebar/hooks/useSidebarContext.js +59 -0
- package/dist/react-ui/blocks/Sidebar/hooks/useSidebarIndicator.d.ts +72 -0
- package/dist/react-ui/blocks/Sidebar/hooks/useSidebarIndicator.d.ts.map +1 -0
- package/dist/react-ui/blocks/Sidebar/hooks/useSidebarIndicator.js +159 -0
- package/dist/react-ui/blocks/Sidebar/hooks/useSidebarKeyboard.d.ts +51 -0
- package/dist/react-ui/blocks/Sidebar/hooks/useSidebarKeyboard.d.ts.map +1 -0
- package/dist/react-ui/blocks/Sidebar/hooks/useSidebarKeyboard.js +150 -0
- package/dist/react-ui/blocks/Sidebar/hooks/useSubContent.d.ts +42 -0
- package/dist/react-ui/blocks/Sidebar/hooks/useSubContent.d.ts.map +1 -0
- package/dist/react-ui/blocks/Sidebar/hooks/useSubContent.js +49 -0
- package/dist/react-ui/blocks/Sidebar/index.d.ts +163 -0
- package/dist/react-ui/blocks/Sidebar/index.d.ts.map +1 -0
- package/dist/react-ui/blocks/Sidebar/index.js +19 -0
- package/dist/react-ui/blocks/Terminal/Terminal.tokens.d.ts +219 -0
- package/dist/react-ui/blocks/Terminal/Terminal.tokens.d.ts.map +1 -0
- package/dist/react-ui/blocks/Terminal/Terminal.tokens.js +253 -0
- package/dist/react-ui/blocks/Terminal/Terminal.types.d.ts +2 -1
- package/dist/react-ui/blocks/Terminal/Terminal.types.d.ts.map +1 -1
- package/dist/react-ui/blocks/Terminal/TerminalDisplay.js +1 -1
- package/dist/react-ui/blocks/Terminal/TerminalDisplay.types.d.ts +1 -1
- package/dist/react-ui/blocks/Terminal/TerminalDisplay.types.d.ts.map +1 -1
- package/dist/react-ui/blocks/Terminal/chrome.js +2 -2
- package/dist/react-ui/blocks/Terminal/components/LogLineBadges/LogLineBadges.styles.d.ts +15 -0
- package/dist/react-ui/blocks/Terminal/components/LogLineBadges/LogLineBadges.styles.d.ts.map +1 -0
- package/dist/react-ui/blocks/Terminal/components/LogLineBadges/LogLineBadges.styles.js +14 -0
- package/dist/react-ui/blocks/Terminal/components/LogLineBadges/LogLineBadges.types.d.ts +106 -0
- package/dist/react-ui/blocks/Terminal/components/LogLineBadges/LogLineBadges.types.d.ts.map +1 -0
- package/dist/react-ui/blocks/Terminal/components/LogLineBadges/index.d.ts +89 -0
- package/dist/react-ui/blocks/Terminal/components/LogLineBadges/index.d.ts.map +1 -0
- package/dist/react-ui/blocks/Terminal/components/LogLineBadges/index.js +136 -0
- package/dist/react-ui/blocks/Terminal/components/SyntaxHighlight.d.ts +21 -7
- package/dist/react-ui/blocks/Terminal/components/SyntaxHighlight.d.ts.map +1 -1
- package/dist/react-ui/blocks/Terminal/components/SyntaxHighlight.js +81 -71
- package/dist/react-ui/blocks/Terminal/components/SyntaxHighlight.styles.d.ts +33 -0
- package/dist/react-ui/blocks/Terminal/components/SyntaxHighlight.styles.d.ts.map +1 -0
- package/dist/react-ui/blocks/Terminal/components/SyntaxHighlight.styles.js +51 -0
- package/dist/react-ui/blocks/Terminal/components/TerminalLogBadge/TerminalLogBadge.styles.d.ts +13 -0
- package/dist/react-ui/blocks/Terminal/components/TerminalLogBadge/TerminalLogBadge.styles.d.ts.map +1 -0
- package/dist/react-ui/blocks/Terminal/components/TerminalLogBadge/TerminalLogBadge.styles.js +8 -0
- package/dist/react-ui/blocks/Terminal/components/TerminalLogBadge/TerminalLogBadge.types.d.ts +29 -0
- package/dist/react-ui/blocks/Terminal/components/TerminalLogBadge/TerminalLogBadge.types.d.ts.map +1 -0
- package/dist/react-ui/blocks/Terminal/components/TerminalLogBadge/index.d.ts +26 -0
- package/dist/react-ui/blocks/Terminal/components/TerminalLogBadge/index.d.ts.map +1 -0
- package/dist/react-ui/blocks/Terminal/components/TerminalLogBadge/index.js +40 -0
- package/dist/react-ui/blocks/Terminal/components/index.js +5 -2
- package/dist/react-ui/blocks/Terminal/controls/TerminalActionBar/TerminalActionBar.styles.d.ts +12 -0
- package/dist/react-ui/blocks/Terminal/controls/TerminalActionBar/TerminalActionBar.styles.d.ts.map +1 -0
- package/dist/react-ui/blocks/Terminal/controls/TerminalActionBar/TerminalActionBar.styles.js +13 -0
- package/dist/react-ui/blocks/Terminal/controls/TerminalActionBar/TerminalActionBar.types.d.ts +35 -0
- package/dist/react-ui/blocks/Terminal/controls/TerminalActionBar/TerminalActionBar.types.d.ts.map +1 -0
- package/dist/react-ui/blocks/Terminal/controls/TerminalActionBar/index.d.ts +75 -0
- package/dist/react-ui/blocks/Terminal/controls/TerminalActionBar/index.d.ts.map +1 -0
- package/dist/react-ui/blocks/Terminal/controls/TerminalActionBar/index.js +115 -0
- package/dist/react-ui/blocks/Terminal/controls/TerminalAtoms.d.ts +122 -0
- package/dist/react-ui/blocks/Terminal/controls/TerminalAtoms.d.ts.map +1 -0
- package/dist/react-ui/blocks/Terminal/controls/TerminalAtoms.js +128 -0
- package/dist/react-ui/blocks/Terminal/controls/TerminalConnectionStatus/TerminalConnectionStatus.styles.d.ts +12 -0
- package/dist/react-ui/blocks/Terminal/controls/TerminalConnectionStatus/TerminalConnectionStatus.styles.d.ts.map +1 -0
- package/dist/react-ui/blocks/Terminal/controls/TerminalConnectionStatus/TerminalConnectionStatus.styles.js +12 -0
- package/dist/react-ui/blocks/Terminal/controls/TerminalConnectionStatus/TerminalConnectionStatus.types.d.ts +29 -0
- package/dist/react-ui/blocks/Terminal/controls/TerminalConnectionStatus/TerminalConnectionStatus.types.d.ts.map +1 -0
- package/dist/react-ui/blocks/Terminal/controls/TerminalConnectionStatus/index.d.ts +37 -0
- package/dist/react-ui/blocks/Terminal/controls/TerminalConnectionStatus/index.d.ts.map +1 -0
- package/dist/react-ui/blocks/Terminal/controls/TerminalConnectionStatus/index.js +74 -0
- package/dist/react-ui/blocks/Terminal/controls/TerminalFontControls/TerminalFontControls.styles.d.ts +12 -0
- package/dist/react-ui/blocks/Terminal/controls/TerminalFontControls/TerminalFontControls.styles.d.ts.map +1 -0
- package/dist/react-ui/blocks/Terminal/controls/TerminalFontControls/TerminalFontControls.styles.js +16 -0
- package/dist/react-ui/blocks/Terminal/controls/TerminalFontControls/TerminalFontControls.types.d.ts +32 -0
- package/dist/react-ui/blocks/Terminal/controls/TerminalFontControls/TerminalFontControls.types.d.ts.map +1 -0
- package/dist/react-ui/blocks/Terminal/controls/TerminalFontControls/index.d.ts +40 -0
- package/dist/react-ui/blocks/Terminal/controls/TerminalFontControls/index.d.ts.map +1 -0
- package/dist/react-ui/blocks/Terminal/controls/TerminalFontControls/index.js +81 -0
- package/dist/react-ui/blocks/Terminal/controls/TerminalSplitButton/TerminalSplitButton.styles.d.ts +12 -0
- package/dist/react-ui/blocks/Terminal/controls/TerminalSplitButton/TerminalSplitButton.styles.d.ts.map +1 -0
- package/dist/react-ui/blocks/Terminal/controls/TerminalSplitButton/TerminalSplitButton.styles.js +13 -0
- package/dist/react-ui/blocks/Terminal/controls/TerminalSplitButton/TerminalSplitButton.types.d.ts +28 -0
- package/dist/react-ui/blocks/Terminal/controls/TerminalSplitButton/TerminalSplitButton.types.d.ts.map +1 -0
- package/dist/react-ui/blocks/Terminal/controls/TerminalSplitButton/index.d.ts +40 -0
- package/dist/react-ui/blocks/Terminal/controls/TerminalSplitButton/index.d.ts.map +1 -0
- package/dist/react-ui/blocks/Terminal/controls/TerminalSplitButton/index.js +108 -0
- package/dist/react-ui/blocks/Terminal/controls/TerminalStatusBar/TerminalStatusBar.styles.d.ts +12 -0
- package/dist/react-ui/blocks/Terminal/controls/TerminalStatusBar/TerminalStatusBar.styles.d.ts.map +1 -0
- package/dist/react-ui/blocks/Terminal/controls/TerminalStatusBar/TerminalStatusBar.styles.js +12 -0
- package/dist/react-ui/blocks/Terminal/controls/TerminalStatusBar/TerminalStatusBar.types.d.ts +31 -0
- package/dist/react-ui/blocks/Terminal/controls/TerminalStatusBar/TerminalStatusBar.types.d.ts.map +1 -0
- package/dist/react-ui/blocks/Terminal/controls/TerminalStatusBar/index.d.ts +73 -0
- package/dist/react-ui/blocks/Terminal/controls/TerminalStatusBar/index.d.ts.map +1 -0
- package/dist/react-ui/blocks/Terminal/controls/TerminalStatusBar/index.js +99 -0
- package/dist/react-ui/blocks/Terminal/controls/index.d.ts +16 -0
- package/dist/react-ui/blocks/Terminal/controls/index.d.ts.map +1 -0
- package/dist/react-ui/blocks/Terminal/controls/index.js +11 -0
- package/dist/react-ui/blocks/Terminal/display.d.ts +2 -2
- package/dist/react-ui/blocks/Terminal/display.d.ts.map +1 -1
- package/dist/react-ui/blocks/Terminal/display.js +4 -2
- package/dist/react-ui/blocks/Terminal/hooks/index.d.ts +9 -2
- package/dist/react-ui/blocks/Terminal/hooks/index.d.ts.map +1 -1
- package/dist/react-ui/blocks/Terminal/hooks/index.js +6 -0
- package/dist/react-ui/blocks/Terminal/hooks/useTerminal.d.ts +198 -0
- package/dist/react-ui/blocks/Terminal/hooks/useTerminal.d.ts.map +1 -0
- package/dist/react-ui/blocks/Terminal/hooks/useTerminal.js +198 -0
- package/dist/react-ui/blocks/Terminal/hooks/useTerminalConnection.d.ts +81 -0
- package/dist/react-ui/blocks/Terminal/hooks/useTerminalConnection.d.ts.map +1 -0
- package/dist/react-ui/blocks/Terminal/hooks/useTerminalConnection.js +115 -0
- package/dist/react-ui/blocks/Terminal/hooks/useTerminalDimensions.d.ts +54 -0
- package/dist/react-ui/blocks/Terminal/hooks/useTerminalDimensions.d.ts.map +1 -0
- package/dist/react-ui/blocks/Terminal/hooks/useTerminalDimensions.js +57 -0
- package/dist/react-ui/blocks/Terminal/hooks/useTerminalFontSize.d.ts +81 -0
- package/dist/react-ui/blocks/Terminal/hooks/useTerminalFontSize.d.ts.map +1 -0
- package/dist/react-ui/blocks/Terminal/hooks/useTerminalFontSize.js +102 -0
- package/dist/react-ui/blocks/Terminal/hooks/useTerminalKeyboardShortcuts.d.ts +78 -0
- package/dist/react-ui/blocks/Terminal/hooks/useTerminalKeyboardShortcuts.d.ts.map +1 -0
- package/dist/react-ui/blocks/Terminal/hooks/useTerminalKeyboardShortcuts.js +136 -0
- package/dist/react-ui/blocks/Terminal/hooks/useTerminalPaneManager.d.ts +88 -0
- package/dist/react-ui/blocks/Terminal/hooks/useTerminalPaneManager.d.ts.map +1 -0
- package/dist/react-ui/blocks/Terminal/hooks/useTerminalPaneManager.js +101 -0
- package/dist/react-ui/blocks/Terminal/index.d.ts +10 -6
- package/dist/react-ui/blocks/Terminal/index.d.ts.map +1 -1
- package/dist/react-ui/blocks/Terminal/index.js +43 -11
- package/dist/react-ui/blocks/Terminal/panel/LogLinesViewer.d.ts.map +1 -1
- package/dist/react-ui/blocks/Terminal/panel/LogLinesViewer.js +8 -13
- package/dist/react-ui/blocks/Terminal/panel/TerminalDebugPanel/TerminalDebugPanel.styles.d.ts +13 -0
- package/dist/react-ui/blocks/Terminal/panel/TerminalDebugPanel/TerminalDebugPanel.styles.d.ts.map +1 -0
- package/dist/react-ui/blocks/Terminal/panel/TerminalDebugPanel/TerminalDebugPanel.styles.js +18 -0
- package/dist/react-ui/blocks/Terminal/panel/{TerminalDebugPanel.d.ts → TerminalDebugPanel/TerminalDebugPanel.types.d.ts} +19 -27
- package/dist/react-ui/blocks/Terminal/panel/TerminalDebugPanel/TerminalDebugPanel.types.d.ts.map +1 -0
- package/dist/react-ui/blocks/Terminal/panel/TerminalDebugPanel/index.d.ts +32 -0
- package/dist/react-ui/blocks/Terminal/panel/TerminalDebugPanel/index.d.ts.map +1 -0
- package/dist/react-ui/blocks/Terminal/panel/{TerminalDebugPanel.js → TerminalDebugPanel/index.js} +59 -38
- package/dist/react-ui/blocks/Terminal/panel/TerminalFilterDropdown/TerminalFilterDropdown.styles.d.ts +13 -0
- package/dist/react-ui/blocks/Terminal/panel/TerminalFilterDropdown/TerminalFilterDropdown.styles.d.ts.map +1 -0
- package/dist/react-ui/blocks/Terminal/panel/TerminalFilterDropdown/TerminalFilterDropdown.styles.js +17 -0
- package/dist/react-ui/blocks/Terminal/panel/TerminalFilterDropdown/TerminalFilterDropdown.types.d.ts +34 -0
- package/dist/react-ui/blocks/Terminal/panel/TerminalFilterDropdown/TerminalFilterDropdown.types.d.ts.map +1 -0
- package/dist/react-ui/blocks/Terminal/panel/TerminalFilterDropdown/index.d.ts +34 -0
- package/dist/react-ui/blocks/Terminal/panel/TerminalFilterDropdown/index.d.ts.map +1 -0
- package/dist/react-ui/blocks/Terminal/panel/{TerminalFilterDropdown.js → TerminalFilterDropdown/index.js} +29 -31
- package/dist/react-ui/blocks/Terminal/panel/TerminalFilterDropdown/terminal-filter-dropdown.module.css +60 -0
- package/dist/react-ui/blocks/Terminal/panel/TerminalFilterDropdown/terminal-filter-dropdown.module.js +5 -0
- package/dist/react-ui/blocks/Terminal/panel/TerminalFilterTabs/TerminalFilterTabs.styles.d.ts +13 -0
- package/dist/react-ui/blocks/Terminal/panel/TerminalFilterTabs/TerminalFilterTabs.styles.d.ts.map +1 -0
- package/dist/react-ui/blocks/Terminal/panel/TerminalFilterTabs/TerminalFilterTabs.types.d.ts +34 -0
- package/dist/react-ui/blocks/Terminal/panel/TerminalFilterTabs/TerminalFilterTabs.types.d.ts.map +1 -0
- package/dist/react-ui/blocks/Terminal/panel/TerminalFilterTabs/index.d.ts +34 -0
- package/dist/react-ui/blocks/Terminal/panel/TerminalFilterTabs/index.d.ts.map +1 -0
- package/dist/react-ui/blocks/Terminal/panel/TerminalInteractivePanel.d.ts.map +1 -1
- package/dist/react-ui/blocks/Terminal/panel/TerminalInteractivePanel.js +5 -1
- package/dist/react-ui/blocks/Terminal/panel/TerminalInteractivePanel.types.d.ts +2 -1
- package/dist/react-ui/blocks/Terminal/panel/TerminalInteractivePanel.types.d.ts.map +1 -1
- package/dist/react-ui/blocks/Terminal/panel/TerminalInteractivePanelRestty.d.ts +6 -3
- package/dist/react-ui/blocks/Terminal/panel/TerminalInteractivePanelRestty.d.ts.map +1 -1
- package/dist/react-ui/blocks/Terminal/panel/TerminalInteractivePanelRestty.js +43 -264
- package/dist/react-ui/blocks/Terminal/panel/TerminalInteractivePanelWterm.d.ts +43 -0
- package/dist/react-ui/blocks/Terminal/panel/TerminalInteractivePanelWterm.d.ts.map +1 -0
- package/dist/react-ui/blocks/Terminal/panel/TerminalInteractivePanelWterm.js +248 -0
- package/dist/react-ui/blocks/Terminal/panel/TerminalInteractivePanelXterm.d.ts +4 -2
- package/dist/react-ui/blocks/Terminal/panel/TerminalInteractivePanelXterm.d.ts.map +1 -1
- package/dist/react-ui/blocks/Terminal/panel/TerminalInteractivePanelXterm.js +40 -150
- package/dist/react-ui/blocks/Terminal/panel/TerminalLogsPanel/TerminalLogsPanel.styles.d.ts +26 -0
- package/dist/react-ui/blocks/Terminal/panel/TerminalLogsPanel/TerminalLogsPanel.styles.d.ts.map +1 -0
- package/dist/react-ui/blocks/Terminal/panel/TerminalLogsPanel/TerminalLogsPanel.styles.js +30 -0
- package/dist/react-ui/blocks/Terminal/panel/TerminalLogsPanel/TerminalLogsPanel.types.d.ts +123 -0
- package/dist/react-ui/blocks/Terminal/panel/TerminalLogsPanel/TerminalLogsPanel.types.d.ts.map +1 -0
- package/dist/react-ui/blocks/Terminal/panel/{TerminalLogsPanel.d.ts → TerminalLogsPanel/index.d.ts} +10 -21
- package/dist/react-ui/blocks/Terminal/panel/TerminalLogsPanel/index.d.ts.map +1 -0
- package/dist/react-ui/blocks/Terminal/panel/{TerminalLogsPanel.js → TerminalLogsPanel/index.js} +48 -81
- package/dist/react-ui/blocks/Terminal/panel/TerminalLogsPanel.types.d.ts +6 -142
- package/dist/react-ui/blocks/Terminal/panel/TerminalLogsPanel.types.d.ts.map +1 -1
- package/dist/react-ui/blocks/Terminal/panel/TerminalPanelChrome.d.ts +1 -1
- package/dist/react-ui/blocks/Terminal/panel/TerminalPanelChrome.d.ts.map +1 -1
- package/dist/react-ui/blocks/Terminal/panel/TerminalPanelChrome.js +16 -16
- package/dist/react-ui/blocks/Terminal/panel/TerminalPanelChrome.styles.d.ts +1 -1
- package/dist/react-ui/blocks/Terminal/panel/TerminalPanelChrome.styles.js +1 -1
- package/dist/react-ui/blocks/Terminal/panel/TerminalPanelFooter/TerminalPanelFooter.styles.d.ts +21 -0
- package/dist/react-ui/blocks/Terminal/panel/TerminalPanelFooter/TerminalPanelFooter.styles.d.ts.map +1 -0
- package/dist/react-ui/blocks/Terminal/panel/TerminalPanelFooter/TerminalPanelFooter.styles.js +21 -0
- package/dist/react-ui/blocks/Terminal/panel/TerminalPanelFooter/TerminalPanelFooter.types.d.ts +40 -0
- package/dist/react-ui/blocks/Terminal/panel/TerminalPanelFooter/TerminalPanelFooter.types.d.ts.map +1 -0
- package/dist/react-ui/blocks/Terminal/panel/TerminalPanelFooter/index.d.ts +37 -0
- package/dist/react-ui/blocks/Terminal/panel/TerminalPanelFooter/index.d.ts.map +1 -0
- package/dist/react-ui/blocks/Terminal/panel/TerminalPanelFooter/index.js +127 -0
- package/dist/react-ui/blocks/Terminal/panel/TerminalPanelHeader/TerminalPanelHeader.styles.d.ts +22 -0
- package/dist/react-ui/blocks/Terminal/panel/TerminalPanelHeader/TerminalPanelHeader.styles.d.ts.map +1 -0
- package/dist/react-ui/blocks/Terminal/panel/TerminalPanelHeader/TerminalPanelHeader.styles.js +24 -0
- package/dist/react-ui/blocks/Terminal/panel/TerminalPanelHeader/TerminalPanelHeader.types.d.ts +43 -0
- package/dist/react-ui/blocks/Terminal/panel/TerminalPanelHeader/TerminalPanelHeader.types.d.ts.map +1 -0
- package/dist/react-ui/blocks/Terminal/panel/TerminalPanelHeader/index.d.ts +35 -0
- package/dist/react-ui/blocks/Terminal/panel/TerminalPanelHeader/index.d.ts.map +1 -0
- package/dist/react-ui/blocks/Terminal/panel/TerminalPanelHeader/index.js +129 -0
- package/dist/react-ui/blocks/Terminal/panel/TerminalPanelToolbar/TerminalPanelToolbar.styles.d.ts +20 -0
- package/dist/react-ui/blocks/Terminal/panel/TerminalPanelToolbar/TerminalPanelToolbar.styles.d.ts.map +1 -0
- package/dist/react-ui/blocks/Terminal/panel/TerminalPanelToolbar/TerminalPanelToolbar.types.d.ts +72 -0
- package/dist/react-ui/blocks/Terminal/panel/TerminalPanelToolbar/TerminalPanelToolbar.types.d.ts.map +1 -0
- package/dist/react-ui/blocks/Terminal/panel/{TerminalPanelToolbar.d.ts → TerminalPanelToolbar/index.d.ts} +10 -4
- package/dist/react-ui/blocks/Terminal/panel/TerminalPanelToolbar/index.d.ts.map +1 -0
- package/dist/react-ui/blocks/Terminal/panel/TerminalSessionControl/TerminalSessionControl.styles.d.ts +13 -0
- package/dist/react-ui/blocks/Terminal/panel/TerminalSessionControl/TerminalSessionControl.styles.d.ts.map +1 -0
- package/dist/react-ui/blocks/Terminal/panel/{TerminalSessionControl.d.ts → TerminalSessionControl/TerminalSessionControl.types.d.ts} +24 -30
- package/dist/react-ui/blocks/Terminal/panel/TerminalSessionControl/TerminalSessionControl.types.d.ts.map +1 -0
- package/dist/react-ui/blocks/Terminal/panel/TerminalSessionControl/index.d.ts +38 -0
- package/dist/react-ui/blocks/Terminal/panel/TerminalSessionControl/index.d.ts.map +1 -0
- package/dist/react-ui/blocks/Terminal/panel/TerminalSessionTabs/TerminalSessionTabs.styles.d.ts +23 -0
- package/dist/react-ui/blocks/Terminal/panel/TerminalSessionTabs/TerminalSessionTabs.styles.d.ts.map +1 -0
- package/dist/react-ui/blocks/Terminal/panel/TerminalSessionTabs/TerminalSessionTabs.styles.js +27 -0
- package/dist/react-ui/blocks/Terminal/panel/TerminalSessionTabs/TerminalSessionTabs.types.d.ts +56 -0
- package/dist/react-ui/blocks/Terminal/panel/TerminalSessionTabs/TerminalSessionTabs.types.d.ts.map +1 -0
- package/dist/react-ui/blocks/Terminal/panel/TerminalSessionTabs/index.d.ts +40 -0
- package/dist/react-ui/blocks/Terminal/panel/TerminalSessionTabs/index.d.ts.map +1 -0
- package/dist/react-ui/blocks/Terminal/panel/{TerminalSessionTabs.js → TerminalSessionTabs/index.js} +26 -31
- package/dist/react-ui/blocks/Terminal/panel/TerminalSessionTabs/terminal-session-tabs.module.css +60 -0
- package/dist/react-ui/blocks/Terminal/panel/TerminalSessionTabs/terminal-session-tabs.module.js +5 -0
- package/dist/react-ui/blocks/Terminal/panel/TerminalSettingsPopover/TerminalSettingsPopover.styles.d.ts +13 -0
- package/dist/react-ui/blocks/Terminal/panel/TerminalSettingsPopover/TerminalSettingsPopover.styles.d.ts.map +1 -0
- package/dist/react-ui/blocks/Terminal/panel/TerminalSettingsPopover/TerminalSettingsPopover.styles.js +19 -0
- package/dist/react-ui/blocks/Terminal/panel/TerminalSettingsPopover/TerminalSettingsPopover.types.d.ts +20 -0
- package/dist/react-ui/blocks/Terminal/panel/TerminalSettingsPopover/TerminalSettingsPopover.types.d.ts.map +1 -0
- package/dist/react-ui/blocks/Terminal/panel/TerminalSettingsPopover/index.d.ts +25 -0
- package/dist/react-ui/blocks/Terminal/panel/TerminalSettingsPopover/index.d.ts.map +1 -0
- package/dist/react-ui/blocks/Terminal/panel/TerminalSettingsPopover/index.js +217 -0
- package/dist/react-ui/blocks/Terminal/panel/TerminalThemeSelector/TerminalThemeSelector.styles.d.ts +13 -0
- package/dist/react-ui/blocks/Terminal/panel/TerminalThemeSelector/TerminalThemeSelector.styles.d.ts.map +1 -0
- package/dist/react-ui/blocks/Terminal/panel/TerminalThemeSelector/TerminalThemeSelector.styles.js +15 -0
- package/dist/react-ui/blocks/Terminal/panel/TerminalThemeSelector/TerminalThemeSelector.types.d.ts +28 -0
- package/dist/react-ui/blocks/Terminal/panel/TerminalThemeSelector/TerminalThemeSelector.types.d.ts.map +1 -0
- package/dist/react-ui/blocks/Terminal/panel/TerminalThemeSelector/index.d.ts +30 -0
- package/dist/react-ui/blocks/Terminal/panel/TerminalThemeSelector/index.d.ts.map +1 -0
- package/dist/react-ui/blocks/Terminal/panel/{TerminalThemeSelector.js → TerminalThemeSelector/index.js} +31 -46
- package/dist/react-ui/blocks/Terminal/restty/ResttyContext.d.ts +38 -0
- package/dist/react-ui/blocks/Terminal/restty/ResttyContext.d.ts.map +1 -0
- package/dist/react-ui/blocks/Terminal/restty/ResttyContext.js +47 -0
- package/dist/react-ui/blocks/Terminal/restty/ResttySessionProvider.d.ts +50 -0
- package/dist/react-ui/blocks/Terminal/restty/ResttySessionProvider.d.ts.map +1 -0
- package/dist/react-ui/blocks/Terminal/restty/ResttySessionProvider.js +60 -0
- package/dist/react-ui/blocks/Terminal/restty/ResttyTerminal.d.ts +32 -0
- package/dist/react-ui/blocks/Terminal/restty/ResttyTerminal.d.ts.map +1 -0
- package/dist/react-ui/blocks/Terminal/restty/ResttyTerminal.js +278 -0
- package/dist/react-ui/blocks/Terminal/restty/ResttyTerminal.types.d.ts +166 -0
- package/dist/react-ui/blocks/Terminal/restty/ResttyTerminal.types.d.ts.map +1 -0
- package/dist/react-ui/blocks/Terminal/restty/index.d.ts +20 -0
- package/dist/react-ui/blocks/Terminal/restty/index.d.ts.map +1 -0
- package/dist/react-ui/blocks/Terminal/restty/index.js +7 -0
- package/dist/react-ui/blocks/Terminal/restty/useResttyPane.d.ts +51 -0
- package/dist/react-ui/blocks/Terminal/restty/useResttyPane.d.ts.map +1 -0
- package/dist/react-ui/blocks/Terminal/restty/useResttyPane.js +61 -0
- package/dist/react-ui/blocks/Terminal/restty/useResttyPanes.d.ts +39 -0
- package/dist/react-ui/blocks/Terminal/restty/useResttyPanes.d.ts.map +1 -0
- package/dist/react-ui/blocks/Terminal/restty/useResttyPanes.js +48 -0
- package/dist/react-ui/blocks/Terminal/restty/useResttyPlugins.d.ts +29 -0
- package/dist/react-ui/blocks/Terminal/restty/useResttyPlugins.d.ts.map +1 -0
- package/dist/react-ui/blocks/Terminal/restty/useResttyPlugins.js +33 -0
- package/dist/react-ui/blocks/Terminal/restty/useResttyVisibility.d.ts +32 -0
- package/dist/react-ui/blocks/Terminal/restty/useResttyVisibility.d.ts.map +1 -0
- package/dist/react-ui/blocks/Terminal/restty/useResttyVisibility.js +67 -0
- package/dist/react-ui/blocks/Terminal/wterm/WtermJsonTransport.d.ts +83 -0
- package/dist/react-ui/blocks/Terminal/wterm/WtermJsonTransport.d.ts.map +1 -0
- package/dist/react-ui/blocks/Terminal/wterm/WtermJsonTransport.js +191 -0
- package/dist/react-ui/blocks/index.d.ts +2 -0
- package/dist/react-ui/blocks/index.d.ts.map +1 -1
- package/dist/react-ui/components/MorphingPopover/morphing-popover.module.css +154 -0
- package/dist/react-ui/icons/lucide-animated/terminal.d.ts +45 -13
- package/dist/react-ui/icons/lucide-animated/terminal.d.ts.map +1 -1
- package/dist/react-ui/icons/lucide-animated/terminal.js +118 -28
- package/dist/react-ui/index.d.ts +4 -0
- package/dist/react-ui/index.d.ts.map +1 -1
- package/dist/react-ui/index.js +40 -1
- package/dist/react-ui/primitives/waapi/Morph/techniques/useViewTransitions.module.css +20 -0
- package/dist/react-ui/ui/Button/Button.styles.d.ts +2 -2
- package/dist/react-ui/ui/Button/Button.styles.d.ts.map +1 -1
- package/dist/react-ui/ui/Button/Button.styles.js +4 -2
- package/dist/react-ui/ui/Button/Button.types.d.ts +2 -2
- package/dist/react-ui/ui/Button/Button.types.d.ts.map +1 -1
- package/dist/react-ui/ui/DynamicToggle/DynamicToggle.css +369 -0
- package/dist/react-ui/ui/Tabs/Tabs.css +38 -0
- package/package.json +20 -7
- package/dist/react-ui/blocks/Terminal/ResttyAdapter.d.ts +0 -146
- package/dist/react-ui/blocks/Terminal/ResttyAdapter.d.ts.map +0 -1
- package/dist/react-ui/blocks/Terminal/ResttyAdapter.js +0 -213
- package/dist/react-ui/blocks/Terminal/Terminal.adapter.d.ts +0 -55
- package/dist/react-ui/blocks/Terminal/Terminal.adapter.d.ts.map +0 -1
- package/dist/react-ui/blocks/Terminal/Terminal.adapter.js +0 -68
- package/dist/react-ui/blocks/Terminal/TerminalRestty.d.ts +0 -111
- package/dist/react-ui/blocks/Terminal/TerminalRestty.d.ts.map +0 -1
- package/dist/react-ui/blocks/Terminal/TerminalRestty.js +0 -185
- package/dist/react-ui/blocks/Terminal/components/LogLineBadges.d.ts +0 -160
- package/dist/react-ui/blocks/Terminal/components/LogLineBadges.d.ts.map +0 -1
- package/dist/react-ui/blocks/Terminal/components/LogLineBadges.js +0 -185
- package/dist/react-ui/blocks/Terminal/components/TerminalLogBadge.d.ts +0 -36
- package/dist/react-ui/blocks/Terminal/components/TerminalLogBadge.d.ts.map +0 -1
- package/dist/react-ui/blocks/Terminal/components/TerminalLogBadge.js +0 -52
- package/dist/react-ui/blocks/Terminal/panel/TerminalDebugPanel.d.ts.map +0 -1
- package/dist/react-ui/blocks/Terminal/panel/TerminalFilterDropdown.d.ts +0 -42
- package/dist/react-ui/blocks/Terminal/panel/TerminalFilterDropdown.d.ts.map +0 -1
- package/dist/react-ui/blocks/Terminal/panel/TerminalFilterTabs.d.ts +0 -43
- package/dist/react-ui/blocks/Terminal/panel/TerminalFilterTabs.d.ts.map +0 -1
- package/dist/react-ui/blocks/Terminal/panel/TerminalLogsPanel.d.ts.map +0 -1
- package/dist/react-ui/blocks/Terminal/panel/TerminalPanelFooter.d.ts +0 -30
- package/dist/react-ui/blocks/Terminal/panel/TerminalPanelFooter.d.ts.map +0 -1
- package/dist/react-ui/blocks/Terminal/panel/TerminalPanelFooter.js +0 -126
- package/dist/react-ui/blocks/Terminal/panel/TerminalPanelHeader.d.ts +0 -31
- package/dist/react-ui/blocks/Terminal/panel/TerminalPanelHeader.d.ts.map +0 -1
- package/dist/react-ui/blocks/Terminal/panel/TerminalPanelHeader.js +0 -149
- package/dist/react-ui/blocks/Terminal/panel/TerminalPanelToolbar.d.ts.map +0 -1
- package/dist/react-ui/blocks/Terminal/panel/TerminalSessionControl.d.ts.map +0 -1
- package/dist/react-ui/blocks/Terminal/panel/TerminalSessionTabs.d.ts +0 -63
- package/dist/react-ui/blocks/Terminal/panel/TerminalSessionTabs.d.ts.map +0 -1
- package/dist/react-ui/blocks/Terminal/panel/TerminalSettingsPopover.d.ts +0 -24
- package/dist/react-ui/blocks/Terminal/panel/TerminalSettingsPopover.d.ts.map +0 -1
- package/dist/react-ui/blocks/Terminal/panel/TerminalSettingsPopover.js +0 -225
- package/dist/react-ui/blocks/Terminal/panel/TerminalThemeSelector.d.ts +0 -35
- package/dist/react-ui/blocks/Terminal/panel/TerminalThemeSelector.d.ts.map +0 -1
- package/dist/react-ui/blocks/Terminal/panel/terminal-filter-dropdown.module.js +0 -5
- package/dist/react-ui/blocks/Terminal/panel/terminal-session-tabs.module.js +0 -5
- /package/dist/{react-ui/blocks/Terminal/panel/terminal-filter-dropdown.module-p4Aks9qK.css → css/blocks-Terminal-panel-TerminalFilterDropdown-terminal-filter-dropdown.module.css} +0 -0
- /package/dist/{react-ui/blocks/Terminal/panel/terminal-session-tabs.module-D7g8zk0W.css → css/blocks-Terminal-panel-TerminalSessionTabs-terminal-session-tabs.module.css} +0 -0
- /package/dist/{react-ui/components/MorphingPopover/morphing-popover.module-s63snw7C.css → css/components-MorphingPopover-morphing-popover.module.css} +0 -0
- /package/dist/{react-ui/primitives/waapi/Morph/techniques/useViewTransitions.module-7y-To7On.css → css/primitives-waapi-Morph-techniques-useViewTransitions.module.css} +0 -0
- /package/dist/{react-ui/ui/DynamicToggle/DynamicToggle-C3rJw_PQ.css → css/ui-DynamicToggle-DynamicToggle.css} +0 -0
- /package/dist/{react-ui/ui/Tabs/Tabs-DKe-TP8j.css → css/ui-Tabs-Tabs.css} +0 -0
|
@@ -0,0 +1,150 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
|
|
3
|
+
import { SIDEBAR_DATA_ATTRIBUTES, SIDEBAR_KEYBOARD_KEYS } from "../Sidebar.constants.js";
|
|
4
|
+
import { useSidebarContext } from "./useSidebarContext.js";
|
|
5
|
+
import { useCallback, useEffect, useState } from "react";
|
|
6
|
+
|
|
7
|
+
//#region src/react-ui/blocks/Sidebar/hooks/useSidebarKeyboard.ts
|
|
8
|
+
/**
|
|
9
|
+
* Hook para gestionar la navegación por teclado en el Sidebar
|
|
10
|
+
*
|
|
11
|
+
* @description
|
|
12
|
+
* Hook que implementa navegación accesible por teclado para los items
|
|
13
|
+
* del sidebar, siguiendo las especificaciones WAI-ARIA:
|
|
14
|
+
*
|
|
15
|
+
* - ArrowDown: Navegar al siguiente item
|
|
16
|
+
* - ArrowUp: Navegar al item anterior
|
|
17
|
+
* - Home: Ir al primer item
|
|
18
|
+
* - End: Ir al último item
|
|
19
|
+
* - Tab: Navegación estándar que actualiza el indicador
|
|
20
|
+
*
|
|
21
|
+
* También sincroniza el indicador visual con el item enfocado.
|
|
22
|
+
*
|
|
23
|
+
* @returns {UseSidebarKeyboardReturn} Estado y funciones para navegación
|
|
24
|
+
*
|
|
25
|
+
* @example
|
|
26
|
+
* ```tsx
|
|
27
|
+
* function SidebarNav() {
|
|
28
|
+
* const { focusedIndex, updateIndicatorForFocus } = useSidebarKeyboard()
|
|
29
|
+
*
|
|
30
|
+
* return (
|
|
31
|
+
* <nav>
|
|
32
|
+
* {items.map((item, index) => (
|
|
33
|
+
* <SidebarItem
|
|
34
|
+
* key={item.id}
|
|
35
|
+
* focused={index === focusedIndex}
|
|
36
|
+
* onFocus={() => updateIndicatorForFocus(index)}
|
|
37
|
+
* />
|
|
38
|
+
* ))}
|
|
39
|
+
* </nav>
|
|
40
|
+
* )
|
|
41
|
+
* }
|
|
42
|
+
* ```
|
|
43
|
+
*/
|
|
44
|
+
function useSidebarKeyboard() {
|
|
45
|
+
const { contentRef, indicatorRef, navRef, items, setShowIndicatorForKeyboard, setIsOverItems, setCurrentItemElement } = useSidebarContext();
|
|
46
|
+
const [focusedIndex, setFocusedIndex] = useState(-1);
|
|
47
|
+
/**
|
|
48
|
+
* Actualiza la posición del indicador basándose en el item enfocado
|
|
49
|
+
*
|
|
50
|
+
* @param {number} index - Índice del item a enfocar
|
|
51
|
+
* @param {HTMLElement[]} [itemsOverride] - Array de items frescos (opcional). Si se proporciona, se usa en lugar del array del context.
|
|
52
|
+
*/
|
|
53
|
+
const updateIndicatorForFocus = useCallback((index, itemsOverride) => {
|
|
54
|
+
if (!indicatorRef.current || !navRef.current) return;
|
|
55
|
+
const itemsToUse = itemsOverride || items;
|
|
56
|
+
if (index < 0 || index >= itemsToUse.length) return;
|
|
57
|
+
const item = itemsToUse[index];
|
|
58
|
+
if (!item) return;
|
|
59
|
+
const navRect = navRef.current.getBoundingClientRect();
|
|
60
|
+
const itemRect = item.getBoundingClientRect();
|
|
61
|
+
const y = itemRect.top - navRect.top + itemRect.height / 2;
|
|
62
|
+
indicatorRef.current.style.top = `${y}px`;
|
|
63
|
+
setCurrentItemElement(item);
|
|
64
|
+
setShowIndicatorForKeyboard(true);
|
|
65
|
+
setIsOverItems(true);
|
|
66
|
+
}, [
|
|
67
|
+
indicatorRef,
|
|
68
|
+
navRef,
|
|
69
|
+
items,
|
|
70
|
+
setShowIndicatorForKeyboard,
|
|
71
|
+
setIsOverItems,
|
|
72
|
+
setCurrentItemElement
|
|
73
|
+
]);
|
|
74
|
+
/**
|
|
75
|
+
* Manejador de eventos de teclado
|
|
76
|
+
*/
|
|
77
|
+
useEffect(() => {
|
|
78
|
+
const handleKeyDown = (e) => {
|
|
79
|
+
if (!contentRef.current) return;
|
|
80
|
+
const sidebarItems = Array.from(contentRef.current.querySelectorAll(`[${SIDEBAR_DATA_ATTRIBUTES.ITEM}]`));
|
|
81
|
+
if (sidebarItems.length === 0) return;
|
|
82
|
+
switch (e.key) {
|
|
83
|
+
case SIDEBAR_KEYBOARD_KEYS.ARROW_DOWN:
|
|
84
|
+
e.preventDefault();
|
|
85
|
+
setFocusedIndex((prev) => {
|
|
86
|
+
const next = prev < sidebarItems.length - 1 ? prev + 1 : prev;
|
|
87
|
+
sidebarItems[next]?.focus();
|
|
88
|
+
updateIndicatorForFocus(next, sidebarItems);
|
|
89
|
+
return next;
|
|
90
|
+
});
|
|
91
|
+
break;
|
|
92
|
+
case SIDEBAR_KEYBOARD_KEYS.ARROW_UP:
|
|
93
|
+
e.preventDefault();
|
|
94
|
+
setFocusedIndex((prev) => {
|
|
95
|
+
const next = prev > 0 ? prev - 1 : prev;
|
|
96
|
+
sidebarItems[next]?.focus();
|
|
97
|
+
updateIndicatorForFocus(next, sidebarItems);
|
|
98
|
+
return next;
|
|
99
|
+
});
|
|
100
|
+
break;
|
|
101
|
+
case SIDEBAR_KEYBOARD_KEYS.HOME:
|
|
102
|
+
e.preventDefault();
|
|
103
|
+
sidebarItems[0]?.focus();
|
|
104
|
+
setFocusedIndex(0);
|
|
105
|
+
updateIndicatorForFocus(0, sidebarItems);
|
|
106
|
+
break;
|
|
107
|
+
case SIDEBAR_KEYBOARD_KEYS.END: {
|
|
108
|
+
e.preventDefault();
|
|
109
|
+
const lastIndex = sidebarItems.length - 1;
|
|
110
|
+
sidebarItems[lastIndex]?.focus();
|
|
111
|
+
setFocusedIndex(lastIndex);
|
|
112
|
+
updateIndicatorForFocus(lastIndex, sidebarItems);
|
|
113
|
+
break;
|
|
114
|
+
}
|
|
115
|
+
case SIDEBAR_KEYBOARD_KEYS.TAB: {
|
|
116
|
+
const activeElement = document.activeElement;
|
|
117
|
+
const currentIndex = sidebarItems.indexOf(activeElement);
|
|
118
|
+
if (currentIndex !== -1) {
|
|
119
|
+
setFocusedIndex(currentIndex);
|
|
120
|
+
updateIndicatorForFocus(currentIndex, sidebarItems);
|
|
121
|
+
}
|
|
122
|
+
break;
|
|
123
|
+
}
|
|
124
|
+
case SIDEBAR_KEYBOARD_KEYS.ESCAPE:
|
|
125
|
+
document.activeElement?.blur();
|
|
126
|
+
setFocusedIndex(-1);
|
|
127
|
+
setShowIndicatorForKeyboard(false);
|
|
128
|
+
setIsOverItems(false);
|
|
129
|
+
setCurrentItemElement(null);
|
|
130
|
+
break;
|
|
131
|
+
}
|
|
132
|
+
};
|
|
133
|
+
document.addEventListener("keydown", handleKeyDown);
|
|
134
|
+
return () => {
|
|
135
|
+
document.removeEventListener("keydown", handleKeyDown);
|
|
136
|
+
};
|
|
137
|
+
}, [
|
|
138
|
+
contentRef,
|
|
139
|
+
updateIndicatorForFocus,
|
|
140
|
+
setIsOverItems
|
|
141
|
+
]);
|
|
142
|
+
return {
|
|
143
|
+
focusedIndex,
|
|
144
|
+
setFocusedIndex,
|
|
145
|
+
updateIndicatorForFocus
|
|
146
|
+
};
|
|
147
|
+
}
|
|
148
|
+
|
|
149
|
+
//#endregion
|
|
150
|
+
export { useSidebarKeyboard };
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Hook para acceder al contexto de sub-contenido del Sidebar
|
|
3
|
+
*
|
|
4
|
+
* @description
|
|
5
|
+
* Hook que provee acceso al contexto de sub-contenido (tooltips/popovers)
|
|
6
|
+
* para los items del sidebar. Debe ser utilizado dentro de un componente
|
|
7
|
+
* que esté envuelto por `<Sidebar>` o `<SidebarProvider>`.
|
|
8
|
+
*
|
|
9
|
+
* Permite registrar y obtener sub-contenido asociado a cada item.
|
|
10
|
+
*
|
|
11
|
+
* @throws {Error} Si se usa fuera de un SidebarProvider
|
|
12
|
+
*
|
|
13
|
+
* @returns {SubContentContext} El valor del contexto de sub-contenido
|
|
14
|
+
*
|
|
15
|
+
* @example
|
|
16
|
+
* ```tsx
|
|
17
|
+
* function SidebarItem() {
|
|
18
|
+
* const { registerSubContent, getSubContent } = useSubContent()
|
|
19
|
+
*
|
|
20
|
+
* const handleMouseEnter = () => {
|
|
21
|
+
* const data = getSubContent(itemId)
|
|
22
|
+
* if (data) {
|
|
23
|
+
* // Mostrar tooltip con data.subContent
|
|
24
|
+
* }
|
|
25
|
+
* }
|
|
26
|
+
*
|
|
27
|
+
* // Registrar el sub-contenido cuando se monta
|
|
28
|
+
* useEffect(() => {
|
|
29
|
+
* registerSubContent(itemId, { subContent: <TooltipContent />, title: 'Options' })
|
|
30
|
+
* }, [itemId])
|
|
31
|
+
*
|
|
32
|
+
* return <div>...</div>
|
|
33
|
+
* }
|
|
34
|
+
* ```
|
|
35
|
+
*/
|
|
36
|
+
export declare function useSubContent(): {
|
|
37
|
+
subContentMap: Map<string, import("../SidebarContext").SubContentData>;
|
|
38
|
+
registerSubContent: (itemId: string, data: import("../SidebarContext").SubContentData) => void;
|
|
39
|
+
unregisterSubContent: (itemId: string) => void;
|
|
40
|
+
getSubContent: (itemId: string) => import("../SidebarContext").SubContentData | undefined;
|
|
41
|
+
};
|
|
42
|
+
//# sourceMappingURL=useSubContent.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"useSubContent.d.ts","sourceRoot":"","sources":["../../../../../src/react-ui/blocks/Sidebar/hooks/useSubContent.ts"],"names":[],"mappings":"AAKA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkCG;AACH,wBAAgB,aAAa;;;;;EAQ5B"}
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
|
|
3
|
+
import { SubContentContext } from "../SidebarContext.js";
|
|
4
|
+
import { useContext } from "react";
|
|
5
|
+
|
|
6
|
+
//#region src/react-ui/blocks/Sidebar/hooks/useSubContent.ts
|
|
7
|
+
/**
|
|
8
|
+
* Hook para acceder al contexto de sub-contenido del Sidebar
|
|
9
|
+
*
|
|
10
|
+
* @description
|
|
11
|
+
* Hook que provee acceso al contexto de sub-contenido (tooltips/popovers)
|
|
12
|
+
* para los items del sidebar. Debe ser utilizado dentro de un componente
|
|
13
|
+
* que esté envuelto por `<Sidebar>` o `<SidebarProvider>`.
|
|
14
|
+
*
|
|
15
|
+
* Permite registrar y obtener sub-contenido asociado a cada item.
|
|
16
|
+
*
|
|
17
|
+
* @throws {Error} Si se usa fuera de un SidebarProvider
|
|
18
|
+
*
|
|
19
|
+
* @returns {SubContentContext} El valor del contexto de sub-contenido
|
|
20
|
+
*
|
|
21
|
+
* @example
|
|
22
|
+
* ```tsx
|
|
23
|
+
* function SidebarItem() {
|
|
24
|
+
* const { registerSubContent, getSubContent } = useSubContent()
|
|
25
|
+
*
|
|
26
|
+
* const handleMouseEnter = () => {
|
|
27
|
+
* const data = getSubContent(itemId)
|
|
28
|
+
* if (data) {
|
|
29
|
+
* // Mostrar tooltip con data.subContent
|
|
30
|
+
* }
|
|
31
|
+
* }
|
|
32
|
+
*
|
|
33
|
+
* // Registrar el sub-contenido cuando se monta
|
|
34
|
+
* useEffect(() => {
|
|
35
|
+
* registerSubContent(itemId, { subContent: <TooltipContent />, title: 'Options' })
|
|
36
|
+
* }, [itemId])
|
|
37
|
+
*
|
|
38
|
+
* return <div>...</div>
|
|
39
|
+
* }
|
|
40
|
+
* ```
|
|
41
|
+
*/
|
|
42
|
+
function useSubContent() {
|
|
43
|
+
const context = useContext(SubContentContext);
|
|
44
|
+
if (!context) throw new Error("useSubContent must be used within a <Sidebar> component");
|
|
45
|
+
return context;
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
//#endregion
|
|
49
|
+
export { useSubContent };
|
|
@@ -0,0 +1,163 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Sidebar Component - Componente headless de sidebar con arquitectura primitiva
|
|
3
|
+
*
|
|
4
|
+
* @module Sidebar
|
|
5
|
+
*/
|
|
6
|
+
import './animations/tooltip-keyframes.css';
|
|
7
|
+
/**
|
|
8
|
+
* Sidebar Component - Componente headless de sidebar con arquitectura primitiva
|
|
9
|
+
*
|
|
10
|
+
* @module Sidebar
|
|
11
|
+
*
|
|
12
|
+
* @description
|
|
13
|
+
* Sistema de sidebar altamente configurable siguiendo el patrón de componentes
|
|
14
|
+
* headless inspirado en Headless UI y shadcn/ui.
|
|
15
|
+
*
|
|
16
|
+
* **Características principales:**
|
|
17
|
+
* - Arquitectura headless con primitivos componibles
|
|
18
|
+
* - Soporte para render props y data attributes
|
|
19
|
+
* - Navegación por teclado (arrows, home, end)
|
|
20
|
+
* - Indicador visual animado
|
|
21
|
+
* - Modos de colapso (hide/collapse)
|
|
22
|
+
* - Accesibilidad WAI-ARIA completa
|
|
23
|
+
* - Usa tokens CSS de mks-ui para colores
|
|
24
|
+
* - Dark/Light mode automático
|
|
25
|
+
* - Tooltips anclados con CSS Anchor API
|
|
26
|
+
* - Fluid indicator con spring physics
|
|
27
|
+
* - TypeScript strict mode
|
|
28
|
+
*
|
|
29
|
+
* @example
|
|
30
|
+
* ```tsx
|
|
31
|
+
* import {
|
|
32
|
+
* Sidebar,
|
|
33
|
+
* SidebarNav,
|
|
34
|
+
* SidebarToggle,
|
|
35
|
+
* SidebarContent,
|
|
36
|
+
* SidebarIndicator,
|
|
37
|
+
* SidebarItem,
|
|
38
|
+
* } from '@mks2508/mks-ui/react/blocks/Sidebar'
|
|
39
|
+
*
|
|
40
|
+
* function App() {
|
|
41
|
+
* return (
|
|
42
|
+
* <Sidebar defaultOpen={true}>
|
|
43
|
+
* <SidebarNav>
|
|
44
|
+
* <SidebarToggle />
|
|
45
|
+
* <SidebarContent>
|
|
46
|
+
* <SidebarItem href="/" icon={<HomeIcon />} label="Home" />
|
|
47
|
+
* <SidebarItem href="/settings" icon={<SettingsIcon />} label="Settings" />
|
|
48
|
+
* </SidebarContent>
|
|
49
|
+
* </SidebarNav>
|
|
50
|
+
* </Sidebar>
|
|
51
|
+
* )
|
|
52
|
+
* }
|
|
53
|
+
* ```
|
|
54
|
+
*/
|
|
55
|
+
/**
|
|
56
|
+
* Componente raíz del Sidebar (Provider)
|
|
57
|
+
*/
|
|
58
|
+
export { Sidebar } from "./Sidebar";
|
|
59
|
+
/**
|
|
60
|
+
* Contenedor de navegación con gestión de eventos
|
|
61
|
+
*/
|
|
62
|
+
export { SidebarNav } from "./SidebarNav";
|
|
63
|
+
/**
|
|
64
|
+
* Botón toggle para abrir/cerrar el sidebar
|
|
65
|
+
*/
|
|
66
|
+
export { SidebarToggle } from "./SidebarToggle";
|
|
67
|
+
/**
|
|
68
|
+
* Contenedor de items de navegación
|
|
69
|
+
*/
|
|
70
|
+
export { SidebarContent } from "./SidebarContent";
|
|
71
|
+
/**
|
|
72
|
+
* Indicador visual que sigue al cursor/focus
|
|
73
|
+
*/
|
|
74
|
+
export { SidebarIndicator } from "./SidebarIndicator";
|
|
75
|
+
/**
|
|
76
|
+
* Indicador fluid glassmorphism con spring physics
|
|
77
|
+
*/
|
|
78
|
+
export { SidebarFluidIndicator } from "./SidebarFluidIndicator";
|
|
79
|
+
/**
|
|
80
|
+
* Área segura (top/bottom) para contenido especial
|
|
81
|
+
*/
|
|
82
|
+
export { SidebarSafeArea } from "./SidebarSafeArea";
|
|
83
|
+
/**
|
|
84
|
+
* Item individual de navegación
|
|
85
|
+
*/
|
|
86
|
+
export { SidebarItem } from "./SidebarItem";
|
|
87
|
+
/**
|
|
88
|
+
* Contenedor de subcontenido para tooltips (slot component)
|
|
89
|
+
*/
|
|
90
|
+
export { SidebarSubContent } from "./SidebarSubContent";
|
|
91
|
+
/**
|
|
92
|
+
* Link individual dentro de tooltip de subcontenido
|
|
93
|
+
*/
|
|
94
|
+
export { SidebarSubLink } from "./SidebarSubLink";
|
|
95
|
+
/**
|
|
96
|
+
* Tooltip genérico anclado al indicador
|
|
97
|
+
*/
|
|
98
|
+
export { SidebarTooltip } from "./SidebarTooltip";
|
|
99
|
+
/**
|
|
100
|
+
* Hook para acceder al contexto del sidebar
|
|
101
|
+
*
|
|
102
|
+
* @throws {Error} Si se usa fuera de un componente <Sidebar>
|
|
103
|
+
*
|
|
104
|
+
* @example
|
|
105
|
+
* ```tsx
|
|
106
|
+
* const { open, setOpen, dimensions } = useSidebarContext()
|
|
107
|
+
* ```
|
|
108
|
+
*/
|
|
109
|
+
export { useSidebarContext } from "./hooks/useSidebarContext";
|
|
110
|
+
/**
|
|
111
|
+
* Hook para navegación por teclado (arrows, home, end)
|
|
112
|
+
*
|
|
113
|
+
* @example
|
|
114
|
+
* ```tsx
|
|
115
|
+
* const { focusedIndex, updateIndicatorForFocus } = useSidebarKeyboard()
|
|
116
|
+
* ```
|
|
117
|
+
*/
|
|
118
|
+
export { useSidebarKeyboard } from "./hooks/useSidebarKeyboard";
|
|
119
|
+
/**
|
|
120
|
+
* Hook para gestión del indicador visual
|
|
121
|
+
*
|
|
122
|
+
* @example
|
|
123
|
+
* ```tsx
|
|
124
|
+
* const { isVisible, handleMouseMove } = useSidebarIndicator()
|
|
125
|
+
* ```
|
|
126
|
+
*/
|
|
127
|
+
export { useSidebarIndicator } from "./hooks/useSidebarIndicator";
|
|
128
|
+
/**
|
|
129
|
+
* Hook para acceder al contexto de subcontenido
|
|
130
|
+
*
|
|
131
|
+
* @throws {Error} Si se usa fuera de un componente <Sidebar>
|
|
132
|
+
*
|
|
133
|
+
* @example
|
|
134
|
+
* ```tsx
|
|
135
|
+
* const { registerSubContent, getSubContent } = useSubContent()
|
|
136
|
+
* ```
|
|
137
|
+
*/
|
|
138
|
+
export { useSubContent } from "./hooks/useSubContent";
|
|
139
|
+
/**
|
|
140
|
+
* Todos los tipos e interfaces del sidebar
|
|
141
|
+
*/
|
|
142
|
+
export type { SidebarProps, SidebarNavProps, SidebarToggleProps, SidebarContentProps, SidebarIndicatorProps, SidebarSafeAreaProps, SidebarItemProps, SidebarState, SidebarToggleState, SidebarItemState, SidebarIndicatorState, SidebarContextValue, SidebarDimensions, SidebarSafeAreas, SidebarAnimations, SidebarConfig, SidebarRenderProp, SidebarToggleRenderProp, SidebarItemRenderProp, SidebarIndicatorRenderProp, SidebarVisualStyle, SidebarSubContentProps, SidebarSubLinkProps, SidebarTooltipProps, } from "./Sidebar.types";
|
|
143
|
+
/**
|
|
144
|
+
* Enums exportados
|
|
145
|
+
*/
|
|
146
|
+
export { SidebarCollapseMode, SidebarHideBehaviour, SidebarHideOpensBehavior, SidebarLayoutBehaviour, SidebarWidth, SidebarTransitionDuration, SidebarZIndex, SidebarBorderRadius, SidebarSafeAreaPosition, SidebarTimingFunction, SidebarIconLibrary, } from "./Sidebar.types";
|
|
147
|
+
/**
|
|
148
|
+
* Constantes y valores por defecto
|
|
149
|
+
*/
|
|
150
|
+
export { DEFAULT_DIMENSIONS, DEFAULT_SAFE_AREAS, DEFAULT_ANIMATIONS, DEFAULT_CONFIG, DEFAULT_VISUAL_STYLE, SIDEBAR_KEYBOARD_KEYS, SIDEBAR_DATA_ATTRIBUTES, SIDEBAR_TAILWIND_CLASSES, SIDEBAR_DEBUG_PATTERNS, SIDEBAR_ARIA_ROLES, SIDEBAR_ARIA_LABELS, SIDEBAR_BREAKPOINTS, SIDEBAR_LIMITS, SIDEBAR_CSS_VARIABLES, SIDEBAR_VISUAL_PRESETS, } from "./Sidebar.constants";
|
|
151
|
+
/**
|
|
152
|
+
* Tipos de constantes
|
|
153
|
+
*/
|
|
154
|
+
export type { SidebarVisualPreset } from "./Sidebar.constants";
|
|
155
|
+
/**
|
|
156
|
+
* Funciones para generar estilos CSS dinámicos
|
|
157
|
+
*
|
|
158
|
+
* @note
|
|
159
|
+
* Los estilos usan tokens CSS de mks-ui (--sidebar, --sidebar-primary, etc.)
|
|
160
|
+
* definidos en index.css, permitiendo soporte automático de dark/light mode.
|
|
161
|
+
*/
|
|
162
|
+
export { generateSidebarStyles, generateIndicatorStyles } from "./Sidebar.styles";
|
|
163
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/react-ui/blocks/Sidebar/index.tsx"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,oCAAoC,CAAC;AAE5C;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+CG;AAMH;;GAEG;AACH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAA;AAEnC;;GAEG;AACH,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAA;AAEzC;;GAEG;AACH,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAA;AAE/C;;GAEG;AACH,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAA;AAEjD;;GAEG;AACH,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAA;AAErD;;GAEG;AACH,OAAO,EAAE,qBAAqB,EAAE,MAAM,yBAAyB,CAAA;AAE/D;;GAEG;AACH,OAAO,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAA;AAEnD;;GAEG;AACH,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAA;AAE3C;;GAEG;AACH,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAA;AAEvD;;GAEG;AACH,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAA;AAEjD;;GAEG;AACH,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAA;AAMjD;;;;;;;;;GASG;AACH,OAAO,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAA;AAE7D;;;;;;;GAOG;AACH,OAAO,EAAE,kBAAkB,EAAE,MAAM,4BAA4B,CAAA;AAE/D;;;;;;;GAOG;AACH,OAAO,EAAE,mBAAmB,EAAE,MAAM,6BAA6B,CAAA;AAEjE;;;;;;;;;GASG;AACH,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAA;AAMrD;;GAEG;AACH,YAAY,EACV,YAAY,EACZ,eAAe,EACf,kBAAkB,EAClB,mBAAmB,EACnB,qBAAqB,EACrB,oBAAoB,EACpB,gBAAgB,EAChB,YAAY,EACZ,kBAAkB,EAClB,gBAAgB,EAChB,qBAAqB,EACrB,mBAAmB,EACnB,iBAAiB,EACjB,gBAAgB,EAChB,iBAAiB,EACjB,aAAa,EACb,iBAAiB,EACjB,uBAAuB,EACvB,qBAAqB,EACrB,0BAA0B,EAC1B,kBAAkB,EAClB,sBAAsB,EACtB,mBAAmB,EACnB,mBAAmB,GACpB,MAAM,iBAAiB,CAAA;AAExB;;GAEG;AACH,OAAO,EACL,mBAAmB,EACnB,oBAAoB,EACpB,wBAAwB,EACxB,sBAAsB,EACtB,YAAY,EACZ,yBAAyB,EACzB,aAAa,EACb,mBAAmB,EACnB,uBAAuB,EACvB,qBAAqB,EACrB,kBAAkB,GACnB,MAAM,iBAAiB,CAAA;AAMxB;;GAEG;AACH,OAAO,EACL,kBAAkB,EAClB,kBAAkB,EAClB,kBAAkB,EAClB,cAAc,EACd,oBAAoB,EACpB,qBAAqB,EACrB,uBAAuB,EACvB,wBAAwB,EACxB,sBAAsB,EACtB,kBAAkB,EAClB,mBAAmB,EACnB,mBAAmB,EACnB,cAAc,EACd,qBAAqB,EACrB,sBAAsB,GACvB,MAAM,qBAAqB,CAAA;AAE5B;;GAEG;AACH,YAAY,EAAE,mBAAmB,EAAE,MAAM,qBAAqB,CAAA;AAM9D;;;;;;GAMG;AACH,OAAO,EAAE,qBAAqB,EAAE,uBAAuB,EAAE,MAAM,kBAAkB,CAAA"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import "./animations/tooltip-keyframes.js";
|
|
2
|
+
import { SidebarBorderRadius, SidebarCollapseMode, SidebarHideBehaviour, SidebarHideOpensBehavior, SidebarIconLibrary, SidebarLayoutBehaviour, SidebarSafeAreaPosition, SidebarTimingFunction, SidebarTransitionDuration, SidebarWidth, SidebarZIndex } from "./Sidebar.types.js";
|
|
3
|
+
import { DEFAULT_ANIMATIONS, DEFAULT_CONFIG, DEFAULT_DIMENSIONS, DEFAULT_SAFE_AREAS, DEFAULT_VISUAL_STYLE, SIDEBAR_ARIA_LABELS, SIDEBAR_ARIA_ROLES, SIDEBAR_CSS_VARIABLES, SIDEBAR_DATA_ATTRIBUTES, SIDEBAR_DEBUG_PATTERNS, SIDEBAR_KEYBOARD_KEYS, SIDEBAR_TAILWIND_CLASSES, SIDEBAR_VISUAL_PRESETS } from "./Sidebar.constants.js";
|
|
4
|
+
import { Sidebar } from "./Sidebar.js";
|
|
5
|
+
import { useSidebarContext } from "./hooks/useSidebarContext.js";
|
|
6
|
+
import { useSubContent } from "./hooks/useSubContent.js";
|
|
7
|
+
import { useSidebarIndicator } from "./hooks/useSidebarIndicator.js";
|
|
8
|
+
import { useSidebarKeyboard } from "./hooks/useSidebarKeyboard.js";
|
|
9
|
+
import { SidebarFluidIndicator } from "./SidebarFluidIndicator.js";
|
|
10
|
+
import { SidebarTooltip } from "./SidebarTooltip.js";
|
|
11
|
+
import { generateIndicatorStyles, generateSidebarStyles } from "./Sidebar.styles.js";
|
|
12
|
+
import { SidebarNav } from "./SidebarNav.js";
|
|
13
|
+
import { SidebarToggle } from "./SidebarToggle.js";
|
|
14
|
+
import { SidebarContent } from "./SidebarContent.js";
|
|
15
|
+
import { SidebarIndicator } from "./SidebarIndicator.js";
|
|
16
|
+
import { SidebarSafeArea } from "./SidebarSafeArea.js";
|
|
17
|
+
import { SidebarSubContent } from "./SidebarSubContent.js";
|
|
18
|
+
import { SidebarItem } from "./SidebarItem.js";
|
|
19
|
+
import { SidebarSubLink } from "./SidebarSubLink.js";
|
|
@@ -0,0 +1,219 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Terminal Block shared design tokens.
|
|
3
|
+
*
|
|
4
|
+
* Single source of truth for all repeated style constants across Terminal
|
|
5
|
+
* sub-components. Centralizes log-level colors, status indicators, primary
|
|
6
|
+
* glow utilities, and shared button/toggle patterns.
|
|
7
|
+
*
|
|
8
|
+
* @module @mks2508/mks-ui/react/blocks/Terminal/tokens
|
|
9
|
+
*/
|
|
10
|
+
import type { TLogLevel } from './parsing/LogParser.types';
|
|
11
|
+
/**
|
|
12
|
+
* Style definitions for a single log level.
|
|
13
|
+
*
|
|
14
|
+
* Each field maps to a different visual context where the level color
|
|
15
|
+
* appears (badge, line border, glow, inline text).
|
|
16
|
+
*/
|
|
17
|
+
export interface ILogLevelStyle {
|
|
18
|
+
/** Background, text, and border classes for badges (e.g. TerminalLogBadge, LevelBadge) */
|
|
19
|
+
badge: string;
|
|
20
|
+
/** Left border class for log line rows (e.g. LogLinesViewer) */
|
|
21
|
+
border: string;
|
|
22
|
+
/** Shadow glow class for emphasized/active states */
|
|
23
|
+
glow: string;
|
|
24
|
+
/** Standalone text color class */
|
|
25
|
+
text: string;
|
|
26
|
+
}
|
|
27
|
+
/**
|
|
28
|
+
* Centralized log level color mapping.
|
|
29
|
+
*
|
|
30
|
+
* Replaces duplicated `LEVEL_COLORS` records in TerminalLogBadge,
|
|
31
|
+
* LogLineBadges, LogLinesViewer, TerminalFilterTabs, and TerminalFilterDropdown.
|
|
32
|
+
*
|
|
33
|
+
* @example
|
|
34
|
+
* ```tsx
|
|
35
|
+
* import { LOG_LEVEL_STYLES } from '../Terminal.tokens';
|
|
36
|
+
* <span className={LOG_LEVEL_STYLES.error.badge}>ERROR</span>
|
|
37
|
+
* ```
|
|
38
|
+
*/
|
|
39
|
+
export declare const LOG_LEVEL_STYLES: Record<TLogLevel | 'all' | 'unknown', ILogLevelStyle>;
|
|
40
|
+
/** Content type identifiers for log entries. */
|
|
41
|
+
export type TContentType = 'plain' | 'http' | 'json' | 'table' | 'sql';
|
|
42
|
+
/**
|
|
43
|
+
* Style definitions for content type badges.
|
|
44
|
+
*/
|
|
45
|
+
export interface IContentTypeStyle {
|
|
46
|
+
/** Display label for the badge */
|
|
47
|
+
label: string;
|
|
48
|
+
/** Tailwind class string for the badge */
|
|
49
|
+
className: string;
|
|
50
|
+
}
|
|
51
|
+
/**
|
|
52
|
+
* Centralized content type badge styling.
|
|
53
|
+
*
|
|
54
|
+
* @example
|
|
55
|
+
* ```tsx
|
|
56
|
+
* import { CONTENT_TYPE_STYLES } from '../Terminal.tokens';
|
|
57
|
+
* const style = CONTENT_TYPE_STYLES.http;
|
|
58
|
+
* <span className={style.className}>{style.label}</span>
|
|
59
|
+
* ```
|
|
60
|
+
*/
|
|
61
|
+
export declare const CONTENT_TYPE_STYLES: Record<TContentType, IContentTypeStyle>;
|
|
62
|
+
/**
|
|
63
|
+
* Primary color glow shadow utilities.
|
|
64
|
+
*
|
|
65
|
+
* Uses `hsl(var(--primary) / opacity)` so the glow automatically
|
|
66
|
+
* follows the consumer's `--primary` CSS variable.
|
|
67
|
+
*
|
|
68
|
+
* Replaces 17+ instances of hardcoded `hsla(330,85%,43%,...)`.
|
|
69
|
+
*
|
|
70
|
+
* @example
|
|
71
|
+
* ```tsx
|
|
72
|
+
* import { PRIMARY_GLOW } from '../Terminal.tokens';
|
|
73
|
+
* <button className={cn('bg-primary/20', PRIMARY_GLOW.md)}>Active</button>
|
|
74
|
+
* ```
|
|
75
|
+
*/
|
|
76
|
+
export declare const PRIMARY_GLOW: {
|
|
77
|
+
/** Subtle glow — 0.15 opacity, 8px spread */
|
|
78
|
+
readonly sm: "shadow-[0_0_8px_hsl(var(--primary)/0.15)]";
|
|
79
|
+
/** Medium glow — 0.2 opacity, 10px spread */
|
|
80
|
+
readonly md: "shadow-[0_0_10px_hsl(var(--primary)/0.2)]";
|
|
81
|
+
/** Strong glow — 0.3 opacity, 12px spread */
|
|
82
|
+
readonly lg: "shadow-[0_0_12px_hsl(var(--primary)/0.3)]";
|
|
83
|
+
/** Intense glow — 0.5 opacity, 12px spread (active/focus states) */
|
|
84
|
+
readonly xl: "shadow-[0_0_12px_hsl(var(--primary)/0.5)]";
|
|
85
|
+
};
|
|
86
|
+
/**
|
|
87
|
+
* Compound primary glow for active tab indicators and accent elements.
|
|
88
|
+
* Combines multiple shadow layers for depth.
|
|
89
|
+
*/
|
|
90
|
+
export declare const PRIMARY_GLOW_COMPOUND: {
|
|
91
|
+
/** Active tab bar glow — dual shadow layers */
|
|
92
|
+
readonly tabBar: "shadow-[0_0_12px_hsl(var(--primary)/0.6),0_0_4px_hsl(var(--primary)/0.8)]";
|
|
93
|
+
};
|
|
94
|
+
/** Terminal connection status. */
|
|
95
|
+
export type TTerminalConnectionStatusToken = 'connected' | 'connecting' | 'disconnected' | 'error';
|
|
96
|
+
/**
|
|
97
|
+
* Style definitions for a connection status.
|
|
98
|
+
*/
|
|
99
|
+
export interface IStatusStyle {
|
|
100
|
+
/** Dot indicator classes (bg + optional shadow/animation) */
|
|
101
|
+
dot: string;
|
|
102
|
+
/** Label text color */
|
|
103
|
+
label: string;
|
|
104
|
+
/** Display text */
|
|
105
|
+
text: string;
|
|
106
|
+
}
|
|
107
|
+
/**
|
|
108
|
+
* Centralized connection status color mapping.
|
|
109
|
+
*
|
|
110
|
+
* Replaces duplicated `getStatusColor` functions in TerminalPanelHeader,
|
|
111
|
+
* TerminalSessionTabs, and TerminalSessionControl.
|
|
112
|
+
*
|
|
113
|
+
* @example
|
|
114
|
+
* ```tsx
|
|
115
|
+
* import { STATUS_COLORS } from '../Terminal.tokens';
|
|
116
|
+
* <div className={cn('w-2 h-2 rounded-full', STATUS_COLORS.connected.dot)} />
|
|
117
|
+
* ```
|
|
118
|
+
*/
|
|
119
|
+
export declare const STATUS_COLORS: Record<TTerminalConnectionStatusToken, IStatusStyle>;
|
|
120
|
+
/**
|
|
121
|
+
* macOS-style traffic light button classes.
|
|
122
|
+
*
|
|
123
|
+
* Dots are desaturated by default, colorize on parent group hover
|
|
124
|
+
* (`group-hover/traffic`), and brighten + scale on individual hover.
|
|
125
|
+
*/
|
|
126
|
+
export declare const TRAFFIC_LIGHT_STYLES: {
|
|
127
|
+
readonly close: "w-3 h-3 rounded-full transition-all duration-200 bg-muted-foreground/30 group-hover/traffic:bg-red-500/90 group-hover/traffic:shadow-[0_0_6px_rgba(239,68,68,0.4)] hover:!bg-red-500 hover:!shadow-[0_0_12px_rgba(239,68,68,0.6)] hover:!scale-110";
|
|
128
|
+
readonly minimize: "w-3 h-3 rounded-full transition-all duration-200 bg-muted-foreground/30 group-hover/traffic:bg-yellow-500/90 group-hover/traffic:shadow-[0_0_6px_rgba(234,179,8,0.4)] hover:!bg-yellow-500 hover:!shadow-[0_0_12px_rgba(234,179,8,0.6)] hover:!scale-110";
|
|
129
|
+
readonly maximize: "w-3 h-3 rounded-full transition-all duration-200 bg-muted-foreground/30 group-hover/traffic:bg-green-500/90 group-hover/traffic:shadow-[0_0_6px_rgba(34,197,94,0.4)] hover:!bg-green-500 hover:!shadow-[0_0_12px_rgba(34,197,94,0.6)] hover:!scale-110";
|
|
130
|
+
};
|
|
131
|
+
/**
|
|
132
|
+
* Segmented control button classes (macOS-style pill toggle).
|
|
133
|
+
*
|
|
134
|
+
* Shared by TerminalPanelHeader view mode toggle and
|
|
135
|
+
* TerminalSettingsPopover renderer/backend selectors.
|
|
136
|
+
*/
|
|
137
|
+
export declare const SEGMENTED_BUTTON_STYLES: {
|
|
138
|
+
/** Base classes applied to all buttons */
|
|
139
|
+
readonly base: "flex items-center gap-1.5 px-2.5 py-1 rounded-md text-xs font-medium transition-all";
|
|
140
|
+
/** Inactive state — subtle hover */
|
|
141
|
+
readonly inactive: "text-muted-foreground hover:text-foreground hover:bg-white/5 hover:shadow-[inset_0_1px_0_0_rgba(255,255,255,0.1)]";
|
|
142
|
+
/** Active state — primary tint with glow */
|
|
143
|
+
readonly active: "bg-primary/20 text-primary border border-primary/30 shadow-[0_0_8px_hsl(var(--primary)/0.15)]";
|
|
144
|
+
};
|
|
145
|
+
/**
|
|
146
|
+
* Toggle button classes (follow cursor, line numbers, etc.).
|
|
147
|
+
*
|
|
148
|
+
* Shared by TerminalPanelToolbar and TerminalLogsPanel action bars.
|
|
149
|
+
*/
|
|
150
|
+
export declare const TOGGLE_STYLES: {
|
|
151
|
+
readonly base: "p-2 rounded-md transition-all hover:scale-105 active:scale-95";
|
|
152
|
+
readonly inactive: "bg-muted/40 text-muted-foreground hover:bg-muted/60";
|
|
153
|
+
readonly active: "bg-primary/20 text-primary border border-primary/40 shadow-[0_0_10px_hsl(var(--primary)/0.2)]";
|
|
154
|
+
};
|
|
155
|
+
/**
|
|
156
|
+
* Action button classes (search, clear, download, etc.).
|
|
157
|
+
*
|
|
158
|
+
* Shared by TerminalPanelToolbar and TerminalLogsPanel.
|
|
159
|
+
*/
|
|
160
|
+
export declare const ACTION_BUTTON_STYLES: {
|
|
161
|
+
readonly base: "p-2 rounded-md transition-all hover:scale-105 active:scale-95";
|
|
162
|
+
readonly default: "bg-muted/40 text-muted-foreground hover:bg-muted/60 hover:text-foreground";
|
|
163
|
+
};
|
|
164
|
+
/**
|
|
165
|
+
* Filter button classes for log level filter bar.
|
|
166
|
+
*
|
|
167
|
+
* Used by TerminalPanelToolbar and TerminalFilterTabs.
|
|
168
|
+
*/
|
|
169
|
+
export declare const FILTER_BUTTON_STYLES: {
|
|
170
|
+
readonly base: "px-3 py-1.5 rounded-md font-mono text-xs font-bold uppercase tracking-wider transition-all";
|
|
171
|
+
readonly inactive: "bg-muted/40 text-muted-foreground hover:bg-muted/60 hover:scale-105 active:scale-95 border border-border/20";
|
|
172
|
+
readonly active: "bg-primary/20 text-primary border border-primary/40 shadow-[0_0_10px_hsl(var(--primary)/0.2)] hover:scale-105 active:scale-95";
|
|
173
|
+
};
|
|
174
|
+
/**
|
|
175
|
+
* Small icon-only trigger button classes (settings gear, etc.).
|
|
176
|
+
*/
|
|
177
|
+
export declare const TRIGGER_BUTTON_STYLES: "h-8 w-8 rounded-md transition-all hover:bg-muted/20 active:bg-muted/30 flex items-center justify-center text-muted-foreground hover:text-foreground flex-shrink-0";
|
|
178
|
+
/**
|
|
179
|
+
* Font size control button classes (+ / −).
|
|
180
|
+
*/
|
|
181
|
+
export declare const FONT_BUTTON_STYLES: "h-7 w-7 rounded-md transition-all hover:bg-muted/20 active:bg-muted/30 flex items-center justify-center text-muted-foreground hover:text-foreground disabled:opacity-30 disabled:pointer-events-none";
|
|
182
|
+
/**
|
|
183
|
+
* Terminal background class.
|
|
184
|
+
*
|
|
185
|
+
* Uses a CSS custom property `--terminal-bg` with a fallback to the
|
|
186
|
+
* theme's `--background` variable. Consumers set `--terminal-bg` to
|
|
187
|
+
* override the terminal area background without affecting the rest of the UI.
|
|
188
|
+
*
|
|
189
|
+
* @example
|
|
190
|
+
* ```css
|
|
191
|
+
* :root { --terminal-bg: 36 27 47; }
|
|
192
|
+
* ```
|
|
193
|
+
*
|
|
194
|
+
* @example
|
|
195
|
+
* ```tsx
|
|
196
|
+
* <div className={TERMINAL_BG}>...</div>
|
|
197
|
+
* ```
|
|
198
|
+
*/
|
|
199
|
+
export declare const TERMINAL_BG: "bg-[hsl(var(--terminal-bg,var(--background)))]";
|
|
200
|
+
/**
|
|
201
|
+
* Section label classes for settings sections.
|
|
202
|
+
*/
|
|
203
|
+
export declare const SECTION_LABEL_STYLES: "text-[10px] font-mono text-muted-foreground uppercase tracking-wider";
|
|
204
|
+
/**
|
|
205
|
+
* Custom toggle switch classes (CRT effect, debug panel).
|
|
206
|
+
*/
|
|
207
|
+
export declare const TOGGLE_SWITCH_STYLES: {
|
|
208
|
+
readonly track: {
|
|
209
|
+
readonly base: "relative w-9 h-5 rounded-full transition-colors";
|
|
210
|
+
readonly active: "bg-primary/60 shadow-[0_0_8px_hsl(var(--primary)/0.15)]";
|
|
211
|
+
readonly inactive: "bg-muted/30";
|
|
212
|
+
};
|
|
213
|
+
readonly thumb: {
|
|
214
|
+
readonly base: "absolute top-0.5 h-4 w-4 rounded-full bg-foreground transition-all";
|
|
215
|
+
readonly active: "left-[18px]";
|
|
216
|
+
readonly inactive: "left-0.5";
|
|
217
|
+
};
|
|
218
|
+
};
|
|
219
|
+
//# sourceMappingURL=Terminal.tokens.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Terminal.tokens.d.ts","sourceRoot":"","sources":["../../../../src/react-ui/blocks/Terminal/Terminal.tokens.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,2BAA2B,CAAC;AAI3D;;;;;GAKG;AACH,MAAM,WAAW,cAAc;IAC7B,0FAA0F;IAC1F,KAAK,EAAE,MAAM,CAAC;IACd,gEAAgE;IAChE,MAAM,EAAE,MAAM,CAAC;IACf,qDAAqD;IACrD,IAAI,EAAE,MAAM,CAAC;IACb,kCAAkC;IAClC,IAAI,EAAE,MAAM,CAAC;CACd;AAED;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,gBAAgB,EAAE,MAAM,CAAC,SAAS,GAAG,KAAK,GAAG,SAAS,EAAE,cAAc,CAiDzE,CAAC;AAIX,gDAAgD;AAChD,MAAM,MAAM,YAAY,GAAG,OAAO,GAAG,MAAM,GAAG,MAAM,GAAG,OAAO,GAAG,KAAK,CAAC;AAEvE;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,kCAAkC;IAClC,KAAK,EAAE,MAAM,CAAC;IACd,0CAA0C;IAC1C,SAAS,EAAE,MAAM,CAAC;CACnB;AAED;;;;;;;;;GASG;AACH,eAAO,MAAM,mBAAmB,EAAE,MAAM,CAAC,YAAY,EAAE,iBAAiB,CAkB9D,CAAC;AAIX;;;;;;;;;;;;;GAaG;AACH,eAAO,MAAM,YAAY;IACvB,6CAA6C;;IAE7C,6CAA6C;;IAE7C,6CAA6C;;IAE7C,oEAAoE;;CAE5D,CAAC;AAEX;;;GAGG;AACH,eAAO,MAAM,qBAAqB;IAChC,+CAA+C;;CAEvC,CAAC;AAIX,kCAAkC;AAClC,MAAM,MAAM,8BAA8B,GAAG,WAAW,GAAG,YAAY,GAAG,cAAc,GAAG,OAAO,CAAC;AAEnG;;GAEG;AACH,MAAM,WAAW,YAAY;IAC3B,6DAA6D;IAC7D,GAAG,EAAE,MAAM,CAAC;IACZ,uBAAuB;IACvB,KAAK,EAAE,MAAM,CAAC;IACd,mBAAmB;IACnB,IAAI,EAAE,MAAM,CAAC;CACd;AAED;;;;;;;;;;;GAWG;AACH,eAAO,MAAM,aAAa,EAAE,MAAM,CAAC,8BAA8B,EAAE,YAAY,CAqBrE,CAAC;AAIX;;;;;GAKG;AACH,eAAO,MAAM,oBAAoB;;;;CAOvB,CAAC;AAIX;;;;;GAKG;AACH,eAAO,MAAM,uBAAuB;IAClC,0CAA0C;;IAE1C,oCAAoC;;IAGpC,4CAA4C;;CAEpC,CAAC;AAIX;;;;GAIG;AACH,eAAO,MAAM,aAAa;;;;CAIhB,CAAC;AAEX;;;;GAIG;AACH,eAAO,MAAM,oBAAoB;;;CAGvB,CAAC;AAEX;;;;GAIG;AACH,eAAO,MAAM,oBAAoB;;;;CAKvB,CAAC;AAIX;;GAEG;AACH,eAAO,MAAM,qBAAqB,EAChC,mKAA4K,CAAC;AAE/K;;GAEG;AACH,eAAO,MAAM,kBAAkB,EAC7B,sMAA+M,CAAC;AAIlN;;;;;;;;;;;;;;;;GAgBG;AACH,eAAO,MAAM,WAAW,EAAG,gDAAyD,CAAC;AAIrF;;GAEG;AACH,eAAO,MAAM,oBAAoB,EAC/B,sEAA+E,CAAC;AAIlF;;GAEG;AACH,eAAO,MAAM,oBAAoB;;;;;;;;;;;CAWvB,CAAC"}
|