@hanzo/ui 8.29.44 → 8.30.3

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 (955) hide show
  1. package/dist/agents/Attachments.cjs +13 -3
  2. package/dist/agents/Attachments.d.ts +1 -1
  3. package/dist/agents/Attachments.d.ts.map +1 -1
  4. package/dist/agents/Attachments.js +13 -3
  5. package/dist/agents/Attachments.js.map +1 -1
  6. package/dist/agents/Board.cjs +9 -5
  7. package/dist/agents/Board.d.ts.map +1 -1
  8. package/dist/agents/Board.js +9 -5
  9. package/dist/agents/Board.js.map +1 -1
  10. package/dist/agents/ChannelMembers.cjs +66 -1
  11. package/dist/agents/ChannelMembers.d.ts.map +1 -1
  12. package/dist/agents/ChannelMembers.js +66 -1
  13. package/dist/agents/ChannelMembers.js.map +1 -1
  14. package/dist/agents/ChannelNotes.cjs +38 -2
  15. package/dist/agents/ChannelNotes.d.ts.map +1 -1
  16. package/dist/agents/ChannelNotes.js +38 -2
  17. package/dist/agents/ChannelNotes.js.map +1 -1
  18. package/dist/agents/Choice.cjs +7 -4
  19. package/dist/agents/Choice.d.ts.map +1 -1
  20. package/dist/agents/Choice.js +7 -4
  21. package/dist/agents/Choice.js.map +1 -1
  22. package/dist/agents/Console.cjs +15 -8
  23. package/dist/agents/Console.d.ts +1 -1
  24. package/dist/agents/Console.d.ts.map +1 -1
  25. package/dist/agents/Console.js +15 -8
  26. package/dist/agents/Console.js.map +1 -1
  27. package/dist/agents/DiffViewer.cjs +52 -4
  28. package/dist/agents/DiffViewer.d.ts.map +1 -1
  29. package/dist/agents/DiffViewer.js +52 -4
  30. package/dist/agents/DiffViewer.js.map +1 -1
  31. package/dist/agents/DirectoryModal.cjs +37 -15
  32. package/dist/agents/DirectoryModal.d.ts.map +1 -1
  33. package/dist/agents/DirectoryModal.js +37 -15
  34. package/dist/agents/DirectoryModal.js.map +1 -1
  35. package/dist/agents/DriveViewer.cjs +19 -4
  36. package/dist/agents/DriveViewer.d.ts.map +1 -1
  37. package/dist/agents/DriveViewer.js +20 -5
  38. package/dist/agents/DriveViewer.js.map +1 -1
  39. package/dist/agents/Feedback.cjs +10 -2
  40. package/dist/agents/Feedback.d.ts.map +1 -1
  41. package/dist/agents/Feedback.js +10 -2
  42. package/dist/agents/Feedback.js.map +1 -1
  43. package/dist/agents/FileTabs.cjs +17 -10
  44. package/dist/agents/FileTabs.d.ts.map +1 -1
  45. package/dist/agents/FileTabs.js +17 -10
  46. package/dist/agents/FileTabs.js.map +1 -1
  47. package/dist/agents/FileTree.cjs +9 -6
  48. package/dist/agents/FileTree.d.ts.map +1 -1
  49. package/dist/agents/FileTree.js +9 -6
  50. package/dist/agents/FileTree.js.map +1 -1
  51. package/dist/agents/LiveVoiceCall.cjs +66 -16
  52. package/dist/agents/LiveVoiceCall.d.ts.map +1 -1
  53. package/dist/agents/LiveVoiceCall.js +66 -16
  54. package/dist/agents/LiveVoiceCall.js.map +1 -1
  55. package/dist/agents/MCPHub.cjs +48 -3
  56. package/dist/agents/MCPHub.d.ts.map +1 -1
  57. package/dist/agents/MCPHub.js +48 -3
  58. package/dist/agents/MCPHub.js.map +1 -1
  59. package/dist/agents/Pane.cjs +15 -9
  60. package/dist/agents/Pane.d.ts +1 -1
  61. package/dist/agents/Pane.d.ts.map +1 -1
  62. package/dist/agents/Pane.js +15 -9
  63. package/dist/agents/Pane.js.map +1 -1
  64. package/dist/agents/PreviewFrame.cjs +6 -4
  65. package/dist/agents/PreviewFrame.d.ts.map +1 -1
  66. package/dist/agents/PreviewFrame.js +6 -4
  67. package/dist/agents/PreviewFrame.js.map +1 -1
  68. package/dist/agents/Progress.cjs +4 -2
  69. package/dist/agents/Progress.d.ts.map +1 -1
  70. package/dist/agents/Progress.js +4 -2
  71. package/dist/agents/Progress.js.map +1 -1
  72. package/dist/agents/Screen.cjs +18 -10
  73. package/dist/agents/Screen.d.ts.map +1 -1
  74. package/dist/agents/Screen.js +18 -10
  75. package/dist/agents/Screen.js.map +1 -1
  76. package/dist/agents/ShortcutsSheet.cjs +66 -11
  77. package/dist/agents/ShortcutsSheet.d.ts.map +1 -1
  78. package/dist/agents/ShortcutsSheet.js +66 -11
  79. package/dist/agents/ShortcutsSheet.js.map +1 -1
  80. package/dist/agents/Steer.cjs +7 -4
  81. package/dist/agents/Steer.d.ts.map +1 -1
  82. package/dist/agents/Steer.js +7 -4
  83. package/dist/agents/Steer.js.map +1 -1
  84. package/dist/agents/Suggestions.cjs +5 -2
  85. package/dist/agents/Suggestions.d.ts +1 -1
  86. package/dist/agents/Suggestions.d.ts.map +1 -1
  87. package/dist/agents/Suggestions.js +5 -2
  88. package/dist/agents/Suggestions.js.map +1 -1
  89. package/dist/agents/SwarmBar.cjs +9 -2
  90. package/dist/agents/SwarmBar.d.ts.map +1 -1
  91. package/dist/agents/SwarmBar.js +9 -2
  92. package/dist/agents/SwarmBar.js.map +1 -1
  93. package/dist/agents/TerminalViewer.cjs +74 -6
  94. package/dist/agents/TerminalViewer.d.ts.map +1 -1
  95. package/dist/agents/TerminalViewer.js +74 -6
  96. package/dist/agents/TerminalViewer.js.map +1 -1
  97. package/dist/agents/Transcript.cjs +3 -1
  98. package/dist/agents/Transcript.d.ts.map +1 -1
  99. package/dist/agents/Transcript.js +3 -1
  100. package/dist/agents/Transcript.js.map +1 -1
  101. package/dist/agents/Workspace.cjs +15 -10
  102. package/dist/agents/Workspace.d.ts.map +1 -1
  103. package/dist/agents/Workspace.js +15 -10
  104. package/dist/agents/Workspace.js.map +1 -1
  105. package/dist/auth/SignIn.cjs +17 -8
  106. package/dist/auth/SignIn.d.ts.map +1 -1
  107. package/dist/auth/SignIn.js +15 -6
  108. package/dist/auth/SignIn.js.map +1 -1
  109. package/dist/backdrop/scene.cjs +4 -28
  110. package/dist/backdrop/scene.d.ts +2 -1
  111. package/dist/backdrop/scene.d.ts.map +1 -1
  112. package/dist/backdrop/scene.js +4 -28
  113. package/dist/backdrop/scene.js.map +1 -1
  114. package/dist/backends/gui/advanced-chart.cjs +3 -1
  115. package/dist/backends/gui/advanced-chart.d.ts.map +1 -1
  116. package/dist/backends/gui/advanced-chart.js +3 -1
  117. package/dist/backends/gui/advanced-chart.js.map +1 -1
  118. package/dist/backends/gui/alert.cjs +4 -2
  119. package/dist/backends/gui/alert.d.ts.map +1 -1
  120. package/dist/backends/gui/alert.js +4 -2
  121. package/dist/backends/gui/alert.js.map +1 -1
  122. package/dist/backends/gui/animated-testimonials.cjs +3 -1
  123. package/dist/backends/gui/animated-testimonials.d.ts.map +1 -1
  124. package/dist/backends/gui/animated-testimonials.js +3 -1
  125. package/dist/backends/gui/animated-testimonials.js.map +1 -1
  126. package/dist/backends/gui/announcement.cjs +4 -2
  127. package/dist/backends/gui/announcement.d.ts +0 -13
  128. package/dist/backends/gui/announcement.d.ts.map +1 -1
  129. package/dist/backends/gui/announcement.js +4 -2
  130. package/dist/backends/gui/announcement.js.map +1 -1
  131. package/dist/backends/gui/apple-cards-carousel.cjs +31 -12
  132. package/dist/backends/gui/apple-cards-carousel.d.ts +1 -1
  133. package/dist/backends/gui/apple-cards-carousel.d.ts.map +1 -1
  134. package/dist/backends/gui/apple-cards-carousel.js +31 -12
  135. package/dist/backends/gui/apple-cards-carousel.js.map +1 -1
  136. package/dist/backends/gui/apple-hello-effect.cjs +5 -2
  137. package/dist/backends/gui/apple-hello-effect.d.ts.map +1 -1
  138. package/dist/backends/gui/apple-hello-effect.js +5 -2
  139. package/dist/backends/gui/apple-hello-effect.js.map +1 -1
  140. package/dist/backends/gui/banner.cjs +7 -4
  141. package/dist/backends/gui/banner.d.ts +0 -30
  142. package/dist/backends/gui/banner.d.ts.map +1 -1
  143. package/dist/backends/gui/banner.js +7 -4
  144. package/dist/backends/gui/banner.js.map +1 -1
  145. package/dist/backends/gui/breadcrumb.cjs +5 -1
  146. package/dist/backends/gui/breadcrumb.d.ts +1 -1
  147. package/dist/backends/gui/breadcrumb.d.ts.map +1 -1
  148. package/dist/backends/gui/breadcrumb.js +5 -1
  149. package/dist/backends/gui/breadcrumb.js.map +1 -1
  150. package/dist/backends/gui/calendar.cjs +10 -21
  151. package/dist/backends/gui/calendar.d.ts.map +1 -1
  152. package/dist/backends/gui/calendar.js +10 -21
  153. package/dist/backends/gui/calendar.js.map +1 -1
  154. package/dist/backends/gui/carousel.cjs +25 -7
  155. package/dist/backends/gui/carousel.d.ts.map +1 -1
  156. package/dist/backends/gui/carousel.js +25 -7
  157. package/dist/backends/gui/carousel.js.map +1 -1
  158. package/dist/backends/gui/code-block.cjs +37 -16
  159. package/dist/backends/gui/code-block.d.ts.map +1 -1
  160. package/dist/backends/gui/code-block.js +37 -16
  161. package/dist/backends/gui/code-block.js.map +1 -1
  162. package/dist/backends/gui/code-editor.cjs +92 -75
  163. package/dist/backends/gui/code-editor.d.ts +2 -2
  164. package/dist/backends/gui/code-editor.d.ts.map +1 -1
  165. package/dist/backends/gui/code-editor.js +94 -77
  166. package/dist/backends/gui/code-editor.js.map +1 -1
  167. package/dist/backends/gui/code-tabs.cjs +3 -1
  168. package/dist/backends/gui/code-tabs.d.ts.map +1 -1
  169. package/dist/backends/gui/code-tabs.js +3 -1
  170. package/dist/backends/gui/code-tabs.js.map +1 -1
  171. package/dist/backends/gui/combobox.cjs +7 -4
  172. package/dist/backends/gui/combobox.d.ts.map +1 -1
  173. package/dist/backends/gui/combobox.js +7 -4
  174. package/dist/backends/gui/combobox.js.map +1 -1
  175. package/dist/backends/gui/command.cjs +6 -2
  176. package/dist/backends/gui/command.d.ts.map +1 -1
  177. package/dist/backends/gui/command.js +6 -2
  178. package/dist/backends/gui/command.js.map +1 -1
  179. package/dist/backends/gui/company-profile.cjs +3 -1
  180. package/dist/backends/gui/company-profile.d.ts.map +1 -1
  181. package/dist/backends/gui/company-profile.js +3 -1
  182. package/dist/backends/gui/company-profile.js.map +1 -1
  183. package/dist/backends/gui/country-select.cjs +4 -1
  184. package/dist/backends/gui/country-select.d.ts +1 -1
  185. package/dist/backends/gui/country-select.d.ts.map +1 -1
  186. package/dist/backends/gui/country-select.js +4 -1
  187. package/dist/backends/gui/country-select.js.map +1 -1
  188. package/dist/backends/gui/credit-card.cjs +4 -2
  189. package/dist/backends/gui/credit-card.d.ts.map +1 -1
  190. package/dist/backends/gui/credit-card.js +4 -2
  191. package/dist/backends/gui/credit-card.js.map +1 -1
  192. package/dist/backends/gui/crypto-market.cjs +5 -3
  193. package/dist/backends/gui/crypto-market.d.ts.map +1 -1
  194. package/dist/backends/gui/crypto-market.js +5 -3
  195. package/dist/backends/gui/crypto-market.js.map +1 -1
  196. package/dist/backends/gui/crypto-screener.cjs +3 -1
  197. package/dist/backends/gui/crypto-screener.d.ts.map +1 -1
  198. package/dist/backends/gui/crypto-screener.js +3 -1
  199. package/dist/backends/gui/crypto-screener.js.map +1 -1
  200. package/dist/backends/gui/currency-picker.cjs +6 -3
  201. package/dist/backends/gui/currency-picker.d.ts +1 -1
  202. package/dist/backends/gui/currency-picker.d.ts.map +1 -1
  203. package/dist/backends/gui/currency-picker.js +6 -3
  204. package/dist/backends/gui/currency-picker.js.map +1 -1
  205. package/dist/backends/gui/data-table.cjs +46 -17
  206. package/dist/backends/gui/data-table.d.ts.map +1 -1
  207. package/dist/backends/gui/data-table.js +47 -18
  208. package/dist/backends/gui/data-table.js.map +1 -1
  209. package/dist/backends/gui/date-picker.cjs +8 -17
  210. package/dist/backends/gui/date-picker.d.ts.map +1 -1
  211. package/dist/backends/gui/date-picker.js +8 -17
  212. package/dist/backends/gui/date-picker.js.map +1 -1
  213. package/dist/backends/gui/desktop-spotlight.cjs +7 -3
  214. package/dist/backends/gui/desktop-spotlight.d.ts +1 -1
  215. package/dist/backends/gui/desktop-spotlight.d.ts.map +1 -1
  216. package/dist/backends/gui/desktop-spotlight.js +7 -3
  217. package/dist/backends/gui/desktop-spotlight.js.map +1 -1
  218. package/dist/backends/gui/desktop-window.cjs +7 -5
  219. package/dist/backends/gui/desktop-window.d.ts +1 -1
  220. package/dist/backends/gui/desktop-window.d.ts.map +1 -1
  221. package/dist/backends/gui/desktop-window.js +7 -5
  222. package/dist/backends/gui/desktop-window.js.map +1 -1
  223. package/dist/backends/gui/dialog-stack.cjs +4 -2
  224. package/dist/backends/gui/dialog-stack.d.ts +1 -1
  225. package/dist/backends/gui/dialog-stack.d.ts.map +1 -1
  226. package/dist/backends/gui/dialog-stack.js +4 -2
  227. package/dist/backends/gui/dialog-stack.js.map +1 -1
  228. package/dist/backends/gui/dialog.cjs +18 -7
  229. package/dist/backends/gui/dialog.d.ts +2 -2
  230. package/dist/backends/gui/dialog.d.ts.map +1 -1
  231. package/dist/backends/gui/dialog.js +19 -8
  232. package/dist/backends/gui/dialog.js.map +1 -1
  233. package/dist/backends/gui/drawer.cjs +12 -7
  234. package/dist/backends/gui/drawer.d.ts +1 -1
  235. package/dist/backends/gui/drawer.d.ts.map +1 -1
  236. package/dist/backends/gui/drawer.js +12 -7
  237. package/dist/backends/gui/drawer.js.map +1 -1
  238. package/dist/backends/gui/dropdown-menu.cjs +84 -59
  239. package/dist/backends/gui/dropdown-menu.d.ts +13 -13
  240. package/dist/backends/gui/dropdown-menu.d.ts.map +1 -1
  241. package/dist/backends/gui/dropdown-menu.js +87 -62
  242. package/dist/backends/gui/dropdown-menu.js.map +1 -1
  243. package/dist/backends/gui/dropzone.cjs +6 -4
  244. package/dist/backends/gui/dropzone.d.ts.map +1 -1
  245. package/dist/backends/gui/dropzone.js +6 -4
  246. package/dist/backends/gui/dropzone.js.map +1 -1
  247. package/dist/backends/gui/editor.cjs +4 -2
  248. package/dist/backends/gui/editor.d.ts.map +1 -1
  249. package/dist/backends/gui/editor.js +4 -2
  250. package/dist/backends/gui/editor.js.map +1 -1
  251. package/dist/backends/gui/financials.cjs +3 -1
  252. package/dist/backends/gui/financials.d.ts.map +1 -1
  253. package/dist/backends/gui/financials.js +3 -1
  254. package/dist/backends/gui/financials.js.map +1 -1
  255. package/dist/backends/gui/forex-screener.cjs +3 -1
  256. package/dist/backends/gui/forex-screener.d.ts.map +1 -1
  257. package/dist/backends/gui/forex-screener.js +3 -1
  258. package/dist/backends/gui/forex-screener.js.map +1 -1
  259. package/dist/backends/gui/gantt.cjs +16 -2
  260. package/dist/backends/gui/gantt.d.ts.map +1 -1
  261. package/dist/backends/gui/gantt.js +16 -2
  262. package/dist/backends/gui/gantt.js.map +1 -1
  263. package/dist/backends/gui/icon-picker.cjs +7 -3
  264. package/dist/backends/gui/icon-picker.d.ts +1 -1
  265. package/dist/backends/gui/icon-picker.d.ts.map +1 -1
  266. package/dist/backends/gui/icon-picker.js +7 -3
  267. package/dist/backends/gui/icon-picker.js.map +1 -1
  268. package/dist/backends/gui/image-crop.cjs +5 -3
  269. package/dist/backends/gui/image-crop.d.ts.map +1 -1
  270. package/dist/backends/gui/image-crop.js +5 -3
  271. package/dist/backends/gui/image-crop.js.map +1 -1
  272. package/dist/backends/gui/image-input.cjs +7 -3
  273. package/dist/backends/gui/image-input.d.ts +1 -1
  274. package/dist/backends/gui/image-input.d.ts.map +1 -1
  275. package/dist/backends/gui/image-input.js +7 -3
  276. package/dist/backends/gui/image-input.js.map +1 -1
  277. package/dist/backends/gui/input.cjs +10 -5
  278. package/dist/backends/gui/input.d.ts +1 -1
  279. package/dist/backends/gui/input.d.ts.map +1 -1
  280. package/dist/backends/gui/input.js +10 -5
  281. package/dist/backends/gui/input.js.map +1 -1
  282. package/dist/backends/gui/json-tree.cjs +51 -24
  283. package/dist/backends/gui/json-tree.d.ts +1 -1
  284. package/dist/backends/gui/json-tree.d.ts.map +1 -1
  285. package/dist/backends/gui/json-tree.js +51 -24
  286. package/dist/backends/gui/json-tree.js.map +1 -1
  287. package/dist/backends/gui/kanban.cjs +65 -15
  288. package/dist/backends/gui/kanban.d.ts.map +1 -1
  289. package/dist/backends/gui/kanban.js +67 -17
  290. package/dist/backends/gui/kanban.js.map +1 -1
  291. package/dist/backends/gui/limelight-nav.cjs +3 -1
  292. package/dist/backends/gui/limelight-nav.d.ts.map +1 -1
  293. package/dist/backends/gui/limelight-nav.js +3 -1
  294. package/dist/backends/gui/limelight-nav.js.map +1 -1
  295. package/dist/backends/gui/message-dock.cjs +5 -3
  296. package/dist/backends/gui/message-dock.d.ts.map +1 -1
  297. package/dist/backends/gui/message-dock.js +6 -4
  298. package/dist/backends/gui/message-dock.js.map +1 -1
  299. package/dist/backends/gui/nav-items.cjs +8 -4
  300. package/dist/backends/gui/nav-items.d.ts.map +1 -1
  301. package/dist/backends/gui/nav-items.js +8 -4
  302. package/dist/backends/gui/nav-items.js.map +1 -1
  303. package/dist/backends/gui/navigation-bar.cjs +16 -5
  304. package/dist/backends/gui/navigation-bar.d.ts.map +1 -1
  305. package/dist/backends/gui/navigation-bar.js +16 -5
  306. package/dist/backends/gui/navigation-bar.js.map +1 -1
  307. package/dist/backends/gui/navigation-menu.cjs +17 -5
  308. package/dist/backends/gui/navigation-menu.d.ts.map +1 -1
  309. package/dist/backends/gui/navigation-menu.js +17 -5
  310. package/dist/backends/gui/navigation-menu.js.map +1 -1
  311. package/dist/backends/gui/news-timeline.cjs +3 -1
  312. package/dist/backends/gui/news-timeline.d.ts.map +1 -1
  313. package/dist/backends/gui/news-timeline.js +3 -1
  314. package/dist/backends/gui/news-timeline.js.map +1 -1
  315. package/dist/backends/gui/number-field.cjs +24 -5
  316. package/dist/backends/gui/number-field.d.ts.map +1 -1
  317. package/dist/backends/gui/number-field.js +24 -5
  318. package/dist/backends/gui/number-field.js.map +1 -1
  319. package/dist/backends/gui/order-entry.cjs +3 -1
  320. package/dist/backends/gui/order-entry.d.ts.map +1 -1
  321. package/dist/backends/gui/order-entry.js +3 -1
  322. package/dist/backends/gui/order-entry.js.map +1 -1
  323. package/dist/backends/gui/orders-history.cjs +23 -5
  324. package/dist/backends/gui/orders-history.d.ts.map +1 -1
  325. package/dist/backends/gui/orders-history.js +23 -5
  326. package/dist/backends/gui/orders-history.js.map +1 -1
  327. package/dist/backends/gui/overflowing-list.cjs +4 -2
  328. package/dist/backends/gui/overflowing-list.d.ts.map +1 -1
  329. package/dist/backends/gui/overflowing-list.js +4 -2
  330. package/dist/backends/gui/overflowing-list.js.map +1 -1
  331. package/dist/backends/gui/pagination.cjs +32 -7
  332. package/dist/backends/gui/pagination.d.ts +0 -12
  333. package/dist/backends/gui/pagination.d.ts.map +1 -1
  334. package/dist/backends/gui/pagination.js +32 -7
  335. package/dist/backends/gui/pagination.js.map +1 -1
  336. package/dist/backends/gui/phone-country-picker.cjs +6 -3
  337. package/dist/backends/gui/phone-country-picker.d.ts +1 -1
  338. package/dist/backends/gui/phone-country-picker.d.ts.map +1 -1
  339. package/dist/backends/gui/phone-country-picker.js +6 -3
  340. package/dist/backends/gui/phone-country-picker.js.map +1 -1
  341. package/dist/backends/gui/pill.cjs +4 -2
  342. package/dist/backends/gui/pill.d.ts.map +1 -1
  343. package/dist/backends/gui/pill.js +5 -3
  344. package/dist/backends/gui/pill.js.map +1 -1
  345. package/dist/backends/gui/pin-list.cjs +3 -1
  346. package/dist/backends/gui/pin-list.d.ts.map +1 -1
  347. package/dist/backends/gui/pin-list.js +3 -1
  348. package/dist/backends/gui/pin-list.js.map +1 -1
  349. package/dist/backends/gui/positions-list.cjs +7 -4
  350. package/dist/backends/gui/positions-list.d.ts.map +1 -1
  351. package/dist/backends/gui/positions-list.js +7 -4
  352. package/dist/backends/gui/positions-list.js.map +1 -1
  353. package/dist/backends/gui/relative-time.cjs +51 -43
  354. package/dist/backends/gui/relative-time.d.ts +7 -0
  355. package/dist/backends/gui/relative-time.d.ts.map +1 -1
  356. package/dist/backends/gui/relative-time.js +51 -43
  357. package/dist/backends/gui/relative-time.js.map +1 -1
  358. package/dist/backends/gui/safari.cjs +7 -4
  359. package/dist/backends/gui/safari.d.ts.map +1 -1
  360. package/dist/backends/gui/safari.js +7 -4
  361. package/dist/backends/gui/safari.js.map +1 -1
  362. package/dist/backends/gui/search-list.cjs +5 -2
  363. package/dist/backends/gui/search-list.d.ts.map +1 -1
  364. package/dist/backends/gui/search-list.js +5 -2
  365. package/dist/backends/gui/search-list.js.map +1 -1
  366. package/dist/backends/gui/select.cjs +8 -2
  367. package/dist/backends/gui/select.d.ts +7 -0
  368. package/dist/backends/gui/select.d.ts.map +1 -1
  369. package/dist/backends/gui/select.js +8 -2
  370. package/dist/backends/gui/select.js.map +1 -1
  371. package/dist/backends/gui/shortcut.cjs +4 -1
  372. package/dist/backends/gui/shortcut.d.ts +1 -1
  373. package/dist/backends/gui/shortcut.d.ts.map +1 -1
  374. package/dist/backends/gui/shortcut.js +4 -1
  375. package/dist/backends/gui/shortcut.js.map +1 -1
  376. package/dist/backends/gui/snippet.cjs +37 -15
  377. package/dist/backends/gui/snippet.d.ts.map +1 -1
  378. package/dist/backends/gui/snippet.js +37 -15
  379. package/dist/backends/gui/snippet.js.map +1 -1
  380. package/dist/backends/gui/stars-scrolling-wheel.cjs +4 -1
  381. package/dist/backends/gui/stars-scrolling-wheel.d.ts +1 -1
  382. package/dist/backends/gui/stars-scrolling-wheel.d.ts.map +1 -1
  383. package/dist/backends/gui/stars-scrolling-wheel.js +4 -1
  384. package/dist/backends/gui/stars-scrolling-wheel.js.map +1 -1
  385. package/dist/backends/gui/stepper.cjs +4 -2
  386. package/dist/backends/gui/stepper.d.ts.map +1 -1
  387. package/dist/backends/gui/stepper.js +4 -2
  388. package/dist/backends/gui/stepper.js.map +1 -1
  389. package/dist/backends/gui/stock-screener.cjs +3 -1
  390. package/dist/backends/gui/stock-screener.d.ts.map +1 -1
  391. package/dist/backends/gui/stock-screener.js +3 -1
  392. package/dist/backends/gui/stock-screener.js.map +1 -1
  393. package/dist/backends/gui/symbol-info.cjs +3 -1
  394. package/dist/backends/gui/symbol-info.d.ts.map +1 -1
  395. package/dist/backends/gui/symbol-info.js +3 -1
  396. package/dist/backends/gui/symbol-info.js.map +1 -1
  397. package/dist/backends/gui/tags.cjs +3 -1
  398. package/dist/backends/gui/tags.d.ts.map +1 -1
  399. package/dist/backends/gui/tags.js +3 -1
  400. package/dist/backends/gui/tags.js.map +1 -1
  401. package/dist/backends/gui/technical-analysis.cjs +3 -1
  402. package/dist/backends/gui/technical-analysis.d.ts.map +1 -1
  403. package/dist/backends/gui/technical-analysis.js +3 -1
  404. package/dist/backends/gui/technical-analysis.js.map +1 -1
  405. package/dist/backends/gui/terminal.cjs +16 -7
  406. package/dist/backends/gui/terminal.d.ts.map +1 -1
  407. package/dist/backends/gui/terminal.js +17 -8
  408. package/dist/backends/gui/terminal.js.map +1 -1
  409. package/dist/backends/gui/toaster.cjs +19 -6
  410. package/dist/backends/gui/toaster.d.ts.map +1 -1
  411. package/dist/backends/gui/toaster.js +20 -7
  412. package/dist/backends/gui/toaster.js.map +1 -1
  413. package/dist/backends/gui/video-player.cjs +6 -14
  414. package/dist/backends/gui/video-player.d.ts.map +1 -1
  415. package/dist/backends/gui/video-player.js +6 -14
  416. package/dist/backends/gui/video-player.js.map +1 -1
  417. package/dist/backends/gui/video.cjs +4 -2
  418. package/dist/backends/gui/video.d.ts.map +1 -1
  419. package/dist/backends/gui/video.js +4 -2
  420. package/dist/backends/gui/video.js.map +1 -1
  421. package/dist/catalog/Shelf.cjs +6 -3
  422. package/dist/catalog/Shelf.d.ts.map +1 -1
  423. package/dist/catalog/Shelf.js +6 -3
  424. package/dist/catalog/Shelf.js.map +1 -1
  425. package/dist/catalog/Tile.cjs +4 -1
  426. package/dist/catalog/Tile.d.ts +1 -1
  427. package/dist/catalog/Tile.d.ts.map +1 -1
  428. package/dist/catalog/Tile.js +4 -1
  429. package/dist/catalog/Tile.js.map +1 -1
  430. package/dist/chat/Chat.cjs +6 -4
  431. package/dist/chat/Chat.d.ts.map +1 -1
  432. package/dist/chat/Chat.js +3 -1
  433. package/dist/chat/Chat.js.map +1 -1
  434. package/dist/chat/Composer.cjs +19 -15
  435. package/dist/chat/Composer.d.ts +2 -2
  436. package/dist/chat/Composer.d.ts.map +1 -1
  437. package/dist/chat/Composer.js +10 -6
  438. package/dist/chat/Composer.js.map +1 -1
  439. package/dist/chat/Dial.cjs +110 -0
  440. package/dist/chat/Dial.d.ts +13 -0
  441. package/dist/chat/Dial.d.ts.map +1 -0
  442. package/dist/chat/Dial.js +108 -0
  443. package/dist/chat/Dial.js.map +1 -0
  444. package/dist/chat/Dictation.cjs +22 -15
  445. package/dist/chat/Dictation.d.ts.map +1 -1
  446. package/dist/chat/Dictation.js +13 -6
  447. package/dist/chat/Dictation.js.map +1 -1
  448. package/dist/chat/EmptyPrompt.cjs +7 -4
  449. package/dist/chat/EmptyPrompt.d.ts +2 -2
  450. package/dist/chat/EmptyPrompt.d.ts.map +1 -1
  451. package/dist/chat/EmptyPrompt.js +7 -4
  452. package/dist/chat/EmptyPrompt.js.map +1 -1
  453. package/dist/chat/Failure.cjs +4 -13
  454. package/dist/chat/Failure.d.ts +2 -1
  455. package/dist/chat/Failure.d.ts.map +1 -1
  456. package/dist/chat/Failure.js +4 -13
  457. package/dist/chat/Failure.js.map +1 -1
  458. package/dist/chat/Families.cjs +14 -7
  459. package/dist/chat/Families.d.ts.map +1 -1
  460. package/dist/chat/Families.js +11 -4
  461. package/dist/chat/Families.js.map +1 -1
  462. package/dist/chat/Header.cjs +9 -5
  463. package/dist/chat/Header.d.ts +2 -0
  464. package/dist/chat/Header.d.ts.map +1 -1
  465. package/dist/chat/Header.js +9 -5
  466. package/dist/chat/Header.js.map +1 -1
  467. package/dist/chat/Home.cjs +4 -2
  468. package/dist/chat/Home.d.ts.map +1 -1
  469. package/dist/chat/Home.js +4 -2
  470. package/dist/chat/Home.js.map +1 -1
  471. package/dist/chat/Inspector.cjs +4 -2
  472. package/dist/chat/Inspector.d.ts +0 -24
  473. package/dist/chat/Inspector.d.ts.map +1 -1
  474. package/dist/chat/Inspector.js +4 -2
  475. package/dist/chat/Inspector.js.map +1 -1
  476. package/dist/chat/Mention.cjs +13 -2
  477. package/dist/chat/Mention.d.ts.map +1 -1
  478. package/dist/chat/Mention.js +13 -2
  479. package/dist/chat/Mention.js.map +1 -1
  480. package/dist/chat/Plus.cjs +46 -31
  481. package/dist/chat/Plus.d.ts +12 -0
  482. package/dist/chat/Plus.d.ts.map +1 -1
  483. package/dist/chat/Plus.js +47 -32
  484. package/dist/chat/Plus.js.map +1 -1
  485. package/dist/chat/Preview.cjs +3 -1
  486. package/dist/chat/Preview.d.ts.map +1 -1
  487. package/dist/chat/Preview.js +3 -1
  488. package/dist/chat/Preview.js.map +1 -1
  489. package/dist/chat/SessionRail.cjs +34 -18
  490. package/dist/chat/SessionRail.d.ts +2 -2
  491. package/dist/chat/SessionRail.d.ts.map +1 -1
  492. package/dist/chat/SessionRail.js +25 -9
  493. package/dist/chat/SessionRail.js.map +1 -1
  494. package/dist/chat/Sidebar.cjs +10 -6
  495. package/dist/chat/Sidebar.d.ts +1 -0
  496. package/dist/chat/Sidebar.d.ts.map +1 -1
  497. package/dist/chat/Sidebar.js +8 -4
  498. package/dist/chat/Sidebar.js.map +1 -1
  499. package/dist/chat/Sources.cjs +4 -2
  500. package/dist/chat/Sources.d.ts.map +1 -1
  501. package/dist/chat/Sources.js +4 -2
  502. package/dist/chat/Sources.js.map +1 -1
  503. package/dist/chat/Tune.cjs +5 -1
  504. package/dist/chat/Tune.d.ts +11 -1
  505. package/dist/chat/Tune.d.ts.map +1 -1
  506. package/dist/chat/Tune.js +5 -1
  507. package/dist/chat/Tune.js.map +1 -1
  508. package/dist/chat/ways.cjs +7 -2
  509. package/dist/chat/ways.d.ts +7 -2
  510. package/dist/chat/ways.d.ts.map +1 -1
  511. package/dist/chat/ways.js +7 -2
  512. package/dist/chat/ways.js.map +1 -1
  513. package/dist/consent/Consent.cjs +65 -31
  514. package/dist/consent/Consent.d.ts.map +1 -1
  515. package/dist/consent/Consent.js +65 -31
  516. package/dist/consent/Consent.js.map +1 -1
  517. package/dist/core/english.cjs +4 -0
  518. package/dist/core/english.d.ts +18 -0
  519. package/dist/core/english.d.ts.map +1 -0
  520. package/dist/core/english.js +2 -0
  521. package/dist/core/english.js.map +1 -0
  522. package/dist/corner/Corner.cjs +35 -27
  523. package/dist/corner/Corner.d.ts +5 -2
  524. package/dist/corner/Corner.d.ts.map +1 -1
  525. package/dist/corner/Corner.js +17 -9
  526. package/dist/corner/Corner.js.map +1 -1
  527. package/dist/corner/index.cjs +2 -2
  528. package/dist/corner/index.d.ts +1 -1
  529. package/dist/corner/index.d.ts.map +1 -1
  530. package/dist/corner/index.js +1 -1
  531. package/dist/corner/index.js.map +1 -1
  532. package/dist/corner/logic.cjs +31 -27
  533. package/dist/corner/logic.d.ts +9 -7
  534. package/dist/corner/logic.d.ts.map +1 -1
  535. package/dist/corner/logic.js +27 -23
  536. package/dist/corner/logic.js.map +1 -1
  537. package/dist/framework/CollectionBuilder.cjs +7 -5
  538. package/dist/framework/CollectionBuilder.d.ts.map +1 -1
  539. package/dist/framework/CollectionBuilder.js +7 -5
  540. package/dist/framework/CollectionBuilder.js.map +1 -1
  541. package/dist/framework/CollectionsBrowser.cjs +10 -8
  542. package/dist/framework/CollectionsBrowser.d.ts.map +1 -1
  543. package/dist/framework/CollectionsBrowser.js +10 -8
  544. package/dist/framework/CollectionsBrowser.js.map +1 -1
  545. package/dist/framework/DocTypeDetail.cjs +9 -7
  546. package/dist/framework/DocTypeDetail.d.ts.map +1 -1
  547. package/dist/framework/DocTypeDetail.js +9 -7
  548. package/dist/framework/DocTypeDetail.js.map +1 -1
  549. package/dist/framework/DocTypeRecords.cjs +4 -2
  550. package/dist/framework/DocTypeRecords.d.ts.map +1 -1
  551. package/dist/framework/DocTypeRecords.js +4 -2
  552. package/dist/framework/DocTypeRecords.js.map +1 -1
  553. package/dist/framework/MediaGrid.cjs +12 -5
  554. package/dist/framework/MediaGrid.d.ts.map +1 -1
  555. package/dist/framework/MediaGrid.js +12 -5
  556. package/dist/framework/MediaGrid.js.map +1 -1
  557. package/dist/framework/RecordCards.cjs +17 -13
  558. package/dist/framework/RecordCards.d.ts +1 -1
  559. package/dist/framework/RecordCards.d.ts.map +1 -1
  560. package/dist/framework/RecordCards.js +17 -13
  561. package/dist/framework/RecordCards.js.map +1 -1
  562. package/dist/framework/builder-logic.cjs +41 -26
  563. package/dist/framework/builder-logic.d.ts +8 -16
  564. package/dist/framework/builder-logic.d.ts.map +1 -1
  565. package/dist/framework/builder-logic.js +41 -26
  566. package/dist/framework/builder-logic.js.map +1 -1
  567. package/dist/framework/fields.cjs +3 -2
  568. package/dist/framework/fields.d.ts +2 -1
  569. package/dist/framework/fields.d.ts.map +1 -1
  570. package/dist/framework/fields.js +3 -2
  571. package/dist/framework/fields.js.map +1 -1
  572. package/dist/gallery.html +12 -61
  573. package/dist/glass.css +10 -59
  574. package/dist/i18n/catalogs/ar.json +261 -0
  575. package/dist/i18n/catalogs/de-DE.json +261 -0
  576. package/dist/i18n/catalogs/es-ES.json +261 -0
  577. package/dist/i18n/catalogs/fr-FR.json +261 -0
  578. package/dist/i18n/catalogs/hi-IN.json +261 -0
  579. package/dist/i18n/catalogs/id-ID.json +261 -0
  580. package/dist/i18n/catalogs/it-IT.json +261 -0
  581. package/dist/i18n/catalogs/ja-JP.json +261 -0
  582. package/dist/i18n/catalogs/ko-KR.json +261 -0
  583. package/dist/i18n/catalogs/pt-BR.json +261 -0
  584. package/dist/i18n/catalogs/ru.json +261 -0
  585. package/dist/i18n/catalogs/th.json +261 -0
  586. package/dist/i18n/catalogs/tr.json +261 -0
  587. package/dist/i18n/catalogs/vi.json +261 -0
  588. package/dist/i18n/catalogs/zh-Hans.json +261 -0
  589. package/dist/i18n/catalogs/zh-Hant.json +261 -0
  590. package/dist/i18n/catalogs.cjs +44 -0
  591. package/dist/i18n/catalogs.d.ts +14 -0
  592. package/dist/i18n/catalogs.d.ts.map +1 -0
  593. package/dist/i18n/catalogs.js +38 -0
  594. package/dist/i18n/catalogs.js.map +1 -0
  595. package/dist/i18n/index.cjs +30 -0
  596. package/dist/i18n/index.d.ts +14 -0
  597. package/dist/i18n/index.d.ts.map +1 -0
  598. package/dist/i18n/index.js +14 -0
  599. package/dist/i18n/index.js.map +1 -0
  600. package/dist/i18n/locales.cjs +70 -0
  601. package/dist/i18n/locales.d.ts +17 -0
  602. package/dist/i18n/locales.d.ts.map +1 -0
  603. package/dist/i18n/locales.js +64 -0
  604. package/dist/i18n/locales.js.map +1 -0
  605. package/dist/i18n/provider.cjs +48 -0
  606. package/dist/i18n/provider.d.ts +31 -0
  607. package/dist/i18n/provider.d.ts.map +1 -0
  608. package/dist/i18n/provider.js +46 -0
  609. package/dist/i18n/provider.js.map +1 -0
  610. package/dist/i18n/react.cjs +81 -0
  611. package/dist/i18n/react.d.ts +48 -0
  612. package/dist/i18n/react.d.ts.map +1 -0
  613. package/dist/i18n/react.js +74 -0
  614. package/dist/i18n/react.js.map +1 -0
  615. package/dist/i18n/source.cjs +275 -0
  616. package/dist/i18n/source.d.ts +15 -0
  617. package/dist/i18n/source.d.ts.map +1 -0
  618. package/dist/i18n/source.js +273 -0
  619. package/dist/i18n/source.js.map +1 -0
  620. package/dist/index.cjs +10 -1
  621. package/dist/index.d.ts +9 -8
  622. package/dist/index.d.ts.map +1 -1
  623. package/dist/index.js +8 -7
  624. package/dist/index.js.map +1 -1
  625. package/dist/index.node.cjs +10 -1
  626. package/dist/index.node.js +8 -7
  627. package/dist/marketing/ClosingCta.cjs +13 -2
  628. package/dist/marketing/ClosingCta.d.ts +2 -1
  629. package/dist/marketing/ClosingCta.d.ts.map +1 -1
  630. package/dist/marketing/ClosingCta.js +13 -2
  631. package/dist/marketing/ClosingCta.js.map +1 -1
  632. package/dist/marketing/Faq.cjs +5 -1
  633. package/dist/marketing/Faq.d.ts +1 -0
  634. package/dist/marketing/Faq.d.ts.map +1 -1
  635. package/dist/marketing/Faq.js +5 -1
  636. package/dist/marketing/Faq.js.map +1 -1
  637. package/dist/marketing/Footer.cjs +66 -31
  638. package/dist/marketing/Footer.d.ts +16 -4
  639. package/dist/marketing/Footer.d.ts.map +1 -1
  640. package/dist/marketing/Footer.js +65 -31
  641. package/dist/marketing/Footer.js.map +1 -1
  642. package/dist/marketing/PageLoading.cjs +5 -1
  643. package/dist/marketing/PageLoading.d.ts +1 -1
  644. package/dist/marketing/PageLoading.d.ts.map +1 -1
  645. package/dist/marketing/PageLoading.js +5 -1
  646. package/dist/marketing/PageLoading.js.map +1 -1
  647. package/dist/marketing/Plans.cjs +26 -10
  648. package/dist/marketing/Plans.d.ts +2 -1
  649. package/dist/marketing/Plans.d.ts.map +1 -1
  650. package/dist/marketing/Plans.js +26 -10
  651. package/dist/marketing/Plans.js.map +1 -1
  652. package/dist/marketing/blocks.cjs +5 -1
  653. package/dist/marketing/blocks.d.ts.map +1 -1
  654. package/dist/marketing/blocks.js +5 -1
  655. package/dist/marketing/blocks.js.map +1 -1
  656. package/dist/marketing/index.cjs +3 -2
  657. package/dist/marketing/index.d.ts +1 -1
  658. package/dist/marketing/index.d.ts.map +1 -1
  659. package/dist/marketing/index.js +1 -1
  660. package/dist/marketing/index.js.map +1 -1
  661. package/dist/marketing/pager.cjs +9 -4
  662. package/dist/marketing/pager.d.ts +1 -1
  663. package/dist/marketing/pager.d.ts.map +1 -1
  664. package/dist/marketing/pager.js +9 -4
  665. package/dist/marketing/pager.js.map +1 -1
  666. package/dist/masthead/Masthead.cjs +108 -20
  667. package/dist/masthead/Masthead.d.ts +1 -1
  668. package/dist/masthead/Masthead.d.ts.map +1 -1
  669. package/dist/masthead/Masthead.js +109 -21
  670. package/dist/masthead/Masthead.js.map +1 -1
  671. package/dist/masthead/nav.cjs +275 -247
  672. package/dist/masthead/nav.d.ts +7 -0
  673. package/dist/masthead/nav.d.ts.map +1 -1
  674. package/dist/masthead/nav.js +274 -246
  675. package/dist/masthead/nav.js.map +1 -1
  676. package/dist/models/ModelPicker.cjs +22 -16
  677. package/dist/models/ModelPicker.d.ts +14 -2
  678. package/dist/models/ModelPicker.d.ts.map +1 -1
  679. package/dist/models/ModelPicker.js +11 -5
  680. package/dist/models/ModelPicker.js.map +1 -1
  681. package/dist/models/ModelPickerMenu.cjs +65 -25
  682. package/dist/models/ModelPickerMenu.d.ts +6 -0
  683. package/dist/models/ModelPickerMenu.d.ts.map +1 -1
  684. package/dist/models/ModelPickerMenu.js +68 -28
  685. package/dist/models/ModelPickerMenu.js.map +1 -1
  686. package/dist/models/catalog.cjs +109 -29
  687. package/dist/models/catalog.d.ts +37 -21
  688. package/dist/models/catalog.d.ts.map +1 -1
  689. package/dist/models/catalog.js +105 -28
  690. package/dist/models/catalog.js.map +1 -1
  691. package/dist/models/picker.logic.cjs +38 -6
  692. package/dist/models/picker.logic.d.ts +26 -5
  693. package/dist/models/picker.logic.d.ts.map +1 -1
  694. package/dist/models/picker.logic.js +37 -6
  695. package/dist/models/picker.logic.js.map +1 -1
  696. package/dist/models/research.cjs +8 -1
  697. package/dist/models/research.d.ts +0 -5
  698. package/dist/models/research.d.ts.map +1 -1
  699. package/dist/models/research.js +8 -1
  700. package/dist/models/research.js.map +1 -1
  701. package/dist/onboarding/ChatOnboarding.cjs +15 -10
  702. package/dist/onboarding/ChatOnboarding.d.ts +3 -1
  703. package/dist/onboarding/ChatOnboarding.d.ts.map +1 -1
  704. package/dist/onboarding/ChatOnboarding.js +15 -10
  705. package/dist/onboarding/ChatOnboarding.js.map +1 -1
  706. package/dist/onboarding/Checkout.cjs +115 -32
  707. package/dist/onboarding/Checkout.d.ts +3 -0
  708. package/dist/onboarding/Checkout.d.ts.map +1 -1
  709. package/dist/onboarding/Checkout.js +116 -33
  710. package/dist/onboarding/Checkout.js.map +1 -1
  711. package/dist/onboarding/Onboarding.cjs +11 -9
  712. package/dist/onboarding/Onboarding.d.ts.map +1 -1
  713. package/dist/onboarding/Onboarding.js +11 -9
  714. package/dist/onboarding/Onboarding.js.map +1 -1
  715. package/dist/onboarding/account.cjs +8 -2
  716. package/dist/onboarding/account.d.ts.map +1 -1
  717. package/dist/onboarding/account.js +8 -2
  718. package/dist/onboarding/account.js.map +1 -1
  719. package/dist/onboarding/api.cjs +8 -2
  720. package/dist/onboarding/api.d.ts +5 -0
  721. package/dist/onboarding/api.d.ts.map +1 -1
  722. package/dist/onboarding/api.js +8 -2
  723. package/dist/onboarding/api.js.map +1 -1
  724. package/dist/onboarding/frame.cjs +6 -3
  725. package/dist/onboarding/frame.d.ts.map +1 -1
  726. package/dist/onboarding/frame.js +6 -3
  727. package/dist/onboarding/frame.js.map +1 -1
  728. package/dist/onboarding/hooks.cjs +2 -1
  729. package/dist/onboarding/hooks.d.ts.map +1 -1
  730. package/dist/onboarding/hooks.js +2 -1
  731. package/dist/onboarding/hooks.js.map +1 -1
  732. package/dist/onboarding/roles.cjs +149 -144
  733. package/dist/onboarding/roles.d.ts +4 -5
  734. package/dist/onboarding/roles.d.ts.map +1 -1
  735. package/dist/onboarding/roles.js +149 -144
  736. package/dist/onboarding/roles.js.map +1 -1
  737. package/dist/onboarding/screens.cjs +35 -14
  738. package/dist/onboarding/screens.d.ts.map +1 -1
  739. package/dist/onboarding/screens.js +36 -15
  740. package/dist/onboarding/screens.js.map +1 -1
  741. package/dist/product/AppHeader.cjs +8 -6
  742. package/dist/product/AppHeader.d.ts +1 -1
  743. package/dist/product/AppHeader.d.ts.map +1 -1
  744. package/dist/product/AppHeader.js +8 -6
  745. package/dist/product/AppHeader.js.map +1 -1
  746. package/dist/product/BackendState.cjs +16 -13
  747. package/dist/product/BackendState.d.ts.map +1 -1
  748. package/dist/product/BackendState.js +16 -13
  749. package/dist/product/BackendState.js.map +1 -1
  750. package/dist/product/BranchSelect.cjs +13 -4
  751. package/dist/product/BranchSelect.d.ts.map +1 -1
  752. package/dist/product/BranchSelect.js +13 -4
  753. package/dist/product/BranchSelect.js.map +1 -1
  754. package/dist/product/ChipSelect.cjs +12 -7
  755. package/dist/product/ChipSelect.d.ts +1 -1
  756. package/dist/product/ChipSelect.d.ts.map +1 -1
  757. package/dist/product/ChipSelect.js +12 -7
  758. package/dist/product/ChipSelect.js.map +1 -1
  759. package/dist/product/ComboBox.cjs +13 -6
  760. package/dist/product/ComboBox.d.ts.map +1 -1
  761. package/dist/product/ComboBox.js +13 -6
  762. package/dist/product/ComboBox.js.map +1 -1
  763. package/dist/product/CommandMenu.cjs +27 -8
  764. package/dist/product/CommandMenu.d.ts +1 -1
  765. package/dist/product/CommandMenu.d.ts.map +1 -1
  766. package/dist/product/CommandMenu.js +27 -8
  767. package/dist/product/CommandMenu.js.map +1 -1
  768. package/dist/product/CommerceResource.cjs +3 -1
  769. package/dist/product/CommerceResource.d.ts.map +1 -1
  770. package/dist/product/CommerceResource.js +3 -1
  771. package/dist/product/CommerceResource.js.map +1 -1
  772. package/dist/product/ConfirmDelete.cjs +5 -3
  773. package/dist/product/ConfirmDelete.d.ts.map +1 -1
  774. package/dist/product/ConfirmDelete.js +5 -3
  775. package/dist/product/ConfirmDelete.js.map +1 -1
  776. package/dist/product/ConnectionBadge.cjs +3 -1
  777. package/dist/product/ConnectionBadge.d.ts.map +1 -1
  778. package/dist/product/ConnectionBadge.js +3 -1
  779. package/dist/product/ConnectionBadge.js.map +1 -1
  780. package/dist/product/CopyButton.cjs +4 -2
  781. package/dist/product/CopyButton.d.ts.map +1 -1
  782. package/dist/product/CopyButton.js +4 -2
  783. package/dist/product/CopyButton.js.map +1 -1
  784. package/dist/product/DataTable.cjs +5 -3
  785. package/dist/product/DataTable.d.ts.map +1 -1
  786. package/dist/product/DataTable.js +5 -3
  787. package/dist/product/DataTable.js.map +1 -1
  788. package/dist/product/DetailPane.cjs +21 -13
  789. package/dist/product/DetailPane.d.ts.map +1 -1
  790. package/dist/product/DetailPane.js +23 -15
  791. package/dist/product/DetailPane.js.map +1 -1
  792. package/dist/product/DialogTemplate.cjs +4 -2
  793. package/dist/product/DialogTemplate.d.ts.map +1 -1
  794. package/dist/product/DialogTemplate.js +4 -2
  795. package/dist/product/DialogTemplate.js.map +1 -1
  796. package/dist/product/Donut.cjs +4 -2
  797. package/dist/product/Donut.d.ts.map +1 -1
  798. package/dist/product/Donut.js +4 -2
  799. package/dist/product/Donut.js.map +1 -1
  800. package/dist/product/Field.cjs +4 -1
  801. package/dist/product/Field.d.ts +1 -1
  802. package/dist/product/Field.d.ts.map +1 -1
  803. package/dist/product/Field.js +4 -1
  804. package/dist/product/Field.js.map +1 -1
  805. package/dist/product/LimitedBanner.cjs +5 -3
  806. package/dist/product/LimitedBanner.d.ts +10 -1
  807. package/dist/product/LimitedBanner.d.ts.map +1 -1
  808. package/dist/product/LimitedBanner.js +5 -3
  809. package/dist/product/LimitedBanner.js.map +1 -1
  810. package/dist/product/MenuRow.cjs +2 -2
  811. package/dist/product/MenuRow.js +2 -2
  812. package/dist/product/MenuRow.js.map +1 -1
  813. package/dist/product/Metric.cjs +5 -2
  814. package/dist/product/Metric.d.ts.map +1 -1
  815. package/dist/product/Metric.js +5 -2
  816. package/dist/product/Metric.js.map +1 -1
  817. package/dist/product/OrgSwitcher.cjs +19 -9
  818. package/dist/product/OrgSwitcher.d.ts +1 -1
  819. package/dist/product/OrgSwitcher.d.ts.map +1 -1
  820. package/dist/product/OrgSwitcher.js +19 -9
  821. package/dist/product/OrgSwitcher.js.map +1 -1
  822. package/dist/product/Pagination.cjs +4 -2
  823. package/dist/product/Pagination.d.ts.map +1 -1
  824. package/dist/product/Pagination.js +4 -2
  825. package/dist/product/Pagination.js.map +1 -1
  826. package/dist/product/Palette.cjs +7 -2
  827. package/dist/product/Palette.d.ts +1 -1
  828. package/dist/product/Palette.d.ts.map +1 -1
  829. package/dist/product/Palette.js +8 -3
  830. package/dist/product/Palette.js.map +1 -1
  831. package/dist/product/PlanUsage.cjs +28 -15
  832. package/dist/product/PlanUsage.d.ts +4 -4
  833. package/dist/product/PlanUsage.d.ts.map +1 -1
  834. package/dist/product/PlanUsage.js +28 -15
  835. package/dist/product/PlanUsage.js.map +1 -1
  836. package/dist/product/ProjectThumb.cjs +3 -1
  837. package/dist/product/ProjectThumb.d.ts.map +1 -1
  838. package/dist/product/ProjectThumb.js +3 -1
  839. package/dist/product/ProjectThumb.js.map +1 -1
  840. package/dist/product/RepoSelect.cjs +7 -4
  841. package/dist/product/RepoSelect.d.ts +1 -1
  842. package/dist/product/RepoSelect.d.ts.map +1 -1
  843. package/dist/product/RepoSelect.js +7 -4
  844. package/dist/product/RepoSelect.js.map +1 -1
  845. package/dist/product/SecretInput.cjs +3 -1
  846. package/dist/product/SecretInput.d.ts.map +1 -1
  847. package/dist/product/SecretInput.js +3 -1
  848. package/dist/product/SecretInput.js.map +1 -1
  849. package/dist/product/SelectMenu.cjs +4 -1
  850. package/dist/product/SelectMenu.d.ts +1 -1
  851. package/dist/product/SelectMenu.d.ts.map +1 -1
  852. package/dist/product/SelectMenu.js +4 -1
  853. package/dist/product/SelectMenu.js.map +1 -1
  854. package/dist/product/SiteNav.cjs +9 -5
  855. package/dist/product/SiteNav.d.ts.map +1 -1
  856. package/dist/product/SiteNav.js +9 -5
  857. package/dist/product/SiteNav.js.map +1 -1
  858. package/dist/product/SlideOver.cjs +11 -11
  859. package/dist/product/SlideOver.d.ts +1 -1
  860. package/dist/product/SlideOver.d.ts.map +1 -1
  861. package/dist/product/SlideOver.js +11 -11
  862. package/dist/product/SlideOver.js.map +1 -1
  863. package/dist/product/StatusTag.cjs +4 -1
  864. package/dist/product/StatusTag.d.ts.map +1 -1
  865. package/dist/product/StatusTag.js +4 -1
  866. package/dist/product/StatusTag.js.map +1 -1
  867. package/dist/product/ThemeToggle.cjs +3 -1
  868. package/dist/product/ThemeToggle.d.ts.map +1 -1
  869. package/dist/product/ThemeToggle.js +3 -1
  870. package/dist/product/ThemeToggle.js.map +1 -1
  871. package/dist/product/Toast.cjs +25 -4
  872. package/dist/product/Toast.d.ts.map +1 -1
  873. package/dist/product/Toast.js +25 -4
  874. package/dist/product/Toast.js.map +1 -1
  875. package/dist/product/UsageMeter.cjs +10 -6
  876. package/dist/product/UsageMeter.d.ts.map +1 -1
  877. package/dist/product/UsageMeter.js +11 -7
  878. package/dist/product/UsageMeter.js.map +1 -1
  879. package/dist/product/UserMenu.cjs +5 -3
  880. package/dist/product/UserMenu.d.ts.map +1 -1
  881. package/dist/product/UserMenu.js +5 -3
  882. package/dist/product/UserMenu.js.map +1 -1
  883. package/dist/product/Workbench.cjs +5 -3
  884. package/dist/product/Workbench.d.ts.map +1 -1
  885. package/dist/product/Workbench.js +5 -3
  886. package/dist/product/Workbench.js.map +1 -1
  887. package/dist/product/account.cjs +4 -2
  888. package/dist/product/account.d.ts.map +1 -1
  889. package/dist/product/account.js +4 -2
  890. package/dist/product/account.js.map +1 -1
  891. package/dist/product/limits.cjs +79 -32
  892. package/dist/product/limits.d.ts +7 -5
  893. package/dist/product/limits.d.ts.map +1 -1
  894. package/dist/product/limits.js +79 -32
  895. package/dist/product/limits.js.map +1 -1
  896. package/dist/product/match.cjs +2 -1
  897. package/dist/product/match.d.ts +1 -1
  898. package/dist/product/match.d.ts.map +1 -1
  899. package/dist/product/match.js +2 -1
  900. package/dist/product/match.js.map +1 -1
  901. package/dist/product/social/CampaignCard.cjs +3 -1
  902. package/dist/product/social/CampaignCard.d.ts.map +1 -1
  903. package/dist/product/social/CampaignCard.js +3 -1
  904. package/dist/product/social/CampaignCard.js.map +1 -1
  905. package/dist/product/social/PostAgenda.cjs +3 -1
  906. package/dist/product/social/PostAgenda.d.ts.map +1 -1
  907. package/dist/product/social/PostAgenda.js +3 -1
  908. package/dist/product/social/PostAgenda.js.map +1 -1
  909. package/dist/product/social/PostCard.cjs +3 -1
  910. package/dist/product/social/PostCard.d.ts.map +1 -1
  911. package/dist/product/social/PostCard.js +3 -1
  912. package/dist/product/social/PostCard.js.map +1 -1
  913. package/dist/product/social/PostComposer.cjs +12 -6
  914. package/dist/product/social/PostComposer.d.ts.map +1 -1
  915. package/dist/product/social/PostComposer.js +12 -6
  916. package/dist/product/social/PostComposer.js.map +1 -1
  917. package/dist/product/social/ProviderReadinessList.cjs +3 -1
  918. package/dist/product/social/ProviderReadinessList.d.ts.map +1 -1
  919. package/dist/product/social/ProviderReadinessList.js +3 -1
  920. package/dist/product/social/ProviderReadinessList.js.map +1 -1
  921. package/dist/product/social/SocialResource.cjs +25 -16
  922. package/dist/product/social/SocialResource.d.ts.map +1 -1
  923. package/dist/product/social/SocialResource.js +26 -17
  924. package/dist/product/social/SocialResource.js.map +1 -1
  925. package/dist/product/social/SocialSummaryBar.cjs +6 -4
  926. package/dist/product/social/SocialSummaryBar.d.ts.map +1 -1
  927. package/dist/product/social/SocialSummaryBar.js +6 -4
  928. package/dist/product/social/SocialSummaryBar.js.map +1 -1
  929. package/dist/product/social/ViewToggle.cjs +6 -3
  930. package/dist/product/social/ViewToggle.d.ts.map +1 -1
  931. package/dist/product/social/ViewToggle.js +6 -3
  932. package/dist/product/social/ViewToggle.js.map +1 -1
  933. package/dist/product/useLimits.cjs +4 -2
  934. package/dist/product/useLimits.d.ts.map +1 -1
  935. package/dist/product/useLimits.js +4 -2
  936. package/dist/product/useLimits.js.map +1 -1
  937. package/dist/root.cjs +6 -4
  938. package/dist/root.d.ts +52 -2
  939. package/dist/root.d.ts.map +1 -1
  940. package/dist/root.js +6 -4
  941. package/dist/root.js.map +1 -1
  942. package/dist/root.node.cjs +6 -4
  943. package/dist/root.node.js +6 -4
  944. package/dist/settings/Section.cjs +4 -2
  945. package/dist/settings/Section.d.ts.map +1 -1
  946. package/dist/settings/Section.js +4 -2
  947. package/dist/settings/Section.js.map +1 -1
  948. package/dist/settings/Settings.cjs +4 -1
  949. package/dist/settings/Settings.d.ts +1 -1
  950. package/dist/settings/Settings.d.ts.map +1 -1
  951. package/dist/settings/Settings.js +4 -1
  952. package/dist/settings/Settings.js.map +1 -1
  953. package/dist/styles.css +10 -59
  954. package/dist/theme.css +10 -59
  955. package/package.json +11 -2
