@termaxjs/web-ui-components 0.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (391) hide show
  1. package/LICENSE +201 -0
  2. package/dist/ai/AgentStatusPill.d.ts +13 -0
  3. package/dist/ai/AgentStatusPill.d.ts.map +1 -0
  4. package/dist/ai/AgentStatusPill.js +28 -0
  5. package/dist/ai/AgentStatusPill.js.map +1 -0
  6. package/dist/ai/AiToolApproval.d.ts +12 -0
  7. package/dist/ai/AiToolApproval.d.ts.map +1 -0
  8. package/dist/ai/AiToolApproval.js +63 -0
  9. package/dist/ai/AiToolApproval.js.map +1 -0
  10. package/dist/ai/Chip.d.ts +17 -0
  11. package/dist/ai/Chip.d.ts.map +1 -0
  12. package/dist/ai/Chip.js +39 -0
  13. package/dist/ai/Chip.js.map +1 -0
  14. package/dist/ai/ChipsRow.d.ts +35 -0
  15. package/dist/ai/ChipsRow.d.ts.map +1 -0
  16. package/dist/ai/ChipsRow.js +32 -0
  17. package/dist/ai/ChipsRow.js.map +1 -0
  18. package/dist/ai/TodoStrip.d.ts +11 -0
  19. package/dist/ai/TodoStrip.d.ts.map +1 -0
  20. package/dist/ai/TodoStrip.js +27 -0
  21. package/dist/ai/TodoStrip.js.map +1 -0
  22. package/dist/ai/index.d.ts +6 -0
  23. package/dist/ai/index.d.ts.map +1 -0
  24. package/dist/ai/index.js +6 -0
  25. package/dist/ai/index.js.map +1 -0
  26. package/dist/command-palette/CommandPaletteDialog.d.ts +19 -0
  27. package/dist/command-palette/CommandPaletteDialog.d.ts.map +1 -0
  28. package/dist/command-palette/CommandPaletteDialog.js +23 -0
  29. package/dist/command-palette/CommandPaletteDialog.js.map +1 -0
  30. package/dist/command-palette/index.d.ts +2 -0
  31. package/dist/command-palette/index.d.ts.map +1 -0
  32. package/dist/command-palette/index.js +2 -0
  33. package/dist/command-palette/index.js.map +1 -0
  34. package/dist/explorer/ExplorerSearch.d.ts +35 -0
  35. package/dist/explorer/ExplorerSearch.d.ts.map +1 -0
  36. package/dist/explorer/ExplorerSearch.js +153 -0
  37. package/dist/explorer/ExplorerSearch.js.map +1 -0
  38. package/dist/explorer/FileTree.d.ts +65 -0
  39. package/dist/explorer/FileTree.d.ts.map +1 -0
  40. package/dist/explorer/FileTree.js +205 -0
  41. package/dist/explorer/FileTree.js.map +1 -0
  42. package/dist/explorer/InlineInput.d.ts +14 -0
  43. package/dist/explorer/InlineInput.d.ts.map +1 -0
  44. package/dist/explorer/InlineInput.js +77 -0
  45. package/dist/explorer/InlineInput.js.map +1 -0
  46. package/dist/explorer/TreeRow.d.ts +64 -0
  47. package/dist/explorer/TreeRow.d.ts.map +1 -0
  48. package/dist/explorer/TreeRow.js +100 -0
  49. package/dist/explorer/TreeRow.js.map +1 -0
  50. package/dist/explorer/constants.d.ts +12 -0
  51. package/dist/explorer/constants.d.ts.map +1 -0
  52. package/dist/explorer/constants.js +72 -0
  53. package/dist/explorer/constants.js.map +1 -0
  54. package/dist/explorer/contextActions.d.ts +5 -0
  55. package/dist/explorer/contextActions.d.ts.map +1 -0
  56. package/dist/explorer/contextActions.js +38 -0
  57. package/dist/explorer/contextActions.js.map +1 -0
  58. package/dist/explorer/iconMap.json +1 -0
  59. package/dist/explorer/iconResolver.d.ts +3 -0
  60. package/dist/explorer/iconResolver.d.ts.map +1 -0
  61. package/dist/explorer/iconResolver.js +98 -0
  62. package/dist/explorer/iconResolver.js.map +1 -0
  63. package/dist/explorer/index.d.ts +8 -0
  64. package/dist/explorer/index.d.ts.map +1 -0
  65. package/dist/explorer/index.js +8 -0
  66. package/dist/explorer/index.js.map +1 -0
  67. package/dist/explorer/menuItemClass.d.ts +3 -0
  68. package/dist/explorer/menuItemClass.d.ts.map +1 -0
  69. package/dist/explorer/menuItemClass.js +6 -0
  70. package/dist/explorer/menuItemClass.js.map +1 -0
  71. package/dist/explorer/types.d.ts +2 -0
  72. package/dist/explorer/types.d.ts.map +1 -0
  73. package/dist/explorer/types.js +2 -0
  74. package/dist/explorer/types.js.map +1 -0
  75. package/dist/index.d.ts +11 -0
  76. package/dist/index.d.ts.map +1 -0
  77. package/dist/index.js +11 -0
  78. package/dist/index.js.map +1 -0
  79. package/dist/layout/PaneChip.d.ts +13 -0
  80. package/dist/layout/PaneChip.d.ts.map +1 -0
  81. package/dist/layout/PaneChip.js +19 -0
  82. package/dist/layout/PaneChip.js.map +1 -0
  83. package/dist/layout/TabBar.d.ts +36 -0
  84. package/dist/layout/TabBar.d.ts.map +1 -0
  85. package/dist/layout/TabBar.js +237 -0
  86. package/dist/layout/TabBar.js.map +1 -0
  87. package/dist/layout/TabItem.d.ts +19 -0
  88. package/dist/layout/TabItem.d.ts.map +1 -0
  89. package/dist/layout/TabItem.js +66 -0
  90. package/dist/layout/TabItem.js.map +1 -0
  91. package/dist/layout/index.d.ts +7 -0
  92. package/dist/layout/index.d.ts.map +1 -0
  93. package/dist/layout/index.js +7 -0
  94. package/dist/layout/index.js.map +1 -0
  95. package/dist/layout/leafState.d.ts +15 -0
  96. package/dist/layout/leafState.d.ts.map +1 -0
  97. package/dist/layout/leafState.js +70 -0
  98. package/dist/layout/leafState.js.map +1 -0
  99. package/dist/layout/resizable.d.ts +31 -0
  100. package/dist/layout/resizable.d.ts.map +1 -0
  101. package/dist/layout/resizable.js +16 -0
  102. package/dist/layout/resizable.js.map +1 -0
  103. package/dist/layout/tabLabel.d.ts +9 -0
  104. package/dist/layout/tabLabel.d.ts.map +1 -0
  105. package/dist/layout/tabLabel.js +31 -0
  106. package/dist/layout/tabLabel.js.map +1 -0
  107. package/dist/primitives/alert-dialog.d.ts +19 -0
  108. package/dist/primitives/alert-dialog.d.ts.map +1 -0
  109. package/dist/primitives/alert-dialog.js +42 -0
  110. package/dist/primitives/alert-dialog.js.map +1 -0
  111. package/dist/primitives/alert.d.ts +11 -0
  112. package/dist/primitives/alert.d.ts.map +1 -0
  113. package/dist/primitives/alert.js +28 -0
  114. package/dist/primitives/alert.js.map +1 -0
  115. package/dist/primitives/badge.d.ts +10 -0
  116. package/dist/primitives/badge.d.ts.map +1 -0
  117. package/dist/primitives/badge.js +25 -0
  118. package/dist/primitives/badge.js.map +1 -0
  119. package/dist/primitives/breadcrumb.d.ts +12 -0
  120. package/dist/primitives/breadcrumb.d.ts.map +1 -0
  121. package/dist/primitives/breadcrumb.js +29 -0
  122. package/dist/primitives/breadcrumb.js.map +1 -0
  123. package/dist/primitives/button-group.d.ts +12 -0
  124. package/dist/primitives/button-group.d.ts.map +1 -0
  125. package/dist/primitives/button-group.js +28 -0
  126. package/dist/primitives/button-group.js.map +1 -0
  127. package/dist/primitives/button.d.ts +11 -0
  128. package/dist/primitives/button.d.ts.map +1 -0
  129. package/dist/primitives/button.js +36 -0
  130. package/dist/primitives/button.js.map +1 -0
  131. package/dist/primitives/card.d.ts +12 -0
  132. package/dist/primitives/card.d.ts.map +1 -0
  133. package/dist/primitives/card.js +25 -0
  134. package/dist/primitives/card.js.map +1 -0
  135. package/dist/primitives/checkbox.d.ts +5 -0
  136. package/dist/primitives/checkbox.d.ts.map +1 -0
  137. package/dist/primitives/checkbox.js +10 -0
  138. package/dist/primitives/checkbox.js.map +1 -0
  139. package/dist/primitives/collapsible.d.ts +6 -0
  140. package/dist/primitives/collapsible.d.ts.map +1 -0
  141. package/dist/primitives/collapsible.js +13 -0
  142. package/dist/primitives/collapsible.js.map +1 -0
  143. package/dist/primitives/command.d.ts +36 -0
  144. package/dist/primitives/command.d.ts.map +1 -0
  145. package/dist/primitives/command.js +103 -0
  146. package/dist/primitives/command.js.map +1 -0
  147. package/dist/primitives/context-menu.d.ts +41 -0
  148. package/dist/primitives/context-menu.d.ts.map +1 -0
  149. package/dist/primitives/context-menu.js +83 -0
  150. package/dist/primitives/context-menu.js.map +1 -0
  151. package/dist/primitives/dialog.d.ts +18 -0
  152. package/dist/primitives/dialog.d.ts.map +1 -0
  153. package/dist/primitives/dialog.js +38 -0
  154. package/dist/primitives/dialog.js.map +1 -0
  155. package/dist/primitives/dropdown-menu.d.ts +30 -0
  156. package/dist/primitives/dropdown-menu.d.ts.map +1 -0
  157. package/dist/primitives/dropdown-menu.js +52 -0
  158. package/dist/primitives/dropdown-menu.js.map +1 -0
  159. package/dist/primitives/empty.d.ts +12 -0
  160. package/dist/primitives/empty.d.ts.map +1 -0
  161. package/dist/primitives/empty.js +34 -0
  162. package/dist/primitives/empty.js.map +1 -0
  163. package/dist/primitives/hover-card.d.ts +7 -0
  164. package/dist/primitives/hover-card.d.ts.map +1 -0
  165. package/dist/primitives/hover-card.js +14 -0
  166. package/dist/primitives/hover-card.js.map +1 -0
  167. package/dist/primitives/index.d.ts +40 -0
  168. package/dist/primitives/index.d.ts.map +1 -0
  169. package/dist/primitives/index.js +40 -0
  170. package/dist/primitives/index.js.map +1 -0
  171. package/dist/primitives/input-group.d.ts +17 -0
  172. package/dist/primitives/input-group.d.ts.map +1 -0
  173. package/dist/primitives/input-group.js +59 -0
  174. package/dist/primitives/input-group.js.map +1 -0
  175. package/dist/primitives/input.d.ts +4 -0
  176. package/dist/primitives/input.d.ts.map +1 -0
  177. package/dist/primitives/input.js +7 -0
  178. package/dist/primitives/input.js.map +1 -0
  179. package/dist/primitives/item.d.ts +24 -0
  180. package/dist/primitives/item.d.ts.map +1 -0
  181. package/dist/primitives/item.js +68 -0
  182. package/dist/primitives/item.js.map +1 -0
  183. package/dist/primitives/kbd.d.ts +4 -0
  184. package/dist/primitives/kbd.d.ts.map +1 -0
  185. package/dist/primitives/kbd.js +10 -0
  186. package/dist/primitives/kbd.js.map +1 -0
  187. package/dist/primitives/label.d.ts +5 -0
  188. package/dist/primitives/label.d.ts.map +1 -0
  189. package/dist/primitives/label.js +8 -0
  190. package/dist/primitives/label.js.map +1 -0
  191. package/dist/primitives/menubar.d.ts +31 -0
  192. package/dist/primitives/menubar.d.ts.map +1 -0
  193. package/dist/primitives/menubar.js +55 -0
  194. package/dist/primitives/menubar.js.map +1 -0
  195. package/dist/primitives/popover.d.ts +11 -0
  196. package/dist/primitives/popover.d.ts.map +1 -0
  197. package/dist/primitives/popover.js +27 -0
  198. package/dist/primitives/popover.js.map +1 -0
  199. package/dist/primitives/progress.d.ts +5 -0
  200. package/dist/primitives/progress.d.ts.map +1 -0
  201. package/dist/primitives/progress.js +8 -0
  202. package/dist/primitives/progress.js.map +1 -0
  203. package/dist/primitives/radio-group.d.ts +6 -0
  204. package/dist/primitives/radio-group.d.ts.map +1 -0
  205. package/dist/primitives/radio-group.js +11 -0
  206. package/dist/primitives/radio-group.js.map +1 -0
  207. package/dist/primitives/resizable.d.ts +31 -0
  208. package/dist/primitives/resizable.d.ts.map +1 -0
  209. package/dist/primitives/resizable.js +16 -0
  210. package/dist/primitives/resizable.js.map +1 -0
  211. package/dist/primitives/scroll-area.d.ts +6 -0
  212. package/dist/primitives/scroll-area.d.ts.map +1 -0
  213. package/dist/primitives/scroll-area.js +11 -0
  214. package/dist/primitives/scroll-area.js.map +1 -0
  215. package/dist/primitives/select.d.ts +16 -0
  216. package/dist/primitives/select.d.ts.map +1 -0
  217. package/dist/primitives/select.js +37 -0
  218. package/dist/primitives/select.js.map +1 -0
  219. package/dist/primitives/separator.d.ts +5 -0
  220. package/dist/primitives/separator.d.ts.map +1 -0
  221. package/dist/primitives/separator.js +8 -0
  222. package/dist/primitives/separator.js.map +1 -0
  223. package/dist/primitives/sheet.d.ts +15 -0
  224. package/dist/primitives/sheet.d.ts.map +1 -0
  225. package/dist/primitives/sheet.js +38 -0
  226. package/dist/primitives/sheet.js.map +1 -0
  227. package/dist/primitives/skeleton.d.ts +3 -0
  228. package/dist/primitives/skeleton.d.ts.map +1 -0
  229. package/dist/primitives/skeleton.js +7 -0
  230. package/dist/primitives/skeleton.js.map +1 -0
  231. package/dist/primitives/slider.d.ts +5 -0
  232. package/dist/primitives/slider.d.ts.map +1 -0
  233. package/dist/primitives/slider.js +14 -0
  234. package/dist/primitives/slider.js.map +1 -0
  235. package/dist/primitives/sonner.d.ts +5 -0
  236. package/dist/primitives/sonner.d.ts.map +1 -0
  237. package/dist/primitives/sonner.js +12 -0
  238. package/dist/primitives/sonner.js.map +1 -0
  239. package/dist/primitives/spinner.d.ts +3 -0
  240. package/dist/primitives/spinner.d.ts.map +1 -0
  241. package/dist/primitives/spinner.js +11 -0
  242. package/dist/primitives/spinner.js.map +1 -0
  243. package/dist/primitives/switch.d.ts +7 -0
  244. package/dist/primitives/switch.d.ts.map +1 -0
  245. package/dist/primitives/switch.js +18 -0
  246. package/dist/primitives/switch.js.map +1 -0
  247. package/dist/primitives/tabs.d.ts +12 -0
  248. package/dist/primitives/tabs.d.ts.map +1 -0
  249. package/dist/primitives/tabs.js +29 -0
  250. package/dist/primitives/tabs.js.map +1 -0
  251. package/dist/primitives/textarea.d.ts +4 -0
  252. package/dist/primitives/textarea.d.ts.map +1 -0
  253. package/dist/primitives/textarea.js +7 -0
  254. package/dist/primitives/textarea.js.map +1 -0
  255. package/dist/primitives/toggle-group.d.ts +11 -0
  256. package/dist/primitives/toggle-group.d.ts.map +1 -0
  257. package/dist/primitives/toggle-group.js +24 -0
  258. package/dist/primitives/toggle-group.js.map +1 -0
  259. package/dist/primitives/toggle.d.ts +10 -0
  260. package/dist/primitives/toggle.d.ts.map +1 -0
  261. package/dist/primitives/toggle.js +26 -0
  262. package/dist/primitives/toggle.js.map +1 -0
  263. package/dist/primitives/tooltip.d.ts +8 -0
  264. package/dist/primitives/tooltip.d.ts.map +1 -0
  265. package/dist/primitives/tooltip.js +18 -0
  266. package/dist/primitives/tooltip.js.map +1 -0
  267. package/dist/settings/SettingGroup.d.ts +8 -0
  268. package/dist/settings/SettingGroup.d.ts.map +1 -0
  269. package/dist/settings/SettingGroup.js +7 -0
  270. package/dist/settings/SettingGroup.js.map +1 -0
  271. package/dist/settings/SettingRow.d.ts +58 -0
  272. package/dist/settings/SettingRow.d.ts.map +1 -0
  273. package/dist/settings/SettingRow.js +54 -0
  274. package/dist/settings/SettingRow.js.map +1 -0
  275. package/dist/settings/SettingsFormBuilder.d.ts +11 -0
  276. package/dist/settings/SettingsFormBuilder.d.ts.map +1 -0
  277. package/dist/settings/SettingsFormBuilder.js +43 -0
  278. package/dist/settings/SettingsFormBuilder.js.map +1 -0
  279. package/dist/settings/index.d.ts +4 -0
  280. package/dist/settings/index.d.ts.map +1 -0
  281. package/dist/settings/index.js +4 -0
  282. package/dist/settings/index.js.map +1 -0
  283. package/dist/shell/HeaderBar.d.ts +10 -0
  284. package/dist/shell/HeaderBar.d.ts.map +1 -0
  285. package/dist/shell/HeaderBar.js +6 -0
  286. package/dist/shell/HeaderBar.js.map +1 -0
  287. package/dist/shell/StatusBar.d.ts +9 -0
  288. package/dist/shell/StatusBar.d.ts.map +1 -0
  289. package/dist/shell/StatusBar.js +6 -0
  290. package/dist/shell/StatusBar.js.map +1 -0
  291. package/dist/shell/index.d.ts +3 -0
  292. package/dist/shell/index.d.ts.map +1 -0
  293. package/dist/shell/index.js +3 -0
  294. package/dist/shell/index.js.map +1 -0
  295. package/dist/source-control/BranchSwitcher.d.ts +14 -0
  296. package/dist/source-control/BranchSwitcher.d.ts.map +1 -0
  297. package/dist/source-control/BranchSwitcher.js +10 -0
  298. package/dist/source-control/BranchSwitcher.js.map +1 -0
  299. package/dist/source-control/CommitRow.d.ts +15 -0
  300. package/dist/source-control/CommitRow.d.ts.map +1 -0
  301. package/dist/source-control/CommitRow.js +20 -0
  302. package/dist/source-control/CommitRow.js.map +1 -0
  303. package/dist/source-control/EntryRow.d.ts +25 -0
  304. package/dist/source-control/EntryRow.d.ts.map +1 -0
  305. package/dist/source-control/EntryRow.js +67 -0
  306. package/dist/source-control/EntryRow.js.map +1 -0
  307. package/dist/source-control/GraphRail.d.ts +14 -0
  308. package/dist/source-control/GraphRail.d.ts.map +1 -0
  309. package/dist/source-control/GraphRail.js +49 -0
  310. package/dist/source-control/GraphRail.js.map +1 -0
  311. package/dist/source-control/InlineHunkView.d.ts +22 -0
  312. package/dist/source-control/InlineHunkView.d.ts.map +1 -0
  313. package/dist/source-control/InlineHunkView.js +95 -0
  314. package/dist/source-control/InlineHunkView.js.map +1 -0
  315. package/dist/source-control/SourceControlActions.d.ts +15 -0
  316. package/dist/source-control/SourceControlActions.d.ts.map +1 -0
  317. package/dist/source-control/SourceControlActions.js +38 -0
  318. package/dist/source-control/SourceControlActions.js.map +1 -0
  319. package/dist/source-control/SourceControlPanel.d.ts +21 -0
  320. package/dist/source-control/SourceControlPanel.d.ts.map +1 -0
  321. package/dist/source-control/SourceControlPanel.js +300 -0
  322. package/dist/source-control/SourceControlPanel.js.map +1 -0
  323. package/dist/source-control/SourceControlStatusViews.d.ts +20 -0
  324. package/dist/source-control/SourceControlStatusViews.d.ts.map +1 -0
  325. package/dist/source-control/SourceControlStatusViews.js +18 -0
  326. package/dist/source-control/SourceControlStatusViews.js.map +1 -0
  327. package/dist/source-control/StashSection.d.ts +13 -0
  328. package/dist/source-control/StashSection.d.ts.map +1 -0
  329. package/dist/source-control/StashSection.js +14 -0
  330. package/dist/source-control/StashSection.js.map +1 -0
  331. package/dist/source-control/highlight.d.ts +8 -0
  332. package/dist/source-control/highlight.d.ts.map +1 -0
  333. package/dist/source-control/highlight.js +15 -0
  334. package/dist/source-control/highlight.js.map +1 -0
  335. package/dist/source-control/index.d.ts +12 -0
  336. package/dist/source-control/index.d.ts.map +1 -0
  337. package/dist/source-control/index.js +12 -0
  338. package/dist/source-control/index.js.map +1 -0
  339. package/dist/source-control/sourceControlHelpers.d.ts +27 -0
  340. package/dist/source-control/sourceControlHelpers.d.ts.map +1 -0
  341. package/dist/source-control/sourceControlHelpers.js +51 -0
  342. package/dist/source-control/sourceControlHelpers.js.map +1 -0
  343. package/dist/utils/cn.d.ts +3 -0
  344. package/dist/utils/cn.d.ts.map +1 -0
  345. package/dist/utils/cn.js +6 -0
  346. package/dist/utils/cn.js.map +1 -0
  347. package/dist/utils/index.d.ts +2 -0
  348. package/dist/utils/index.d.ts.map +1 -0
  349. package/dist/utils/index.js +2 -0
  350. package/dist/utils/index.js.map +1 -0
  351. package/dist/utils/isTauri.d.ts +2 -0
  352. package/dist/utils/isTauri.d.ts.map +1 -0
  353. package/dist/utils/isTauri.js +2 -0
  354. package/dist/utils/isTauri.js.map +1 -0
  355. package/dist/utils/mockCore.d.ts +6 -0
  356. package/dist/utils/mockCore.d.ts.map +1 -0
  357. package/dist/utils/mockCore.js +3 -0
  358. package/dist/utils/mockCore.js.map +1 -0
  359. package/dist/utils/mockFs.d.ts +10 -0
  360. package/dist/utils/mockFs.d.ts.map +1 -0
  361. package/dist/utils/mockFs.js +10 -0
  362. package/dist/utils/mockFs.js.map +1 -0
  363. package/dist/utils/mockSettings.d.ts +3 -0
  364. package/dist/utils/mockSettings.d.ts.map +1 -0
  365. package/dist/utils/mockSettings.js +3 -0
  366. package/dist/utils/mockSettings.js.map +1 -0
  367. package/dist/utils/mockShortcuts.d.ts +2 -0
  368. package/dist/utils/mockShortcuts.d.ts.map +1 -0
  369. package/dist/utils/mockShortcuts.js +2 -0
  370. package/dist/utils/mockShortcuts.js.map +1 -0
  371. package/dist/utils/mockSpaces.d.ts +4 -0
  372. package/dist/utils/mockSpaces.d.ts.map +1 -0
  373. package/dist/utils/mockSpaces.js +2 -0
  374. package/dist/utils/mockSpaces.js.map +1 -0
  375. package/dist/utils/mockTauri.d.ts +5 -0
  376. package/dist/utils/mockTauri.d.ts.map +1 -0
  377. package/dist/utils/mockTauri.js +3 -0
  378. package/dist/utils/mockTauri.js.map +1 -0
  379. package/dist/utils/mockWorkspace.d.ts +2 -0
  380. package/dist/utils/mockWorkspace.d.ts.map +1 -0
  381. package/dist/utils/mockWorkspace.js +2 -0
  382. package/dist/utils/mockWorkspace.js.map +1 -0
  383. package/dist/utils/platform.d.ts +5 -0
  384. package/dist/utils/platform.d.ts.map +1 -0
  385. package/dist/utils/platform.js +8 -0
  386. package/dist/utils/platform.js.map +1 -0
  387. package/dist/utils/shellQuote.d.ts +2 -0
  388. package/dist/utils/shellQuote.d.ts.map +1 -0
  389. package/dist/utils/shellQuote.js +7 -0
  390. package/dist/utils/shellQuote.js.map +1 -0
  391. package/package.json +118 -0
