@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.
Files changed (389) hide show
  1. package/dist/css/blocks-Sidebar-animations-tooltip.css +330 -0
  2. package/dist/index.css +587 -357
  3. package/dist/react-ui/blocks/BottomNavBar/MobileBottomNav.d.ts +64 -0
  4. package/dist/react-ui/blocks/BottomNavBar/MobileBottomNav.d.ts.map +1 -0
  5. package/dist/react-ui/blocks/BottomNavBar/MobileBottomNav.js +301 -0
  6. package/dist/react-ui/blocks/BottomNavBar/MobileBottomNav.styles.d.ts +94 -0
  7. package/dist/react-ui/blocks/BottomNavBar/MobileBottomNav.styles.d.ts.map +1 -0
  8. package/dist/react-ui/blocks/BottomNavBar/MobileBottomNav.styles.js +216 -0
  9. package/dist/react-ui/blocks/BottomNavBar/index.d.ts +10 -0
  10. package/dist/react-ui/blocks/BottomNavBar/index.d.ts.map +1 -0
  11. package/dist/react-ui/blocks/BottomNavBar/index.js +4 -0
  12. package/dist/react-ui/blocks/BottomNavBar/types.d.ts +362 -0
  13. package/dist/react-ui/blocks/BottomNavBar/types.d.ts.map +1 -0
  14. package/dist/react-ui/blocks/BottomNavBar/types.js +175 -0
  15. package/dist/react-ui/blocks/BottomNavBar/useIOSSafariFix.d.ts +73 -0
  16. package/dist/react-ui/blocks/BottomNavBar/useIOSSafariFix.d.ts.map +1 -0
  17. package/dist/react-ui/blocks/BottomNavBar/useIOSSafariFix.js +178 -0
  18. package/dist/react-ui/blocks/Sidebar/Sidebar.constants.d.ts +285 -0
  19. package/dist/react-ui/blocks/Sidebar/Sidebar.constants.d.ts.map +1 -0
  20. package/dist/react-ui/blocks/Sidebar/Sidebar.constants.js +208 -0
  21. package/dist/react-ui/blocks/Sidebar/Sidebar.d.ts +80 -0
  22. package/dist/react-ui/blocks/Sidebar/Sidebar.d.ts.map +1 -0
  23. package/dist/react-ui/blocks/Sidebar/Sidebar.js +114 -0
  24. package/dist/react-ui/blocks/Sidebar/Sidebar.styles.d.ts +77 -0
  25. package/dist/react-ui/blocks/Sidebar/Sidebar.styles.d.ts.map +1 -0
  26. package/dist/react-ui/blocks/Sidebar/Sidebar.styles.js +274 -0
  27. package/dist/react-ui/blocks/Sidebar/Sidebar.types.d.ts +546 -0
  28. package/dist/react-ui/blocks/Sidebar/Sidebar.types.d.ts.map +1 -0
  29. package/dist/react-ui/blocks/Sidebar/Sidebar.types.js +149 -0
  30. package/dist/react-ui/blocks/Sidebar/SidebarContent.d.ts +46 -0
  31. package/dist/react-ui/blocks/Sidebar/SidebarContent.d.ts.map +1 -0
  32. package/dist/react-ui/blocks/Sidebar/SidebarContent.js +86 -0
  33. package/dist/react-ui/blocks/Sidebar/SidebarContext.d.ts +85 -0
  34. package/dist/react-ui/blocks/Sidebar/SidebarContext.d.ts.map +1 -0
  35. package/dist/react-ui/blocks/Sidebar/SidebarContext.js +178 -0
  36. package/dist/react-ui/blocks/Sidebar/SidebarFluidIndicator.d.ts +31 -0
  37. package/dist/react-ui/blocks/Sidebar/SidebarFluidIndicator.d.ts.map +1 -0
  38. package/dist/react-ui/blocks/Sidebar/SidebarFluidIndicator.js +37 -0
  39. package/dist/react-ui/blocks/Sidebar/SidebarIndicator.d.ts +59 -0
  40. package/dist/react-ui/blocks/Sidebar/SidebarIndicator.d.ts.map +1 -0
  41. package/dist/react-ui/blocks/Sidebar/SidebarIndicator.js +106 -0
  42. package/dist/react-ui/blocks/Sidebar/SidebarItem.d.ts +82 -0
  43. package/dist/react-ui/blocks/Sidebar/SidebarItem.d.ts.map +1 -0
  44. package/dist/react-ui/blocks/Sidebar/SidebarItem.js +209 -0
  45. package/dist/react-ui/blocks/Sidebar/SidebarNav.d.ts +48 -0
  46. package/dist/react-ui/blocks/Sidebar/SidebarNav.d.ts.map +1 -0
  47. package/dist/react-ui/blocks/Sidebar/SidebarNav.js +317 -0
  48. package/dist/react-ui/blocks/Sidebar/SidebarSafeArea.d.ts +56 -0
  49. package/dist/react-ui/blocks/Sidebar/SidebarSafeArea.d.ts.map +1 -0
  50. package/dist/react-ui/blocks/Sidebar/SidebarSafeArea.js +105 -0
  51. package/dist/react-ui/blocks/Sidebar/SidebarSubContent.d.ts +27 -0
  52. package/dist/react-ui/blocks/Sidebar/SidebarSubContent.d.ts.map +1 -0
  53. package/dist/react-ui/blocks/Sidebar/SidebarSubContent.js +31 -0
  54. package/dist/react-ui/blocks/Sidebar/SidebarSubLink.d.ts +20 -0
  55. package/dist/react-ui/blocks/Sidebar/SidebarSubLink.d.ts.map +1 -0
  56. package/dist/react-ui/blocks/Sidebar/SidebarSubLink.js +44 -0
  57. package/dist/react-ui/blocks/Sidebar/SidebarToggle.d.ts +52 -0
  58. package/dist/react-ui/blocks/Sidebar/SidebarToggle.d.ts.map +1 -0
  59. package/dist/react-ui/blocks/Sidebar/SidebarToggle.js +119 -0
  60. package/dist/react-ui/blocks/Sidebar/SidebarTooltip.d.ts +15 -0
  61. package/dist/react-ui/blocks/Sidebar/SidebarTooltip.d.ts.map +1 -0
  62. package/dist/react-ui/blocks/Sidebar/SidebarTooltip.js +177 -0
  63. package/dist/react-ui/blocks/Sidebar/animations/tooltip-keyframes.js +0 -0
  64. package/dist/react-ui/blocks/Sidebar/animations/tooltip.css +330 -0
  65. package/dist/react-ui/blocks/Sidebar/components/FluidHoverIndicator.d.ts +28 -0
  66. package/dist/react-ui/blocks/Sidebar/components/FluidHoverIndicator.d.ts.map +1 -0
  67. package/dist/react-ui/blocks/Sidebar/components/FluidHoverIndicator.js +74 -0
  68. package/dist/react-ui/blocks/Sidebar/hooks/use-fluid-animation.d.ts +18 -0
  69. package/dist/react-ui/blocks/Sidebar/hooks/use-fluid-animation.d.ts.map +1 -0
  70. package/dist/react-ui/blocks/Sidebar/hooks/use-fluid-animation.js +166 -0
  71. package/dist/react-ui/blocks/Sidebar/hooks/useSidebarContext.d.ts +48 -0
  72. package/dist/react-ui/blocks/Sidebar/hooks/useSidebarContext.d.ts.map +1 -0
  73. package/dist/react-ui/blocks/Sidebar/hooks/useSidebarContext.js +59 -0
  74. package/dist/react-ui/blocks/Sidebar/hooks/useSidebarIndicator.d.ts +72 -0
  75. package/dist/react-ui/blocks/Sidebar/hooks/useSidebarIndicator.d.ts.map +1 -0
  76. package/dist/react-ui/blocks/Sidebar/hooks/useSidebarIndicator.js +159 -0
  77. package/dist/react-ui/blocks/Sidebar/hooks/useSidebarKeyboard.d.ts +51 -0
  78. package/dist/react-ui/blocks/Sidebar/hooks/useSidebarKeyboard.d.ts.map +1 -0
  79. package/dist/react-ui/blocks/Sidebar/hooks/useSidebarKeyboard.js +150 -0
  80. package/dist/react-ui/blocks/Sidebar/hooks/useSubContent.d.ts +42 -0
  81. package/dist/react-ui/blocks/Sidebar/hooks/useSubContent.d.ts.map +1 -0
  82. package/dist/react-ui/blocks/Sidebar/hooks/useSubContent.js +49 -0
  83. package/dist/react-ui/blocks/Sidebar/index.d.ts +163 -0
  84. package/dist/react-ui/blocks/Sidebar/index.d.ts.map +1 -0
  85. package/dist/react-ui/blocks/Sidebar/index.js +19 -0
  86. package/dist/react-ui/blocks/Terminal/Terminal.tokens.d.ts +219 -0
  87. package/dist/react-ui/blocks/Terminal/Terminal.tokens.d.ts.map +1 -0
  88. package/dist/react-ui/blocks/Terminal/Terminal.tokens.js +253 -0
  89. package/dist/react-ui/blocks/Terminal/Terminal.types.d.ts +2 -1
  90. package/dist/react-ui/blocks/Terminal/Terminal.types.d.ts.map +1 -1
  91. package/dist/react-ui/blocks/Terminal/TerminalDisplay.js +1 -1
  92. package/dist/react-ui/blocks/Terminal/TerminalDisplay.types.d.ts +1 -1
  93. package/dist/react-ui/blocks/Terminal/TerminalDisplay.types.d.ts.map +1 -1
  94. package/dist/react-ui/blocks/Terminal/chrome.js +2 -2
  95. package/dist/react-ui/blocks/Terminal/components/LogLineBadges/LogLineBadges.styles.d.ts +15 -0
  96. package/dist/react-ui/blocks/Terminal/components/LogLineBadges/LogLineBadges.styles.d.ts.map +1 -0
  97. package/dist/react-ui/blocks/Terminal/components/LogLineBadges/LogLineBadges.styles.js +14 -0
  98. package/dist/react-ui/blocks/Terminal/components/LogLineBadges/LogLineBadges.types.d.ts +106 -0
  99. package/dist/react-ui/blocks/Terminal/components/LogLineBadges/LogLineBadges.types.d.ts.map +1 -0
  100. package/dist/react-ui/blocks/Terminal/components/LogLineBadges/index.d.ts +89 -0
  101. package/dist/react-ui/blocks/Terminal/components/LogLineBadges/index.d.ts.map +1 -0
  102. package/dist/react-ui/blocks/Terminal/components/LogLineBadges/index.js +136 -0
  103. package/dist/react-ui/blocks/Terminal/components/SyntaxHighlight.d.ts +21 -7
  104. package/dist/react-ui/blocks/Terminal/components/SyntaxHighlight.d.ts.map +1 -1
  105. package/dist/react-ui/blocks/Terminal/components/SyntaxHighlight.js +81 -71
  106. package/dist/react-ui/blocks/Terminal/components/SyntaxHighlight.styles.d.ts +33 -0
  107. package/dist/react-ui/blocks/Terminal/components/SyntaxHighlight.styles.d.ts.map +1 -0
  108. package/dist/react-ui/blocks/Terminal/components/SyntaxHighlight.styles.js +51 -0
  109. package/dist/react-ui/blocks/Terminal/components/TerminalLogBadge/TerminalLogBadge.styles.d.ts +13 -0
  110. package/dist/react-ui/blocks/Terminal/components/TerminalLogBadge/TerminalLogBadge.styles.d.ts.map +1 -0
  111. package/dist/react-ui/blocks/Terminal/components/TerminalLogBadge/TerminalLogBadge.styles.js +8 -0
  112. package/dist/react-ui/blocks/Terminal/components/TerminalLogBadge/TerminalLogBadge.types.d.ts +29 -0
  113. package/dist/react-ui/blocks/Terminal/components/TerminalLogBadge/TerminalLogBadge.types.d.ts.map +1 -0
  114. package/dist/react-ui/blocks/Terminal/components/TerminalLogBadge/index.d.ts +26 -0
  115. package/dist/react-ui/blocks/Terminal/components/TerminalLogBadge/index.d.ts.map +1 -0
  116. package/dist/react-ui/blocks/Terminal/components/TerminalLogBadge/index.js +40 -0
  117. package/dist/react-ui/blocks/Terminal/components/index.js +5 -2
  118. package/dist/react-ui/blocks/Terminal/controls/TerminalActionBar/TerminalActionBar.styles.d.ts +12 -0
  119. package/dist/react-ui/blocks/Terminal/controls/TerminalActionBar/TerminalActionBar.styles.d.ts.map +1 -0
  120. package/dist/react-ui/blocks/Terminal/controls/TerminalActionBar/TerminalActionBar.styles.js +13 -0
  121. package/dist/react-ui/blocks/Terminal/controls/TerminalActionBar/TerminalActionBar.types.d.ts +35 -0
  122. package/dist/react-ui/blocks/Terminal/controls/TerminalActionBar/TerminalActionBar.types.d.ts.map +1 -0
  123. package/dist/react-ui/blocks/Terminal/controls/TerminalActionBar/index.d.ts +75 -0
  124. package/dist/react-ui/blocks/Terminal/controls/TerminalActionBar/index.d.ts.map +1 -0
  125. package/dist/react-ui/blocks/Terminal/controls/TerminalActionBar/index.js +115 -0
  126. package/dist/react-ui/blocks/Terminal/controls/TerminalAtoms.d.ts +122 -0
  127. package/dist/react-ui/blocks/Terminal/controls/TerminalAtoms.d.ts.map +1 -0
  128. package/dist/react-ui/blocks/Terminal/controls/TerminalAtoms.js +128 -0
  129. package/dist/react-ui/blocks/Terminal/controls/TerminalConnectionStatus/TerminalConnectionStatus.styles.d.ts +12 -0
  130. package/dist/react-ui/blocks/Terminal/controls/TerminalConnectionStatus/TerminalConnectionStatus.styles.d.ts.map +1 -0
  131. package/dist/react-ui/blocks/Terminal/controls/TerminalConnectionStatus/TerminalConnectionStatus.styles.js +12 -0
  132. package/dist/react-ui/blocks/Terminal/controls/TerminalConnectionStatus/TerminalConnectionStatus.types.d.ts +29 -0
  133. package/dist/react-ui/blocks/Terminal/controls/TerminalConnectionStatus/TerminalConnectionStatus.types.d.ts.map +1 -0
  134. package/dist/react-ui/blocks/Terminal/controls/TerminalConnectionStatus/index.d.ts +37 -0
  135. package/dist/react-ui/blocks/Terminal/controls/TerminalConnectionStatus/index.d.ts.map +1 -0
  136. package/dist/react-ui/blocks/Terminal/controls/TerminalConnectionStatus/index.js +74 -0
  137. package/dist/react-ui/blocks/Terminal/controls/TerminalFontControls/TerminalFontControls.styles.d.ts +12 -0
  138. package/dist/react-ui/blocks/Terminal/controls/TerminalFontControls/TerminalFontControls.styles.d.ts.map +1 -0
  139. package/dist/react-ui/blocks/Terminal/controls/TerminalFontControls/TerminalFontControls.styles.js +16 -0
  140. package/dist/react-ui/blocks/Terminal/controls/TerminalFontControls/TerminalFontControls.types.d.ts +32 -0
  141. package/dist/react-ui/blocks/Terminal/controls/TerminalFontControls/TerminalFontControls.types.d.ts.map +1 -0
  142. package/dist/react-ui/blocks/Terminal/controls/TerminalFontControls/index.d.ts +40 -0
  143. package/dist/react-ui/blocks/Terminal/controls/TerminalFontControls/index.d.ts.map +1 -0
  144. package/dist/react-ui/blocks/Terminal/controls/TerminalFontControls/index.js +81 -0
  145. package/dist/react-ui/blocks/Terminal/controls/TerminalSplitButton/TerminalSplitButton.styles.d.ts +12 -0
  146. package/dist/react-ui/blocks/Terminal/controls/TerminalSplitButton/TerminalSplitButton.styles.d.ts.map +1 -0
  147. package/dist/react-ui/blocks/Terminal/controls/TerminalSplitButton/TerminalSplitButton.styles.js +13 -0
  148. package/dist/react-ui/blocks/Terminal/controls/TerminalSplitButton/TerminalSplitButton.types.d.ts +28 -0
  149. package/dist/react-ui/blocks/Terminal/controls/TerminalSplitButton/TerminalSplitButton.types.d.ts.map +1 -0
  150. package/dist/react-ui/blocks/Terminal/controls/TerminalSplitButton/index.d.ts +40 -0
  151. package/dist/react-ui/blocks/Terminal/controls/TerminalSplitButton/index.d.ts.map +1 -0
  152. package/dist/react-ui/blocks/Terminal/controls/TerminalSplitButton/index.js +108 -0
  153. package/dist/react-ui/blocks/Terminal/controls/TerminalStatusBar/TerminalStatusBar.styles.d.ts +12 -0
  154. package/dist/react-ui/blocks/Terminal/controls/TerminalStatusBar/TerminalStatusBar.styles.d.ts.map +1 -0
  155. package/dist/react-ui/blocks/Terminal/controls/TerminalStatusBar/TerminalStatusBar.styles.js +12 -0
  156. package/dist/react-ui/blocks/Terminal/controls/TerminalStatusBar/TerminalStatusBar.types.d.ts +31 -0
  157. package/dist/react-ui/blocks/Terminal/controls/TerminalStatusBar/TerminalStatusBar.types.d.ts.map +1 -0
  158. package/dist/react-ui/blocks/Terminal/controls/TerminalStatusBar/index.d.ts +73 -0
  159. package/dist/react-ui/blocks/Terminal/controls/TerminalStatusBar/index.d.ts.map +1 -0
  160. package/dist/react-ui/blocks/Terminal/controls/TerminalStatusBar/index.js +99 -0
  161. package/dist/react-ui/blocks/Terminal/controls/index.d.ts +16 -0
  162. package/dist/react-ui/blocks/Terminal/controls/index.d.ts.map +1 -0
  163. package/dist/react-ui/blocks/Terminal/controls/index.js +11 -0
  164. package/dist/react-ui/blocks/Terminal/display.d.ts +2 -2
  165. package/dist/react-ui/blocks/Terminal/display.d.ts.map +1 -1
  166. package/dist/react-ui/blocks/Terminal/display.js +4 -2
  167. package/dist/react-ui/blocks/Terminal/hooks/index.d.ts +9 -2
  168. package/dist/react-ui/blocks/Terminal/hooks/index.d.ts.map +1 -1
  169. package/dist/react-ui/blocks/Terminal/hooks/index.js +6 -0
  170. package/dist/react-ui/blocks/Terminal/hooks/useTerminal.d.ts +198 -0
  171. package/dist/react-ui/blocks/Terminal/hooks/useTerminal.d.ts.map +1 -0
  172. package/dist/react-ui/blocks/Terminal/hooks/useTerminal.js +198 -0
  173. package/dist/react-ui/blocks/Terminal/hooks/useTerminalConnection.d.ts +81 -0
  174. package/dist/react-ui/blocks/Terminal/hooks/useTerminalConnection.d.ts.map +1 -0
  175. package/dist/react-ui/blocks/Terminal/hooks/useTerminalConnection.js +115 -0
  176. package/dist/react-ui/blocks/Terminal/hooks/useTerminalDimensions.d.ts +54 -0
  177. package/dist/react-ui/blocks/Terminal/hooks/useTerminalDimensions.d.ts.map +1 -0
  178. package/dist/react-ui/blocks/Terminal/hooks/useTerminalDimensions.js +57 -0
  179. package/dist/react-ui/blocks/Terminal/hooks/useTerminalFontSize.d.ts +81 -0
  180. package/dist/react-ui/blocks/Terminal/hooks/useTerminalFontSize.d.ts.map +1 -0
  181. package/dist/react-ui/blocks/Terminal/hooks/useTerminalFontSize.js +102 -0
  182. package/dist/react-ui/blocks/Terminal/hooks/useTerminalKeyboardShortcuts.d.ts +78 -0
  183. package/dist/react-ui/blocks/Terminal/hooks/useTerminalKeyboardShortcuts.d.ts.map +1 -0
  184. package/dist/react-ui/blocks/Terminal/hooks/useTerminalKeyboardShortcuts.js +136 -0
  185. package/dist/react-ui/blocks/Terminal/hooks/useTerminalPaneManager.d.ts +88 -0
  186. package/dist/react-ui/blocks/Terminal/hooks/useTerminalPaneManager.d.ts.map +1 -0
  187. package/dist/react-ui/blocks/Terminal/hooks/useTerminalPaneManager.js +101 -0
  188. package/dist/react-ui/blocks/Terminal/index.d.ts +10 -6
  189. package/dist/react-ui/blocks/Terminal/index.d.ts.map +1 -1
  190. package/dist/react-ui/blocks/Terminal/index.js +43 -11
  191. package/dist/react-ui/blocks/Terminal/panel/LogLinesViewer.d.ts.map +1 -1
  192. package/dist/react-ui/blocks/Terminal/panel/LogLinesViewer.js +8 -13
  193. package/dist/react-ui/blocks/Terminal/panel/TerminalDebugPanel/TerminalDebugPanel.styles.d.ts +13 -0
  194. package/dist/react-ui/blocks/Terminal/panel/TerminalDebugPanel/TerminalDebugPanel.styles.d.ts.map +1 -0
  195. package/dist/react-ui/blocks/Terminal/panel/TerminalDebugPanel/TerminalDebugPanel.styles.js +18 -0
  196. package/dist/react-ui/blocks/Terminal/panel/{TerminalDebugPanel.d.ts → TerminalDebugPanel/TerminalDebugPanel.types.d.ts} +19 -27
  197. package/dist/react-ui/blocks/Terminal/panel/TerminalDebugPanel/TerminalDebugPanel.types.d.ts.map +1 -0
  198. package/dist/react-ui/blocks/Terminal/panel/TerminalDebugPanel/index.d.ts +32 -0
  199. package/dist/react-ui/blocks/Terminal/panel/TerminalDebugPanel/index.d.ts.map +1 -0
  200. package/dist/react-ui/blocks/Terminal/panel/{TerminalDebugPanel.js → TerminalDebugPanel/index.js} +59 -38
  201. package/dist/react-ui/blocks/Terminal/panel/TerminalFilterDropdown/TerminalFilterDropdown.styles.d.ts +13 -0
  202. package/dist/react-ui/blocks/Terminal/panel/TerminalFilterDropdown/TerminalFilterDropdown.styles.d.ts.map +1 -0
  203. package/dist/react-ui/blocks/Terminal/panel/TerminalFilterDropdown/TerminalFilterDropdown.styles.js +17 -0
  204. package/dist/react-ui/blocks/Terminal/panel/TerminalFilterDropdown/TerminalFilterDropdown.types.d.ts +34 -0
  205. package/dist/react-ui/blocks/Terminal/panel/TerminalFilterDropdown/TerminalFilterDropdown.types.d.ts.map +1 -0
  206. package/dist/react-ui/blocks/Terminal/panel/TerminalFilterDropdown/index.d.ts +34 -0
  207. package/dist/react-ui/blocks/Terminal/panel/TerminalFilterDropdown/index.d.ts.map +1 -0
  208. package/dist/react-ui/blocks/Terminal/panel/{TerminalFilterDropdown.js → TerminalFilterDropdown/index.js} +29 -31
  209. package/dist/react-ui/blocks/Terminal/panel/TerminalFilterDropdown/terminal-filter-dropdown.module.css +60 -0
  210. package/dist/react-ui/blocks/Terminal/panel/TerminalFilterDropdown/terminal-filter-dropdown.module.js +5 -0
  211. package/dist/react-ui/blocks/Terminal/panel/TerminalFilterTabs/TerminalFilterTabs.styles.d.ts +13 -0
  212. package/dist/react-ui/blocks/Terminal/panel/TerminalFilterTabs/TerminalFilterTabs.styles.d.ts.map +1 -0
  213. package/dist/react-ui/blocks/Terminal/panel/TerminalFilterTabs/TerminalFilterTabs.types.d.ts +34 -0
  214. package/dist/react-ui/blocks/Terminal/panel/TerminalFilterTabs/TerminalFilterTabs.types.d.ts.map +1 -0
  215. package/dist/react-ui/blocks/Terminal/panel/TerminalFilterTabs/index.d.ts +34 -0
  216. package/dist/react-ui/blocks/Terminal/panel/TerminalFilterTabs/index.d.ts.map +1 -0
  217. package/dist/react-ui/blocks/Terminal/panel/TerminalInteractivePanel.d.ts.map +1 -1
  218. package/dist/react-ui/blocks/Terminal/panel/TerminalInteractivePanel.js +5 -1
  219. package/dist/react-ui/blocks/Terminal/panel/TerminalInteractivePanel.types.d.ts +2 -1
  220. package/dist/react-ui/blocks/Terminal/panel/TerminalInteractivePanel.types.d.ts.map +1 -1
  221. package/dist/react-ui/blocks/Terminal/panel/TerminalInteractivePanelRestty.d.ts +6 -3
  222. package/dist/react-ui/blocks/Terminal/panel/TerminalInteractivePanelRestty.d.ts.map +1 -1
  223. package/dist/react-ui/blocks/Terminal/panel/TerminalInteractivePanelRestty.js +43 -264
  224. package/dist/react-ui/blocks/Terminal/panel/TerminalInteractivePanelWterm.d.ts +43 -0
  225. package/dist/react-ui/blocks/Terminal/panel/TerminalInteractivePanelWterm.d.ts.map +1 -0
  226. package/dist/react-ui/blocks/Terminal/panel/TerminalInteractivePanelWterm.js +248 -0
  227. package/dist/react-ui/blocks/Terminal/panel/TerminalInteractivePanelXterm.d.ts +4 -2
  228. package/dist/react-ui/blocks/Terminal/panel/TerminalInteractivePanelXterm.d.ts.map +1 -1
  229. package/dist/react-ui/blocks/Terminal/panel/TerminalInteractivePanelXterm.js +40 -150
  230. package/dist/react-ui/blocks/Terminal/panel/TerminalLogsPanel/TerminalLogsPanel.styles.d.ts +26 -0
  231. package/dist/react-ui/blocks/Terminal/panel/TerminalLogsPanel/TerminalLogsPanel.styles.d.ts.map +1 -0
  232. package/dist/react-ui/blocks/Terminal/panel/TerminalLogsPanel/TerminalLogsPanel.styles.js +30 -0
  233. package/dist/react-ui/blocks/Terminal/panel/TerminalLogsPanel/TerminalLogsPanel.types.d.ts +123 -0
  234. package/dist/react-ui/blocks/Terminal/panel/TerminalLogsPanel/TerminalLogsPanel.types.d.ts.map +1 -0
  235. package/dist/react-ui/blocks/Terminal/panel/{TerminalLogsPanel.d.ts → TerminalLogsPanel/index.d.ts} +10 -21
  236. package/dist/react-ui/blocks/Terminal/panel/TerminalLogsPanel/index.d.ts.map +1 -0
  237. package/dist/react-ui/blocks/Terminal/panel/{TerminalLogsPanel.js → TerminalLogsPanel/index.js} +48 -81
  238. package/dist/react-ui/blocks/Terminal/panel/TerminalLogsPanel.types.d.ts +6 -142
  239. package/dist/react-ui/blocks/Terminal/panel/TerminalLogsPanel.types.d.ts.map +1 -1
  240. package/dist/react-ui/blocks/Terminal/panel/TerminalPanelChrome.d.ts +1 -1
  241. package/dist/react-ui/blocks/Terminal/panel/TerminalPanelChrome.d.ts.map +1 -1
  242. package/dist/react-ui/blocks/Terminal/panel/TerminalPanelChrome.js +16 -16
  243. package/dist/react-ui/blocks/Terminal/panel/TerminalPanelChrome.styles.d.ts +1 -1
  244. package/dist/react-ui/blocks/Terminal/panel/TerminalPanelChrome.styles.js +1 -1
  245. package/dist/react-ui/blocks/Terminal/panel/TerminalPanelFooter/TerminalPanelFooter.styles.d.ts +21 -0
  246. package/dist/react-ui/blocks/Terminal/panel/TerminalPanelFooter/TerminalPanelFooter.styles.d.ts.map +1 -0
  247. package/dist/react-ui/blocks/Terminal/panel/TerminalPanelFooter/TerminalPanelFooter.styles.js +21 -0
  248. package/dist/react-ui/blocks/Terminal/panel/TerminalPanelFooter/TerminalPanelFooter.types.d.ts +40 -0
  249. package/dist/react-ui/blocks/Terminal/panel/TerminalPanelFooter/TerminalPanelFooter.types.d.ts.map +1 -0
  250. package/dist/react-ui/blocks/Terminal/panel/TerminalPanelFooter/index.d.ts +37 -0
  251. package/dist/react-ui/blocks/Terminal/panel/TerminalPanelFooter/index.d.ts.map +1 -0
  252. package/dist/react-ui/blocks/Terminal/panel/TerminalPanelFooter/index.js +127 -0
  253. package/dist/react-ui/blocks/Terminal/panel/TerminalPanelHeader/TerminalPanelHeader.styles.d.ts +22 -0
  254. package/dist/react-ui/blocks/Terminal/panel/TerminalPanelHeader/TerminalPanelHeader.styles.d.ts.map +1 -0
  255. package/dist/react-ui/blocks/Terminal/panel/TerminalPanelHeader/TerminalPanelHeader.styles.js +24 -0
  256. package/dist/react-ui/blocks/Terminal/panel/TerminalPanelHeader/TerminalPanelHeader.types.d.ts +43 -0
  257. package/dist/react-ui/blocks/Terminal/panel/TerminalPanelHeader/TerminalPanelHeader.types.d.ts.map +1 -0
  258. package/dist/react-ui/blocks/Terminal/panel/TerminalPanelHeader/index.d.ts +35 -0
  259. package/dist/react-ui/blocks/Terminal/panel/TerminalPanelHeader/index.d.ts.map +1 -0
  260. package/dist/react-ui/blocks/Terminal/panel/TerminalPanelHeader/index.js +129 -0
  261. package/dist/react-ui/blocks/Terminal/panel/TerminalPanelToolbar/TerminalPanelToolbar.styles.d.ts +20 -0
  262. package/dist/react-ui/blocks/Terminal/panel/TerminalPanelToolbar/TerminalPanelToolbar.styles.d.ts.map +1 -0
  263. package/dist/react-ui/blocks/Terminal/panel/TerminalPanelToolbar/TerminalPanelToolbar.types.d.ts +72 -0
  264. package/dist/react-ui/blocks/Terminal/panel/TerminalPanelToolbar/TerminalPanelToolbar.types.d.ts.map +1 -0
  265. package/dist/react-ui/blocks/Terminal/panel/{TerminalPanelToolbar.d.ts → TerminalPanelToolbar/index.d.ts} +10 -4
  266. package/dist/react-ui/blocks/Terminal/panel/TerminalPanelToolbar/index.d.ts.map +1 -0
  267. package/dist/react-ui/blocks/Terminal/panel/TerminalSessionControl/TerminalSessionControl.styles.d.ts +13 -0
  268. package/dist/react-ui/blocks/Terminal/panel/TerminalSessionControl/TerminalSessionControl.styles.d.ts.map +1 -0
  269. package/dist/react-ui/blocks/Terminal/panel/{TerminalSessionControl.d.ts → TerminalSessionControl/TerminalSessionControl.types.d.ts} +24 -30
  270. package/dist/react-ui/blocks/Terminal/panel/TerminalSessionControl/TerminalSessionControl.types.d.ts.map +1 -0
  271. package/dist/react-ui/blocks/Terminal/panel/TerminalSessionControl/index.d.ts +38 -0
  272. package/dist/react-ui/blocks/Terminal/panel/TerminalSessionControl/index.d.ts.map +1 -0
  273. package/dist/react-ui/blocks/Terminal/panel/TerminalSessionTabs/TerminalSessionTabs.styles.d.ts +23 -0
  274. package/dist/react-ui/blocks/Terminal/panel/TerminalSessionTabs/TerminalSessionTabs.styles.d.ts.map +1 -0
  275. package/dist/react-ui/blocks/Terminal/panel/TerminalSessionTabs/TerminalSessionTabs.styles.js +27 -0
  276. package/dist/react-ui/blocks/Terminal/panel/TerminalSessionTabs/TerminalSessionTabs.types.d.ts +56 -0
  277. package/dist/react-ui/blocks/Terminal/panel/TerminalSessionTabs/TerminalSessionTabs.types.d.ts.map +1 -0
  278. package/dist/react-ui/blocks/Terminal/panel/TerminalSessionTabs/index.d.ts +40 -0
  279. package/dist/react-ui/blocks/Terminal/panel/TerminalSessionTabs/index.d.ts.map +1 -0
  280. package/dist/react-ui/blocks/Terminal/panel/{TerminalSessionTabs.js → TerminalSessionTabs/index.js} +26 -31
  281. package/dist/react-ui/blocks/Terminal/panel/TerminalSessionTabs/terminal-session-tabs.module.css +60 -0
  282. package/dist/react-ui/blocks/Terminal/panel/TerminalSessionTabs/terminal-session-tabs.module.js +5 -0
  283. package/dist/react-ui/blocks/Terminal/panel/TerminalSettingsPopover/TerminalSettingsPopover.styles.d.ts +13 -0
  284. package/dist/react-ui/blocks/Terminal/panel/TerminalSettingsPopover/TerminalSettingsPopover.styles.d.ts.map +1 -0
  285. package/dist/react-ui/blocks/Terminal/panel/TerminalSettingsPopover/TerminalSettingsPopover.styles.js +19 -0
  286. package/dist/react-ui/blocks/Terminal/panel/TerminalSettingsPopover/TerminalSettingsPopover.types.d.ts +20 -0
  287. package/dist/react-ui/blocks/Terminal/panel/TerminalSettingsPopover/TerminalSettingsPopover.types.d.ts.map +1 -0
  288. package/dist/react-ui/blocks/Terminal/panel/TerminalSettingsPopover/index.d.ts +25 -0
  289. package/dist/react-ui/blocks/Terminal/panel/TerminalSettingsPopover/index.d.ts.map +1 -0
  290. package/dist/react-ui/blocks/Terminal/panel/TerminalSettingsPopover/index.js +217 -0
  291. package/dist/react-ui/blocks/Terminal/panel/TerminalThemeSelector/TerminalThemeSelector.styles.d.ts +13 -0
  292. package/dist/react-ui/blocks/Terminal/panel/TerminalThemeSelector/TerminalThemeSelector.styles.d.ts.map +1 -0
  293. package/dist/react-ui/blocks/Terminal/panel/TerminalThemeSelector/TerminalThemeSelector.styles.js +15 -0
  294. package/dist/react-ui/blocks/Terminal/panel/TerminalThemeSelector/TerminalThemeSelector.types.d.ts +28 -0
  295. package/dist/react-ui/blocks/Terminal/panel/TerminalThemeSelector/TerminalThemeSelector.types.d.ts.map +1 -0
  296. package/dist/react-ui/blocks/Terminal/panel/TerminalThemeSelector/index.d.ts +30 -0
  297. package/dist/react-ui/blocks/Terminal/panel/TerminalThemeSelector/index.d.ts.map +1 -0
  298. package/dist/react-ui/blocks/Terminal/panel/{TerminalThemeSelector.js → TerminalThemeSelector/index.js} +31 -46
  299. package/dist/react-ui/blocks/Terminal/restty/ResttyContext.d.ts +38 -0
  300. package/dist/react-ui/blocks/Terminal/restty/ResttyContext.d.ts.map +1 -0
  301. package/dist/react-ui/blocks/Terminal/restty/ResttyContext.js +47 -0
  302. package/dist/react-ui/blocks/Terminal/restty/ResttySessionProvider.d.ts +50 -0
  303. package/dist/react-ui/blocks/Terminal/restty/ResttySessionProvider.d.ts.map +1 -0
  304. package/dist/react-ui/blocks/Terminal/restty/ResttySessionProvider.js +60 -0
  305. package/dist/react-ui/blocks/Terminal/restty/ResttyTerminal.d.ts +32 -0
  306. package/dist/react-ui/blocks/Terminal/restty/ResttyTerminal.d.ts.map +1 -0
  307. package/dist/react-ui/blocks/Terminal/restty/ResttyTerminal.js +278 -0
  308. package/dist/react-ui/blocks/Terminal/restty/ResttyTerminal.types.d.ts +166 -0
  309. package/dist/react-ui/blocks/Terminal/restty/ResttyTerminal.types.d.ts.map +1 -0
  310. package/dist/react-ui/blocks/Terminal/restty/index.d.ts +20 -0
  311. package/dist/react-ui/blocks/Terminal/restty/index.d.ts.map +1 -0
  312. package/dist/react-ui/blocks/Terminal/restty/index.js +7 -0
  313. package/dist/react-ui/blocks/Terminal/restty/useResttyPane.d.ts +51 -0
  314. package/dist/react-ui/blocks/Terminal/restty/useResttyPane.d.ts.map +1 -0
  315. package/dist/react-ui/blocks/Terminal/restty/useResttyPane.js +61 -0
  316. package/dist/react-ui/blocks/Terminal/restty/useResttyPanes.d.ts +39 -0
  317. package/dist/react-ui/blocks/Terminal/restty/useResttyPanes.d.ts.map +1 -0
  318. package/dist/react-ui/blocks/Terminal/restty/useResttyPanes.js +48 -0
  319. package/dist/react-ui/blocks/Terminal/restty/useResttyPlugins.d.ts +29 -0
  320. package/dist/react-ui/blocks/Terminal/restty/useResttyPlugins.d.ts.map +1 -0
  321. package/dist/react-ui/blocks/Terminal/restty/useResttyPlugins.js +33 -0
  322. package/dist/react-ui/blocks/Terminal/restty/useResttyVisibility.d.ts +32 -0
  323. package/dist/react-ui/blocks/Terminal/restty/useResttyVisibility.d.ts.map +1 -0
  324. package/dist/react-ui/blocks/Terminal/restty/useResttyVisibility.js +67 -0
  325. package/dist/react-ui/blocks/Terminal/wterm/WtermJsonTransport.d.ts +83 -0
  326. package/dist/react-ui/blocks/Terminal/wterm/WtermJsonTransport.d.ts.map +1 -0
  327. package/dist/react-ui/blocks/Terminal/wterm/WtermJsonTransport.js +191 -0
  328. package/dist/react-ui/blocks/index.d.ts +2 -0
  329. package/dist/react-ui/blocks/index.d.ts.map +1 -1
  330. package/dist/react-ui/components/MorphingPopover/morphing-popover.module.css +154 -0
  331. package/dist/react-ui/icons/lucide-animated/terminal.d.ts +45 -13
  332. package/dist/react-ui/icons/lucide-animated/terminal.d.ts.map +1 -1
  333. package/dist/react-ui/icons/lucide-animated/terminal.js +118 -28
  334. package/dist/react-ui/index.d.ts +4 -0
  335. package/dist/react-ui/index.d.ts.map +1 -1
  336. package/dist/react-ui/index.js +40 -1
  337. package/dist/react-ui/primitives/waapi/Morph/techniques/useViewTransitions.module.css +20 -0
  338. package/dist/react-ui/ui/Button/Button.styles.d.ts +2 -2
  339. package/dist/react-ui/ui/Button/Button.styles.d.ts.map +1 -1
  340. package/dist/react-ui/ui/Button/Button.styles.js +4 -2
  341. package/dist/react-ui/ui/Button/Button.types.d.ts +2 -2
  342. package/dist/react-ui/ui/Button/Button.types.d.ts.map +1 -1
  343. package/dist/react-ui/ui/DynamicToggle/DynamicToggle.css +369 -0
  344. package/dist/react-ui/ui/Tabs/Tabs.css +38 -0
  345. package/package.json +20 -7
  346. package/dist/react-ui/blocks/Terminal/ResttyAdapter.d.ts +0 -146
  347. package/dist/react-ui/blocks/Terminal/ResttyAdapter.d.ts.map +0 -1
  348. package/dist/react-ui/blocks/Terminal/ResttyAdapter.js +0 -213
  349. package/dist/react-ui/blocks/Terminal/Terminal.adapter.d.ts +0 -55
  350. package/dist/react-ui/blocks/Terminal/Terminal.adapter.d.ts.map +0 -1
  351. package/dist/react-ui/blocks/Terminal/Terminal.adapter.js +0 -68
  352. package/dist/react-ui/blocks/Terminal/TerminalRestty.d.ts +0 -111
  353. package/dist/react-ui/blocks/Terminal/TerminalRestty.d.ts.map +0 -1
  354. package/dist/react-ui/blocks/Terminal/TerminalRestty.js +0 -185
  355. package/dist/react-ui/blocks/Terminal/components/LogLineBadges.d.ts +0 -160
  356. package/dist/react-ui/blocks/Terminal/components/LogLineBadges.d.ts.map +0 -1
  357. package/dist/react-ui/blocks/Terminal/components/LogLineBadges.js +0 -185
  358. package/dist/react-ui/blocks/Terminal/components/TerminalLogBadge.d.ts +0 -36
  359. package/dist/react-ui/blocks/Terminal/components/TerminalLogBadge.d.ts.map +0 -1
  360. package/dist/react-ui/blocks/Terminal/components/TerminalLogBadge.js +0 -52
  361. package/dist/react-ui/blocks/Terminal/panel/TerminalDebugPanel.d.ts.map +0 -1
  362. package/dist/react-ui/blocks/Terminal/panel/TerminalFilterDropdown.d.ts +0 -42
  363. package/dist/react-ui/blocks/Terminal/panel/TerminalFilterDropdown.d.ts.map +0 -1
  364. package/dist/react-ui/blocks/Terminal/panel/TerminalFilterTabs.d.ts +0 -43
  365. package/dist/react-ui/blocks/Terminal/panel/TerminalFilterTabs.d.ts.map +0 -1
  366. package/dist/react-ui/blocks/Terminal/panel/TerminalLogsPanel.d.ts.map +0 -1
  367. package/dist/react-ui/blocks/Terminal/panel/TerminalPanelFooter.d.ts +0 -30
  368. package/dist/react-ui/blocks/Terminal/panel/TerminalPanelFooter.d.ts.map +0 -1
  369. package/dist/react-ui/blocks/Terminal/panel/TerminalPanelFooter.js +0 -126
  370. package/dist/react-ui/blocks/Terminal/panel/TerminalPanelHeader.d.ts +0 -31
  371. package/dist/react-ui/blocks/Terminal/panel/TerminalPanelHeader.d.ts.map +0 -1
  372. package/dist/react-ui/blocks/Terminal/panel/TerminalPanelHeader.js +0 -149
  373. package/dist/react-ui/blocks/Terminal/panel/TerminalPanelToolbar.d.ts.map +0 -1
  374. package/dist/react-ui/blocks/Terminal/panel/TerminalSessionControl.d.ts.map +0 -1
  375. package/dist/react-ui/blocks/Terminal/panel/TerminalSessionTabs.d.ts +0 -63
  376. package/dist/react-ui/blocks/Terminal/panel/TerminalSessionTabs.d.ts.map +0 -1
  377. package/dist/react-ui/blocks/Terminal/panel/TerminalSettingsPopover.d.ts +0 -24
  378. package/dist/react-ui/blocks/Terminal/panel/TerminalSettingsPopover.d.ts.map +0 -1
  379. package/dist/react-ui/blocks/Terminal/panel/TerminalSettingsPopover.js +0 -225
  380. package/dist/react-ui/blocks/Terminal/panel/TerminalThemeSelector.d.ts +0 -35
  381. package/dist/react-ui/blocks/Terminal/panel/TerminalThemeSelector.d.ts.map +0 -1
  382. package/dist/react-ui/blocks/Terminal/panel/terminal-filter-dropdown.module.js +0 -5
  383. package/dist/react-ui/blocks/Terminal/panel/terminal-session-tabs.module.js +0 -5
  384. /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
  385. /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
  386. /package/dist/{react-ui/components/MorphingPopover/morphing-popover.module-s63snw7C.css → css/components-MorphingPopover-morphing-popover.module.css} +0 -0
  387. /package/dist/{react-ui/primitives/waapi/Morph/techniques/useViewTransitions.module-7y-To7On.css → css/primitives-waapi-Morph-techniques-useViewTransitions.module.css} +0 -0
  388. /package/dist/{react-ui/ui/DynamicToggle/DynamicToggle-C3rJw_PQ.css → css/ui-DynamicToggle-DynamicToggle.css} +0 -0
  389. /package/dist/{react-ui/ui/Tabs/Tabs-DKe-TP8j.css → css/ui-Tabs-Tabs.css} +0 -0