@@ -14,9 +14,10 @@ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
14
14
  import { useState } from 'react';
15
15
  import { Button, Popover, Text, XStack, YStack } from '@hanzo/gui';
16
16
  import { AppWindow, Bot, CreditCard, Grip, LayoutGrid, MessageCircle, Settings2, Sparkles, UserRound, Users } from '@hanzogui/lucide-icons-2';
17
+ import { useI18n } from '@hanzo/i18n/react';
17
18
  import { BrandMark } from './BrandMark.js';
18
- import { UserMenu } from './UserMenu.js';
19
19
  import { otherSurfaces } from './surfaces.data.js';
20
+ import { UserMenu } from './UserMenu.js';
20
21
  /** The per-surface glyph — keyed by `Surface.id`, so each surface reads distinctly. */
21
22
  const SURFACE_ICON = {
22
23
  ai: Sparkles,
@@ -31,8 +32,9 @@ const openHref = (href) => {
31
32
  if (typeof window !== 'undefined')
32
33
  window.open(href, '_blank', 'noopener');
33
34
  };
34
- export function AppHeader({ brand, wordmark = 'Hanzo', onBrand, org, children, current, surfaces, open, user, menu, theme, onProfile, onTeam, onBilling, onSignOut, }) {
35
+ export function AppHeader({ brand, wordmark = 'Hanzo', onBrand, org, children, current, surfaces, open, user, menu, theme, onProfile, onTeam, onBilling, onSignOut }) {
35
36
  const [appsOpen, setAppsOpen] = useState(false);
37
+ const { t } = useI18n();
36
38
  const items = surfaces ?? otherSurfaces(current);
37
39
  const launch = (s) => {
38
40
  setAppsOpen(false);
@@ -41,14 +43,14 @@ export function AppHeader({ brand, wordmark = 'Hanzo', onBrand, org, children, c
41
43
  else
42
44
  openHref(s.href);
43
45
  };
44
- return (_jsxs(XStack, { items: "center", gap: "$2", px: "$3", height: 52, borderBottomWidth: 1, borderColor: "$borderColor", bg: "$background", children: [_jsx(XStack, { items: "center", cursor: onBrand ? 'pointer' : undefined, onPress: onBrand, children: brand ?? _jsx(BrandMark, { wordmark: wordmark }) }), org ? (_jsx(XStack, { items: "center", minW: 0, children: org })) : null, _jsx(XStack, { flex: 1, items: "center", minW: 0, children: children }), items.length > 0 ? (_jsxs(Popover, { open: appsOpen, onOpenChange: setAppsOpen, placement: "bottom-end", children: [_jsx(Popover.Trigger, { asChild: true, children: _jsx(Button, { size: "$2", chromeless: true, icon: _jsx(Grip, { size: 16 }), "aria-label": "Apps" }) }), _jsx(Popover.Content, { bordered: true, elevate: true, p: "$2", width: 230, bg: "$panel", borderColor: "$borderColor", children: _jsx(YStack, { gap: "$1", children: items.map((s) => {
46
+ return (_jsxs(XStack, { items: "center", gap: "$2", px: "$3", height: 52, borderBottomWidth: 1, borderColor: "$borderColor", bg: "$background", children: [_jsx(XStack, { items: "center", cursor: onBrand ? 'pointer' : undefined, onPress: onBrand, children: brand ?? _jsx(BrandMark, { wordmark: wordmark }) }), org ? (_jsx(XStack, { items: "center", minW: 0, children: org })) : null, _jsx(XStack, { flex: 1, items: "center", minW: 0, children: children }), items.length > 0 ? (_jsxs(Popover, { open: appsOpen, onOpenChange: setAppsOpen, placement: "bottom-end", children: [_jsx(Popover.Trigger, { asChild: true, children: _jsx(Button, { size: "$2", chromeless: true, icon: _jsx(Grip, { size: 16 }), "aria-label": t('Apps') }) }), _jsx(Popover.Content, { bordered: true, elevate: true, p: "$2", width: 230, bg: "$panel", borderColor: "$borderColor", children: _jsx(YStack, { gap: "$1", children: items.map((s) => {
45
47
  const Icon = SURFACE_ICON[s.id];
46
48
  return (_jsxs(XStack, { onPress: () => launch(s), cursor: "pointer", items: "center", gap: "$2.5", px: "$2", py: "$2", rounded: "$3", hoverStyle: { bg: '$raised' }, children: [_jsx(Icon, { size: 16 }), _jsx(Text, { flex: 1, fontSize: "$2", fontWeight: "600", color: "$ink", children: s.label }), s.hint ? (_jsx(Text, { fontSize: "$1", color: "$soft", children: s.hint })) : null] }, s.id));
47
49
  }) }) })] })) : null, _jsx(UserMenu, { name: user, groups: [
48
50
  [
49
- onProfile ? { id: 'profile', label: 'Profile', icon: _jsx(UserRound, { size: 16 }), onPress: onProfile } : null,
50
- onTeam ? { id: 'team', label: 'Team settings', icon: _jsx(Settings2, { size: 16 }), onPress: onTeam } : null,
51
- onBilling ? { id: 'billing', label: 'Billing', icon: _jsx(CreditCard, { size: 16 }), onPress: onBilling } : null,
51
+ onProfile ? { id: 'profile', label: t('Profile'), icon: _jsx(UserRound, { size: 16 }), onPress: onProfile } : null,
52
+ onTeam ? { id: 'team', label: t('Team settings'), icon: _jsx(Settings2, { size: 16 }), onPress: onTeam } : null,
53
+ onBilling ? { id: 'billing', label: t('Billing'), icon: _jsx(CreditCard, { size: 16 }), onPress: onBilling } : null,
52
54
  ].filter((r) => r !== null),
53
55
  ], theme: theme, onSignOut: onSignOut, height: 36, children: menu })] }));
54
56
  }
@@ -1 +1 @@
1
- {"version":3,"file":"AppHeader.js","sourceRoot":"","sources":["../../src/product/AppHeader.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"AppHeader.js","sourceRoot":"","sources":["../../src/product/AppHeader.tsx"],"names":[],"mappings":"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"}
@@ -8,6 +8,8 @@ const jsx_runtime_1 = require("react/jsx-runtime");
8
8
  const gui_1 = require("@hanzo/gui");
9
9
  const plate_1 = require("../backends/gui/plate.cjs");
10
10
  const lucide_icons_2_1 = require("@hanzogui/lucide-icons-2");
11
+ const i18n_1 = require("@hanzo/i18n");
12
+ const react_1 = require("@hanzo/i18n/react");
11
13
  const host_1 = require("./host.cjs");
12
14
  /**
13
15
  * Classify a thrown `/v1` error into an honest kind + raw message.
@@ -49,23 +51,23 @@ function classifyRead(e) {
49
51
  return s.kind === 'billing' ? null : s;
50
52
  }
51
53
  const TITLES = {
52
- 'not-initialized': 'Backend not initialized',
53
- unavailable: 'Not available on this deployment yet',
54
- 'not-implemented': 'Not yet available',
55
- access: 'Not enabled for your account',
56
- signin: 'Your session expired',
57
- billing: 'Add credits to continue',
58
- error: 'Could not reach the backend',
54
+ 'not-initialized': (0, i18n_1.phrase)('Backend not initialized'),
55
+ unavailable: (0, i18n_1.phrase)('Not available on this deployment yet'),
56
+ 'not-implemented': (0, i18n_1.phrase)('Not yet available'),
57
+ access: (0, i18n_1.phrase)('Not enabled for your account'),
58
+ signin: (0, i18n_1.phrase)('Your session expired'),
59
+ billing: (0, i18n_1.phrase)('Add credits to continue'),
60
+ error: (0, i18n_1.phrase)('Could not reach the backend'),
59
61
  };
60
62
  const BODIES = {
61
- 'not-initialized': 'The /v1 route is mounted but its runtime (or the console API key it proxies to) is not configured on this deployment yet. Real data appears here once it is — no placeholder data is shown.',
62
- unavailable: 'This endpoint is not mounted at the gateway on this host yet. The view lights up automatically once the route is live.',
63
+ 'not-initialized': (0, i18n_1.phrase)('The /v1 route is mounted but its runtime (or the console API key it proxies to) is not configured on this deployment yet. Real data appears here once it is — no placeholder data is shown.'),
64
+ unavailable: (0, i18n_1.phrase)('This endpoint is not mounted at the gateway on this host yet. The view lights up automatically once the route is live.'),
63
65
  // 501 — a real, planned capability whose body ships in a later phase.
64
- 'not-implemented': 'This capability is planned but not wired yet. The backend answers honestly rather than pretending it worked — nothing here is fabricated, and the view lights up automatically once it ships.',
66
+ 'not-implemented': (0, i18n_1.phrase)('This capability is planned but not wired yet. The backend answers honestly rather than pretending it worked — nothing here is fabricated, and the view lights up automatically once it ships.'),
65
67
  // 403 for a SIGNED-IN user — never "sign in".
66
- access: "You're signed in, but this isn't enabled for your organization on this deployment, or it's an admin-only surface. It appears here automatically once your account has access — nothing is fabricated.",
68
+ access: (0, i18n_1.phrase)("You're signed in, but this isn't enabled for your organization on this deployment, or it's an admin-only surface. It appears here automatically once your account has access — nothing is fabricated."),
67
69
  // 401 — the session itself lapsed; re-auth returns to this exact page.
68
- signin: 'Your session has expired or isn’t recognized here. Sign in again to continue where you left off.',
70
+ signin: (0, i18n_1.phrase)('Your session has expired or isn’t recognized here. Sign in again to continue where you left off.'),
69
71
  // Empty → the card shows the backend's own message (the honest "Insufficient
70
72
  // balance. Please add credits…" from the gateway billing gate).
71
73
  billing: '',
@@ -74,5 +76,6 @@ const BODIES = {
74
76
  /** A truthful state card for a `/v1` load failure, with an optional retry + hint. */
75
77
  function BackendStateCard({ state, onRetry, hint, }) {
76
78
  const { signIn, addCredits } = (0, host_1.useHost)();
77
- return ((0, jsx_runtime_1.jsxs)(plate_1.Plate, { borderWidth: 1, borderColor: "$borderColor", p: "$4", gap: "$2", maxW: 640, children: [(0, jsx_runtime_1.jsxs)(gui_1.XStack, { gap: "$2", items: "center", children: [(0, jsx_runtime_1.jsx)(lucide_icons_2_1.TriangleAlert, { size: 16 }), (0, jsx_runtime_1.jsx)(gui_1.Text, { fontSize: "$4", fontWeight: "700", children: TITLES[state.kind] })] }), (0, jsx_runtime_1.jsx)(gui_1.Text, { fontSize: "$3", color: "$quiet", children: BODIES[state.kind] || state.message }), hint ? ((0, jsx_runtime_1.jsx)(gui_1.Text, { fontSize: "$2", color: "$soft", children: hint })) : null, state.kind === 'signin' && signIn ? ((0, jsx_runtime_1.jsx)(gui_1.Button, { size: "$2", theme: "light", self: "flex-start", onPress: signIn, children: "Sign in again" })) : state.kind === 'billing' && addCredits ? ((0, jsx_runtime_1.jsxs)(gui_1.XStack, { gap: "$2", items: "center", flexWrap: "wrap", children: [(0, jsx_runtime_1.jsx)(gui_1.Button, { size: "$2", theme: "light", self: "flex-start", icon: (0, jsx_runtime_1.jsx)(lucide_icons_2_1.CreditCard, { size: 14 }), onPress: addCredits, children: "Add credits" }), onRetry ? ((0, jsx_runtime_1.jsx)(gui_1.Button, { size: "$2", self: "flex-start", onPress: onRetry, children: "Retry" })) : null] })) : onRetry ? ((0, jsx_runtime_1.jsx)(gui_1.Button, { size: "$2", self: "flex-start", onPress: onRetry, children: "Retry" })) : null] }));
79
+ const { t } = (0, react_1.useI18n)();
80
+ return ((0, jsx_runtime_1.jsxs)(plate_1.Plate, { borderWidth: 1, borderColor: "$borderColor", p: "$4", gap: "$2", maxW: 640, children: [(0, jsx_runtime_1.jsxs)(gui_1.XStack, { gap: "$2", items: "center", children: [(0, jsx_runtime_1.jsx)(lucide_icons_2_1.TriangleAlert, { size: 16 }), (0, jsx_runtime_1.jsx)(gui_1.Text, { fontSize: "$4", fontWeight: "700", children: t(TITLES[state.kind]) })] }), (0, jsx_runtime_1.jsx)(gui_1.Text, { fontSize: "$3", color: "$quiet", children: BODIES[state.kind] ? t(BODIES[state.kind]) : state.message }), hint ? ((0, jsx_runtime_1.jsx)(gui_1.Text, { fontSize: "$2", color: "$soft", children: hint })) : null, state.kind === 'signin' && signIn ? ((0, jsx_runtime_1.jsx)(gui_1.Button, { size: "$2", theme: "light", self: "flex-start", onPress: signIn, children: t('Sign in again') })) : state.kind === 'billing' && addCredits ? ((0, jsx_runtime_1.jsxs)(gui_1.XStack, { gap: "$2", items: "center", flexWrap: "wrap", children: [(0, jsx_runtime_1.jsx)(gui_1.Button, { size: "$2", theme: "light", self: "flex-start", icon: (0, jsx_runtime_1.jsx)(lucide_icons_2_1.CreditCard, { size: 14 }), onPress: addCredits, children: t('Add credits') }), onRetry ? ((0, jsx_runtime_1.jsx)(gui_1.Button, { size: "$2", self: "flex-start", onPress: onRetry, children: t('Retry') })) : null] })) : onRetry ? ((0, jsx_runtime_1.jsx)(gui_1.Button, { size: "$2", self: "flex-start", onPress: onRetry, children: t('Retry') })) : null] }));
78
81
  }
@@ -1 +1 @@
1
- {"version":3,"file":"BackendState.d.ts","sourceRoot":"","sources":["../../src/product/BackendState.tsx"],"names":[],"mappings":"AAEA;;;;;;;;;;;;GAYG;AACH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAA;AAOtC,MAAM,MAAM,gBAAgB,GACxB,iBAAiB,GACjB,aAAa,GACb,iBAAiB,GACjB,QAAQ,GACR,QAAQ,GACR,SAAS,GACT,OAAO,CAAA;AAEX,MAAM,MAAM,YAAY,GAAG;IAAE,IAAI,EAAE,gBAAgB,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAAA;AAEtE;;;;;;;GAOG;AACH,wBAAgB,eAAe,CAAC,CAAC,EAAE,OAAO,GAAG,YAAY,CAaxD;AAED;;;;;;GAMG;AACH,wBAAgB,YAAY,CAAC,CAAC,EAAE,OAAO,GAAG,YAAY,GAAG,IAAI,CAG5D;AA+BD,qFAAqF;AACrF,wBAAgB,gBAAgB,CAAC,EAC/B,KAAK,EACL,OAAO,EACP,IAAI,GACL,EAAE;IACD,KAAK,EAAE,YAAY,CAAA;IACnB,OAAO,CAAC,EAAE,MAAM,IAAI,CAAA;IACpB,IAAI,CAAC,EAAE,SAAS,CAAA;CACjB,+BA0CA"}
1
+ {"version":3,"file":"BackendState.d.ts","sourceRoot":"","sources":["../../src/product/BackendState.tsx"],"names":[],"mappings":"AAEA;;;;;;;;;;;;GAYG;AACH,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAA;AAStC,MAAM,MAAM,gBAAgB,GACxB,iBAAiB,GACjB,aAAa,GACb,iBAAiB,GACjB,QAAQ,GACR,QAAQ,GACR,SAAS,GACT,OAAO,CAAA;AAEX,MAAM,MAAM,YAAY,GAAG;IAAE,IAAI,EAAE,gBAAgB,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAAA;AAEtE;;;;;;;GAOG;AACH,wBAAgB,eAAe,CAAC,CAAC,EAAE,OAAO,GAAG,YAAY,CAaxD;AAED;;;;;;GAMG;AACH,wBAAgB,YAAY,CAAC,CAAC,EAAE,OAAO,GAAG,YAAY,GAAG,IAAI,CAG5D;AA+BD,qFAAqF;AACrF,wBAAgB,gBAAgB,CAAC,EAC/B,KAAK,EACL,OAAO,EACP,IAAI,GACL,EAAE;IACD,KAAK,EAAE,YAAY,CAAA;IACnB,OAAO,CAAC,EAAE,MAAM,IAAI,CAAA;IACpB,IAAI,CAAC,EAAE,SAAS,CAAA;CACjB,+BA2CA"}
@@ -3,6 +3,8 @@ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
3
  import { Button, Text, XStack } from '@hanzo/gui';
4
4
  import { Plate as Card } from '../backends/gui/plate.js';
5
5
  import { TriangleAlert, CreditCard } from '@hanzogui/lucide-icons-2';
6
+ import { phrase } from '@hanzo/i18n';
7
+ import { useI18n } from '@hanzo/i18n/react';
6
8
  import { useHost } from './host.js';
7
9
  /**
8
10
  * Classify a thrown `/v1` error into an honest kind + raw message.
@@ -44,23 +46,23 @@ export function classifyRead(e) {
44
46
  return s.kind === 'billing' ? null : s;
45
47
  }
46
48
  const TITLES = {
47
- 'not-initialized': 'Backend not initialized',
48
- unavailable: 'Not available on this deployment yet',
49
- 'not-implemented': 'Not yet available',
50
- access: 'Not enabled for your account',
51
- signin: 'Your session expired',
52
- billing: 'Add credits to continue',
53
- error: 'Could not reach the backend',
49
+ 'not-initialized': phrase('Backend not initialized'),
50
+ unavailable: phrase('Not available on this deployment yet'),
51
+ 'not-implemented': phrase('Not yet available'),
52
+ access: phrase('Not enabled for your account'),
53
+ signin: phrase('Your session expired'),
54
+ billing: phrase('Add credits to continue'),
55
+ error: phrase('Could not reach the backend'),
54
56
  };
55
57
  const BODIES = {
56
- 'not-initialized': 'The /v1 route is mounted but its runtime (or the console API key it proxies to) is not configured on this deployment yet. Real data appears here once it is — no placeholder data is shown.',
57
- unavailable: 'This endpoint is not mounted at the gateway on this host yet. The view lights up automatically once the route is live.',
58
+ 'not-initialized': phrase('The /v1 route is mounted but its runtime (or the console API key it proxies to) is not configured on this deployment yet. Real data appears here once it is — no placeholder data is shown.'),
59
+ unavailable: phrase('This endpoint is not mounted at the gateway on this host yet. The view lights up automatically once the route is live.'),
58
60
  // 501 — a real, planned capability whose body ships in a later phase.
59
- 'not-implemented': 'This capability is planned but not wired yet. The backend answers honestly rather than pretending it worked — nothing here is fabricated, and the view lights up automatically once it ships.',
61
+ 'not-implemented': phrase('This capability is planned but not wired yet. The backend answers honestly rather than pretending it worked — nothing here is fabricated, and the view lights up automatically once it ships.'),
60
62
  // 403 for a SIGNED-IN user — never "sign in".
61
- access: "You're signed in, but this isn't enabled for your organization on this deployment, or it's an admin-only surface. It appears here automatically once your account has access — nothing is fabricated.",
63
+ access: phrase("You're signed in, but this isn't enabled for your organization on this deployment, or it's an admin-only surface. It appears here automatically once your account has access — nothing is fabricated."),
62
64
  // 401 — the session itself lapsed; re-auth returns to this exact page.
63
- signin: 'Your session has expired or isn’t recognized here. Sign in again to continue where you left off.',
65
+ signin: phrase('Your session has expired or isn’t recognized here. Sign in again to continue where you left off.'),
64
66
  // Empty → the card shows the backend's own message (the honest "Insufficient
65
67
  // balance. Please add credits…" from the gateway billing gate).
66
68
  billing: '',
@@ -69,6 +71,7 @@ const BODIES = {
69
71
  /** A truthful state card for a `/v1` load failure, with an optional retry + hint. */
70
72
  export function BackendStateCard({ state, onRetry, hint, }) {
71
73
  const { signIn, addCredits } = useHost();
72
- return (_jsxs(Card, { borderWidth: 1, borderColor: "$borderColor", p: "$4", gap: "$2", maxW: 640, children: [_jsxs(XStack, { gap: "$2", items: "center", children: [_jsx(TriangleAlert, { size: 16 }), _jsx(Text, { fontSize: "$4", fontWeight: "700", children: TITLES[state.kind] })] }), _jsx(Text, { fontSize: "$3", color: "$quiet", children: BODIES[state.kind] || state.message }), hint ? (_jsx(Text, { fontSize: "$2", color: "$soft", children: hint })) : null, state.kind === 'signin' && signIn ? (_jsx(Button, { size: "$2", theme: "light", self: "flex-start", onPress: signIn, children: "Sign in again" })) : state.kind === 'billing' && addCredits ? (_jsxs(XStack, { gap: "$2", items: "center", flexWrap: "wrap", children: [_jsx(Button, { size: "$2", theme: "light", self: "flex-start", icon: _jsx(CreditCard, { size: 14 }), onPress: addCredits, children: "Add credits" }), onRetry ? (_jsx(Button, { size: "$2", self: "flex-start", onPress: onRetry, children: "Retry" })) : null] })) : onRetry ? (_jsx(Button, { size: "$2", self: "flex-start", onPress: onRetry, children: "Retry" })) : null] }));
74
+ const { t } = useI18n();
75
+ return (_jsxs(Card, { borderWidth: 1, borderColor: "$borderColor", p: "$4", gap: "$2", maxW: 640, children: [_jsxs(XStack, { gap: "$2", items: "center", children: [_jsx(TriangleAlert, { size: 16 }), _jsx(Text, { fontSize: "$4", fontWeight: "700", children: t(TITLES[state.kind]) })] }), _jsx(Text, { fontSize: "$3", color: "$quiet", children: BODIES[state.kind] ? t(BODIES[state.kind]) : state.message }), hint ? (_jsx(Text, { fontSize: "$2", color: "$soft", children: hint })) : null, state.kind === 'signin' && signIn ? (_jsx(Button, { size: "$2", theme: "light", self: "flex-start", onPress: signIn, children: t('Sign in again') })) : state.kind === 'billing' && addCredits ? (_jsxs(XStack, { gap: "$2", items: "center", flexWrap: "wrap", children: [_jsx(Button, { size: "$2", theme: "light", self: "flex-start", icon: _jsx(CreditCard, { size: 14 }), onPress: addCredits, children: t('Add credits') }), onRetry ? (_jsx(Button, { size: "$2", self: "flex-start", onPress: onRetry, children: t('Retry') })) : null] })) : onRetry ? (_jsx(Button, { size: "$2", self: "flex-start", onPress: onRetry, children: t('Retry') })) : null] }));
73
76
  }
74
77
  //# sourceMappingURL=BackendState.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"BackendState.js","sourceRoot":"","sources":["../../src/product/BackendState.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"BackendState.js","sourceRoot":"","sources":["../../src/product/BackendState.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAA;;AAgBZ,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,YAAY,CAAA;AACjD,OAAO,EAAE,KAAK,IAAI,IAAI,EAAE,MAAM,uBAAuB,CAAA;AACrD,OAAO,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAA;AACpE,OAAO,EAAE,MAAM,EAAE,MAAM,aAAa,CAAA;AACpC,OAAO,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAA;AAE3C,OAAO,EAAE,OAAO,EAAE,MAAM,QAAQ,CAAA;AAahC;;;;;;;GAOG;AACH,MAAM,UAAU,eAAe,CAAC,CAAU;IACxC,MAAM,MAAM,GAAG,OAAQ,CAA0B,EAAE,MAAM,KAAK,QAAQ,CAAC,CAAC,CAAE,CAAwB,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAA;IAC7G,MAAM,OAAO,GAAG,CAAC,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAA;IAC1D,IAAI,MAAM,KAAK,GAAG;QAAE,OAAO,EAAE,IAAI,EAAE,iBAAiB,EAAE,OAAO,EAAE,CAAA;IAC/D,IAAI,MAAM,KAAK,GAAG,IAAI,MAAM,KAAK,GAAG;QAAE,OAAO,EAAE,IAAI,EAAE,aAAa,EAAE,OAAO,EAAE,CAAA;IAC7E,6EAA6E;IAC7E,gFAAgF;IAChF,+EAA+E;IAC/E,IAAI,MAAM,KAAK,GAAG;QAAE,OAAO,EAAE,IAAI,EAAE,iBAAiB,EAAE,OAAO,EAAE,CAAA;IAC/D,IAAI,MAAM,KAAK,GAAG;QAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,EAAE,CAAA;IACvD,IAAI,MAAM,KAAK,GAAG;QAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAA;IACtD,IAAI,MAAM,KAAK,GAAG;QAAE,OAAO,EAAE,IAAI,EAAE,QAAQ,EAAE,OAAO,EAAE,CAAA;IACtD,OAAO,EAAE,IAAI,EAAE,OAAO,EAAE,OAAO,EAAE,CAAA;AACnC,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,YAAY,CAAC,CAAU;IACrC,MAAM,CAAC,GAAG,eAAe,CAAC,CAAC,CAAC,CAAA;IAC5B,OAAO,CAAC,CAAC,IAAI,KAAK,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAA;AACxC,CAAC;AAED,MAAM,MAAM,GAAqC;IAC/C,iBAAiB,EAAE,MAAM,CAAC,yBAAyB,CAAC;IACpD,WAAW,EAAE,MAAM,CAAC,sCAAsC,CAAC;IAC3D,iBAAiB,EAAE,MAAM,CAAC,mBAAmB,CAAC;IAC9C,MAAM,EAAE,MAAM,CAAC,8BAA8B,CAAC;IAC9C,MAAM,EAAE,MAAM,CAAC,sBAAsB,CAAC;IACtC,OAAO,EAAE,MAAM,CAAC,yBAAyB,CAAC;IAC1C,KAAK,EAAE,MAAM,CAAC,6BAA6B,CAAC;CAC7C,CAAA;AAED,MAAM,MAAM,GAAqC;IAC/C,iBAAiB,EACf,MAAM,CAAC,6LAA6L,CAAC;IACvM,WAAW,EACT,MAAM,CAAC,wHAAwH,CAAC;IAClI,sEAAsE;IACtE,iBAAiB,EACf,MAAM,CAAC,+LAA+L,CAAC;IACzM,8CAA8C;IAC9C,MAAM,EACJ,MAAM,CAAC,uMAAuM,CAAC;IACjN,uEAAuE;IACvE,MAAM,EAAE,MAAM,CAAC,kGAAkG,CAAC;IAClH,6EAA6E;IAC7E,gEAAgE;IAChE,OAAO,EAAE,EAAE;IACX,KAAK,EAAE,EAAE;CACV,CAAA;AAED,qFAAqF;AACrF,MAAM,UAAU,gBAAgB,CAAC,EAC/B,KAAK,EACL,OAAO,EACP,IAAI,GAKL;IACC,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,GAAG,OAAO,EAAE,CAAA;IACxC,MAAM,EAAE,CAAC,EAAE,GAAG,OAAO,EAAE,CAAA;IACvB,OAAO,CACL,MAAC,IAAI,IAAC,WAAW,EAAE,CAAC,EAAE,WAAW,EAAC,cAAc,EAAC,CAAC,EAAC,IAAI,EAAC,GAAG,EAAC,IAAI,EAAC,IAAI,EAAE,GAAG,aACxE,MAAC,MAAM,IAAC,GAAG,EAAC,IAAI,EAAC,KAAK,EAAC,QAAQ,aAC7B,KAAC,aAAa,IAAC,IAAI,EAAE,EAAE,GAAI,EAC3B,KAAC,IAAI,IAAC,QAAQ,EAAC,IAAI,EAAC,UAAU,EAAC,KAAK,YACjC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,GACjB,IACA,EACT,KAAC,IAAI,IAAC,QAAQ,EAAC,IAAI,EAAC,KAAK,EAAC,QAAQ,YAC/B,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,GACtD,EACN,IAAI,CAAC,CAAC,CAAC,CACN,KAAC,IAAI,IAAC,QAAQ,EAAC,IAAI,EAAC,KAAK,EAAC,OAAO,YAC9B,IAAI,GACA,CACR,CAAC,CAAC,CAAC,IAAI,EACP,KAAK,CAAC,IAAI,KAAK,QAAQ,IAAI,MAAM,CAAC,CAAC,CAAC,CACnC,KAAC,MAAM,IAAC,IAAI,EAAC,IAAI,EAAC,KAAK,EAAC,OAAO,EAAC,IAAI,EAAC,YAAY,EAAC,OAAO,EAAE,MAAM,YAC9D,CAAC,CAAC,eAAe,CAAC,GACZ,CACV,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,KAAK,SAAS,IAAI,UAAU,CAAC,CAAC,CAAC,CAG3C,MAAC,MAAM,IAAC,GAAG,EAAC,IAAI,EAAC,KAAK,EAAC,QAAQ,EAAC,QAAQ,EAAC,MAAM,aAC7C,KAAC,MAAM,IAAC,IAAI,EAAC,IAAI,EAAC,KAAK,EAAC,OAAO,EAAC,IAAI,EAAC,YAAY,EAAC,IAAI,EAAE,KAAC,UAAU,IAAC,IAAI,EAAE,EAAE,GAAI,EAAE,OAAO,EAAE,UAAU,YAClG,CAAC,CAAC,aAAa,CAAC,GACV,EACR,OAAO,CAAC,CAAC,CAAC,CACT,KAAC,MAAM,IAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,YAAY,EAAC,OAAO,EAAE,OAAO,YACjD,CAAC,CAAC,OAAO,CAAC,GACJ,CACV,CAAC,CAAC,CAAC,IAAI,IACD,CACV,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CACZ,KAAC,MAAM,IAAC,IAAI,EAAC,IAAI,EAAC,IAAI,EAAC,YAAY,EAAC,OAAO,EAAE,OAAO,YACjD,CAAC,CAAC,OAAO,CAAC,GACJ,CACV,CAAC,CAAC,CAAC,IAAI,IACH,CACR,CAAA;AACH,CAAC"}
@@ -4,6 +4,7 @@ Object.defineProperty(exports, "__esModule", { value: true });
4
4
  exports.branchName = void 0;
5
5
  exports.BranchSelect = BranchSelect;
6
6
  const jsx_runtime_1 = require("react/jsx-runtime");
7
+ const react_1 = require("react");
7
8
  /**
8
9
  * BranchSelect — which branch a run starts from, as a composer chip.
9
10
  *
@@ -12,16 +13,24 @@ const jsx_runtime_1 = require("react/jsx-runtime");
12
13
  * Like `RepoSelect` it knows no git host — the loader is the host's.
13
14
  */
14
15
  const lucide_icons_2_1 = require("@hanzogui/lucide-icons-2");
15
- const react_1 = require("react");
16
+ const react_2 = require("@hanzo/i18n/react");
16
17
  const ChipSelect_1 = require("./ChipSelect.cjs");
17
18
  /** The name, whichever shape the row came in. */
18
19
  const branchName = (b) => (typeof b === 'string' ? b : b.name);
19
20
  exports.branchName = branchName;
20
- const item = (name) => ({ id: name, label: name, icon: (0, jsx_runtime_1.jsx)(lucide_icons_2_1.GitBranch, { size: 12, color: "$soft" }) });
21
+ const item = (name) => ({
22
+ id: name,
23
+ label: name,
24
+ icon: (0, jsx_runtime_1.jsx)(lucide_icons_2_1.GitBranch, { size: 12, color: "$soft" }),
25
+ });
21
26
  function BranchSelect({ value = null, onChange, load, footer, placement, disabled, open, onOpenChange, }) {
27
+ const { t } = (0, react_2.useI18n)();
22
28
  const pages = (0, react_1.useCallback)(async (q, after) => {
23
29
  const page = await load(q, after);
24
- return { items: page.branches.map((b) => item((0, exports.branchName)(b))), next: page.next ?? null };
30
+ return {
31
+ items: page.branches.map((b) => item((0, exports.branchName)(b))),
32
+ next: page.next ?? null,
33
+ };
25
34
  }, [load]);
26
- return ((0, jsx_runtime_1.jsx)(ChipSelect_1.ChipSelect, { name: "Branch", icon: (0, jsx_runtime_1.jsx)(lucide_icons_2_1.GitBranch, { size: 12, color: "$soft" }), label: value ?? 'Branch', chosen: value ? item(value) : null, onChange: (i) => onChange(i.id), load: pages, placeholder: "Search branches\u2026", empty: "No branches match.", footer: footer, placement: placement, disabled: disabled, open: open, onOpenChange: onOpenChange }));
35
+ return ((0, jsx_runtime_1.jsx)(ChipSelect_1.ChipSelect, { name: t('Branch'), icon: (0, jsx_runtime_1.jsx)(lucide_icons_2_1.GitBranch, { size: 12, color: "$soft" }), label: value ?? t('Branch'), chosen: value ? item(value) : null, onChange: (i) => onChange(i.id), load: pages, placeholder: t('Search branches…'), empty: t('No branches match.'), footer: footer, placement: placement, disabled: disabled, open: open, onOpenChange: onOpenChange }));
27
36
  }
@@ -1 +1 @@
1
- {"version":3,"file":"BranchSelect.d.ts","sourceRoot":"","sources":["../../src/product/BranchSelect.tsx"],"names":[],"mappings":"AAUA,OAAO,EAAe,KAAK,SAAS,EAAE,MAAM,OAAO,CAAA;AAEnD,OAAO,EAAc,KAAK,aAAa,EAAE,MAAM,cAAc,CAAA;AAG7D,wFAAwF;AACxF,MAAM,MAAM,MAAM,GAAG,MAAM,GAAG;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,CAAA;AAE9C,4BAA4B;AAC5B,MAAM,MAAM,UAAU,GAAG,CAAC,CAAC,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,KAAK,OAAO,CAAC;IAAE,QAAQ,EAAE,MAAM,EAAE,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;CAAE,CAAC,CAAA;AAEpH,iDAAiD;AACjD,eAAO,MAAM,UAAU,MAAO,MAAM,KAAG,MAA8C,CAAA;AAErF,MAAM,WAAW,iBAAiB;IAChC,yBAAyB;IACzB,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IACrB,QAAQ,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAA;IAClC,IAAI,EAAE,UAAU,CAAA;IAChB,sDAAsD;IACtD,MAAM,CAAC,EAAE,SAAS,CAAA;IAClB,SAAS,CAAC,EAAE,aAAa,CAAA;IACzB,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,IAAI,CAAC,EAAE,OAAO,CAAA;IACd,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAA;CACvC;AAID,wBAAgB,YAAY,CAAC,EAC3B,KAAY,EACZ,QAAQ,EACR,IAAI,EACJ,MAAM,EACN,SAAS,EACT,QAAQ,EACR,IAAI,EACJ,YAAY,GACb,EAAE,iBAAiB,+BA0BnB"}
1
+ {"version":3,"file":"BranchSelect.d.ts","sourceRoot":"","sources":["../../src/product/BranchSelect.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAe,KAAK,SAAS,EAAE,MAAM,OAAO,CAAA;AAWnD,OAAO,EAAc,KAAK,aAAa,EAAE,MAAM,cAAc,CAAA;AAG7D,wFAAwF;AACxF,MAAM,MAAM,MAAM,GAAG,MAAM,GAAG;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,CAAA;AAE9C,4BAA4B;AAC5B,MAAM,MAAM,UAAU,GAAG,CAAC,CAAC,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,KAAK,OAAO,CAAC;IAAE,QAAQ,EAAE,MAAM,EAAE,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;CAAE,CAAC,CAAA;AAEpH,iDAAiD;AACjD,eAAO,MAAM,UAAU,MAAO,MAAM,KAAG,MAA8C,CAAA;AAErF,MAAM,WAAW,iBAAiB;IAChC,yBAAyB;IACzB,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IACrB,QAAQ,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,IAAI,CAAA;IAClC,IAAI,EAAE,UAAU,CAAA;IAChB,sDAAsD;IACtD,MAAM,CAAC,EAAE,SAAS,CAAA;IAClB,SAAS,CAAC,EAAE,aAAa,CAAA;IACzB,QAAQ,CAAC,EAAE,OAAO,CAAA;IAClB,IAAI,CAAC,EAAE,OAAO,CAAA;IACd,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,OAAO,KAAK,IAAI,CAAA;CACvC;AAQD,wBAAgB,YAAY,CAAC,EAC3B,KAAY,EACZ,QAAQ,EACR,IAAI,EACJ,MAAM,EACN,SAAS,EACT,QAAQ,EACR,IAAI,EACJ,YAAY,GACb,EAAE,iBAAiB,+BA8BnB"}
@@ -1,5 +1,6 @@
1
1
  'use client';
2
2
  import { jsx as _jsx } from "react/jsx-runtime";
3
+ import { useCallback } from 'react';
3
4
  /**
4
5
  * BranchSelect — which branch a run starts from, as a composer chip.
5
6
  *
@@ -8,16 +9,24 @@ import { jsx as _jsx } from "react/jsx-runtime";
8
9
  * Like `RepoSelect` it knows no git host — the loader is the host's.
9
10
  */
10
11
  import { GitBranch } from '@hanzogui/lucide-icons-2';
11
- import { useCallback } from 'react';
12
+ import { useI18n } from '@hanzo/i18n/react';
12
13
  import { ChipSelect } from './ChipSelect.js';
13
14
  /** The name, whichever shape the row came in. */
14
15
  export const branchName = (b) => (typeof b === 'string' ? b : b.name);
15
- const item = (name) => ({ id: name, label: name, icon: _jsx(GitBranch, { size: 12, color: "$soft" }) });
16
+ const item = (name) => ({
17
+ id: name,
18
+ label: name,
19
+ icon: _jsx(GitBranch, { size: 12, color: "$soft" }),
20
+ });
16
21
  export function BranchSelect({ value = null, onChange, load, footer, placement, disabled, open, onOpenChange, }) {
22
+ const { t } = useI18n();
17
23
  const pages = useCallback(async (q, after) => {
18
24
  const page = await load(q, after);
19
- return { items: page.branches.map((b) => item(branchName(b))), next: page.next ?? null };
25
+ return {
26
+ items: page.branches.map((b) => item(branchName(b))),
27
+ next: page.next ?? null,
28
+ };
20
29
  }, [load]);
21
- return (_jsx(ChipSelect, { name: "Branch", icon: _jsx(GitBranch, { size: 12, color: "$soft" }), label: value ?? 'Branch', chosen: value ? item(value) : null, onChange: (i) => onChange(i.id), load: pages, placeholder: "Search branches\u2026", empty: "No branches match.", footer: footer, placement: placement, disabled: disabled, open: open, onOpenChange: onOpenChange }));
30
+ return (_jsx(ChipSelect, { name: t('Branch'), icon: _jsx(GitBranch, { size: 12, color: "$soft" }), label: value ?? t('Branch'), chosen: value ? item(value) : null, onChange: (i) => onChange(i.id), load: pages, placeholder: t('Search branches…'), empty: t('No branches match.'), footer: footer, placement: placement, disabled: disabled, open: open, onOpenChange: onOpenChange }));
22
31
  }
23
32
  //# sourceMappingURL=BranchSelect.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"BranchSelect.js","sourceRoot":"","sources":["../../src/product/BranchSelect.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAA;;AAEZ;;;;;;GAMG;AACH,OAAO,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAA;AACpD,OAAO,EAAE,WAAW,EAAkB,MAAM,OAAO,CAAA;AAEnD,OAAO,EAAE,UAAU,EAAsB,MAAM,cAAc,CAAA;AAS7D,iDAAiD;AACjD,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,CAAS,EAAU,EAAE,CAAC,CAAC,OAAO,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAA;AAerF,MAAM,IAAI,GAAG,CAAC,IAAY,EAAY,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,KAAC,SAAS,IAAC,IAAI,EAAE,EAAE,EAAE,KAAK,EAAC,OAAO,GAAG,EAAE,CAAC,CAAA;AAEjH,MAAM,UAAU,YAAY,CAAC,EAC3B,KAAK,GAAG,IAAI,EACZ,QAAQ,EACR,IAAI,EACJ,MAAM,EACN,SAAS,EACT,QAAQ,EACR,IAAI,EACJ,YAAY,GACM;IAClB,MAAM,KAAK,GAAG,WAAW,CACvB,KAAK,EAAE,CAAS,EAAE,KAAqB,EAA+B,EAAE;QACtE,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,CAAC,EAAE,KAAK,CAAC,CAAA;QACjC,OAAO,EAAE,KAAK,EAAE,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,IAAI,CAAC,IAAI,IAAI,IAAI,EAAE,CAAA;IAC1F,CAAC,EACD,CAAC,IAAI,CAAC,CACP,CAAA;IAED,OAAO,CACL,KAAC,UAAU,IACT,IAAI,EAAC,QAAQ,EACb,IAAI,EAAE,KAAC,SAAS,IAAC,IAAI,EAAE,EAAE,EAAE,KAAK,EAAC,OAAO,GAAG,EAC3C,KAAK,EAAE,KAAK,IAAI,QAAQ,EACxB,MAAM,EAAE,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,EAClC,QAAQ,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,EAC/B,IAAI,EAAE,KAAK,EACX,WAAW,EAAC,uBAAkB,EAC9B,KAAK,EAAC,oBAAoB,EAC1B,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,SAAS,EACpB,QAAQ,EAAE,QAAQ,EAClB,IAAI,EAAE,IAAI,EACV,YAAY,EAAE,YAAY,GAC1B,CACH,CAAA;AACH,CAAC"}
1
+ {"version":3,"file":"BranchSelect.js","sourceRoot":"","sources":["../../src/product/BranchSelect.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAA;;AAEZ,OAAO,EAAE,WAAW,EAAkB,MAAM,OAAO,CAAA;AACnD;;;;;;GAMG;AACH,OAAO,EAAE,SAAS,EAAE,MAAM,0BAA0B,CAAA;AACpD,OAAO,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAA;AAE3C,OAAO,EAAE,UAAU,EAAsB,MAAM,cAAc,CAAA;AAS7D,iDAAiD;AACjD,MAAM,CAAC,MAAM,UAAU,GAAG,CAAC,CAAS,EAAU,EAAE,CAAC,CAAC,OAAO,CAAC,KAAK,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAA;AAerF,MAAM,IAAI,GAAG,CAAC,IAAY,EAAY,EAAE,CAAC,CAAC;IACxC,EAAE,EAAE,IAAI;IACR,KAAK,EAAE,IAAI;IACX,IAAI,EAAE,KAAC,SAAS,IAAC,IAAI,EAAE,EAAE,EAAE,KAAK,EAAC,OAAO,GAAG;CAC5C,CAAC,CAAA;AAEF,MAAM,UAAU,YAAY,CAAC,EAC3B,KAAK,GAAG,IAAI,EACZ,QAAQ,EACR,IAAI,EACJ,MAAM,EACN,SAAS,EACT,QAAQ,EACR,IAAI,EACJ,YAAY,GACM;IAClB,MAAM,EAAE,CAAC,EAAE,GAAG,OAAO,EAAE,CAAA;IACvB,MAAM,KAAK,GAAG,WAAW,CACvB,KAAK,EAAE,CAAS,EAAE,KAAqB,EAA+B,EAAE;QACtE,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,CAAC,EAAE,KAAK,CAAC,CAAA;QACjC,OAAO;YACL,KAAK,EAAE,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,CAAC;YACpD,IAAI,EAAE,IAAI,CAAC,IAAI,IAAI,IAAI;SACxB,CAAA;IACH,CAAC,EACD,CAAC,IAAI,CAAC,CACP,CAAA;IAED,OAAO,CACL,KAAC,UAAU,IACT,IAAI,EAAE,CAAC,CAAC,QAAQ,CAAC,EACjB,IAAI,EAAE,KAAC,SAAS,IAAC,IAAI,EAAE,EAAE,EAAE,KAAK,EAAC,OAAO,GAAG,EAC3C,KAAK,EAAE,KAAK,IAAI,CAAC,CAAC,QAAQ,CAAC,EAC3B,MAAM,EAAE,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,EAClC,QAAQ,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC,EAC/B,IAAI,EAAE,KAAK,EACX,WAAW,EAAE,CAAC,CAAC,kBAAkB,CAAC,EAClC,KAAK,EAAE,CAAC,CAAC,oBAAoB,CAAC,EAC9B,MAAM,EAAE,MAAM,EACd,SAAS,EAAE,SAAS,EACpB,QAAQ,EAAE,QAAQ,EAClB,IAAI,EAAE,IAAI,EACV,YAAY,EAAE,YAAY,GAC1B,CACH,CAAA;AACH,CAAC"}
@@ -31,6 +31,7 @@ const jsx_runtime_1 = require("react/jsx-runtime");
31
31
  const gui_1 = require("@hanzo/gui");
32
32
  const lucide_icons_2_1 = require("@hanzogui/lucide-icons-2");
33
33
  const react_1 = require("react");
34
+ const react_2 = require("@hanzo/i18n/react");
34
35
  const popover_1 = require("../backends/gui/popover.cjs");
35
36
  const press_1 = require("../backends/gui/press.cjs");
36
37
  const slot_1 = require("../backends/gui/slot.cjs");
@@ -63,6 +64,7 @@ const typed = (e) => e.key && e.key.length === 1 && !e.ctrlKey && !e.metaKey &&
63
64
  */
64
65
  function usePages(load, q, delay, on, view) {
65
66
  const [state, setState] = (0, react_1.useState)({ rows: [], next: null, loading: false, error: null });
67
+ const { t } = (0, react_2.useI18n)();
66
68
  const generation = (0, react_1.useRef)(0);
67
69
  const busy = (0, react_1.useRef)(false);
68
70
  // The loader is read at call time, not taken as a dependency: a host that
@@ -95,10 +97,10 @@ function usePages(load, q, delay, on, view) {
95
97
  setState((s) => ({
96
98
  ...s,
97
99
  loading: false,
98
- error: err instanceof Error && err.message ? err.message : 'Could not load the list.',
100
+ error: err instanceof Error && err.message ? err.message : t('Could not load the list.'),
99
101
  }));
100
102
  });
101
- }, []);
103
+ }, [t]);
102
104
  const live = Boolean(load);
103
105
  // A new search, or opening: start over after the debounce. The first page of
104
106
  // an empty search is asked for at once — there is nothing typed to wait for.
@@ -120,10 +122,13 @@ function usePages(load, q, delay, on, view) {
120
122
  const retry = (0, react_1.useCallback)(() => fetch(null, ++generation.current), [fetch]);
121
123
  return { ...state, more, retry };
122
124
  }
123
- function ChipSelect({ label, icon, name, chosen = null, onChange, load, items, more: hasMore = false, onMore, loading: loadingProp = false, error: errorProp = null, delay = 200, placeholder = 'Search…', empty = 'No matches.', footer, cta, action, placement = 'top-start', width = 320, height = 276, disabled = false, quiet = false, box = BARE, tabs, tab, onTab, open: openProp, onOpenChange, }) {
125
+ function ChipSelect({ label, icon, name, chosen = null, onChange, load, items, more: hasMore = false, onMore, loading: loadingProp = false, error: errorProp = null, delay = 200, placeholder: hint, empty: none, footer, cta, action, placement = 'top-start', width = 320, height = 276, disabled = false, quiet = false, box = BARE, tabs, tab, onTab, open: openProp, onOpenChange, }) {
124
126
  const bare = !label;
127
+ const { t } = (0, react_2.useI18n)();
125
128
  const row = (0, react_1.useContext)(exports.Pills);
126
129
  const pill = row !== null && !bare && !quiet;
130
+ const placeholder = hint ?? t('Search…');
131
+ const empty = none ?? t('No matches.');
127
132
  const [own, setOwn] = (0, react_1.useState)(false);
128
133
  const open = openProp ?? own;
129
134
  const setOpen = (0, react_1.useCallback)((next) => {
@@ -298,7 +303,7 @@ function ChipSelect({ label, icon, name, chosen = null, onChange, load, items, m
298
303
  onTab?.(v.id);
299
304
  }, children: (0, jsx_runtime_1.jsx)(gui_1.SizableText, { size: "$1", color: on ? '$ink' : '$soft', children: v.label }) }, v.id));
300
305
  }) })) : null;
301
- return ((0, jsx_runtime_1.jsxs)(popover_1.Popover, { open: open, onOpenChange: (v) => (v ? setOpen(true) : close()), placement: placement, allowFlip: true, stayInFrame: true, children: [(0, jsx_runtime_1.jsx)(popover_1.PopoverTrigger, { asChild: true, disabled: disabled, children: (0, jsx_runtime_1.jsxs)(gui_1.XStack, { ref: chip, ...(0, slot_1.slot)('chip-select'), ...(0, slot_1.tip)(name), role: "button", tabIndex: disabled ? -1 : 0, "aria-label": bare ? name : `${name}: ${label}`, "aria-haspopup": "listbox", "aria-expanded": open, "aria-controls": open ? listId : undefined, "aria-disabled": disabled || undefined, height: pill ? row : CHIP_H, rounded: pill ? 8 : '$2', ...(bare ? { width: box, height: box, justify: 'center', rounded: 999 } : { px: pill ? WORD_GUTTER : '$2' }), gap: pill ? 4 : '$1.5', items: "center", shrink: 0, borderWidth: quiet || pill ? 0 : 1, borderColor: "$borderColor", bg: quiet || pill ? 'transparent' : '$raised', cursor: disabled ? 'default' : 'pointer', opacity: disabled ? 0.5 : 1, hoverStyle: disabled ? undefined : quiet || pill ? { bg: '$hover' } : { borderColor: '$rim' }, pressStyle: disabled ? undefined : { bg: '$hover' }, focusVisibleStyle: press_1.RING,
306
+ return ((0, jsx_runtime_1.jsxs)(popover_1.Popover, { open: open, onOpenChange: (v) => (v ? setOpen(true) : close()), placement: placement, allowFlip: true, stayInFrame: true, children: [(0, jsx_runtime_1.jsx)(popover_1.PopoverTrigger, { asChild: true, disabled: disabled, children: (0, jsx_runtime_1.jsxs)(gui_1.XStack, { ref: chip, ...(0, slot_1.slot)('chip-select'), ...(0, slot_1.tip)(name), role: "button", tabIndex: disabled ? -1 : 0, "aria-label": bare ? name : t('{label}: {value}', { label: name, value: label }), "aria-haspopup": "listbox", "aria-expanded": open, "aria-controls": open ? listId : undefined, "aria-disabled": disabled || undefined, height: pill ? row : CHIP_H, rounded: pill ? 8 : '$2', ...(bare ? { width: box, height: box, justify: 'center', rounded: 999 } : { px: pill ? WORD_GUTTER : '$2' }), gap: pill ? 4 : '$1.5', items: "center", shrink: 0, borderWidth: quiet || pill ? 0 : 1, borderColor: "$borderColor", bg: quiet || pill ? 'transparent' : '$raised', cursor: disabled ? 'default' : 'pointer', opacity: disabled ? 0.5 : 1, hoverStyle: disabled ? undefined : quiet || pill ? { bg: '$hover' } : { borderColor: '$rim' }, pressStyle: disabled ? undefined : { bg: '$hover' }, focusVisibleStyle: press_1.RING,
302
307
  // The chip is a small target by design; the hit area is not.
303
308
  hitSlop: { top: 10, bottom: 10, left: 4, right: 4 }, onKeyDown: onChip, children: [icon ? ((0, jsx_runtime_1.jsx)(gui_1.XStack, { shrink: 0, items: "center", "aria-hidden": true, children: icon })) : null, bare ? null : ((0, jsx_runtime_1.jsx)(gui_1.SizableText, { size: pill ? '$3' : '$2', color: quiet ? '$quiet' : '$ink', numberOfLines: 1, maxW: 200, children: label })), bare || quiet ? null : (0, jsx_runtime_1.jsx)(lucide_icons_2_1.ChevronDown, { size: 12, color: "$soft", "aria-hidden": true })] }) }), (0, jsx_runtime_1.jsxs)(popover_1.PopoverContent, { ...(0, slot_1.slot)('chip-select-panel'), sideOffset: 8, width: width, maxW: "92vw", p: "$1", gap: "$0",
304
309
  // Gui's popover content centres its children; a list and a field span
@@ -311,10 +316,10 @@ function ChipSelect({ label, icon, name, chosen = null, onChange, load, items, m
311
316
  }, onCloseAutoFocus: (e) => {
312
317
  e.preventDefault();
313
318
  chip.current?.focus?.();
314
- }, children: [cta ? ((0, jsx_runtime_1.jsx)(gui_1.YStack, { ...(0, slot_1.slot)('chip-select-cta'), px: "$2", py: "$2", children: cta })) : null, (0, jsx_runtime_1.jsxs)(gui_1.ScrollView, { ref: list, height: listH, showsVerticalScrollIndicator: true, scrollEventThrottle: 64, onScroll: onScroll, children: [(0, jsx_runtime_1.jsx)(gui_1.YStack, { ...(0, slot_1.slot)('chip-select-list'), id: listId, role: "listbox", "aria-label": name, gap: "$0", children: rows.map((item, i) => {
319
+ }, children: [cta ? ((0, jsx_runtime_1.jsx)(gui_1.YStack, { ...(0, slot_1.slot)('chip-select-cta'), px: "$2", py: "$2", children: cta })) : null, (0, jsx_runtime_1.jsxs)(gui_1.ScrollView, { ref: list, height: listH, showsVerticalScrollIndicator: true, scrollEventThrottle: 64, onScroll: onScroll, children: [(0, jsx_runtime_1.jsx)(gui_1.YStack, { ...(0, slot_1.slot)('chip-select-list'), id: listId, ...{ role: 'listbox' }, "aria-label": name, gap: "$0", children: rows.map((item, i) => {
315
320
  const on = i === at;
316
321
  const picked = chosen?.id === item.id;
317
- return ((0, jsx_runtime_1.jsxs)(gui_1.XStack, { ...(0, slot_1.slot)('chip-select-option'), id: optionId(i), role: "option", "aria-selected": picked, "aria-disabled": item.disabled || undefined, "aria-describedby": action && shown(item) ? hintId : undefined, height: ROW_H, px: "$2", gap: "$2", items: "center", rounded: "$2", cursor: item.disabled ? 'default' : 'pointer', opacity: item.disabled ? 0.5 : 1, bg: on ? '$raised' : 'transparent', onHoverIn: () => setAt(i), onPress: () => choose(item), children: [item.icon ? ((0, jsx_runtime_1.jsx)(gui_1.XStack, { width: 14, shrink: 0, items: "center", justify: "center", "aria-hidden": true, children: item.icon })) : null, item.tail ? ((0, jsx_runtime_1.jsxs)(gui_1.XStack, { flex: 1, minW: 0, items: "center", children: [(0, jsx_runtime_1.jsx)(gui_1.SizableText, { size: "$2", color: "$ink", numberOfLines: 1, shrink: 1, minW: 0, children: item.label }), (0, jsx_runtime_1.jsx)(gui_1.SizableText, { ...(0, slot_1.slot)('chip-select-tail'), size: "$2", color: "$ink", numberOfLines: 1, shrink: 0, maxW: "100%", children: item.tail })] })) : ((0, jsx_runtime_1.jsx)(gui_1.SizableText, { size: "$2", color: "$ink", numberOfLines: 1, flex: 1, minW: 0, children: item.label })), item.hint ? ((0, jsx_runtime_1.jsx)(gui_1.SizableText, { size: "$1", color: "$soft", numberOfLines: 1, shrink: 0, children: item.hint })) : null, action && on && shown(item) ? ((0, jsx_runtime_1.jsx)(gui_1.XStack, { ...(0, slot_1.slot)('chip-select-action'), "aria-hidden": true, px: "$1.5", height: 18, items: "center", rounded: "$2", borderWidth: 1, borderColor: "$rim", shrink: 0, hoverStyle: { bg: '$hover' }, onPress: (e) => {
322
+ return ((0, jsx_runtime_1.jsxs)(gui_1.XStack, { ...(0, slot_1.slot)('chip-select-option'), id: optionId(i), role: "option", "aria-selected": picked, "aria-disabled": item.disabled || undefined, "aria-describedby": action && shown(item) ? hintId : undefined, height: ROW_H, px: "$2", gap: "$2", items: "center", rounded: "$2", cursor: item.disabled ? 'default' : 'pointer', opacity: item.disabled ? 0.5 : 1, bg: on ? '$raised' : 'transparent', ...{ onHoverIn: () => setAt(i) }, onPress: () => choose(item), children: [item.icon ? ((0, jsx_runtime_1.jsx)(gui_1.XStack, { width: 14, shrink: 0, items: "center", justify: "center", "aria-hidden": true, children: item.icon })) : null, item.tail ? ((0, jsx_runtime_1.jsxs)(gui_1.XStack, { flex: 1, minW: 0, items: "center", children: [(0, jsx_runtime_1.jsx)(gui_1.SizableText, { size: "$2", color: "$ink", numberOfLines: 1, shrink: 1, minW: 0, children: item.label }), (0, jsx_runtime_1.jsx)(gui_1.SizableText, { ...(0, slot_1.slot)('chip-select-tail'), size: "$2", color: "$ink", numberOfLines: 1, shrink: 0, maxW: "100%", children: item.tail })] })) : ((0, jsx_runtime_1.jsx)(gui_1.SizableText, { size: "$2", color: "$ink", numberOfLines: 1, flex: 1, minW: 0, children: item.label })), item.hint ? ((0, jsx_runtime_1.jsx)(gui_1.SizableText, { size: "$1", color: "$soft", numberOfLines: 1, shrink: 0, children: item.hint })) : null, action && on && shown(item) ? ((0, jsx_runtime_1.jsx)(gui_1.XStack, { ...(0, slot_1.slot)('chip-select-action'), "aria-hidden": true, px: "$1.5", height: 18, items: "center", rounded: "$2", borderWidth: 1, borderColor: "$rim", shrink: 0, hoverStyle: { bg: '$hover' }, onPress: (e) => {
318
323
  e?.stopPropagation?.();
319
324
  action.onPress(item);
320
325
  close();
@@ -324,5 +329,5 @@ function ChipSelect({ label, icon, name, chosen = null, onChange, load, items, m
324
329
  return;
325
330
  e.preventDefault?.();
326
331
  pages.retry();
327
- }, children: "Retry" })) : null] })) : loading ? ((0, jsx_runtime_1.jsx)(gui_1.XStack, { ...(0, slot_1.slot)('chip-select-loading'), px: "$2", height: ROW_H, items: "center", role: "status", children: (0, jsx_runtime_1.jsx)(gui_1.SizableText, { size: "$2", color: "$soft", children: rows.length ? 'Loading more…' : 'Loading…' }) })) : rows.length === 0 ? ((0, jsx_runtime_1.jsx)(gui_1.XStack, { ...(0, slot_1.slot)('chip-select-empty'), px: "$2", py: "$1.5", items: "center", role: "status", children: typeof empty === 'string' ? ((0, jsx_runtime_1.jsx)(gui_1.SizableText, { size: "$2", color: "$soft", children: empty })) : (empty) })) : null] }), action ? ((0, jsx_runtime_1.jsx)(gui_1.SizableText, { id: hintId, position: "absolute", width: 1, height: 1, overflow: "hidden", opacity: 0, children: `Ctrl+Enter: ${action.label}` })) : null, footer ? ((0, jsx_runtime_1.jsx)(gui_1.YStack, { ...(0, slot_1.slot)('chip-select-footer'), mx: -4, mt: "$1", px: "$3", py: "$2", gap: "$0.5", borderTopWidth: 1, borderColor: "$borderColor", children: footer })) : null, (0, jsx_runtime_1.jsxs)(gui_1.YStack, { ...(0, slot_1.slot)('chip-select-header'), flexDirection: up ? 'column-reverse' : 'column', style: { order: up ? 99 : -1 }, children: [search, tabbar] })] })] }));
332
+ }, children: t('Retry') })) : null] })) : loading ? ((0, jsx_runtime_1.jsx)(gui_1.XStack, { ...(0, slot_1.slot)('chip-select-loading'), px: "$2", height: ROW_H, items: "center", role: "status", children: (0, jsx_runtime_1.jsx)(gui_1.SizableText, { size: "$2", color: "$soft", children: rows.length ? t('Loading more…') : t('Loading…') }) })) : rows.length === 0 ? ((0, jsx_runtime_1.jsx)(gui_1.XStack, { ...(0, slot_1.slot)('chip-select-empty'), px: "$2", py: "$1.5", items: "center", role: "status", children: typeof empty === 'string' ? ((0, jsx_runtime_1.jsx)(gui_1.SizableText, { size: "$2", color: "$soft", children: empty })) : (empty) })) : null] }), action ? ((0, jsx_runtime_1.jsx)(gui_1.SizableText, { id: hintId, position: "absolute", width: 1, height: 1, overflow: "hidden", opacity: 0, children: `Ctrl+Enter: ${action.label}` })) : null, footer ? ((0, jsx_runtime_1.jsx)(gui_1.YStack, { ...(0, slot_1.slot)('chip-select-footer'), mx: -4, mt: "$1", px: "$3", py: "$2", gap: "$0.5", borderTopWidth: 1, borderColor: "$borderColor", children: footer })) : null, (0, jsx_runtime_1.jsxs)(gui_1.YStack, { ...(0, slot_1.slot)('chip-select-header'), flexDirection: up ? 'column-reverse' : 'column', style: { order: up ? 99 : -1 }, children: [search, tabbar] })] })] }));
328
333
  }
@@ -86,5 +86,5 @@ export interface ChipSelectProps<T extends ChipItem> {
86
86
  * effort and the mode read as one quiet line. Outside that row, the 24px chip.
87
87
  */
88
88
  export declare const Pills: import("react").Context<number | null>;
89
- export declare function ChipSelect<T extends ChipItem>({ label, icon, name, chosen, onChange, load, items, more: hasMore, onMore, loading: loadingProp, error: errorProp, delay, placeholder, empty, footer, cta, action, placement, width, height, disabled, quiet, box, tabs, tab, onTab, open: openProp, onOpenChange, }: ChipSelectProps<T>): import("react").JSX.Element;
89
+ export declare function ChipSelect<T extends ChipItem>({ label, icon, name, chosen, onChange, load, items, more: hasMore, onMore, loading: loadingProp, error: errorProp, delay, placeholder: hint, empty: none, footer, cta, action, placement, width, height, disabled, quiet, box, tabs, tab, onTab, open: openProp, onOpenChange, }: ChipSelectProps<T>): import("react").JSX.Element;
90
90
  //# sourceMappingURL=ChipSelect.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ChipSelect.d.ts","sourceRoot":"","sources":["../../src/product/ChipSelect.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ChipSelect.d.ts","sourceRoot":"","sources":["../../src/product/ChipSelect.tsx"],"names":[],"mappings":"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"}
@@ -27,6 +27,7 @@ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
27
27
  import { Input as GuiInput, ScrollView, SizableText, XStack, YStack } from '@hanzo/gui';
28
28
  import { Check, ChevronDown, Search } from '@hanzogui/lucide-icons-2';
29
29
  import { createContext, useCallback, useContext, useEffect, useId, useMemo, useRef, useState, } from 'react';
30
+ import { useI18n } from '@hanzo/i18n/react';
30
31
  import { Popover, PopoverContent, PopoverTrigger } from '../backends/gui/popover.js';
31
32
  import { RING } from '../backends/gui/press.js';
32
33
  import { slot, tip } from '../backends/gui/slot.js';
@@ -59,6 +60,7 @@ const typed = (e) => e.key && e.key.length === 1 && !e.ctrlKey && !e.metaKey &&
59
60
  */
60
61
  function usePages(load, q, delay, on, view) {
61
62
  const [state, setState] = useState({ rows: [], next: null, loading: false, error: null });
63
+ const { t } = useI18n();
62
64
  const generation = useRef(0);
63
65
  const busy = useRef(false);
64
66
  // The loader is read at call time, not taken as a dependency: a host that
@@ -91,10 +93,10 @@ function usePages(load, q, delay, on, view) {
91
93
  setState((s) => ({
92
94
  ...s,
93
95
  loading: false,
94
- error: err instanceof Error && err.message ? err.message : 'Could not load the list.',
96
+ error: err instanceof Error && err.message ? err.message : t('Could not load the list.'),
95
97
  }));
96
98
  });
97
- }, []);
99
+ }, [t]);
98
100
  const live = Boolean(load);
99
101
  // A new search, or opening: start over after the debounce. The first page of
100
102
  // an empty search is asked for at once — there is nothing typed to wait for.
@@ -116,10 +118,13 @@ function usePages(load, q, delay, on, view) {
116
118
  const retry = useCallback(() => fetch(null, ++generation.current), [fetch]);
117
119
  return { ...state, more, retry };
118
120
  }
119
- export function ChipSelect({ label, icon, name, chosen = null, onChange, load, items, more: hasMore = false, onMore, loading: loadingProp = false, error: errorProp = null, delay = 200, placeholder = 'Search…', empty = 'No matches.', footer, cta, action, placement = 'top-start', width = 320, height = 276, disabled = false, quiet = false, box = BARE, tabs, tab, onTab, open: openProp, onOpenChange, }) {
121
+ export function ChipSelect({ label, icon, name, chosen = null, onChange, load, items, more: hasMore = false, onMore, loading: loadingProp = false, error: errorProp = null, delay = 200, placeholder: hint, empty: none, footer, cta, action, placement = 'top-start', width = 320, height = 276, disabled = false, quiet = false, box = BARE, tabs, tab, onTab, open: openProp, onOpenChange, }) {
120
122
  const bare = !label;
123
+ const { t } = useI18n();
121
124
  const row = useContext(Pills);
122
125
  const pill = row !== null && !bare && !quiet;
126
+ const placeholder = hint ?? t('Search…');
127
+ const empty = none ?? t('No matches.');
123
128
  const [own, setOwn] = useState(false);
124
129
  const open = openProp ?? own;
125
130
  const setOpen = useCallback((next) => {
@@ -294,7 +299,7 @@ export function ChipSelect({ label, icon, name, chosen = null, onChange, load, i
294
299
  onTab?.(v.id);
295
300
  }, children: _jsx(SizableText, { size: "$1", color: on ? '$ink' : '$soft', children: v.label }) }, v.id));
296
301
  }) })) : null;
297
- return (_jsxs(Popover, { open: open, onOpenChange: (v) => (v ? setOpen(true) : close()), placement: placement, allowFlip: true, stayInFrame: true, children: [_jsx(PopoverTrigger, { asChild: true, disabled: disabled, children: _jsxs(XStack, { ref: chip, ...slot('chip-select'), ...tip(name), role: "button", tabIndex: disabled ? -1 : 0, "aria-label": bare ? name : `${name}: ${label}`, "aria-haspopup": "listbox", "aria-expanded": open, "aria-controls": open ? listId : undefined, "aria-disabled": disabled || undefined, height: pill ? row : CHIP_H, rounded: pill ? 8 : '$2', ...(bare ? { width: box, height: box, justify: 'center', rounded: 999 } : { px: pill ? WORD_GUTTER : '$2' }), gap: pill ? 4 : '$1.5', items: "center", shrink: 0, borderWidth: quiet || pill ? 0 : 1, borderColor: "$borderColor", bg: quiet || pill ? 'transparent' : '$raised', cursor: disabled ? 'default' : 'pointer', opacity: disabled ? 0.5 : 1, hoverStyle: disabled ? undefined : quiet || pill ? { bg: '$hover' } : { borderColor: '$rim' }, pressStyle: disabled ? undefined : { bg: '$hover' }, focusVisibleStyle: RING,
302
+ return (_jsxs(Popover, { open: open, onOpenChange: (v) => (v ? setOpen(true) : close()), placement: placement, allowFlip: true, stayInFrame: true, children: [_jsx(PopoverTrigger, { asChild: true, disabled: disabled, children: _jsxs(XStack, { ref: chip, ...slot('chip-select'), ...tip(name), role: "button", tabIndex: disabled ? -1 : 0, "aria-label": bare ? name : t('{label}: {value}', { label: name, value: label }), "aria-haspopup": "listbox", "aria-expanded": open, "aria-controls": open ? listId : undefined, "aria-disabled": disabled || undefined, height: pill ? row : CHIP_H, rounded: pill ? 8 : '$2', ...(bare ? { width: box, height: box, justify: 'center', rounded: 999 } : { px: pill ? WORD_GUTTER : '$2' }), gap: pill ? 4 : '$1.5', items: "center", shrink: 0, borderWidth: quiet || pill ? 0 : 1, borderColor: "$borderColor", bg: quiet || pill ? 'transparent' : '$raised', cursor: disabled ? 'default' : 'pointer', opacity: disabled ? 0.5 : 1, hoverStyle: disabled ? undefined : quiet || pill ? { bg: '$hover' } : { borderColor: '$rim' }, pressStyle: disabled ? undefined : { bg: '$hover' }, focusVisibleStyle: RING,
298
303
  // The chip is a small target by design; the hit area is not.
299
304
  hitSlop: { top: 10, bottom: 10, left: 4, right: 4 }, onKeyDown: onChip, children: [icon ? (_jsx(XStack, { shrink: 0, items: "center", "aria-hidden": true, children: icon })) : null, bare ? null : (_jsx(SizableText, { size: pill ? '$3' : '$2', color: quiet ? '$quiet' : '$ink', numberOfLines: 1, maxW: 200, children: label })), bare || quiet ? null : _jsx(ChevronDown, { size: 12, color: "$soft", "aria-hidden": true })] }) }), _jsxs(PopoverContent, { ...slot('chip-select-panel'), sideOffset: 8, width: width, maxW: "92vw", p: "$1", gap: "$0",
300
305
  // Gui's popover content centres its children; a list and a field span
@@ -307,10 +312,10 @@ export function ChipSelect({ label, icon, name, chosen = null, onChange, load, i
307
312
  }, onCloseAutoFocus: (e) => {
308
313
  e.preventDefault();
309
314
  chip.current?.focus?.();
310
- }, children: [cta ? (_jsx(YStack, { ...slot('chip-select-cta'), px: "$2", py: "$2", children: cta })) : null, _jsxs(ScrollView, { ref: list, height: listH, showsVerticalScrollIndicator: true, scrollEventThrottle: 64, onScroll: onScroll, children: [_jsx(YStack, { ...slot('chip-select-list'), id: listId, role: "listbox", "aria-label": name, gap: "$0", children: rows.map((item, i) => {
315
+ }, children: [cta ? (_jsx(YStack, { ...slot('chip-select-cta'), px: "$2", py: "$2", children: cta })) : null, _jsxs(ScrollView, { ref: list, height: listH, showsVerticalScrollIndicator: true, scrollEventThrottle: 64, onScroll: onScroll, children: [_jsx(YStack, { ...slot('chip-select-list'), id: listId, ...{ role: 'listbox' }, "aria-label": name, gap: "$0", children: rows.map((item, i) => {
311
316
  const on = i === at;
312
317
  const picked = chosen?.id === item.id;
313
- return (_jsxs(XStack, { ...slot('chip-select-option'), id: optionId(i), role: "option", "aria-selected": picked, "aria-disabled": item.disabled || undefined, "aria-describedby": action && shown(item) ? hintId : undefined, height: ROW_H, px: "$2", gap: "$2", items: "center", rounded: "$2", cursor: item.disabled ? 'default' : 'pointer', opacity: item.disabled ? 0.5 : 1, bg: on ? '$raised' : 'transparent', onHoverIn: () => setAt(i), onPress: () => choose(item), children: [item.icon ? (_jsx(XStack, { width: 14, shrink: 0, items: "center", justify: "center", "aria-hidden": true, children: item.icon })) : null, item.tail ? (_jsxs(XStack, { flex: 1, minW: 0, items: "center", children: [_jsx(SizableText, { size: "$2", color: "$ink", numberOfLines: 1, shrink: 1, minW: 0, children: item.label }), _jsx(SizableText, { ...slot('chip-select-tail'), size: "$2", color: "$ink", numberOfLines: 1, shrink: 0, maxW: "100%", children: item.tail })] })) : (_jsx(SizableText, { size: "$2", color: "$ink", numberOfLines: 1, flex: 1, minW: 0, children: item.label })), item.hint ? (_jsx(SizableText, { size: "$1", color: "$soft", numberOfLines: 1, shrink: 0, children: item.hint })) : null, action && on && shown(item) ? (_jsx(XStack, { ...slot('chip-select-action'), "aria-hidden": true, px: "$1.5", height: 18, items: "center", rounded: "$2", borderWidth: 1, borderColor: "$rim", shrink: 0, hoverStyle: { bg: '$hover' }, onPress: (e) => {
318
+ return (_jsxs(XStack, { ...slot('chip-select-option'), id: optionId(i), role: "option", "aria-selected": picked, "aria-disabled": item.disabled || undefined, "aria-describedby": action && shown(item) ? hintId : undefined, height: ROW_H, px: "$2", gap: "$2", items: "center", rounded: "$2", cursor: item.disabled ? 'default' : 'pointer', opacity: item.disabled ? 0.5 : 1, bg: on ? '$raised' : 'transparent', ...{ onHoverIn: () => setAt(i) }, onPress: () => choose(item), children: [item.icon ? (_jsx(XStack, { width: 14, shrink: 0, items: "center", justify: "center", "aria-hidden": true, children: item.icon })) : null, item.tail ? (_jsxs(XStack, { flex: 1, minW: 0, items: "center", children: [_jsx(SizableText, { size: "$2", color: "$ink", numberOfLines: 1, shrink: 1, minW: 0, children: item.label }), _jsx(SizableText, { ...slot('chip-select-tail'), size: "$2", color: "$ink", numberOfLines: 1, shrink: 0, maxW: "100%", children: item.tail })] })) : (_jsx(SizableText, { size: "$2", color: "$ink", numberOfLines: 1, flex: 1, minW: 0, children: item.label })), item.hint ? (_jsx(SizableText, { size: "$1", color: "$soft", numberOfLines: 1, shrink: 0, children: item.hint })) : null, action && on && shown(item) ? (_jsx(XStack, { ...slot('chip-select-action'), "aria-hidden": true, px: "$1.5", height: 18, items: "center", rounded: "$2", borderWidth: 1, borderColor: "$rim", shrink: 0, hoverStyle: { bg: '$hover' }, onPress: (e) => {
314
319
  e?.stopPropagation?.();
315
320
  action.onPress(item);
316
321
  close();
@@ -320,6 +325,6 @@ export function ChipSelect({ label, icon, name, chosen = null, onChange, load, i
320
325
  return;
321
326
  e.preventDefault?.();
322
327
  pages.retry();
323
- }, children: "Retry" })) : null] })) : loading ? (_jsx(XStack, { ...slot('chip-select-loading'), px: "$2", height: ROW_H, items: "center", role: "status", children: _jsx(SizableText, { size: "$2", color: "$soft", children: rows.length ? 'Loading more…' : 'Loading…' }) })) : rows.length === 0 ? (_jsx(XStack, { ...slot('chip-select-empty'), px: "$2", py: "$1.5", items: "center", role: "status", children: typeof empty === 'string' ? (_jsx(SizableText, { size: "$2", color: "$soft", children: empty })) : (empty) })) : null] }), action ? (_jsx(SizableText, { id: hintId, position: "absolute", width: 1, height: 1, overflow: "hidden", opacity: 0, children: `Ctrl+Enter: ${action.label}` })) : null, footer ? (_jsx(YStack, { ...slot('chip-select-footer'), mx: -4, mt: "$1", px: "$3", py: "$2", gap: "$0.5", borderTopWidth: 1, borderColor: "$borderColor", children: footer })) : null, _jsxs(YStack, { ...slot('chip-select-header'), flexDirection: up ? 'column-reverse' : 'column', style: { order: up ? 99 : -1 }, children: [search, tabbar] })] })] }));
328
+ }, children: t('Retry') })) : null] })) : loading ? (_jsx(XStack, { ...slot('chip-select-loading'), px: "$2", height: ROW_H, items: "center", role: "status", children: _jsx(SizableText, { size: "$2", color: "$soft", children: rows.length ? t('Loading more…') : t('Loading…') }) })) : rows.length === 0 ? (_jsx(XStack, { ...slot('chip-select-empty'), px: "$2", py: "$1.5", items: "center", role: "status", children: typeof empty === 'string' ? (_jsx(SizableText, { size: "$2", color: "$soft", children: empty })) : (empty) })) : null] }), action ? (_jsx(SizableText, { id: hintId, position: "absolute", width: 1, height: 1, overflow: "hidden", opacity: 0, children: `Ctrl+Enter: ${action.label}` })) : null, footer ? (_jsx(YStack, { ...slot('chip-select-footer'), mx: -4, mt: "$1", px: "$3", py: "$2", gap: "$0.5", borderTopWidth: 1, borderColor: "$borderColor", children: footer })) : null, _jsxs(YStack, { ...slot('chip-select-header'), flexDirection: up ? 'column-reverse' : 'column', style: { order: up ? 99 : -1 }, children: [search, tabbar] })] })] }));
324
329
  }
325
330
  //# sourceMappingURL=ChipSelect.js.map