@@ -0,0 +1,18 @@
1
+ "use client";
2
+ import { jsx as _jsx } from "react/jsx-runtime";
3
+ import { Tooltip as TooltipPrimitive } from "radix-ui";
4
+ import { cn } from "../utils/cn.js";
5
+ function TooltipProvider({ delayDuration = 300, ...props }) {
6
+ return (_jsx(TooltipPrimitive.Provider, { "data-slot": "tooltip-provider", delayDuration: delayDuration, ...props }));
7
+ }
8
+ function Tooltip({ ...props }) {
9
+ return _jsx(TooltipPrimitive.Root, { "data-slot": "tooltip", ...props });
10
+ }
11
+ function TooltipTrigger({ ...props }) {
12
+ return _jsx(TooltipPrimitive.Trigger, { "data-slot": "tooltip-trigger", ...props });
13
+ }
14
+ function TooltipContent({ className, sideOffset = 0, children, ...props }) {
15
+ return (_jsx(TooltipPrimitive.Portal, { children: _jsx(TooltipPrimitive.Content, { "data-slot": "tooltip-content", sideOffset: sideOffset, className: cn("z-50 inline-flex w-fit max-w-xs origin-(--radix-tooltip-content-transform-origin) items-center gap-1.5 rounded-xl bg-foreground px-3 py-1.5 text-xs text-background has-data-[slot=kbd]:pr-1.5 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 **:data-[slot=kbd]:relative **:data-[slot=kbd]:isolate **:data-[slot=kbd]:z-50 **:data-[slot=kbd]:rounded-lg data-[state=delayed-open]:animate-in data-[state=delayed-open]:fade-in-0 data-[state=delayed-open]:zoom-in-95 data-open:animate-in data-open:fade-in-0 data-open:zoom-in-95 data-closed:animate-out data-closed:fade-out-0 data-closed:zoom-out-95", className), ...props, children: children }) }));
16
+ }
17
+ export { Tooltip, TooltipContent, TooltipProvider, TooltipTrigger };
18
+ //# sourceMappingURL=tooltip.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tooltip.js","sourceRoot":"","sources":["../../src/primitives/tooltip.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAA;;AAGZ,OAAO,EAAE,OAAO,IAAI,gBAAgB,EAAE,MAAM,UAAU,CAAA;AAEtD,OAAO,EAAE,EAAE,EAAE,MAAM,gBAAgB,CAAA;AAEnC,SAAS,eAAe,CAAC,EACvB,aAAa,GAAG,GAAG,EACnB,GAAG,KAAK,EAC+C;IACvD,OAAO,CACL,KAAC,gBAAgB,CAAC,QAAQ,iBACd,kBAAkB,EAC5B,aAAa,EAAE,aAAa,KACxB,KAAK,GACT,CACH,CAAA;AACH,CAAC;AAED,SAAS,OAAO,CAAC,EACf,GAAG,KAAK,EAC2C;IACnD,OAAO,KAAC,gBAAgB,CAAC,IAAI,iBAAW,SAAS,KAAK,KAAK,GAAI,CAAA;AACjE,CAAC;AAED,SAAS,cAAc,CAAC,EACtB,GAAG,KAAK,EAC8C;IACtD,OAAO,KAAC,gBAAgB,CAAC,OAAO,iBAAW,iBAAiB,KAAK,KAAK,GAAI,CAAA;AAC5E,CAAC;AAED,SAAS,cAAc,CAAC,EACtB,SAAS,EACT,UAAU,GAAG,CAAC,EACd,QAAQ,EACR,GAAG,KAAK,EAC8C;IACtD,OAAO,CACL,KAAC,gBAAgB,CAAC,MAAM,cACtB,KAAC,gBAAgB,CAAC,OAAO,iBACb,iBAAiB,EAC3B,UAAU,EAAE,UAAU,EACtB,SAAS,EAAE,EAAE,CACX,4rBAA4rB,EAC5rB,SAAS,CACV,KACG,KAAK,YAER,QAAQ,GACgB,GACH,CAC3B,CAAA;AACH,CAAC;AAED,OAAO,EAAE,OAAO,EAAE,cAAc,EAAE,eAAe,EAAE,cAAc,EAAE,CAAA"}
@@ -0,0 +1,8 @@
1
+ import * as React from "react";
2
+ interface SettingGroupProps extends React.HTMLAttributes<HTMLDivElement> {
3
+ title?: string;
4
+ description?: string;
5
+ }
6
+ export declare function SettingGroup({ className, title, description, children, ...props }: SettingGroupProps): React.JSX.Element;
7
+ export {};
8
+ //# sourceMappingURL=SettingGroup.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SettingGroup.d.ts","sourceRoot":"","sources":["../../src/settings/SettingGroup.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAE/B,UAAU,iBAAkB,SAAQ,KAAK,CAAC,cAAc,CAAC,cAAc,CAAC;IACtE,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,wBAAgB,YAAY,CAAC,EAC3B,SAAS,EACT,KAAK,EACL,WAAW,EACX,QAAQ,EACR,GAAG,KAAK,EACT,EAAE,iBAAiB,qBA6BnB"}
@@ -0,0 +1,7 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { cn } from "../utils/cn.js";
3
+ import * as React from "react";
4
+ export function SettingGroup({ className, title, description, children, ...props }) {
5
+ return (_jsxs("div", { className: cn("flex flex-col gap-1.5", className), ...props, children: [(title || description) && (_jsxs("div", { className: "flex flex-col px-1", children: [title && (_jsx("h3", { className: "text-[11px] font-semibold uppercase tracking-wider text-[var(--tx-text-f)]", children: title })), description && (_jsx("p", { className: "text-[11px] text-[var(--tx-text-m)] mt-0.5", children: description }))] })), _jsx("div", { className: "flex flex-col rounded-md border border-[var(--tx-border)]/60 bg-[var(--tx-surface)]/60 overflow-hidden shadow-xs", children: React.Children.map(children, (child, i) => (_jsxs(React.Fragment, { children: [child, i < React.Children.count(children) - 1 && (_jsx("div", { className: "h-[1px] w-full bg-[var(--tx-border)]/40" }))] }, typeof child === "object" && child !== null && "key" in child && child.key != null ? child.key : i))) })] }));
6
+ }
7
+ //# sourceMappingURL=SettingGroup.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SettingGroup.js","sourceRoot":"","sources":["../../src/settings/SettingGroup.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,EAAE,EAAE,MAAM,gBAAgB,CAAC;AACpC,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAO/B,MAAM,UAAU,YAAY,CAAC,EAC3B,SAAS,EACT,KAAK,EACL,WAAW,EACX,QAAQ,EACR,GAAG,KAAK,EACU;IAClB,OAAO,CACL,eAAK,SAAS,EAAE,EAAE,CAAC,uBAAuB,EAAE,SAAS,CAAC,KAAM,KAAK,aAC9D,CAAC,KAAK,IAAI,WAAW,CAAC,IAAI,CACzB,eAAK,SAAS,EAAC,oBAAoB,aAChC,KAAK,IAAI,CACR,aAAI,SAAS,EAAC,4EAA4E,YACvF,KAAK,GACH,CACN,EACA,WAAW,IAAI,CACd,YAAG,SAAS,EAAC,4CAA4C,YACtD,WAAW,GACV,CACL,IACG,CACP,EACD,cAAK,SAAS,EAAC,kHAAkH,YAC9H,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,QAAQ,EAAE,CAAC,KAAK,EAAE,CAAC,EAAE,EAAE,CAAC,CAC1C,MAAC,KAAK,CAAC,QAAQ,eACZ,KAAK,EACL,CAAC,GAAG,KAAK,CAAC,QAAQ,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,CACzC,cAAK,SAAS,EAAC,yCAAyC,GAAG,CAC5D,KAJkB,OAAO,KAAK,KAAK,QAAQ,IAAI,KAAK,KAAK,IAAI,IAAI,KAAK,IAAI,KAAK,IAAI,KAAK,CAAC,GAAG,IAAI,IAAI,CAAC,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAKtG,CAClB,CAAC,GACE,IACF,CACP,CAAC;AACJ,CAAC"}
@@ -0,0 +1,58 @@
1
+ import type * as React from "react";
2
+ interface ToggleProps extends React.HTMLAttributes<HTMLDivElement> {
3
+ title: string;
4
+ description?: React.ReactNode;
5
+ checked: boolean;
6
+ onCheckedChange: (checked: boolean) => void;
7
+ disabled?: boolean;
8
+ }
9
+ declare function Toggle({ title, description, checked, onCheckedChange, disabled, className, ...props }: ToggleProps): React.JSX.Element;
10
+ interface SelectOption {
11
+ value: string;
12
+ label: string;
13
+ }
14
+ interface RowSelectProps extends Omit<React.HTMLAttributes<HTMLDivElement>, "onChange"> {
15
+ title: string;
16
+ description?: React.ReactNode;
17
+ value: string;
18
+ onChange: (value: string) => void;
19
+ options: SelectOption[];
20
+ disabled?: boolean;
21
+ placeholder?: string;
22
+ }
23
+ declare function RowSelect({ title, description, value, onChange, options, disabled, placeholder, className, ...props }: RowSelectProps): React.JSX.Element;
24
+ interface TextProps extends Omit<React.HTMLAttributes<HTMLDivElement>, "onChange"> {
25
+ title: string;
26
+ description?: React.ReactNode;
27
+ value: string;
28
+ onChange: (value: string) => void;
29
+ disabled?: boolean;
30
+ placeholder?: string;
31
+ type?: string;
32
+ }
33
+ declare function Text({ title, description, value, onChange, disabled, placeholder, type, className, ...props }: TextProps): React.JSX.Element;
34
+ interface NumberProps extends Omit<React.HTMLAttributes<HTMLDivElement>, "onChange"> {
35
+ title: string;
36
+ description?: React.ReactNode;
37
+ value: number;
38
+ onChange: (value: number) => void;
39
+ min?: number;
40
+ max?: number;
41
+ step?: number;
42
+ unit?: string;
43
+ disabled?: boolean;
44
+ }
45
+ declare function NumberInputRow({ title, description, value, onChange, min, max, step, unit, disabled, className, ...props }: NumberProps): React.JSX.Element;
46
+ declare function Custom({ title, description, children, className, ...props }: React.HTMLAttributes<HTMLDivElement> & {
47
+ title: string;
48
+ description?: React.ReactNode;
49
+ }): React.JSX.Element;
50
+ export declare const SettingRow: {
51
+ Toggle: typeof Toggle;
52
+ Select: typeof RowSelect;
53
+ Text: typeof Text;
54
+ Number: typeof NumberInputRow;
55
+ Custom: typeof Custom;
56
+ };
57
+ export {};
58
+ //# sourceMappingURL=SettingRow.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SettingRow.d.ts","sourceRoot":"","sources":["../../src/settings/SettingRow.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,54 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { Input } from "../primitives/input.js";
3
+ import { Select, SelectContent, SelectItem, SelectTrigger, SelectValue, } from "../primitives/select.js";
4
+ import { Switch } from "../primitives/switch.js";
5
+ import { cn } from "../utils/cn.js";
6
+ function RowContainer({ className, children, ...props }) {
7
+ return (_jsx("div", { className: cn("flex min-h-[38px] items-center justify-between px-3 py-1.5 transition-colors hover:bg-[var(--tx-surface-2)]/60", className), ...props, children: children }));
8
+ }
9
+ function RowLabel({ title, description, }) {
10
+ return (_jsxs("div", { className: "flex flex-col pr-3", children: [_jsx("div", { className: "text-[12.5px] font-medium text-[var(--tx-text)] leading-tight", children: title }), description && (_jsx("div", { className: "text-[11px] text-[var(--tx-text-m)] leading-tight mt-0.5", children: description }))] }));
11
+ }
12
+ function Toggle({ title, description, checked, onCheckedChange, disabled, className, ...props }) {
13
+ return (_jsxs(RowContainer, { className: cn(disabled && "opacity-50 pointer-events-none", className), ...props, children: [_jsx(RowLabel, { title: title, description: description }), _jsx(Switch, { checked: checked, onCheckedChange: onCheckedChange, disabled: disabled, className: "shrink-0 scale-90" })] }));
14
+ }
15
+ function RowSelect({ title, description, value, onChange, options, disabled, placeholder, className, ...props }) {
16
+ return (_jsxs(RowContainer, { className: cn(disabled && "opacity-50 pointer-events-none", className), ...props, children: [_jsx(RowLabel, { title: title, description: description }), _jsx("div", { className: "shrink-0 w-[170px]", children: _jsxs(Select, { value: value, onValueChange: onChange, disabled: disabled, children: [_jsx(SelectTrigger, { className: "w-full h-7 text-xs focus:ring-[var(--tx-accent)] border-[var(--tx-border)]/60 bg-[var(--tx-surface)]", children: _jsx(SelectValue, { placeholder: placeholder }) }), _jsx(SelectContent, { className: "border-[var(--tx-border)]/80", children: options.map((opt) => (_jsx(SelectItem, { value: opt.value, className: "text-xs py-1", children: opt.label }, opt.value))) })] }) })] }));
17
+ }
18
+ function Text({ title, description, value, onChange, disabled, placeholder, type = "text", className, ...props }) {
19
+ return (_jsxs(RowContainer, { className: cn(disabled && "opacity-50 pointer-events-none", className), ...props, children: [_jsx(RowLabel, { title: title, description: description }), _jsx("div", { className: "shrink-0 w-[200px]", children: _jsx(Input, { type: type, value: value, onChange: (e) => onChange(e.target.value), disabled: disabled, placeholder: placeholder, className: "h-7 text-xs focus-visible:ring-[var(--tx-accent)] border-[var(--tx-border)]/60 bg-[var(--tx-surface)]" }) })] }));
20
+ }
21
+ function NumberInputRow({ title, description, value, onChange, min = 0, max = 100, step = 1, unit, disabled, className, ...props }) {
22
+ const clamp = (n) => {
23
+ let res = n;
24
+ if (min !== undefined && res < min)
25
+ res = min;
26
+ if (max !== undefined && res > max)
27
+ res = max;
28
+ return res;
29
+ };
30
+ const handleStep = (direction) => {
31
+ if (disabled)
32
+ return;
33
+ const current = typeof value === "number" && !Number.isNaN(value) ? value : min;
34
+ const next = clamp(Number((current + direction * step).toFixed(4)));
35
+ onChange(next);
36
+ };
37
+ return (_jsxs(RowContainer, { className: cn(disabled && "opacity-50 pointer-events-none", className), ...props, children: [_jsx(RowLabel, { title: title, description: description }), _jsxs("div", { className: "shrink-0 flex items-center gap-1 w-[120px]", children: [_jsxs("div", { className: "relative flex-1 flex items-center", children: [_jsx(Input, { type: "number", value: Number.isNaN(value) ? "" : value, min: min, max: max, step: step, disabled: disabled, onChange: (e) => {
38
+ const val = parseFloat(e.target.value);
39
+ if (!Number.isNaN(val)) {
40
+ onChange(clamp(val));
41
+ }
42
+ }, className: cn("h-7 text-xs focus-visible:ring-[var(--tx-accent)] border-[var(--tx-border)]/60 bg-[var(--tx-surface)] font-mono tabular-nums text-right", unit ? "pr-6" : "pr-2") }), unit && (_jsx("span", { className: "pointer-events-none absolute right-1.5 text-[9.5px] text-[var(--tx-text-f)] font-medium", children: unit }))] }), _jsxs("div", { className: "flex flex-col gap-0.5", children: [_jsx("button", { type: "button", disabled: disabled || (max !== undefined && value >= max), onClick: () => handleStep(1), "aria-label": "Increment", className: "flex h-[13px] w-[16px] items-center justify-center rounded-[2px] border border-[var(--tx-border)]/60 bg-[var(--tx-surface)] text-[8px] text-[var(--tx-text-m)] hover:bg-[var(--tx-surface-2)] hover:text-[var(--tx-text)] disabled:opacity-30 disabled:pointer-events-none transition-colors cursor-pointer", children: "\u25B2" }), _jsx("button", { type: "button", disabled: disabled || (min !== undefined && value <= min), onClick: () => handleStep(-1), "aria-label": "Decrement", className: "flex h-[13px] w-[16px] items-center justify-center rounded-[2px] border border-[var(--tx-border)]/60 bg-[var(--tx-surface)] text-[8px] text-[var(--tx-text-m)] hover:bg-[var(--tx-surface-2)] hover:text-[var(--tx-text)] disabled:opacity-30 disabled:pointer-events-none transition-colors cursor-pointer", children: "\u25BC" })] })] })] }));
43
+ }
44
+ function Custom({ title, description, children, className, ...props }) {
45
+ return (_jsxs(RowContainer, { className: className, ...props, children: [_jsx(RowLabel, { title: title, description: description }), _jsx("div", { className: "shrink-0 flex items-center", children: children })] }));
46
+ }
47
+ export const SettingRow = {
48
+ Toggle,
49
+ Select: RowSelect,
50
+ Text,
51
+ Number: NumberInputRow,
52
+ Custom,
53
+ };
54
+ //# sourceMappingURL=SettingRow.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SettingRow.js","sourceRoot":"","sources":["../../src/settings/SettingRow.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,11 @@
1
+ import * as React from "react";
2
+ import type { SettingsPageSchema } from "@termaxjs/web-core/settings";
3
+ export interface SettingsFormBuilderProps<T = Record<string, any>> {
4
+ schema: SettingsPageSchema;
5
+ values: T;
6
+ getSettingValue?: (bind: string, state: T) => any;
7
+ setSettingValue: (bind: string, value: any) => void;
8
+ actions?: Record<string, () => void>;
9
+ }
10
+ export declare function SettingsFormBuilder<T = Record<string, any>>({ schema, values, getSettingValue, setSettingValue, actions, }: SettingsFormBuilderProps<T>): React.JSX.Element;
11
+ //# sourceMappingURL=SettingsFormBuilder.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SettingsFormBuilder.d.ts","sourceRoot":"","sources":["../../src/settings/SettingsFormBuilder.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,KAAK,MAAM,OAAO,CAAC;AAG/B,OAAO,KAAK,EAAE,kBAAkB,EAAe,MAAM,6BAA6B,CAAC;AAEnF,MAAM,WAAW,wBAAwB,CAAC,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC;IAC/D,MAAM,EAAE,kBAAkB,CAAC;IAC3B,MAAM,EAAE,CAAC,CAAC;IACV,eAAe,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,KAAK,GAAG,CAAC;IAClD,eAAe,EAAE,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,KAAK,IAAI,CAAC;IACpD,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,IAAI,CAAC,CAAC;CACtC;AAED,wBAAgB,mBAAmB,CAAC,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,EAC3D,MAAM,EACN,MAAM,EACN,eAAyD,EACzD,eAAe,EACf,OAAY,GACb,EAAE,wBAAwB,CAAC,CAAC,CAAC,qBA0G7B"}
@@ -0,0 +1,43 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { SettingRow } from "./SettingRow.js";
3
+ import { SettingGroup as GroupWrapper } from "./SettingGroup.js";
4
+ export function SettingsFormBuilder({ schema, values, getSettingValue = (bind, state) => state?.[bind], setSettingValue, actions = {}, }) {
5
+ const renderItem = (item) => {
6
+ // Check dependsOn
7
+ if (item.dependsOn) {
8
+ const depVal = getSettingValue(item.dependsOn, values);
9
+ if (item.dependsOnValue !== undefined && depVal !== item.dependsOnValue) {
10
+ return null; // hide
11
+ }
12
+ else if (item.dependsOnValue === undefined && !depVal) {
13
+ return null; // implicitly falsy hide
14
+ }
15
+ }
16
+ const value = item.bind ? getSettingValue(item.bind, values) : undefined;
17
+ const onChange = (v) => {
18
+ if (item.bind) {
19
+ setSettingValue(item.bind, v);
20
+ }
21
+ };
22
+ switch (item.type) {
23
+ case "toggle":
24
+ return (_jsx(SettingRow.Toggle, { title: item.title, description: item.description, checked: Boolean(value), onCheckedChange: onChange }, item.id));
25
+ case "select":
26
+ return (_jsx(SettingRow.Select, { title: item.title, description: item.description, value: value !== undefined ? String(value) : "", onChange: onChange, options: item.options || [] }, item.id));
27
+ case "text":
28
+ return (_jsx(SettingRow.Text, { title: item.title, description: item.description, value: value !== undefined ? String(value) : "", onChange: onChange, placeholder: item.placeholder }, item.id));
29
+ case "number":
30
+ return (_jsx(SettingRow.Number, { title: item.title, description: item.description, value: Number(value || 0), onChange: onChange, min: item.min, max: item.max, step: item.step, unit: item.unit }, item.id));
31
+ case "action":
32
+ return (_jsx(SettingRow.Custom, { title: item.title, description: item.description, children: _jsx("button", { type: "button", onClick: () => {
33
+ if (item.actionId && actions[item.actionId]) {
34
+ actions[item.actionId]();
35
+ }
36
+ }, className: "px-3 py-1 bg-[var(--tx-surface-2)] text-[var(--tx-text)] rounded border border-[var(--tx-border)] hover:bg-[var(--tx-surface-3)] text-sm", children: item.actionLabel || "Execute" }) }, item.id));
37
+ default:
38
+ return null;
39
+ }
40
+ };
41
+ return (_jsxs("div", { className: "flex flex-col gap-6 w-full max-w-2xl py-2", children: [schema.description && (_jsx("p", { className: "text-[12.5px] text-[var(--tx-text-m)] mb-1", children: schema.description })), schema.groups.map((group) => (_jsx(GroupWrapper, { title: group.title, children: group.items.map((item) => renderItem(item)) }, group.id)))] }));
42
+ }
43
+ //# sourceMappingURL=SettingsFormBuilder.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SettingsFormBuilder.js","sourceRoot":"","sources":["../../src/settings/SettingsFormBuilder.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC7C,OAAO,EAAE,YAAY,IAAI,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAWjE,MAAM,UAAU,mBAAmB,CAA0B,EAC3D,MAAM,EACN,MAAM,EACN,eAAe,GAAG,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE,CAAE,KAAa,EAAE,CAAC,IAAI,CAAC,EACzD,eAAe,EACf,OAAO,GAAG,EAAE,GACgB;IAC5B,MAAM,UAAU,GAAG,CAAC,IAAiB,EAAE,EAAE;QACvC,kBAAkB;QAClB,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;YACnB,MAAM,MAAM,GAAG,eAAe,CAAC,IAAI,CAAC,SAAS,EAAE,MAAM,CAAC,CAAC;YACvD,IAAI,IAAI,CAAC,cAAc,KAAK,SAAS,IAAI,MAAM,KAAK,IAAI,CAAC,cAAc,EAAE,CAAC;gBACxE,OAAO,IAAI,CAAC,CAAC,OAAO;YACtB,CAAC;iBAAM,IAAI,IAAI,CAAC,cAAc,KAAK,SAAS,IAAI,CAAC,MAAM,EAAE,CAAC;gBACxD,OAAO,IAAI,CAAC,CAAC,wBAAwB;YACvC,CAAC;QACH,CAAC;QAED,MAAM,KAAK,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,eAAe,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;QACzE,MAAM,QAAQ,GAAG,CAAC,CAAM,EAAE,EAAE;YAC1B,IAAI,IAAI,CAAC,IAAI,EAAE,CAAC;gBACd,eAAe,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,CAAC;YAChC,CAAC;QACH,CAAC,CAAC;QAEF,QAAQ,IAAI,CAAC,IAAI,EAAE,CAAC;YAClB,KAAK,QAAQ;gBACX,OAAO,CACL,KAAC,UAAU,CAAC,MAAM,IAEhB,KAAK,EAAE,IAAI,CAAC,KAAK,EACjB,WAAW,EAAE,IAAI,CAAC,WAAW,EAC7B,OAAO,EAAE,OAAO,CAAC,KAAK,CAAC,EACvB,eAAe,EAAE,QAAQ,IAJpB,IAAI,CAAC,EAAE,CAKZ,CACH,CAAC;YACJ,KAAK,QAAQ;gBACX,OAAO,CACL,KAAC,UAAU,CAAC,MAAM,IAEhB,KAAK,EAAE,IAAI,CAAC,KAAK,EACjB,WAAW,EAAE,IAAI,CAAC,WAAW,EAC7B,KAAK,EAAE,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,EAC/C,QAAQ,EAAE,QAAQ,EAClB,OAAO,EAAE,IAAI,CAAC,OAAO,IAAI,EAAE,IALtB,IAAI,CAAC,EAAE,CAMZ,CACH,CAAC;YACJ,KAAK,MAAM;gBACT,OAAO,CACL,KAAC,UAAU,CAAC,IAAI,IAEd,KAAK,EAAE,IAAI,CAAC,KAAK,EACjB,WAAW,EAAE,IAAI,CAAC,WAAW,EAC7B,KAAK,EAAE,KAAK,KAAK,SAAS,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,EAC/C,QAAQ,EAAE,QAAQ,EAClB,WAAW,EAAE,IAAI,CAAC,WAAW,IALxB,IAAI,CAAC,EAAE,CAMZ,CACH,CAAC;YACJ,KAAK,QAAQ;gBACX,OAAO,CACL,KAAC,UAAU,CAAC,MAAM,IAEhB,KAAK,EAAE,IAAI,CAAC,KAAK,EACjB,WAAW,EAAE,IAAI,CAAC,WAAW,EAC7B,KAAK,EAAE,MAAM,CAAC,KAAK,IAAI,CAAC,CAAC,EACzB,QAAQ,EAAE,QAAQ,EAClB,GAAG,EAAE,IAAI,CAAC,GAAG,EACb,GAAG,EAAE,IAAI,CAAC,GAAG,EACb,IAAI,EAAE,IAAI,CAAC,IAAI,EACf,IAAI,EAAE,IAAI,CAAC,IAAI,IARV,IAAI,CAAC,EAAE,CASZ,CACH,CAAC;YACJ,KAAK,QAAQ;gBACX,OAAO,CACL,KAAC,UAAU,CAAC,MAAM,IAEhB,KAAK,EAAE,IAAI,CAAC,KAAK,EACjB,WAAW,EAAE,IAAI,CAAC,WAAW,YAE7B,iBACE,IAAI,EAAC,QAAQ,EACb,OAAO,EAAE,GAAG,EAAE;4BACZ,IAAI,IAAI,CAAC,QAAQ,IAAI,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC;gCAC5C,OAAO,CAAC,IAAI,CAAC,QAAQ,CAAE,EAAE,CAAC;4BAC5B,CAAC;wBACH,CAAC,EACD,SAAS,EAAC,0IAA0I,YAEnJ,IAAI,CAAC,WAAW,IAAI,SAAS,GACvB,IAdJ,IAAI,CAAC,EAAE,CAeM,CACrB,CAAC;YACJ;gBACE,OAAO,IAAI,CAAC;QAChB,CAAC;IACH,CAAC,CAAC;IAEF,OAAO,CACL,eAAK,SAAS,EAAC,2CAA2C,aACvD,MAAM,CAAC,WAAW,IAAI,CACrB,YAAG,SAAS,EAAC,4CAA4C,YACtD,MAAM,CAAC,WAAW,GACjB,CACL,EAEA,MAAM,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAC5B,KAAC,YAAY,IAAgB,KAAK,EAAE,KAAK,CAAC,KAAK,YAC5C,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,UAAU,CAAC,IAAI,CAAC,CAAC,IAD3B,KAAK,CAAC,EAAE,CAEZ,CAChB,CAAC,IACE,CACP,CAAC;AACJ,CAAC"}
@@ -0,0 +1,4 @@
1
+ export * from "./SettingGroup.js";
2
+ export * from "./SettingRow.js";
3
+ export * from "./SettingsFormBuilder.js";
4
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/settings/index.ts"],"names":[],"mappings":"AAAA,cAAc,mBAAmB,CAAC;AAClC,cAAc,iBAAiB,CAAC;AAChC,cAAc,0BAA0B,CAAC"}
@@ -0,0 +1,4 @@
1
+ export * from "./SettingGroup.js";
2
+ export * from "./SettingRow.js";
3
+ export * from "./SettingsFormBuilder.js";
4
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/settings/index.ts"],"names":[],"mappings":"AAAA,cAAc,mBAAmB,CAAC;AAClC,cAAc,iBAAiB,CAAC;AAChC,cAAc,0BAA0B,CAAC"}
@@ -0,0 +1,10 @@
1
+ import React, { type ReactNode } from "react";
2
+ export type HeaderBarProps = {
3
+ className?: string;
4
+ leading?: ReactNode;
5
+ center?: ReactNode;
6
+ trailing?: ReactNode;
7
+ children?: ReactNode;
8
+ };
9
+ export declare function HeaderBar({ className, leading, center, trailing, children, }: HeaderBarProps): React.JSX.Element;
10
+ //# sourceMappingURL=HeaderBar.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"HeaderBar.d.ts","sourceRoot":"","sources":["../../src/shell/HeaderBar.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,EAAE,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAE9C,MAAM,MAAM,cAAc,GAAG;IAC3B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,SAAS,CAAC;IACpB,MAAM,CAAC,EAAE,SAAS,CAAC;IACnB,QAAQ,CAAC,EAAE,SAAS,CAAC;IACrB,QAAQ,CAAC,EAAE,SAAS,CAAC;CACtB,CAAC;AAEF,wBAAgB,SAAS,CAAC,EACxB,SAAS,EACT,OAAO,EACP,MAAM,EACN,QAAQ,EACR,QAAQ,GACT,EAAE,cAAc,qBAkBhB"}
@@ -0,0 +1,6 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { cn } from "../utils/cn.js";
3
+ export function HeaderBar({ className, leading, center, trailing, children, }) {
4
+ return (_jsxs("header", { "data-tauri-drag-region": true, className: cn("flex h-9 w-full items-center justify-between border-b border-border/60 bg-background/95 px-2 select-none backdrop-blur-sm", className), children: [leading && _jsx("div", { className: "flex items-center gap-1.5 shrink-0", children: leading }), center ? (_jsx("div", { className: "flex flex-1 items-center justify-center px-2 min-w-0", children: center })) : (children), trailing && _jsx("div", { className: "flex items-center gap-1.5 shrink-0", children: trailing })] }));
5
+ }
6
+ //# sourceMappingURL=HeaderBar.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"HeaderBar.js","sourceRoot":"","sources":["../../src/shell/HeaderBar.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,EAAE,EAAE,MAAM,gBAAgB,CAAC;AAWpC,MAAM,UAAU,SAAS,CAAC,EACxB,SAAS,EACT,OAAO,EACP,MAAM,EACN,QAAQ,EACR,QAAQ,GACO;IACf,OAAO,CACL,kDAEE,SAAS,EAAE,EAAE,CACX,2HAA2H,EAC3H,SAAS,CACV,aAEA,OAAO,IAAI,cAAK,SAAS,EAAC,oCAAoC,YAAE,OAAO,GAAO,EAC9E,MAAM,CAAC,CAAC,CAAC,CACR,cAAK,SAAS,EAAC,sDAAsD,YAAE,MAAM,GAAO,CACrF,CAAC,CAAC,CAAC,CACF,QAAQ,CACT,EACA,QAAQ,IAAI,cAAK,SAAS,EAAC,oCAAoC,YAAE,QAAQ,GAAO,IAC1E,CACV,CAAC;AACJ,CAAC"}
@@ -0,0 +1,9 @@
1
+ import React, { type ReactNode } from "react";
2
+ export type StatusBarProps = {
3
+ className?: string;
4
+ left?: ReactNode;
5
+ center?: ReactNode;
6
+ right?: ReactNode;
7
+ };
8
+ export declare function StatusBar({ className, left, center, right, }: StatusBarProps): React.JSX.Element;
9
+ //# sourceMappingURL=StatusBar.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"StatusBar.d.ts","sourceRoot":"","sources":["../../src/shell/StatusBar.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,EAAE,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAE9C,MAAM,MAAM,cAAc,GAAG;IAC3B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,IAAI,CAAC,EAAE,SAAS,CAAC;IACjB,MAAM,CAAC,EAAE,SAAS,CAAC;IACnB,KAAK,CAAC,EAAE,SAAS,CAAC;CACnB,CAAC;AAEF,wBAAgB,SAAS,CAAC,EACxB,SAAS,EACT,IAAI,EACJ,MAAM,EACN,KAAK,GACN,EAAE,cAAc,qBAahB"}
@@ -0,0 +1,6 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { cn } from "../utils/cn.js";
3
+ export function StatusBar({ className, left, center, right, }) {
4
+ return (_jsxs("footer", { className: cn("flex h-6 w-full items-center justify-between border-t border-border/40 bg-background/80 px-2 text-[10.5px] text-muted-foreground select-none", className), children: [_jsx("div", { className: "flex items-center gap-2 shrink-0 min-w-0", children: left }), center && _jsx("div", { className: "flex items-center justify-center min-w-0", children: center }), _jsx("div", { className: "flex items-center gap-2 shrink-0", children: right })] }));
5
+ }
6
+ //# sourceMappingURL=StatusBar.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"StatusBar.js","sourceRoot":"","sources":["../../src/shell/StatusBar.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,EAAE,EAAE,MAAM,gBAAgB,CAAC;AAUpC,MAAM,UAAU,SAAS,CAAC,EACxB,SAAS,EACT,IAAI,EACJ,MAAM,EACN,KAAK,GACU;IACf,OAAO,CACL,kBACE,SAAS,EAAE,EAAE,CACX,8IAA8I,EAC9I,SAAS,CACV,aAED,cAAK,SAAS,EAAC,0CAA0C,YAAE,IAAI,GAAO,EACrE,MAAM,IAAI,cAAK,SAAS,EAAC,0CAA0C,YAAE,MAAM,GAAO,EACnF,cAAK,SAAS,EAAC,kCAAkC,YAAE,KAAK,GAAO,IACxD,CACV,CAAC;AACJ,CAAC"}
@@ -0,0 +1,3 @@
1
+ export * from "./HeaderBar.js";
2
+ export * from "./StatusBar.js";
3
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/shell/index.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAC;AAC/B,cAAc,gBAAgB,CAAC"}
@@ -0,0 +1,3 @@
1
+ export * from "./HeaderBar.js";
2
+ export * from "./StatusBar.js";
3
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/shell/index.ts"],"names":[],"mappings":"AAAA,cAAc,gBAAgB,CAAC;AAC/B,cAAc,gBAAgB,CAAC"}
@@ -0,0 +1,14 @@
1
+ export interface GitBranch {
2
+ name: string;
3
+ isHead?: boolean;
4
+ isRemote?: boolean;
5
+ }
6
+ export type BranchSwitcherProps = {
7
+ open: boolean;
8
+ onOpenChange: (open: boolean) => void;
9
+ branches?: GitBranch[];
10
+ loading?: boolean;
11
+ onSelectBranch: (branch: string) => void | Promise<void>;
12
+ };
13
+ export declare function BranchSwitcher({ open, onOpenChange, branches, loading, onSelectBranch, }: BranchSwitcherProps): import("react").JSX.Element;
14
+ //# sourceMappingURL=BranchSwitcher.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BranchSwitcher.d.ts","sourceRoot":"","sources":["../../src/source-control/BranchSwitcher.tsx"],"names":[],"mappings":"AAYA,MAAM,WAAW,SAAS;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED,MAAM,MAAM,mBAAmB,GAAG;IAChC,IAAI,EAAE,OAAO,CAAC;IACd,YAAY,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAC;IACtC,QAAQ,CAAC,EAAE,SAAS,EAAE,CAAC;IACvB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,cAAc,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CAC1D,CAAC;AAEF,wBAAgB,cAAc,CAAC,EAC7B,IAAI,EACJ,YAAY,EACZ,QAAa,EACb,OAAe,EACf,cAAc,GACf,EAAE,mBAAmB,+BAuCrB"}
@@ -0,0 +1,10 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { CommandDialog, CommandEmpty, CommandGroup, CommandInput, CommandItem, CommandList, } from "../primitives/command.js";
3
+ import { GitBranchIcon } from "@hugeicons/core-free-icons";
4
+ import { HugeiconsIcon } from "@hugeicons/react";
5
+ import { useState } from "react";
6
+ export function BranchSwitcher({ open, onOpenChange, branches = [], loading = false, onSelectBranch, }) {
7
+ const [query, setQuery] = useState("");
8
+ return (_jsxs(CommandDialog, { open: open, onOpenChange: onOpenChange, children: [_jsx(CommandInput, { placeholder: "Search branches...", value: query, onValueChange: setQuery }), _jsxs(CommandList, { children: [_jsx(CommandEmpty, { children: loading ? "Loading branches..." : "No branches found." }), !loading && (_jsx(CommandGroup, { heading: "Branches", children: branches.map((b) => (_jsxs(CommandItem, { value: b.name, onSelect: () => onSelectBranch(b.name), className: "flex items-center justify-between", children: [_jsxs("div", { className: "flex items-center gap-2", children: [_jsx(HugeiconsIcon, { icon: GitBranchIcon, size: 14 }), _jsx("span", { className: b.isHead ? "font-semibold" : undefined, children: b.name })] }), b.isHead && (_jsx("span", { className: "text-xs text-muted-foreground", children: "(current)" }))] }, b.name))) }))] })] }));
9
+ }
10
+ //# sourceMappingURL=BranchSwitcher.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BranchSwitcher.js","sourceRoot":"","sources":["../../src/source-control/BranchSwitcher.tsx"],"names":[],"mappings":";AAAA,OAAO,EACL,aAAa,EACb,YAAY,EACZ,YAAY,EACZ,YAAY,EACZ,WAAW,EACX,WAAW,GACZ,MAAM,0BAA0B,CAAC;AAClC,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAC3D,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAgBjC,MAAM,UAAU,cAAc,CAAC,EAC7B,IAAI,EACJ,YAAY,EACZ,QAAQ,GAAG,EAAE,EACb,OAAO,GAAG,KAAK,EACf,cAAc,GACM;IACpB,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,QAAQ,CAAC,EAAE,CAAC,CAAC;IAEvC,OAAO,CACL,MAAC,aAAa,IAAC,IAAI,EAAE,IAAI,EAAE,YAAY,EAAE,YAAY,aACnD,KAAC,YAAY,IACX,WAAW,EAAC,oBAAoB,EAChC,KAAK,EAAE,KAAK,EACZ,aAAa,EAAE,QAAQ,GACvB,EACF,MAAC,WAAW,eACV,KAAC,YAAY,cACV,OAAO,CAAC,CAAC,CAAC,qBAAqB,CAAC,CAAC,CAAC,oBAAoB,GAC1C,EACd,CAAC,OAAO,IAAI,CACX,KAAC,YAAY,IAAC,OAAO,EAAC,UAAU,YAC7B,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CACnB,MAAC,WAAW,IAEV,KAAK,EAAE,CAAC,CAAC,IAAI,EACb,QAAQ,EAAE,GAAG,EAAE,CAAC,cAAc,CAAC,CAAC,CAAC,IAAI,CAAC,EACtC,SAAS,EAAC,mCAAmC,aAE7C,eAAK,SAAS,EAAC,yBAAyB,aACtC,KAAC,aAAa,IAAC,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE,EAAE,GAAI,EAChD,eAAM,SAAS,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,eAAe,CAAC,CAAC,CAAC,SAAS,YACpD,CAAC,CAAC,IAAI,GACF,IACH,EACL,CAAC,CAAC,MAAM,IAAI,CACX,eAAM,SAAS,EAAC,+BAA+B,0BAAiB,CACjE,KAbI,CAAC,CAAC,IAAI,CAcC,CACf,CAAC,GACW,CAChB,IACW,IACA,CACjB,CAAC;AACJ,CAAC"}
@@ -0,0 +1,15 @@
1
+ import type { GitLogEntry } from "@termaxjs/web-source-control/history";
2
+ import { type MouseEvent } from "react";
3
+ import type { GraphRow } from "@termaxjs/web-source-control/history";
4
+ type CommitRowProps = {
5
+ commit: GitLogEntry;
6
+ query: string;
7
+ active: boolean;
8
+ graphRow: GraphRow | null;
9
+ maxLaneCount: number;
10
+ gridTemplate: string;
11
+ onClick: (sha: string, event: MouseEvent<HTMLElement>) => void;
12
+ };
13
+ export declare const CommitRow: import("react").NamedExoticComponent<CommitRowProps>;
14
+ export {};
15
+ //# sourceMappingURL=CommitRow.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CommitRow.d.ts","sourceRoot":"","sources":["../../src/source-control/CommitRow.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,sCAAsC,CAAC;AAGxE,OAAO,EAAE,KAAK,UAAU,EAAQ,MAAM,OAAO,CAAC;AAI9C,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,sCAAsC,CAAC;AAGrE,KAAK,cAAc,GAAG;IACpB,MAAM,EAAE,WAAW,CAAC;IACpB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,OAAO,CAAC;IAChB,QAAQ,EAAE,QAAQ,GAAG,IAAI,CAAC;IAC1B,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,MAAM,CAAC;IACrB,OAAO,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,UAAU,CAAC,WAAW,CAAC,KAAK,IAAI,CAAC;CAChE,CAAC;AAEF,eAAO,MAAM,SAAS,sDA6GpB,CAAC"}
@@ -0,0 +1,20 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
+ import { cn } from "../utils/cn.js";
3
+ import { File02Icon } from "@hugeicons/core-free-icons";
4
+ import { HugeiconsIcon } from "@hugeicons/react";
5
+ import { memo } from "react";
6
+ import { GraphRail } from "./GraphRail.js";
7
+ import { ROW_HEIGHT } from "@termaxjs/web-source-control/history";
8
+ import { authorInitials, authorTint, compactDate } from "@termaxjs/web-source-control/history";
9
+ import { highlight } from "./highlight.js";
10
+ export const CommitRow = memo(function CommitRow({ commit, query, active, graphRow, maxLaneCount, gridTemplate, onClick, }) {
11
+ const date = compactDate(commit.timestampSecs || 0);
12
+ const initials = authorInitials(commit.author || "");
13
+ const totalStat = commit.insertions + commit.deletions;
14
+ return (_jsxs("button", { type: "button", onClick: (event) => onClick(commit.sha, event), className: cn("group relative grid h-full w-full cursor-pointer items-center gap-3 border-l-2 border-transparent pr-3 text-left transition-colors", active ? "border-l-primary/70 bg-accent/45" : "hover:bg-accent/25"), style: { gridTemplateColumns: gridTemplate }, children: [_jsx("div", { className: "flex items-center justify-start pl-1", children: graphRow ? (_jsx(GraphRail, { row: graphRow, rowHeight: ROW_HEIGHT, maxLaneCount: maxLaneCount, active: active })) : null }), _jsx("span", { className: "pl-px font-mono text-[10.5px] tabular-nums text-muted-foreground/80", children: commit.shortSha }), _jsx("span", { className: cn("min-w-0 truncate text-[var(--text-sm,12px)] leading-tight", active
15
+ ? "font-semibold text-foreground"
16
+ : "font-medium text-foreground/95"), children: commit.subject ? (highlight(commit.subject, query)) : (_jsx("span", { className: "text-muted-foreground", children: "(no subject)" })) }), _jsx("span", { "aria-hidden": true }), _jsxs("span", { className: "ml-2 inline-flex h-[18px] max-w-full min-w-0 items-center gap-1.5 justify-self-start self-center overflow-hidden rounded-md bg-foreground/6 pl-1 pr-1.5 text-[10.5px] font-medium text-foreground/85", title: commit.authorEmail || commit.author, children: [_jsx("span", { className: "inline-flex size-3.5 shrink-0 items-center justify-center rounded-[3px] font-mono text-[8.5px] font-bold uppercase tabular-nums text-background", style: {
17
+ backgroundColor: authorTint(commit.authorEmail || commit.author || ""),
18
+ }, children: initials }), _jsx("span", { className: "min-w-0 truncate", children: commit.author ? highlight(commit.author, query) : "Unknown" })] }), _jsx("span", { className: "text-right font-mono text-[10.5px] tabular-nums text-muted-foreground/75", children: date }), _jsxs("span", { className: "flex min-w-0 items-center justify-end gap-1.5 font-mono text-[10px] tabular-nums", children: [commit.filesChanged > 0 ? (_jsxs("span", { className: "inline-flex items-center gap-1 text-muted-foreground/75", title: `${commit.filesChanged} ${commit.filesChanged === 1 ? "file" : "files"} changed`, children: [_jsx(HugeiconsIcon, { icon: File02Icon, size: 10.5, strokeWidth: 1.7, className: "opacity-70" }), _jsx("span", { className: "font-medium", children: commit.filesChanged })] })) : null, commit.filesChanged > 0 && totalStat > 0 ? (_jsx("span", { "aria-hidden": true, className: "size-[3px] shrink-0 rounded-full bg-muted-foreground/30" })) : null, totalStat > 0 ? (_jsxs("span", { className: "inline-flex items-center gap-1", children: [commit.insertions > 0 ? (_jsxs("span", { className: "font-semibold text-emerald-600/85 dark:text-emerald-400/85", children: ["+", commit.insertions] })) : null, commit.deletions > 0 ? (_jsxs("span", { className: "font-semibold text-rose-600/85 dark:text-rose-400/85", children: ["\u2212", commit.deletions] })) : null] })) : commit.filesChanged === 0 ? (_jsx("span", { className: "text-muted-foreground/40", children: "\u2014" })) : null] })] }));
19
+ });
20
+ //# sourceMappingURL=CommitRow.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CommitRow.js","sourceRoot":"","sources":["../../src/source-control/CommitRow.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,25 @@
1
+ import { type CheckState, type RowDescriptor } from "./sourceControlHelpers.js";
2
+ import type { SourceControlFileEntry } from "@termaxjs/web-source-control";
3
+ export type RowRendererProps = {
4
+ row: RowDescriptor;
5
+ focused: boolean;
6
+ selectedPath: string | null;
7
+ actionBusy: string | null;
8
+ headerCheckState: CheckState;
9
+ repoRoot: string | null;
10
+ onFocusRow: (key: string | null) => void;
11
+ onToggleAll: () => Promise<void> | void;
12
+ onSelectFile: (entry: SourceControlFileEntry) => Promise<void>;
13
+ onToggleStageFile: (entry: SourceControlFileEntry) => Promise<void>;
14
+ onDiscardFile: (entry: SourceControlFileEntry) => void;
15
+ onStageHunk: (entry: SourceControlFileEntry, patch: string, reverse: boolean) => Promise<void>;
16
+ onDiscardHunk: (entry: SourceControlFileEntry, patch: string) => Promise<void>;
17
+ onOpenFile?: (absolutePath: string) => void;
18
+ };
19
+ export declare const EntryRow: import("react").NamedExoticComponent<RowRendererProps & {
20
+ row: Extract<RowDescriptor, {
21
+ kind: "entry";
22
+ }>;
23
+ }>;
24
+ export declare const RowRenderer: import("react").NamedExoticComponent<RowRendererProps>;
25
+ //# sourceMappingURL=EntryRow.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"EntryRow.d.ts","sourceRoot":"","sources":["../../src/source-control/EntryRow.tsx"],"names":[],"mappings":"AAkBA,OAAO,EAEL,KAAK,UAAU,EAGf,KAAK,aAAa,EAEnB,MAAM,2BAA2B,CAAC;AACnC,OAAO,KAAK,EAAE,sBAAsB,EAAE,MAAM,8BAA8B,CAAC;AAK3E,MAAM,MAAM,gBAAgB,GAAG;IAC7B,GAAG,EAAE,aAAa,CAAC;IACnB,OAAO,EAAE,OAAO,CAAC;IACjB,YAAY,EAAE,MAAM,GAAG,IAAI,CAAC;IAC5B,UAAU,EAAE,MAAM,GAAG,IAAI,CAAC;IAC1B,gBAAgB,EAAE,UAAU,CAAC;IAC7B,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,UAAU,EAAE,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI,KAAK,IAAI,CAAC;IACzC,WAAW,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC;IACxC,YAAY,EAAE,CAAC,KAAK,EAAE,sBAAsB,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IAC/D,iBAAiB,EAAE,CAAC,KAAK,EAAE,sBAAsB,KAAK,OAAO,CAAC,IAAI,CAAC,CAAC;IACpE,aAAa,EAAE,CAAC,KAAK,EAAE,sBAAsB,KAAK,IAAI,CAAC;IACvD,WAAW,EAAE,CACX,KAAK,EAAE,sBAAsB,EAC7B,KAAK,EAAE,MAAM,EACb,OAAO,EAAE,OAAO,KACb,OAAO,CAAC,IAAI,CAAC,CAAC;IACnB,aAAa,EAAE,CACb,KAAK,EAAE,sBAAsB,EAC7B,KAAK,EAAE,MAAM,KACV,OAAO,CAAC,IAAI,CAAC,CAAC;IACnB,UAAU,CAAC,EAAE,CAAC,YAAY,EAAE,MAAM,KAAK,IAAI,CAAC;CAC7C,CAAC;AAEF,eAAO,MAAM,QAAQ;SAcd,OAAO,CAAC,aAAa,EAAE;QAAE,IAAI,EAAE,OAAO,CAAA;KAAE,CAAC;EA4N9C,CAAC;AAEH,eAAO,MAAM,WAAW,wDAUtB,CAAC"}
@@ -0,0 +1,67 @@
1
+ import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from "react/jsx-runtime";
2
+ import { Checkbox } from "../primitives/checkbox.js";
3
+ import { ContextMenu, ContextMenuContent, ContextMenuItem, ContextMenuSeparator, ContextMenuTrigger, } from "../primitives/context-menu.js";
4
+ import { Spinner } from "../primitives/spinner.js";
5
+ import { IS_MAC } from "../utils/platform.js";
6
+ import { cn } from "../utils/cn.js";
7
+ import { COMPACT_CONTENT, COMPACT_ITEM } from "../explorer/menuItemClass.js";
8
+ import { copyToClipboard, revealInFinder } from "../explorer/contextActions.js";
9
+ import { joinPath } from "@termaxjs/web-core/explorer";
10
+ import { fileIconUrl } from "../explorer/iconResolver.js";
11
+ import { ArrowRight01Icon, RemoveSquareIcon } from "@hugeicons/core-free-icons";
12
+ import { HugeiconsIcon } from "@hugeicons/react";
13
+ import { memo, useState } from "react";
14
+ import { basename, checkboxValue, entryPathLabel, statusAccent, } from "./sourceControlHelpers.js";
15
+ import { InlineHunkView } from "./InlineHunkView.js";
16
+ import { IconActionButton } from "./SourceControlActions.js";
17
+ import { DivergedBanner, ListHeader } from "./SourceControlStatusViews.js";
18
+ export const EntryRow = memo(function EntryRow({ row, focused, selectedPath, actionBusy, repoRoot, onFocusRow, onSelectFile, onToggleStageFile, onDiscardFile, onStageHunk, onDiscardHunk, onOpenFile, }) {
19
+ const [expanded, setExpanded] = useState(false);
20
+ const entry = row.entry;
21
+ const isSelected = selectedPath === entry.path;
22
+ const fileName = basename(entry.path);
23
+ const iconUrl = fileIconUrl(fileName);
24
+ const pathLabel = entryPathLabel(entry);
25
+ const showDiscard = entry.unstaged;
26
+ const isStageBusy = actionBusy === `stage:${entry.path}` ||
27
+ actionBusy === `unstage:${entry.path}`;
28
+ const isDiscardBusy = actionBusy === `discard:${entry.path}`;
29
+ const disabled = actionBusy !== null;
30
+ const absolutePath = repoRoot
31
+ ? joinPath(repoRoot.replace(/\\/g, "/"), entry.path.replace(/\\/g, "/"))
32
+ : null;
33
+ const isDeleted = entry.statusCode === "D";
34
+ const revealLabel = IS_MAC ? "Reveal in Finder" : "Reveal in File Manager";
35
+ return (_jsxs("div", { className: "flex flex-col", children: [_jsxs(ContextMenu, { children: [_jsx(ContextMenuTrigger, { asChild: true, children: _jsxs("div", { id: `scm-row-${row.key}`, "data-focused": focused || undefined, "data-selected": isSelected || undefined, role: "option", "aria-selected": isSelected, onMouseDown: () => onFocusRow(row.key), className: cn("group relative flex h-[30px] items-center gap-2 rounded-md pl-2 pr-2 transition-all duration-100", focused
36
+ ? "bg-accent/60"
37
+ : isSelected
38
+ ? "bg-accent/55 text-foreground"
39
+ : "hover:bg-accent/30"), children: [_jsx("span", { className: cn("pointer-events-none absolute inset-y-1 left-0 w-[2px] rounded-full transition-opacity", statusAccent(entry.statusCode), isSelected || focused
40
+ ? "opacity-100"
41
+ : "opacity-55 group-hover:opacity-95"), "aria-hidden": true }), _jsxs("button", { type: "button", onClick: (e) => {
42
+ if (e.metaKey || e.ctrlKey) {
43
+ onFocusRow(row.key);
44
+ void onSelectFile(entry);
45
+ }
46
+ else {
47
+ setExpanded(!expanded);
48
+ }
49
+ }, className: "flex min-w-0 flex-1 cursor-pointer items-center gap-2 text-left", children: [_jsx("div", { className: cn("flex size-4 shrink-0 items-center justify-center transition-transform", expanded ? "rotate-90" : "rotate-0"), children: _jsx(HugeiconsIcon, { icon: ArrowRight01Icon, size: 12, strokeWidth: 2, className: "text-muted-foreground hover:text-foreground" }) }), iconUrl ? (_jsx("img", { src: iconUrl, alt: "", className: "size-4 shrink-0" })) : (_jsx("span", { className: "size-4 shrink-0" })), _jsxs("div", { className: "flex min-w-0 flex-1 items-baseline gap-1.5 leading-none", children: [_jsx("span", { className: cn("truncate text-[var(--text-sm,12px)] leading-tight", isSelected || focused
50
+ ? "font-semibold text-foreground"
51
+ : "font-medium text-foreground/95", pathLabel ? "max-w-[58%] shrink-0" : "min-w-0 flex-1"), children: fileName }), pathLabel ? (_jsx("span", { className: "min-w-0 flex-1 truncate text-[10.5px] leading-tight text-muted-foreground/75", children: pathLabel })) : null] })] }), showDiscard ? (_jsx("div", { className: "flex shrink-0 items-center opacity-0 transition-opacity group-hover:opacity-100 data-[focused=true]:opacity-100 data-[selected=true]:opacity-100", children: _jsx(IconActionButton, { label: `Discard ${entry.path}`, disabled: disabled, side: "top", onClick: () => onDiscardFile(entry), children: isDiscardBusy ? (_jsx(Spinner, { className: "size-3" })) : (_jsx(HugeiconsIcon, { icon: RemoveSquareIcon, size: 11, strokeWidth: 1.9 })) }) })) : null, _jsx("span", { className: "flex size-5 shrink-0 items-center justify-center", children: isStageBusy ? (_jsx(Spinner, { className: "size-3" })) : (_jsx(Checkbox, { "aria-label": `Stage ${entry.path}`, checked: checkboxValue(entry.checkState), disabled: disabled, onCheckedChange: () => void onToggleStageFile(entry), className: "size-3.5" })) })] }) }), _jsxs(ContextMenuContent, { className: COMPACT_CONTENT, children: [_jsx(ContextMenuItem, { className: COMPACT_ITEM, onSelect: () => {
52
+ onFocusRow(row.key);
53
+ void onSelectFile(entry);
54
+ }, children: "Open Diff" }), !isDeleted && onOpenFile && absolutePath ? (_jsx(ContextMenuItem, { className: COMPACT_ITEM, onSelect: () => onOpenFile(absolutePath), children: "Open File" })) : null, _jsx(ContextMenuSeparator, {}), _jsx(ContextMenuItem, { className: COMPACT_ITEM, disabled: disabled, onSelect: () => void onToggleStageFile(entry), children: entry.checkState === "checked" ? "Unstage" : "Stage" }), entry.unstaged ? (_jsx(ContextMenuItem, { className: COMPACT_ITEM, variant: "destructive", disabled: disabled, onSelect: () => onDiscardFile(entry), children: "Discard Changes" })) : null, _jsx(ContextMenuSeparator, {}), _jsx(ContextMenuItem, { className: COMPACT_ITEM, onSelect: () => void copyToClipboard(entry.path.replace(/\\/g, "/")), children: "Copy Relative Path" }), absolutePath ? (_jsx(ContextMenuItem, { className: COMPACT_ITEM, onSelect: () => void copyToClipboard(absolutePath), children: "Copy Absolute Path" })) : null, !isDeleted && absolutePath ? (_jsxs(_Fragment, { children: [_jsx(ContextMenuSeparator, {}), _jsx(ContextMenuItem, { className: COMPACT_ITEM, onSelect: () => void revealInFinder(absolutePath), children: revealLabel })] })) : null] })] }), expanded && (_jsx(InlineHunkView, { entry: entry, repoRoot: repoRoot, onStageHunk: onStageHunk, onDiscardHunk: onDiscardHunk }))] }));
55
+ });
56
+ export const RowRenderer = memo(function RowRenderer(props) {
57
+ const { row } = props;
58
+ switch (row.kind) {
59
+ case "banner-diverged":
60
+ return _jsx(DivergedBanner, {});
61
+ case "list-header":
62
+ return _jsx(ListHeader, { ...props, row: row });
63
+ case "entry":
64
+ return _jsx(EntryRow, { ...props, row: row });
65
+ }
66
+ });
67
+ //# sourceMappingURL=EntryRow.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"EntryRow.js","sourceRoot":"","sources":["../../src/source-control/EntryRow.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,14 @@
1
+ import type { GraphRow } from "@termaxjs/web-source-control/history";
2
+ export declare const LANE_WIDTH = 14;
3
+ export declare const RAIL_PADDING_X = 8;
4
+ export declare const MAX_VISIBLE_LANES = 6;
5
+ export declare function railWidth(maxLane: number): number;
6
+ type Props = {
7
+ row: GraphRow;
8
+ rowHeight: number;
9
+ maxLaneCount: number;
10
+ active?: boolean;
11
+ };
12
+ export declare const GraphRail: import("react").NamedExoticComponent<Props>;
13
+ export {};
14
+ //# sourceMappingURL=GraphRail.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"GraphRail.d.ts","sourceRoot":"","sources":["../../src/source-control/GraphRail.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAa,QAAQ,EAAE,MAAM,sCAAsC,CAAC;AAEhF,eAAO,MAAM,UAAU,KAAK,CAAC;AAC7B,eAAO,MAAM,cAAc,IAAI,CAAC;AAChC,eAAO,MAAM,iBAAiB,IAAI,CAAC;AASnC,wBAAgB,SAAS,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAGjD;AAED,KAAK,KAAK,GAAG;IACX,GAAG,EAAE,QAAQ,CAAC;IACd,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,EAAE,MAAM,CAAC;IACrB,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB,CAAC;AA0EF,eAAO,MAAM,SAAS,6CAwDpB,CAAC"}