@@ -0,0 +1,217 @@
1
+ 'use client';
2
+
3
+ import { cn } from "../../../../lib/utils.js";
4
+ import { Popover, PopoverPopup, PopoverPortal, PopoverPositioner, PopoverTrigger } from "../../../../ui/Popover/index.js";
5
+ import { Separator } from "../../../../ui/Separator/index.js";
6
+ import { SettingsIcon } from "../../../../icons/lucide-animated/settings.js";
7
+ import "../../../../icons/lucide-animated/index.js";
8
+ import { FONT_BUTTON_STYLES, SECTION_LABEL_STYLES, SEGMENTED_BUTTON_STYLES, TOGGLE_SWITCH_STYLES, TRIGGER_BUTTON_STYLES } from "../../Terminal.tokens.js";
9
+ import { useTerminalSettings } from "../../hooks/useTerminalSettings.js";
10
+ import { TerminalThemeSelector } from "../TerminalThemeSelector/index.js";
11
+ import { terminalSettingsPopoverStyles } from "./TerminalSettingsPopover.styles.js";
12
+ import { Fragment, jsx, jsxs } from "react/jsx-runtime";
13
+
14
+ //#region src/react-ui/blocks/Terminal/panel/TerminalSettingsPopover/index.tsx
15
+ /**
16
+ * TerminalSettingsPopover Component.
17
+ *
18
+ * Gear icon popover for global terminal settings. Uses centralized
19
+ * tokens for segmented controls, toggle switches, and trigger buttons.
20
+ *
21
+ * @module @mks2508/mks-ui/react/blocks/Terminal/panel/TerminalSettingsPopover
22
+ */
23
+ /** Min/max font size bounds. */
24
+ const MIN_FONT_SIZE = 10;
25
+ const MAX_FONT_SIZE = 24;
26
+ /**
27
+ * TerminalSettingsPopover Component.
28
+ *
29
+ * Renders a settings gear icon that opens a popover with terminal
30
+ * configuration options. Uses centralized tokens for all shared styles.
31
+ *
32
+ * @example
33
+ * ```tsx
34
+ * <TerminalSettingsPopover slots={{ trigger: 'h-10 w-10' }} />
35
+ * ```
36
+ */
37
+ function TerminalSettingsPopover({ slots } = {}) {
38
+ const { settings, setRenderer, setPtyBackend, setResttyThemeName, setFontSize, setCrtEffect, setDebugPanel, resetToDefaults } = useTerminalSettings();
39
+ return /* @__PURE__ */ jsxs(Popover, { children: [/* @__PURE__ */ jsx(PopoverTrigger, {
40
+ type: "button",
41
+ className: cn(TRIGGER_BUTTON_STYLES, slots?.trigger),
42
+ title: "Terminal settings",
43
+ children: /* @__PURE__ */ jsx(SettingsIcon, { size: 16 })
44
+ }), /* @__PURE__ */ jsx(PopoverPortal, { children: /* @__PURE__ */ jsx(PopoverPositioner, {
45
+ align: "end",
46
+ sideOffset: 6,
47
+ children: /* @__PURE__ */ jsxs(PopoverPopup, {
48
+ className: cn(terminalSettingsPopoverStyles.root, slots?.root),
49
+ children: [
50
+ /* @__PURE__ */ jsxs("div", {
51
+ className: cn(terminalSettingsPopoverStyles.header, slots?.header),
52
+ children: [/* @__PURE__ */ jsx(SettingsIcon, {
53
+ size: 14,
54
+ className: "text-muted-foreground"
55
+ }), /* @__PURE__ */ jsx("span", {
56
+ className: "text-sm font-medium text-foreground",
57
+ children: "Terminal Settings"
58
+ })]
59
+ }),
60
+ /* @__PURE__ */ jsx(Separator, { className: "bg-border/30" }),
61
+ /* @__PURE__ */ jsxs("div", {
62
+ className: cn(terminalSettingsPopoverStyles.section, slots?.section),
63
+ children: [/* @__PURE__ */ jsx("label", {
64
+ className: cn(SECTION_LABEL_STYLES, slots?.sectionLabel),
65
+ children: "Renderer"
66
+ }), /* @__PURE__ */ jsxs("div", {
67
+ className: cn(terminalSettingsPopoverStyles.segmentedControl, slots?.segmentedControl),
68
+ children: [
69
+ /* @__PURE__ */ jsx("button", {
70
+ type: "button",
71
+ onClick: () => setRenderer("xterm"),
72
+ className: cn(SEGMENTED_BUTTON_STYLES.base, terminalSettingsPopoverStyles.segmentedButton, slots?.segmentedButton, settings.renderer === "xterm" ? SEGMENTED_BUTTON_STYLES.active : SEGMENTED_BUTTON_STYLES.inactive),
73
+ children: "xterm"
74
+ }),
75
+ /* @__PURE__ */ jsx("button", {
76
+ type: "button",
77
+ onClick: () => setRenderer("restty"),
78
+ className: cn(SEGMENTED_BUTTON_STYLES.base, terminalSettingsPopoverStyles.segmentedButton, slots?.segmentedButton, settings.renderer === "restty" ? SEGMENTED_BUTTON_STYLES.active : SEGMENTED_BUTTON_STYLES.inactive),
79
+ children: "restty"
80
+ }),
81
+ /* @__PURE__ */ jsx("button", {
82
+ type: "button",
83
+ onClick: () => setRenderer("wterm"),
84
+ className: cn(SEGMENTED_BUTTON_STYLES.base, terminalSettingsPopoverStyles.segmentedButton, slots?.segmentedButton, settings.renderer === "wterm" ? SEGMENTED_BUTTON_STYLES.active : SEGMENTED_BUTTON_STYLES.inactive),
85
+ children: "wterm"
86
+ })
87
+ ]
88
+ })]
89
+ }),
90
+ settings.renderer === "restty" && /* @__PURE__ */ jsxs(Fragment, { children: [/* @__PURE__ */ jsx(Separator, { className: "bg-border/30" }), /* @__PURE__ */ jsxs("div", {
91
+ className: cn(terminalSettingsPopoverStyles.section, slots?.section),
92
+ children: [/* @__PURE__ */ jsx("label", {
93
+ className: cn(SECTION_LABEL_STYLES, slots?.sectionLabel),
94
+ children: "Theme"
95
+ }), /* @__PURE__ */ jsx(TerminalThemeSelector, {
96
+ currentTheme: settings.resttyThemeName,
97
+ onThemeChange: setResttyThemeName
98
+ })]
99
+ })] }),
100
+ /* @__PURE__ */ jsx(Separator, { className: "bg-border/30" }),
101
+ /* @__PURE__ */ jsxs("div", {
102
+ className: cn(terminalSettingsPopoverStyles.section, slots?.section),
103
+ children: [/* @__PURE__ */ jsx("label", {
104
+ className: cn(SECTION_LABEL_STYLES, slots?.sectionLabel),
105
+ children: "PTY Backend"
106
+ }), /* @__PURE__ */ jsxs("div", {
107
+ className: cn(terminalSettingsPopoverStyles.segmentedControl, slots?.segmentedControl),
108
+ children: [/* @__PURE__ */ jsx("button", {
109
+ type: "button",
110
+ onClick: () => setPtyBackend("nodepty"),
111
+ className: cn(SEGMENTED_BUTTON_STYLES.base, terminalSettingsPopoverStyles.segmentedButton, slots?.segmentedButton, settings.ptyBackend === "nodepty" ? SEGMENTED_BUTTON_STYLES.active : SEGMENTED_BUTTON_STYLES.inactive),
112
+ children: "nodepty"
113
+ }), /* @__PURE__ */ jsx("button", {
114
+ type: "button",
115
+ onClick: () => setPtyBackend("webcontainer"),
116
+ className: cn(SEGMENTED_BUTTON_STYLES.base, terminalSettingsPopoverStyles.segmentedButton, slots?.segmentedButton, settings.ptyBackend === "webcontainer" ? SEGMENTED_BUTTON_STYLES.active : SEGMENTED_BUTTON_STYLES.inactive),
117
+ children: "webcontainer"
118
+ })]
119
+ })]
120
+ }),
121
+ /* @__PURE__ */ jsx(Separator, { className: "bg-border/30" }),
122
+ /* @__PURE__ */ jsxs("div", {
123
+ className: cn(terminalSettingsPopoverStyles.section, slots?.section),
124
+ children: [/* @__PURE__ */ jsx("label", {
125
+ className: cn(SECTION_LABEL_STYLES, slots?.sectionLabel),
126
+ children: "Font Size"
127
+ }), /* @__PURE__ */ jsxs("div", {
128
+ className: cn(terminalSettingsPopoverStyles.fontControls, slots?.fontControls),
129
+ children: [
130
+ /* @__PURE__ */ jsx("button", {
131
+ type: "button",
132
+ onClick: () => setFontSize(settings.fontSize - 1),
133
+ className: FONT_BUTTON_STYLES,
134
+ disabled: settings.fontSize <= MIN_FONT_SIZE,
135
+ title: "Decrease font size",
136
+ children: /* @__PURE__ */ jsx("span", {
137
+ className: "text-sm font-bold",
138
+ children: "−"
139
+ })
140
+ }),
141
+ /* @__PURE__ */ jsx("span", {
142
+ className: "text-sm font-mono text-foreground w-8 text-center",
143
+ children: settings.fontSize
144
+ }),
145
+ /* @__PURE__ */ jsx("button", {
146
+ type: "button",
147
+ onClick: () => setFontSize(settings.fontSize + 1),
148
+ className: FONT_BUTTON_STYLES,
149
+ disabled: settings.fontSize >= MAX_FONT_SIZE,
150
+ title: "Increase font size",
151
+ children: /* @__PURE__ */ jsx("span", {
152
+ className: "text-sm font-bold",
153
+ children: "+"
154
+ })
155
+ }),
156
+ /* @__PURE__ */ jsx("span", {
157
+ className: "text-[10px] font-mono text-muted-foreground/50 ml-auto",
158
+ children: "px"
159
+ })
160
+ ]
161
+ })]
162
+ }),
163
+ /* @__PURE__ */ jsx(Separator, { className: "bg-border/30" }),
164
+ /* @__PURE__ */ jsxs("div", {
165
+ className: cn(terminalSettingsPopoverStyles.section, slots?.section),
166
+ children: [/* @__PURE__ */ jsx("label", {
167
+ className: cn(SECTION_LABEL_STYLES, slots?.sectionLabel),
168
+ children: "CRT Effect"
169
+ }), /* @__PURE__ */ jsxs("div", {
170
+ className: cn(terminalSettingsPopoverStyles.toggle, slots?.toggle),
171
+ children: [/* @__PURE__ */ jsx("span", {
172
+ className: "text-xs text-muted-foreground",
173
+ children: "Scanlines, bloom & vignette"
174
+ }), /* @__PURE__ */ jsx("button", {
175
+ type: "button",
176
+ onClick: () => setCrtEffect(!settings.crtEffect),
177
+ className: cn(TOGGLE_SWITCH_STYLES.track.base, settings.crtEffect ? TOGGLE_SWITCH_STYLES.track.active : TOGGLE_SWITCH_STYLES.track.inactive),
178
+ children: /* @__PURE__ */ jsx("span", { className: cn(TOGGLE_SWITCH_STYLES.thumb.base, settings.crtEffect ? TOGGLE_SWITCH_STYLES.thumb.active : TOGGLE_SWITCH_STYLES.thumb.inactive) })
179
+ })]
180
+ })]
181
+ }),
182
+ /* @__PURE__ */ jsx(Separator, { className: "bg-border/30" }),
183
+ /* @__PURE__ */ jsxs("div", {
184
+ className: cn(terminalSettingsPopoverStyles.section, slots?.section),
185
+ children: [/* @__PURE__ */ jsx("label", {
186
+ className: cn(SECTION_LABEL_STYLES, slots?.sectionLabel),
187
+ children: "Debug Panel"
188
+ }), /* @__PURE__ */ jsxs("div", {
189
+ className: cn(terminalSettingsPopoverStyles.toggle, slots?.toggle),
190
+ children: [/* @__PURE__ */ jsx("span", {
191
+ className: "text-xs text-muted-foreground",
192
+ children: "GPU, FPS, grid & connection info"
193
+ }), /* @__PURE__ */ jsx("button", {
194
+ type: "button",
195
+ onClick: () => setDebugPanel(!settings.debugPanel),
196
+ className: cn(TOGGLE_SWITCH_STYLES.track.base, settings.debugPanel ? TOGGLE_SWITCH_STYLES.track.active : TOGGLE_SWITCH_STYLES.track.inactive),
197
+ children: /* @__PURE__ */ jsx("span", { className: cn(TOGGLE_SWITCH_STYLES.thumb.base, settings.debugPanel ? TOGGLE_SWITCH_STYLES.thumb.active : TOGGLE_SWITCH_STYLES.thumb.inactive) })
198
+ })]
199
+ })]
200
+ }),
201
+ /* @__PURE__ */ jsx(Separator, { className: "bg-border/30" }),
202
+ /* @__PURE__ */ jsx("div", {
203
+ className: "px-4 py-3",
204
+ children: /* @__PURE__ */ jsx("button", {
205
+ type: "button",
206
+ onClick: resetToDefaults,
207
+ className: cn(terminalSettingsPopoverStyles.resetButton, slots?.resetButton),
208
+ children: "Reset to Defaults"
209
+ })
210
+ })
211
+ ]
212
+ })
213
+ }) })] });
214
+ }
215
+
216
+ //#endregion
217
+ export { TerminalSettingsPopover };
@@ -0,0 +1,13 @@
1
+ /**
2
+ * TerminalThemeSelector style definitions.
3
+ *
4
+ * @module @mks2508/mks-ui/react/blocks/Terminal/panel/TerminalThemeSelector
5
+ */
6
+ import type { StyleSlots } from '../../../../../core/types';
7
+ /** Slot names for TerminalThemeSelector visual regions. */
8
+ export type TerminalThemeSelectorSlot = 'root' | 'trigger' | 'searchInput' | 'themeList' | 'sectionLabel' | 'themeOption';
9
+ /**
10
+ * Default style slots for TerminalThemeSelector.
11
+ */
12
+ export declare const terminalThemeSelectorStyles: StyleSlots<TerminalThemeSelectorSlot>;
13
+ //# sourceMappingURL=TerminalThemeSelector.styles.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TerminalThemeSelector.styles.d.ts","sourceRoot":"","sources":["../../../../../../src/react-ui/blocks/Terminal/panel/TerminalThemeSelector/TerminalThemeSelector.styles.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAE/C,2DAA2D;AAC3D,MAAM,MAAM,yBAAyB,GACjC,MAAM,GACN,SAAS,GACT,aAAa,GACb,WAAW,GACX,cAAc,GACd,aAAa,CAAC;AAElB;;GAEG;AACH,eAAO,MAAM,2BAA2B,EAAE,UAAU,CAAC,yBAAyB,CAO7E,CAAC"}
@@ -0,0 +1,15 @@
1
+ //#region src/react-ui/blocks/Terminal/panel/TerminalThemeSelector/TerminalThemeSelector.styles.ts
2
+ /**
3
+ * Default style slots for TerminalThemeSelector.
4
+ */
5
+ const terminalThemeSelectorStyles = {
6
+ root: "w-64 p-0 glass-subtle rounded-lg",
7
+ trigger: "h-8 px-2.5 rounded-md transition-all hover:bg-muted/20 active:bg-muted/30 flex items-center justify-center gap-1.5 text-xs font-mono text-muted-foreground hover:text-foreground flex-shrink-0 border border-border/30",
8
+ searchInput: "w-full h-8 px-2.5 rounded-md bg-muted/20 border border-border/30 text-xs font-mono text-foreground placeholder:text-muted-foreground/50 outline-none focus:border-primary/40 focus:ring-1 focus:ring-primary/20 transition-colors",
9
+ themeList: "max-h-[300px] overflow-y-auto py-1",
10
+ sectionLabel: "text-[10px] font-mono text-muted-foreground/60 uppercase tracking-wider",
11
+ themeOption: "w-full text-left px-3 py-1.5 text-xs font-mono transition-colors hover:bg-muted/20"
12
+ };
13
+
14
+ //#endregion
15
+ export { terminalThemeSelectorStyles };
@@ -0,0 +1,28 @@
1
+ /**
2
+ * TerminalThemeSelector types.
3
+ *
4
+ * @module @mks2508/mks-ui/react/blocks/Terminal/panel/TerminalThemeSelector
5
+ */
6
+ import type { SlotOverrides } from '../../../../../core/types';
7
+ import type { TerminalThemeSelectorSlot } from './TerminalThemeSelector.styles';
8
+ /**
9
+ * Props for the TerminalThemeSelector component.
10
+ *
11
+ * @example
12
+ * ```tsx
13
+ * <TerminalThemeSelector
14
+ * currentTheme="Synthwave Alpha"
15
+ * onThemeChange={(name) => setResttyThemeName(name)}
16
+ * slots={{ trigger: 'border-primary/40' }}
17
+ * />
18
+ * ```
19
+ */
20
+ export interface ITerminalThemeSelectorProps {
21
+ /** Currently active theme name */
22
+ currentTheme: string;
23
+ /** Callback when user selects a new theme */
24
+ onThemeChange: (themeName: string) => void;
25
+ /** Override classes for visual regions */
26
+ slots?: SlotOverrides<TerminalThemeSelectorSlot>;
27
+ }
28
+ //# sourceMappingURL=TerminalThemeSelector.types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TerminalThemeSelector.types.d.ts","sourceRoot":"","sources":["../../../../../../src/react-ui/blocks/Terminal/panel/TerminalThemeSelector/TerminalThemeSelector.types.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,cAAc,CAAC;AAClD,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,gCAAgC,CAAC;AAEhF;;;;;;;;;;;GAWG;AACH,MAAM,WAAW,2BAA2B;IAC1C,kCAAkC;IAClC,YAAY,EAAE,MAAM,CAAC;IAErB,6CAA6C;IAC7C,aAAa,EAAE,CAAC,SAAS,EAAE,MAAM,KAAK,IAAI,CAAC;IAE3C,0CAA0C;IAC1C,KAAK,CAAC,EAAE,aAAa,CAAC,yBAAyB,CAAC,CAAC;CAClD"}
@@ -0,0 +1,30 @@
1
+ /**
2
+ * TerminalThemeSelector Component.
3
+ *
4
+ * Searchable dropdown for restty's 458 built-in terminal themes.
5
+ * Fully composable via StyleSlots.
6
+ *
7
+ * @module @mks2508/mks-ui/react/blocks/Terminal/panel/TerminalThemeSelector
8
+ */
9
+ import type { ITerminalThemeSelectorProps } from './TerminalThemeSelector.types';
10
+ export type { ITerminalThemeSelectorProps } from './TerminalThemeSelector.types';
11
+ export { terminalThemeSelectorStyles } from './TerminalThemeSelector.styles';
12
+ export type { TerminalThemeSelectorSlot } from './TerminalThemeSelector.styles';
13
+ /**
14
+ * TerminalThemeSelector Component.
15
+ *
16
+ * Searchable dropdown for restty's built-in theme catalog.
17
+ * Favorites are pinned to the top, followed by alphabetically sorted themes.
18
+ *
19
+ * All visual regions are overridable via the `slots` prop.
20
+ *
21
+ * @example
22
+ * ```tsx
23
+ * <TerminalThemeSelector
24
+ * currentTheme="Synthwave Alpha"
25
+ * onThemeChange={(name) => setResttyThemeName(name)}
26
+ * />
27
+ * ```
28
+ */
29
+ export declare function TerminalThemeSelector({ currentTheme, onThemeChange, slots }: ITerminalThemeSelectorProps): import("react/jsx-runtime").JSX.Element;
30
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../../src/react-ui/blocks/Terminal/panel/TerminalThemeSelector/index.tsx"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAQH,OAAO,KAAK,EAAE,2BAA2B,EAAE,MAAM,+BAA+B,CAAC;AAGjF,YAAY,EAAE,2BAA2B,EAAE,MAAM,+BAA+B,CAAC;AACjF,OAAO,EAAE,2BAA2B,EAAE,MAAM,gCAAgC,CAAC;AAC7E,YAAY,EAAE,yBAAyB,EAAE,MAAM,gCAAgC,CAAC;AA2ChF;;;;;;;;;;;;;;;GAeG;AACH,wBAAgB,qBAAqB,CAAC,EAAE,YAAY,EAAE,aAAa,EAAE,KAAK,EAAE,EAAE,2BAA2B,2CAyHxG"}
@@ -1,23 +1,21 @@
1
1
  'use client';
