@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,60 @@
1
+ 'use client';
2
+
3
+ import { createContext, useContext, useRef } from "react";
4
+ import { jsx } from "react/jsx-runtime";
5
+
6
+ //#region src/react-ui/blocks/Terminal/restty/ResttySessionProvider.tsx
7
+ /**
8
+ * ResttySessionProvider — React Context for sharing WASM + WebGPU resources.
9
+ *
10
+ * Wrapping N `ResttyTerminal` instances in a single `ResttySessionProvider`
11
+ * ensures they share one WASM module (~2 MB) and one WebGPU core instead of
12
+ * loading duplicates.
13
+ *
14
+ * @example
15
+ * ```tsx
16
+ * <ResttySessionProvider>
17
+ * <ResttyTerminal wsUrl="ws://localhost:14421/terminal" />
18
+ * <ResttyTerminal wsUrl="ws://localhost:14421/terminal" />
19
+ * </ResttySessionProvider>
20
+ * ```
21
+ *
22
+ * @module Terminal/restty/ResttySessionProvider
23
+ */
24
+ const ResttySessionContext = createContext(null);
25
+ /**
26
+ * Provides a shared ResttyAppSession to all descendant ResttyTerminal instances.
27
+ *
28
+ * The session is lazily created on first access via dynamic import to keep
29
+ * the WASM + WebGPU initialization out of the critical render path and
30
+ * to remain SSR-safe.
31
+ */
32
+ function ResttySessionProvider({ session: externalSession, children }) {
33
+ const sessionRef = useRef(externalSession ?? null);
34
+ const promiseRef = useRef(null);
35
+ return /* @__PURE__ */ jsx(ResttySessionContext.Provider, {
36
+ value: { getSession: () => {
37
+ if (sessionRef.current) return Promise.resolve(sessionRef.current);
38
+ if (promiseRef.current) return promiseRef.current;
39
+ promiseRef.current = import("@mks2508/restty").then(({ createResttyAppSession }) => {
40
+ const s = createResttyAppSession();
41
+ sessionRef.current = s;
42
+ return s;
43
+ });
44
+ return promiseRef.current;
45
+ } },
46
+ children
47
+ });
48
+ }
49
+ /**
50
+ * Access the shared ResttyAppSession from context.
51
+ *
52
+ * Returns `null` when called outside a `ResttySessionProvider` — in that
53
+ * case `ResttyTerminal` will create its own session automatically.
54
+ */
55
+ function useResttySession() {
56
+ return useContext(ResttySessionContext);
57
+ }
58
+
59
+ //#endregion
60
+ export { ResttySessionProvider, useResttySession };
@@ -0,0 +1,32 @@
1
+ /**
2
+ * ResttyTerminal — first-class React component for restty GPU terminal.
3
+ *
4
+ * This is THE React frontend for restty. It exposes the full API:
5
+ * multi-pane splits, plugin system, session sharing, I/O hooks,
6
+ * theme catalog, font management, and GPU rendering control.
7
+ *
8
+ * @example
9
+ * ```tsx
10
+ * <ResttySessionProvider>
11
+ * <ResttyTerminal
12
+ * wsUrl="ws://localhost:14421/terminal"
13
+ * fontSize={14}
14
+ * resttyThemeName="Synthwave '84"
15
+ * shortcuts
16
+ * onResize={(cols, rows) => console.log(`${cols}x${rows}`)}
17
+ * />
18
+ * </ResttySessionProvider>
19
+ * ```
20
+ *
21
+ * @module Terminal/restty/ResttyTerminal
22
+ */
23
+ import type { IResttyTerminalProps, IResttyTerminalRef } from './ResttyTerminal.types';
24
+ /**
25
+ * ResttyTerminal — full-featured React wrapper for the restty terminal engine.
26
+ *
27
+ * Handles lifecycle (dynamic WASM/WebGPU import, init, destroy), session
28
+ * sharing, pane management, plugin loading, theme application, and PTY
29
+ * connection via injectable transport.
30
+ */
31
+ export declare const ResttyTerminal: import("react").ForwardRefExoticComponent<IResttyTerminalProps & import("react").RefAttributes<IResttyTerminalRef>>;
32
+ //# sourceMappingURL=ResttyTerminal.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ResttyTerminal.d.ts","sourceRoot":"","sources":["../../../../../src/react-ui/blocks/Terminal/restty/ResttyTerminal.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;GAqBG;AAcH,OAAO,KAAK,EAAE,oBAAoB,EAAE,kBAAkB,EAAE,MAAM,wBAAwB,CAAC;AAGvF;;;;;;GAMG;AACH,eAAO,MAAM,cAAc,qHA4V1B,CAAC"}
@@ -0,0 +1,278 @@
1
+ 'use client';
2
+
3
+ import { ResttyProvider } from "./ResttyContext.js";
4
+ import { useResttySession } from "./ResttySessionProvider.js";
5
+ import { getSynthwaveGhosttyTheme, xtermThemeToGhostty } from "../Terminal.theme.restty.js";
6
+ import { forwardRef, useEffect, useImperativeHandle, useRef, useState } from "react";
7
+ import { jsx } from "react/jsx-runtime";
8
+
9
+ //#region src/react-ui/blocks/Terminal/restty/ResttyTerminal.tsx
10
+ /**
11
+ * ResttyTerminal — first-class React component for restty GPU terminal.
12
+ *
13
+ * This is THE React frontend for restty. It exposes the full API:
14
+ * multi-pane splits, plugin system, session sharing, I/O hooks,
15
+ * theme catalog, font management, and GPU rendering control.
16
+ *
17
+ * @example
18
+ * ```tsx
19
+ * <ResttySessionProvider>
20
+ * <ResttyTerminal
21
+ * wsUrl="ws://localhost:14421/terminal"
22
+ * fontSize={14}
23
+ * resttyThemeName="Synthwave '84"
24
+ * shortcuts
25
+ * onResize={(cols, rows) => console.log(`${cols}x${rows}`)}
26
+ * />
27
+ * </ResttySessionProvider>
28
+ * ```
29
+ *
30
+ * @module Terminal/restty/ResttyTerminal
31
+ */
32
+ /**
33
+ * ResttyTerminal — full-featured React wrapper for the restty terminal engine.
34
+ *
35
+ * Handles lifecycle (dynamic WASM/WebGPU import, init, destroy), session
36
+ * sharing, pane management, plugin loading, theme application, and PTY
37
+ * connection via injectable transport.
38
+ */
39
+ const ResttyTerminal = forwardRef((props, ref) => {
40
+ const { wsUrl, createPtyTransport, fontSize = 14, theme, ghosttyTheme, resttyThemeName, gpuRenderer = "auto", fontSources, createInitialPane = true, shortcuts = false, defaultContextMenu = true, beforeInput, beforeRenderOutput, onPaneCreated, onPaneClosed, onPaneSplit, onActivePaneChange, onLayoutChanged, onReady, onResize, onPtyStatus, onConnect, onDisconnect, onError, onDesktopNotification, paused, plugins, pluginManifest, pluginRegistry, resttyOptions, className, style } = props;
41
+ const containerRef = useRef(null);
42
+ const resttyRef = useRef(null);
43
+ const didInitRef = useRef(false);
44
+ const activeThemeRef = useRef(null);
45
+ const destroyTimerRef = useRef(null);
46
+ const [isReady, setIsReady] = useState(false);
47
+ const cbRef = useRef({
48
+ onReady,
49
+ onResize,
50
+ onPtyStatus,
51
+ onConnect,
52
+ onDisconnect,
53
+ onError,
54
+ onDesktopNotification,
55
+ onPaneCreated,
56
+ onPaneClosed,
57
+ onPaneSplit,
58
+ onActivePaneChange,
59
+ onLayoutChanged,
60
+ beforeInput,
61
+ beforeRenderOutput
62
+ });
63
+ cbRef.current = {
64
+ onReady,
65
+ onResize,
66
+ onPtyStatus,
67
+ onConnect,
68
+ onDisconnect,
69
+ onError,
70
+ onDesktopNotification,
71
+ onPaneCreated,
72
+ onPaneClosed,
73
+ onPaneSplit,
74
+ onActivePaneChange,
75
+ onLayoutChanged,
76
+ beforeInput,
77
+ beforeRenderOutput
78
+ };
79
+ const sessionCtx = useResttySession();
80
+ useEffect(() => {
81
+ if (!containerRef.current) return;
82
+ if (didInitRef.current) return;
83
+ didInitRef.current = true;
84
+ let destroyed = false;
85
+ const init = async () => {
86
+ if (destroyTimerRef.current !== null) {
87
+ clearTimeout(destroyTimerRef.current);
88
+ destroyTimerRef.current = null;
89
+ }
90
+ const resttyModule = await import("@mks2508/restty");
91
+ if (destroyed || !containerRef.current) return;
92
+ const { Restty: ResttyClass, getBuiltinTheme, createResttyAppSession } = resttyModule;
93
+ let session;
94
+ if (sessionCtx) session = await sessionCtx.getSession();
95
+ else session = createResttyAppSession();
96
+ if (destroyed) return;
97
+ const appOptionsFactory = () => ({
98
+ renderer: gpuRenderer,
99
+ fontSize,
100
+ fontPreset: "default-cdn",
101
+ fontSources: fontSources ?? [{
102
+ type: "local",
103
+ matchers: [
104
+ "jetbrains mono",
105
+ "fira code",
106
+ "sf mono",
107
+ "cascadia code",
108
+ "meslo"
109
+ ]
110
+ }],
111
+ autoResize: true,
112
+ ...createPtyTransport ? { ptyTransport: createPtyTransport() } : {},
113
+ callbacks: {
114
+ onTermSize: (cols, rows) => cbRef.current.onResize?.(cols, rows),
115
+ onPtyStatus: (status) => cbRef.current.onPtyStatus?.(status)
116
+ },
117
+ beforeInput: cbRef.current.beforeInput ? (payload) => cbRef.current.beforeInput(payload) : void 0,
118
+ beforeRenderOutput: cbRef.current.beforeRenderOutput ? (payload) => cbRef.current.beforeRenderOutput(payload) : void 0,
119
+ ...resttyOptions ?? {}
120
+ });
121
+ const restty = new ResttyClass({
122
+ root: containerRef.current,
123
+ session,
124
+ appOptions: appOptionsFactory,
125
+ onDesktopNotification: (n) => {
126
+ cbRef.current.onDesktopNotification?.(n);
127
+ },
128
+ onPaneCreated: (pane) => {
129
+ if (resttyRef.current) {
130
+ const handle = resttyRef.current.pane(pane.id);
131
+ if (handle) {
132
+ if (activeThemeRef.current) handle.applyTheme(activeThemeRef.current);
133
+ if (wsUrl) requestAnimationFrame(() => {
134
+ handle.connectPty(wsUrl);
135
+ handle.updateSize(true);
136
+ });
137
+ }
138
+ }
139
+ cbRef.current.onPaneCreated?.(pane.id);
140
+ },
141
+ onPaneClosed: (pane) => cbRef.current.onPaneClosed?.(pane.id),
142
+ onPaneSplit: (src, created, dir) => cbRef.current.onPaneSplit?.(src.id, created.id, dir),
143
+ onActivePaneChange: (pane) => cbRef.current.onActivePaneChange?.(pane?.id ?? null),
144
+ onLayoutChanged: () => cbRef.current.onLayoutChanged?.(),
145
+ createInitialPane,
146
+ shortcuts,
147
+ defaultContextMenu
148
+ });
149
+ if (destroyed) {
150
+ restty.destroy();
151
+ return;
152
+ }
153
+ resttyRef.current = restty;
154
+ let resolvedTheme;
155
+ if (resttyThemeName) resolvedTheme = getBuiltinTheme(resttyThemeName) ?? getSynthwaveGhosttyTheme();
156
+ else if (ghosttyTheme) resolvedTheme = ghosttyTheme;
157
+ else if (theme) resolvedTheme = xtermThemeToGhostty(theme);
158
+ else resolvedTheme = getSynthwaveGhosttyTheme();
159
+ activeThemeRef.current = resolvedTheme;
160
+ restty.applyTheme(resolvedTheme);
161
+ if (plugins?.length) for (const plugin of plugins) restty.use(plugin);
162
+ if (pluginManifest?.length && pluginRegistry) await restty.loadPlugins(pluginManifest, pluginRegistry);
163
+ if (wsUrl) restty.connectPty(wsUrl);
164
+ setIsReady(true);
165
+ cbRef.current.onReady?.(restty);
166
+ };
167
+ init().catch((err) => {
168
+ if (!destroyed) cbRef.current.onError?.(`Failed to initialize restty: ${err instanceof Error ? err.message : String(err)}`);
169
+ });
170
+ return () => {
171
+ destroyed = true;
172
+ const instance = resttyRef.current;
173
+ resttyRef.current = null;
174
+ setIsReady(false);
175
+ if (instance) destroyTimerRef.current = setTimeout(() => {
176
+ destroyTimerRef.current = null;
177
+ if (!didInitRef.current) instance.destroy();
178
+ }, 100);
179
+ didInitRef.current = false;
180
+ };
181
+ }, []);
182
+ const initialWsUrlRef = useRef(wsUrl);
183
+ useEffect(() => {
184
+ if (!isReady || !resttyRef.current) return;
185
+ if (wsUrl === initialWsUrlRef.current) {
186
+ initialWsUrlRef.current = "";
187
+ return;
188
+ }
189
+ if (wsUrl) {
190
+ resttyRef.current.disconnectPty();
191
+ resttyRef.current.connectPty(wsUrl);
192
+ } else resttyRef.current.disconnectPty();
193
+ }, [wsUrl, isReady]);
194
+ useEffect(() => {
195
+ if (!isReady || !resttyRef.current) return;
196
+ resttyRef.current.setFontSize(fontSize);
197
+ }, [fontSize, isReady]);
198
+ useEffect(() => {
199
+ if (!isReady || !resttyRef.current) return;
200
+ if (resttyThemeName) import("@mks2508/restty").then(({ getBuiltinTheme }) => {
201
+ const builtin = getBuiltinTheme(resttyThemeName);
202
+ if (builtin) resttyRef.current?.applyTheme(builtin);
203
+ });
204
+ else if (ghosttyTheme) resttyRef.current.applyTheme(ghosttyTheme);
205
+ else if (theme) resttyRef.current.applyTheme(xtermThemeToGhostty(theme));
206
+ }, [
207
+ theme,
208
+ ghosttyTheme,
209
+ resttyThemeName,
210
+ isReady
211
+ ]);
212
+ useEffect(() => {
213
+ if (!isReady || !resttyRef.current || paused === void 0) return;
214
+ resttyRef.current.setPaused(paused);
215
+ }, [paused, isReady]);
216
+ useEffect(() => {
217
+ if (!isReady || !resttyRef.current || !fontSources) return;
218
+ resttyRef.current.setFontSources(fontSources);
219
+ }, [fontSources, isReady]);
220
+ useImperativeHandle(ref, () => ({
221
+ getRestty: () => resttyRef.current,
222
+ connectPty: (url) => resttyRef.current?.connectPty(url ?? ""),
223
+ disconnectPty: () => resttyRef.current?.disconnectPty(),
224
+ isPtyConnected: () => resttyRef.current?.isPtyConnected() ?? false,
225
+ sendInput: (text, source) => resttyRef.current?.sendInput(text, source),
226
+ sendKeyInput: (text, source) => resttyRef.current?.sendKeyInput(text, source),
227
+ splitActivePane: (dir) => {
228
+ const pane = resttyRef.current?.splitActivePane(dir) ?? null;
229
+ return pane ? resttyRef.current.pane(pane.id) : null;
230
+ },
231
+ splitPane: (id, dir) => {
232
+ const pane = resttyRef.current?.splitPane(id, dir) ?? null;
233
+ return pane ? resttyRef.current.pane(pane.id) : null;
234
+ },
235
+ closePane: (id) => resttyRef.current?.closePane(id) ?? false,
236
+ setActivePane: (id, opts) => resttyRef.current?.setActivePane(id, opts),
237
+ panes: () => resttyRef.current?.panes() ?? [],
238
+ activePane: () => resttyRef.current?.activePane() ?? null,
239
+ focusedPane: () => resttyRef.current?.focusedPane() ?? null,
240
+ setRenderer: (v) => resttyRef.current?.setRenderer(v),
241
+ setPaused: (v) => resttyRef.current?.setPaused(v),
242
+ togglePause: () => resttyRef.current?.togglePause(),
243
+ getBackend: () => resttyRef.current?.getBackend() ?? "none",
244
+ setFontSize: (s) => resttyRef.current?.setFontSize(s),
245
+ setFontSources: (s) => resttyRef.current?.setFontSources(s) ?? Promise.resolve(),
246
+ applyTheme: (t, l) => resttyRef.current?.applyTheme(t, l),
247
+ resetTheme: () => resttyRef.current?.resetTheme(),
248
+ clear: () => resttyRef.current?.clearScreen(),
249
+ focus: () => resttyRef.current?.focus(),
250
+ blur: () => resttyRef.current?.blur(),
251
+ resize: (c, r) => resttyRef.current?.resize(c, r),
252
+ updateSize: (f) => resttyRef.current?.updateSize(f),
253
+ copySelection: () => resttyRef.current?.copySelectionToClipboard() ?? Promise.resolve(false),
254
+ pasteClipboard: () => resttyRef.current?.pasteFromClipboard() ?? Promise.resolve(false),
255
+ use: (p, o) => resttyRef.current?.use(p, o),
256
+ unloadPlugin: (id) => resttyRef.current?.unuse(id) ?? false,
257
+ getActivePlugins: () => resttyRef.current?.pluginInfo() ?? [],
258
+ getPluginInfo: (id) => resttyRef.current?.pluginInfo(id) ?? null
259
+ }));
260
+ return /* @__PURE__ */ jsx(ResttyProvider, {
261
+ restty: resttyRef.current,
262
+ isReady,
263
+ children: /* @__PURE__ */ jsx("div", {
264
+ ref: containerRef,
265
+ className,
266
+ style: {
267
+ width: "100%",
268
+ height: "100%",
269
+ minHeight: 200,
270
+ ...style
271
+ }
272
+ })
273
+ });
274
+ });
275
+ ResttyTerminal.displayName = "ResttyTerminal";
276
+
277
+ //#endregion
278
+ export { ResttyTerminal };
@@ -0,0 +1,166 @@
1
+ /**
2
+ * Types for ResttyTerminal — the first-class React component for restty.
3
+ *
4
+ * @module Terminal/restty/ResttyTerminal.types
5
+ */
6
+ import type { Restty, ResttyOptions, ResttyPlugin, ResttyPluginInfo, ResttyPluginManifestEntry, ResttyPluginRegistry, ResttyPaneHandle, ResttyFontSource, ResttyPaneSplitDirection, ResttyAppInputPayload, GhosttyTheme } from '@mks2508/restty';
7
+ import type { ITerminalTheme, IPtyTransportFactory } from '../Terminal.types';
8
+ export type { Restty, ResttyPlugin, ResttyPluginInfo, ResttyPaneHandle, ResttyFontSource, ResttyPaneSplitDirection, GhosttyTheme, };
9
+ /**
10
+ * Props for ResttyTerminal.
11
+ *
12
+ * Covers the full restty API surface: connection, appearance, panes,
13
+ * plugins, I/O hooks, lifecycle callbacks, and rendering control.
14
+ */
15
+ export interface IResttyTerminalProps {
16
+ /** PTY WebSocket URL. Triggers auto-connect on mount and reconnect on change. */
17
+ wsUrl?: string;
18
+ /** Factory to create a custom PTY transport (e.g., JsonWsPtyTransport). */
19
+ createPtyTransport?: IPtyTransportFactory;
20
+ /** Font size in CSS pixels (default: 14). */
21
+ fontSize?: number;
22
+ /** Terminal theme in xterm.js color format. Auto-converted to Ghostty format. */
23
+ theme?: ITerminalTheme;
24
+ /** Theme in native Ghostty format. Takes precedence over `theme`. */
25
+ ghosttyTheme?: GhosttyTheme;
26
+ /** Built-in restty theme name from the 458-theme catalog. Takes highest precedence. */
27
+ resttyThemeName?: string;
28
+ /**
29
+ * GPU renderer preference.
30
+ * - `auto`: WebGPU with WebGL2 fallback (default)
31
+ * - `webgpu`: Force WebGPU only
32
+ * - `webgl2`: Force WebGL2 only
33
+ */
34
+ gpuRenderer?: 'auto' | 'webgpu' | 'webgl2';
35
+ /** Font sources for the terminal. */
36
+ fontSources?: ResttyFontSource[];
37
+ /** Whether to create an initial pane (default: true). */
38
+ createInitialPane?: boolean | {
39
+ focus?: boolean;
40
+ };
41
+ /** Enable built-in keyboard shortcuts for pane splitting (default: false). */
42
+ shortcuts?: boolean;
43
+ /** Enable built-in right-click context menu (default: true). */
44
+ defaultContextMenu?: boolean;
45
+ /** Intercept terminal input before it's written. Return null to suppress. */
46
+ beforeInput?: (payload: ResttyAppInputPayload) => string | null | void;
47
+ /** Intercept PTY output before it's rendered. Return null to suppress. */
48
+ beforeRenderOutput?: (payload: ResttyAppInputPayload) => string | null | void;
49
+ /** Called after a new pane is created. */
50
+ onPaneCreated?: (paneId: number) => void;
51
+ /** Called after a pane is closed. */
52
+ onPaneClosed?: (paneId: number) => void;
53
+ /** Called after a pane is split. */
54
+ onPaneSplit?: (sourcePaneId: number, createdPaneId: number, direction: ResttyPaneSplitDirection) => void;
55
+ /** Called when the active pane changes. */
56
+ onActivePaneChange?: (paneId: number | null) => void;
57
+ /** Called when the pane layout changes (split/close/resize). */
58
+ onLayoutChanged?: () => void;
59
+ /** Called when the Restty instance is fully initialized. */
60
+ onReady?: (restty: Restty) => void;
61
+ /** Called when the terminal grid dimensions change. */
62
+ onResize?: (cols: number, rows: number) => void;
63
+ /** Called when PTY connection status changes. */
64
+ onPtyStatus?: (status: string) => void;
65
+ /** Called when PTY connection opens. */
66
+ onConnect?: () => void;
67
+ /** Called when PTY connection closes. */
68
+ onDisconnect?: () => void;
69
+ /** Called on errors during initialization or PTY connection. */
70
+ onError?: (message: string) => void;
71
+ /** Called when the terminal receives a desktop notification (OSC 9/777). */
72
+ onDesktopNotification?: (notification: {
73
+ title?: string;
74
+ body?: string;
75
+ paneId: number;
76
+ }) => void;
77
+ /** Pause GPU rendering (e.g., when the terminal is offscreen). */
78
+ paused?: boolean;
79
+ /** Plugins to load on initialization. */
80
+ plugins?: ResttyPlugin[];
81
+ /** Plugin manifest for registry-based loading. */
82
+ pluginManifest?: ResttyPluginManifestEntry[];
83
+ /** Plugin registry for manifest resolution. */
84
+ pluginRegistry?: ResttyPluginRegistry;
85
+ /** Escape hatch: raw ResttyOptions spread into the constructor. */
86
+ resttyOptions?: Partial<ResttyOptions>;
87
+ /** CSS class name for the container element. */
88
+ className?: string;
89
+ /** Inline styles for the container element. */
90
+ style?: React.CSSProperties;
91
+ }
92
+ /**
93
+ * Imperative ref for ResttyTerminal.
94
+ *
95
+ * Exposes the full Restty API: PTY control, pane management,
96
+ * appearance, plugins, and raw instance access.
97
+ */
98
+ export interface IResttyTerminalRef {
99
+ /** Get the underlying Restty instance. */
100
+ getRestty: () => Restty | null;
101
+ /** Open a PTY connection (optionally to a specific URL). */
102
+ connectPty: (url?: string) => void;
103
+ /** Close the active PTY connection. */
104
+ disconnectPty: () => void;
105
+ /** Check if the PTY is connected. */
106
+ isPtyConnected: () => boolean;
107
+ /** Send raw input to the terminal PTY. */
108
+ sendInput: (text: string, source?: string) => void;
109
+ /** Encode and send a key sequence to the PTY. */
110
+ sendKeyInput: (text: string, source?: string) => void;
111
+ /** Split the active pane. Returns the new pane handle or null. */
112
+ splitActivePane: (direction: ResttyPaneSplitDirection) => ResttyPaneHandle | null;
113
+ /** Split a specific pane by ID. Returns the new pane handle or null. */
114
+ splitPane: (id: number, direction: ResttyPaneSplitDirection) => ResttyPaneHandle | null;
115
+ /** Close a pane by ID. Returns true if successful. */
116
+ closePane: (id: number) => boolean;
117
+ /** Set the active pane. */
118
+ setActivePane: (id: number, options?: {
119
+ focus?: boolean;
120
+ }) => void;
121
+ /** Get all pane handles. */
122
+ panes: () => ResttyPaneHandle[];
123
+ /** Get the active pane handle. */
124
+ activePane: () => ResttyPaneHandle | null;
125
+ /** Get the focused pane handle. */
126
+ focusedPane: () => ResttyPaneHandle | null;
127
+ /** Switch the GPU renderer at runtime. */
128
+ setRenderer: (value: 'auto' | 'webgpu' | 'webgl2') => void;
129
+ /** Pause or resume GPU rendering. */
130
+ setPaused: (value: boolean) => void;
131
+ /** Toggle the pause state. */
132
+ togglePause: () => void;
133
+ /** Get the active renderer backend name. */
134
+ getBackend: () => string;
135
+ /** Update the font size. */
136
+ setFontSize: (size: number) => void;
137
+ /** Replace the font sources. */
138
+ setFontSources: (sources: ResttyFontSource[]) => Promise<void>;
139
+ /** Apply a Ghostty theme. */
140
+ applyTheme: (theme: GhosttyTheme, sourceLabel?: string) => void;
141
+ /** Reset to the default theme. */
142
+ resetTheme: () => void;
143
+ /** Clear the terminal screen and scrollback. */
144
+ clear: () => void;
145
+ /** Focus the terminal for keyboard input. */
146
+ focus: () => void;
147
+ /** Remove focus from the terminal. */
148
+ blur: () => void;
149
+ /** Resize the terminal grid to explicit dimensions. */
150
+ resize: (cols: number, rows: number) => void;
151
+ /** Recalculate terminal dimensions from the canvas size. */
152
+ updateSize: (force?: boolean) => void;
153
+ /** Copy the current text selection to the clipboard. */
154
+ copySelection: () => Promise<boolean>;
155
+ /** Paste clipboard contents into the terminal. */
156
+ pasteClipboard: () => Promise<boolean>;
157
+ /** Load a plugin. */
158
+ use: (plugin: ResttyPlugin, options?: unknown) => void;
159
+ /** Unload a plugin by ID. */
160
+ unloadPlugin: (pluginId: string) => boolean;
161
+ /** Get info for all active plugins. */
162
+ getActivePlugins: () => ResttyPluginInfo[];
163
+ /** Get info for a specific plugin. Returns null if not found. */
164
+ getPluginInfo: (pluginId: string) => ResttyPluginInfo | null;
165
+ }
166
+ //# sourceMappingURL=ResttyTerminal.types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ResttyTerminal.types.d.ts","sourceRoot":"","sources":["../../../../../src/react-ui/blocks/Terminal/restty/ResttyTerminal.types.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,20 @@
1
+ /**
2
+ * First-class restty integration for React.
3
+ *
4
+ * @module Terminal/restty
5
+ */
6
+ export { ResttyTerminal } from './ResttyTerminal';
7
+ export { ResttySessionProvider, useResttySession } from './ResttySessionProvider';
8
+ export type { IResttySessionProviderProps, IResttySessionContextValue } from './ResttySessionProvider';
9
+ export { ResttyProvider, useRestty } from './ResttyContext';
10
+ export type { IResttyContextValue } from './ResttyContext';
11
+ export { useResttyPane } from './useResttyPane';
12
+ export type { IUseResttyPaneReturn } from './useResttyPane';
13
+ export { useResttyPanes } from './useResttyPanes';
14
+ export type { IUseResttyPanesReturn } from './useResttyPanes';
15
+ export { useResttyVisibility } from './useResttyVisibility';
16
+ export type { IUseResttyVisibilityOptions } from './useResttyVisibility';
17
+ export { useResttyPlugins } from './useResttyPlugins';
18
+ export type { IUseResttyPluginsReturn } from './useResttyPlugins';
19
+ export type { IResttyTerminalProps, IResttyTerminalRef, Restty, ResttyPlugin, ResttyPluginInfo, ResttyPaneHandle, ResttyFontSource, ResttyPaneSplitDirection, GhosttyTheme, } from './ResttyTerminal.types';
20
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/react-ui/blocks/Terminal/restty/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAGlD,OAAO,EAAE,qBAAqB,EAAE,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAClF,YAAY,EAAE,2BAA2B,EAAE,0BAA0B,EAAE,MAAM,yBAAyB,CAAC;AAGvG,OAAO,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,iBAAiB,CAAC;AAC5D,YAAY,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AAG3D,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAC;AAChD,YAAY,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AAE5D,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAC;AAClD,YAAY,EAAE,qBAAqB,EAAE,MAAM,kBAAkB,CAAC;AAE9D,OAAO,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAC5D,YAAY,EAAE,2BAA2B,EAAE,MAAM,uBAAuB,CAAC;AAEzE,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,YAAY,EAAE,uBAAuB,EAAE,MAAM,oBAAoB,CAAC;AAGlE,YAAY,EACV,oBAAoB,EACpB,kBAAkB,EAClB,MAAM,EACN,YAAY,EACZ,gBAAgB,EAChB,gBAAgB,EAChB,gBAAgB,EAChB,wBAAwB,EACxB,YAAY,GACb,MAAM,wBAAwB,CAAC"}
@@ -0,0 +1,7 @@
1
+ import { ResttyProvider, useRestty } from "./ResttyContext.js";
2
+ import { ResttySessionProvider, useResttySession } from "./ResttySessionProvider.js";
3
+ import { ResttyTerminal } from "./ResttyTerminal.js";
4
+ import { useResttyPane } from "./useResttyPane.js";
5
+ import { useResttyPanes } from "./useResttyPanes.js";
6
+ import { useResttyVisibility } from "./useResttyVisibility.js";
7
+ import { useResttyPlugins } from "./useResttyPlugins.js";
@@ -0,0 +1,51 @@
1
+ /**
2
+ * useResttyPane — per-pane operations hook.
3
+ *
4
+ * Operates on the active pane when no paneId is specified.
5
+ *
6
+ * @example
7
+ * ```tsx
8
+ * const { pane, split, close, sendInput } = useResttyPane();
9
+ * split("vertical");
10
+ * sendInput("ls -la\n");
11
+ * ```
12
+ *
13
+ * @module Terminal/restty/useResttyPane
14
+ */
15
+ import type { ResttyPaneHandle, ResttyPaneSplitDirection } from '@mks2508/restty';
16
+ /**
17
+ * Return type of the useResttyPane hook.
18
+ */
19
+ export interface IUseResttyPaneReturn {
20
+ /** The resolved pane handle, or null if not found/ready. */
21
+ pane: ResttyPaneHandle | null;
22
+ /** Split this pane in the given direction. */
23
+ split: (direction: ResttyPaneSplitDirection) => ResttyPaneHandle | null;
24
+ /** Close this pane. */
25
+ close: () => boolean;
26
+ /** Focus this pane. */
27
+ focus: () => void;
28
+ /** Send raw input to this pane's PTY. */
29
+ sendInput: (text: string, source?: string) => void;
30
+ /** Send encoded key input to this pane's PTY. */
31
+ sendKeyInput: (text: string, source?: string) => void;
32
+ /** Pause or resume rendering for this pane. */
33
+ setPaused: (paused: boolean) => void;
34
+ /** Switch the renderer for this pane. */
35
+ setRenderer: (value: 'auto' | 'webgpu' | 'webgl2') => void;
36
+ /** Check if this pane's PTY is connected. */
37
+ isPtyConnected: () => boolean;
38
+ /** Connect this pane's PTY to a URL. */
39
+ connectPty: (url?: string) => void;
40
+ /** Disconnect this pane's PTY. */
41
+ disconnectPty: () => void;
42
+ /** Clear this pane's screen. */
43
+ clear: () => void;
44
+ }
45
+ /**
46
+ * Hook for operating on an individual restty pane.
47
+ *
48
+ * @param paneId - Target pane ID. If omitted, operates on the active pane.
49
+ */
50
+ export declare function useResttyPane(paneId?: number): IUseResttyPaneReturn;
51
+ //# sourceMappingURL=useResttyPane.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useResttyPane.d.ts","sourceRoot":"","sources":["../../../../../src/react-ui/blocks/Terminal/restty/useResttyPane.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAKH,OAAO,KAAK,EAAE,gBAAgB,EAAE,wBAAwB,EAAE,MAAM,iBAAiB,CAAC;AAGlF;;GAEG;AACH,MAAM,WAAW,oBAAoB;IACnC,4DAA4D;IAC5D,IAAI,EAAE,gBAAgB,GAAG,IAAI,CAAC;IAC9B,8CAA8C;IAC9C,KAAK,EAAE,CAAC,SAAS,EAAE,wBAAwB,KAAK,gBAAgB,GAAG,IAAI,CAAC;IACxE,uBAAuB;IACvB,KAAK,EAAE,MAAM,OAAO,CAAC;IACrB,uBAAuB;IACvB,KAAK,EAAE,MAAM,IAAI,CAAC;IAClB,yCAAyC;IACzC,SAAS,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;IACnD,iDAAiD;IACjD,YAAY,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;IACtD,+CAA+C;IAC/C,SAAS,EAAE,CAAC,MAAM,EAAE,OAAO,KAAK,IAAI,CAAC;IACrC,yCAAyC;IACzC,WAAW,EAAE,CAAC,KAAK,EAAE,MAAM,GAAG,QAAQ,GAAG,QAAQ,KAAK,IAAI,CAAC;IAC3D,6CAA6C;IAC7C,cAAc,EAAE,MAAM,OAAO,CAAC;IAC9B,wCAAwC;IACxC,UAAU,EAAE,CAAC,GAAG,CAAC,EAAE,MAAM,KAAK,IAAI,CAAC;IACnC,kCAAkC;IAClC,aAAa,EAAE,MAAM,IAAI,CAAC;IAC1B,gCAAgC;IAChC,KAAK,EAAE,MAAM,IAAI,CAAC;CACnB;AAED;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,MAAM,CAAC,EAAE,MAAM,GAAG,oBAAoB,CAgCnE"}