2
2
 
3
- import { cn } from "../../../lib/utils.js";
4
- import { Popover, PopoverPopup, PopoverPortal, PopoverPositioner, PopoverTrigger } from "../../../ui/Popover/index.js";
3
+ import { cn } from "../../../../lib/utils.js";
4
+ import { Popover, PopoverPopup, PopoverPortal, PopoverPositioner, PopoverTrigger } from "../../../../ui/Popover/index.js";
5
+ import { terminalThemeSelectorStyles } from "./TerminalThemeSelector.styles.js";
5
6
  import { useCallback, useEffect, useMemo, useRef, useState } from "react";
6
7
  import { Fragment, jsx, jsxs } from "react/jsx-runtime";
7
8
 
8
- //#region src/react-ui/blocks/Terminal/panel/TerminalThemeSelector.tsx
9
+ //#region src/react-ui/blocks/Terminal/panel/TerminalThemeSelector/index.tsx
9
10
  /**
10
11
  * TerminalThemeSelector Component.
11
12
  *
12
13
  * Searchable dropdown for restty's 458 built-in terminal themes.
13
- * Uses Popover for the dropdown UI with glassmorphism styling
14
- * matching the existing TerminalFilterDropdown pattern.
14
+ * Fully composable via StyleSlots.
15
15
  *
16
- * @module components/devenv/terminal/panel/TerminalThemeSelector
17
- */
18
- /**
19
- * Favorite themes displayed at the top of the list.
16
+ * @module @mks2508/mks-ui/react/blocks/Terminal/panel/TerminalThemeSelector
20
17
  */
18
+ /** Favorite themes displayed at the top of the list. */
21
19
  const FAVORITE_THEMES = [
22
20
  "Synthwave Alpha",
23
21
  "Synthwave",
@@ -29,15 +27,23 @@ const FAVORITE_THEMES = [
29
27
  "Gruvbox Dark"
30
28
  ];
31
29
  /**
32
- * Action button base styles (matches TerminalInteractivePanel pattern).
30
+ * Individual theme option in the dropdown list.
33
31
  */
34
- const triggerStyles = "h-8 px-2.5 rounded-md transition-all hover:bg-muted/20 active:bg-muted/30 flex items-center justify-center gap-1.5 text-xs font-mono text-muted-foreground hover:text-foreground flex-shrink-0 border border-border/30";
32
+ function ThemeOption({ name, isActive, onSelect, className }) {
33
+ return /* @__PURE__ */ jsxs("button", {
34
+ type: "button",
35
+ onClick: () => onSelect(name),
36
+ className: cn(className, isActive ? "text-primary bg-primary/10" : "text-foreground/80"),
37
+ children: [isActive && /* @__PURE__ */ jsx("span", { className: "inline-block w-1.5 h-1.5 rounded-full bg-primary mr-2 align-middle" }), name]
38
+ });
39
+ }
35
40
  /**
36
41
  * TerminalThemeSelector Component.
37
42
  *
38
43
  * Searchable dropdown for restty's built-in theme catalog.
39
- * Favorites are pinned to the top, followed by alphabetically
40
- * sorted themes. Search filters by case-insensitive substring.
44
+ * Favorites are pinned to the top, followed by alphabetically sorted themes.
45
+ *
46
+ * All visual regions are overridable via the `slots` prop.
41
47
  *
42
48
  * @example
43
49
  * ```tsx
@@ -47,31 +53,22 @@ const triggerStyles = "h-8 px-2.5 rounded-md transition-all hover:bg-muted/20 ac
47
53
  * />
48
54
  * ```
49
55
  */
50
- function TerminalThemeSelector({ currentTheme, onThemeChange }) {
56
+ function TerminalThemeSelector({ currentTheme, onThemeChange, slots }) {
51
57
  const [open, setOpen] = useState(false);
52
58
  const [search, setSearch] = useState("");
53
59
  const [themeNames, setThemeNames] = useState([]);
54
60
  const searchInputRef = useRef(null);
55
- /**
56
- * Load the theme catalog from restty on first open.
57
- */
58
61
  useEffect(() => {
59
62
  if (!open || themeNames.length > 0) return;
60
- import("restty").then(({ listBuiltinThemeNames }) => {
63
+ import("@mks2508/restty").then(({ listBuiltinThemeNames }) => {
61
64
  const names = listBuiltinThemeNames();
62
65
  if (Array.isArray(names)) setThemeNames(names.sort((a, b) => a.localeCompare(b)));
63
66
  }).catch(() => {});
64
67
  }, [open, themeNames.length]);
65
- /**
66
- * Focus search input on open.
67
- */
68
68
  useEffect(() => {
69
69
  if (open) requestAnimationFrame(() => searchInputRef.current?.focus());
70
70
  else setSearch("");
71
71
  }, [open]);
72
- /**
73
- * Filter and group themes based on search query.
74
- */
75
72
  const { favorites, others } = useMemo(() => {
76
73
  const query = search.toLowerCase().trim();
77
74
  const allNames = themeNames.length > 0 ? themeNames : FAVORITE_THEMES;
@@ -81,9 +78,6 @@ function TerminalThemeSelector({ currentTheme, onThemeChange }) {
81
78
  others: allNames.filter((name) => !favSet.has(name) && (!query || name.toLowerCase().includes(query)))
82
79
  };
83
80
  }, [search, themeNames]);
84
- /**
85
- * Handle theme selection.
86
- */
87
81
  const handleSelect = useCallback((themeName) => {
88
82
  onThemeChange(themeName);
89
83
  setOpen(false);
@@ -93,7 +87,7 @@ function TerminalThemeSelector({ currentTheme, onThemeChange }) {
93
87
  onOpenChange: setOpen,
94
88
  children: [/* @__PURE__ */ jsx(PopoverTrigger, { children: /* @__PURE__ */ jsxs("button", {
95
89
  type: "button",
96
- className: triggerStyles,
90
+ className: cn(terminalThemeSelectorStyles.trigger, slots?.trigger),
97
91
  title: "Select terminal theme",
98
92
  children: [/* @__PURE__ */ jsx("span", {
99
93
  className: "truncate max-w-[140px]",
@@ -110,7 +104,7 @@ function TerminalThemeSelector({ currentTheme, onThemeChange }) {
110
104
  align: "start",
111
105
  sideOffset: 6,
112
106
  children: /* @__PURE__ */ jsxs(PopoverPopup, {
113
- className: "w-64 p-0 glass-subtle rounded-lg",
107
+ className: cn(terminalThemeSelectorStyles.root, slots?.root),
114
108
  children: [/* @__PURE__ */ jsx("div", {
115
109
  className: "p-2 border-b border-border/30",
116
110
  children: /* @__PURE__ */ jsx("input", {
@@ -119,28 +113,29 @@ function TerminalThemeSelector({ currentTheme, onThemeChange }) {
119
113
  value: search,
120
114
  onChange: (e) => setSearch(e.target.value),
121
115
  placeholder: "Search themes...",
122
- className: "w-full h-8 px-2.5 rounded-md bg-muted/20 border border-border/30 text-xs font-mono text-foreground placeholder:text-muted-foreground/50 outline-none focus:border-primary/40 focus:ring-1 focus:ring-primary/20 transition-colors"
116
+ className: cn(terminalThemeSelectorStyles.searchInput, slots?.searchInput)
123
117
  })
124
118
  }), /* @__PURE__ */ jsxs("div", {
125
- className: "max-h-[300px] overflow-y-auto py-1",
119
+ className: cn(terminalThemeSelectorStyles.themeList, slots?.themeList),
126
120
  children: [
127
121
  favorites.length > 0 && /* @__PURE__ */ jsxs(Fragment, { children: [/* @__PURE__ */ jsx("div", {
128
122
  className: "px-3 py-1.5",
129
123
  children: /* @__PURE__ */ jsx("span", {
130
- className: "text-[10px] font-mono text-muted-foreground/60 uppercase tracking-wider",
124
+ className: cn(terminalThemeSelectorStyles.sectionLabel, slots?.sectionLabel),
131
125
  children: "Favorites"
132
126
  })
133
127
  }), favorites.map((name) => /* @__PURE__ */ jsx(ThemeOption, {
134
128
  name,
135
129
  isActive: name === currentTheme,
136
- onSelect: handleSelect
130
+ onSelect: handleSelect,
131
+ className: cn(terminalThemeSelectorStyles.themeOption, slots?.themeOption)
137
132
  }, `fav-${name}`))] }),
138
133
  others.length > 0 && /* @__PURE__ */ jsxs(Fragment, { children: [
139
134
  favorites.length > 0 && /* @__PURE__ */ jsx("div", { className: "mx-2 my-1 h-px bg-border/20" }),
140
135
  /* @__PURE__ */ jsx("div", {
141
136
  className: "px-3 py-1.5",
142
137
  children: /* @__PURE__ */ jsxs("span", {
143
- className: "text-[10px] font-mono text-muted-foreground/60 uppercase tracking-wider",
138
+ className: cn(terminalThemeSelectorStyles.sectionLabel, slots?.sectionLabel),
144
139
  children: [
145
140
  "All Themes (",
146
141
  others.length,
@@ -151,7 +146,8 @@ function TerminalThemeSelector({ currentTheme, onThemeChange }) {
151
146
  others.map((name) => /* @__PURE__ */ jsx(ThemeOption, {
152
147
  name,
153
148
  isActive: name === currentTheme,
154
- onSelect: handleSelect
149
+ onSelect: handleSelect,
150
+ className: cn(terminalThemeSelectorStyles.themeOption, slots?.themeOption)
155
151
  }, name))
156
152
  ] }),
157
153
  favorites.length === 0 && others.length === 0 && /* @__PURE__ */ jsx("div", {
@@ -171,17 +167,6 @@ function TerminalThemeSelector({ currentTheme, onThemeChange }) {
171
167
  }) })]
172
168
  });
173
169
  }
174
- /**
175
- * Individual theme option in the dropdown list.
176
- */
177
- function ThemeOption({ name, isActive, onSelect }) {
178
- return /* @__PURE__ */ jsxs("button", {
179
- type: "button",
180
- onClick: () => onSelect(name),
181
- className: cn("w-full text-left px-3 py-1.5 text-xs font-mono transition-colors", "hover:bg-muted/20", isActive ? "text-primary bg-primary/10" : "text-foreground/80"),
182
- children: [isActive && /* @__PURE__ */ jsx("span", { className: "inline-block w-1.5 h-1.5 rounded-full bg-primary mr-2 align-middle" }), name]
183
- });
184
- }
185
170
 
186
171
  //#endregion
187
172
  export { TerminalThemeSelector };
@@ -0,0 +1,38 @@
1
+ /**
2
+ * ResttyContext — provides the Restty instance to descendant hooks.
3
+ *
4
+ * Set by ResttyTerminal after initialization. Consumed by useRestty,
5
+ * useResttyPane, useResttyPanes, and useResttyPlugins.
6
+ *
7
+ * @module Terminal/restty/ResttyContext
8
+ */
9
+ import { type ReactNode } from 'react';
10
+ import type { Restty } from '@mks2508/restty';
11
+ /**
12
+ * Context value exposing the Restty instance and readiness flag.
13
+ */
14
+ export interface IResttyContextValue {
15
+ /** The underlying Restty instance, or null before initialization. */
16
+ restty: Restty | null;
17
+ /** Whether the Restty instance has been initialized and is ready. */
18
+ isReady: boolean;
19
+ }
20
+ /**
21
+ * Provides a Restty instance to descendant components.
22
+ */
23
+ export declare function ResttyProvider({ restty, isReady, children, }: IResttyContextValue & {
24
+ children: ReactNode;
25
+ }): import("react/jsx-runtime").JSX.Element;
26
+ /**
27
+ * Access the Restty instance from context.
28
+ *
29
+ * Must be called within a ResttyTerminal or ResttyProvider tree.
30
+ *
31
+ * @example
32
+ * ```tsx
33
+ * const { restty, isReady } = useRestty();
34
+ * if (isReady) restty.splitActivePane("vertical");
35
+ * ```
36
+ */
37
+ export declare function useRestty(): IResttyContextValue;
38
+ //# sourceMappingURL=ResttyContext.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ResttyContext.d.ts","sourceRoot":"","sources":["../../../../../src/react-ui/blocks/Terminal/restty/ResttyContext.tsx"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAIH,OAAO,EAA6B,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAClE,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,iBAAiB,CAAC;AAE9C;;GAEG;AACH,MAAM,WAAW,mBAAmB;IAClC,qEAAqE;IACrE,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC;IACtB,qEAAqE;IACrE,OAAO,EAAE,OAAO,CAAC;CAClB;AAID;;GAEG;AACH,wBAAgB,cAAc,CAAC,EAC7B,MAAM,EACN,OAAO,EACP,QAAQ,GACT,EAAE,mBAAmB,GAAG;IAAE,QAAQ,EAAE,SAAS,CAAA;CAAE,2CAM/C;AAED;;;;;;;;;;GAUG;AACH,wBAAgB,SAAS,IAAI,mBAAmB,CAE/C"}
@@ -0,0 +1,47 @@
1
+ 'use client';
2
+
3
+ import { createContext, useContext } from "react";
4
+ import { jsx } from "react/jsx-runtime";
5
+
6
+ //#region src/react-ui/blocks/Terminal/restty/ResttyContext.tsx
7
+ /**
8
+ * ResttyContext — provides the Restty instance to descendant hooks.
9
+ *
10
+ * Set by ResttyTerminal after initialization. Consumed by useRestty,
11
+ * useResttyPane, useResttyPanes, and useResttyPlugins.
12
+ *
13
+ * @module Terminal/restty/ResttyContext
14
+ */
15
+ const ResttyContext = createContext({
16
+ restty: null,
17
+ isReady: false
18
+ });
19
+ /**
20
+ * Provides a Restty instance to descendant components.
21
+ */
22
+ function ResttyProvider({ restty, isReady, children }) {
23
+ return /* @__PURE__ */ jsx(ResttyContext.Provider, {
24
+ value: {
25
+ restty,
26
+ isReady
27
+ },
28
+ children
29
+ });
30
+ }
31
+ /**
32
+ * Access the Restty instance from context.
33
+ *
34
+ * Must be called within a ResttyTerminal or ResttyProvider tree.
35
+ *
36
+ * @example
37
+ * ```tsx
38
+ * const { restty, isReady } = useRestty();
39
+ * if (isReady) restty.splitActivePane("vertical");
40
+ * ```
41
+ */
42
+ function useRestty() {
43
+ return useContext(ResttyContext);
44
+ }
45
+
46
+ //#endregion
47
+ export { ResttyProvider, useRestty };
@@ -0,0 +1,50 @@
1
+ /**
2
+ * ResttySessionProvider — React Context for sharing WASM + WebGPU resources.
3
+ *
4
+ * Wrapping N `ResttyTerminal` instances in a single `ResttySessionProvider`
5
+ * ensures they share one WASM module (~2 MB) and one WebGPU core instead of
6
+ * loading duplicates.
7
+ *
8
+ * @example
9
+ * ```tsx
10
+ * <ResttySessionProvider>
11
+ * <ResttyTerminal wsUrl="ws://localhost:14421/terminal" />
12
+ * <ResttyTerminal wsUrl="ws://localhost:14421/terminal" />
13
+ * </ResttySessionProvider>
14
+ * ```
15
+ *
16
+ * @module Terminal/restty/ResttySessionProvider
17
+ */
18
+ import { type ReactNode } from 'react';
19
+ import type { ResttyAppSession } from '@mks2508/restty';
20
+ /**
21
+ * Value exposed by the ResttySession context.
22
+ */
23
+ export interface IResttySessionContextValue {
24
+ /** Shared session for WASM/WebGPU resource reuse across panes. */
25
+ getSession: () => Promise<ResttyAppSession>;
26
+ }
27
+ /**
28
+ * Props for ResttySessionProvider.
29
+ */
30
+ export interface IResttySessionProviderProps {
31
+ /** Optional pre-created session. If omitted, one is lazily created. */
32
+ session?: ResttyAppSession;
33
+ children: ReactNode;
34
+ }
35
+ /**
36
+ * Provides a shared ResttyAppSession to all descendant ResttyTerminal instances.
37
+ *
38
+ * The session is lazily created on first access via dynamic import to keep
39
+ * the WASM + WebGPU initialization out of the critical render path and
40
+ * to remain SSR-safe.
41
+ */
42
+ export declare function ResttySessionProvider({ session: externalSession, children }: IResttySessionProviderProps): import("react/jsx-runtime").JSX.Element;
43
+ /**
44
+ * Access the shared ResttyAppSession from context.
45
+ *
46
+ * Returns `null` when called outside a `ResttySessionProvider` — in that
47
+ * case `ResttyTerminal` will create its own session automatically.
48
+ */
49
+ export declare function useResttySession(): IResttySessionContextValue | null;
50
+ //# sourceMappingURL=ResttySessionProvider.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ResttySessionProvider.d.ts","sourceRoot":"","sources":["../../../../../src/react-ui/blocks/Terminal/restty/ResttySessionProvider.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAIH,OAAO,EAAqC,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAC1E,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AAExD;;GAEG;AACH,MAAM,WAAW,0BAA0B;IACzC,kEAAkE;IAClE,UAAU,EAAE,MAAM,OAAO,CAAC,gBAAgB,CAAC,CAAC;CAC7C;AAID;;GAEG;AACH,MAAM,WAAW,2BAA2B;IAC1C,uEAAuE;IACvE,OAAO,CAAC,EAAE,gBAAgB,CAAC;IAC3B,QAAQ,EAAE,SAAS,CAAC;CACrB;AAED;;;;;;GAMG;AACH,wBAAgB,qBAAqB,CAAC,EAAE,OAAO,EAAE,eAAe,EAAE,QAAQ,EAAE,EAAE,2BAA2B,2CAuBxG;AAED;;;;;GAKG;AACH,wBAAgB,gBAAgB,IAAI,0BAA0B,GAAG,IAAI,CAEpE"}