@hanzo/ui 8.29.45 → 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 (954) 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 +7 -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 +7 -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 +3 -1
  806. package/dist/product/LimitedBanner.d.ts.map +1 -1
  807. package/dist/product/LimitedBanner.js +3 -1
  808. package/dist/product/LimitedBanner.js.map +1 -1
  809. package/dist/product/MenuRow.cjs +2 -2
  810. package/dist/product/MenuRow.js +2 -2
  811. package/dist/product/MenuRow.js.map +1 -1
  812. package/dist/product/Metric.cjs +5 -2
  813. package/dist/product/Metric.d.ts.map +1 -1
  814. package/dist/product/Metric.js +5 -2
  815. package/dist/product/Metric.js.map +1 -1
  816. package/dist/product/OrgSwitcher.cjs +19 -9
  817. package/dist/product/OrgSwitcher.d.ts +1 -1
  818. package/dist/product/OrgSwitcher.d.ts.map +1 -1
  819. package/dist/product/OrgSwitcher.js +19 -9
  820. package/dist/product/OrgSwitcher.js.map +1 -1
  821. package/dist/product/Pagination.cjs +4 -2
  822. package/dist/product/Pagination.d.ts.map +1 -1
  823. package/dist/product/Pagination.js +4 -2
  824. package/dist/product/Pagination.js.map +1 -1
  825. package/dist/product/Palette.cjs +7 -2
  826. package/dist/product/Palette.d.ts +1 -1
  827. package/dist/product/Palette.d.ts.map +1 -1
  828. package/dist/product/Palette.js +8 -3
  829. package/dist/product/Palette.js.map +1 -1
  830. package/dist/product/PlanUsage.cjs +28 -15
  831. package/dist/product/PlanUsage.d.ts +4 -4
  832. package/dist/product/PlanUsage.d.ts.map +1 -1
  833. package/dist/product/PlanUsage.js +28 -15
  834. package/dist/product/PlanUsage.js.map +1 -1
  835. package/dist/product/ProjectThumb.cjs +3 -1
  836. package/dist/product/ProjectThumb.d.ts.map +1 -1
  837. package/dist/product/ProjectThumb.js +3 -1
  838. package/dist/product/ProjectThumb.js.map +1 -1
  839. package/dist/product/RepoSelect.cjs +7 -4
  840. package/dist/product/RepoSelect.d.ts +1 -1
  841. package/dist/product/RepoSelect.d.ts.map +1 -1
  842. package/dist/product/RepoSelect.js +7 -4
  843. package/dist/product/RepoSelect.js.map +1 -1
  844. package/dist/product/SecretInput.cjs +3 -1
  845. package/dist/product/SecretInput.d.ts.map +1 -1
  846. package/dist/product/SecretInput.js +3 -1
  847. package/dist/product/SecretInput.js.map +1 -1
  848. package/dist/product/SelectMenu.cjs +4 -1
  849. package/dist/product/SelectMenu.d.ts +1 -1
  850. package/dist/product/SelectMenu.d.ts.map +1 -1
  851. package/dist/product/SelectMenu.js +4 -1
  852. package/dist/product/SelectMenu.js.map +1 -1
  853. package/dist/product/SiteNav.cjs +9 -5
  854. package/dist/product/SiteNav.d.ts.map +1 -1
  855. package/dist/product/SiteNav.js +9 -5
  856. package/dist/product/SiteNav.js.map +1 -1
  857. package/dist/product/SlideOver.cjs +11 -11
  858. package/dist/product/SlideOver.d.ts +1 -1
  859. package/dist/product/SlideOver.d.ts.map +1 -1
  860. package/dist/product/SlideOver.js +11 -11
  861. package/dist/product/SlideOver.js.map +1 -1
  862. package/dist/product/StatusTag.cjs +4 -1
  863. package/dist/product/StatusTag.d.ts.map +1 -1
  864. package/dist/product/StatusTag.js +4 -1
  865. package/dist/product/StatusTag.js.map +1 -1
  866. package/dist/product/ThemeToggle.cjs +3 -1
  867. package/dist/product/ThemeToggle.d.ts.map +1 -1
  868. package/dist/product/ThemeToggle.js +3 -1
  869. package/dist/product/ThemeToggle.js.map +1 -1
  870. package/dist/product/Toast.cjs +25 -4
  871. package/dist/product/Toast.d.ts.map +1 -1
  872. package/dist/product/Toast.js +25 -4
  873. package/dist/product/Toast.js.map +1 -1
  874. package/dist/product/UsageMeter.cjs +10 -6
  875. package/dist/product/UsageMeter.d.ts.map +1 -1
  876. package/dist/product/UsageMeter.js +11 -7
  877. package/dist/product/UsageMeter.js.map +1 -1
  878. package/dist/product/UserMenu.cjs +5 -3
  879. package/dist/product/UserMenu.d.ts.map +1 -1
  880. package/dist/product/UserMenu.js +5 -3
  881. package/dist/product/UserMenu.js.map +1 -1
  882. package/dist/product/Workbench.cjs +5 -3
  883. package/dist/product/Workbench.d.ts.map +1 -1
  884. package/dist/product/Workbench.js +5 -3
  885. package/dist/product/Workbench.js.map +1 -1
  886. package/dist/product/account.cjs +4 -2
  887. package/dist/product/account.d.ts.map +1 -1
  888. package/dist/product/account.js +4 -2
  889. package/dist/product/account.js.map +1 -1
  890. package/dist/product/limits.cjs +61 -24
  891. package/dist/product/limits.d.ts +4 -3
  892. package/dist/product/limits.d.ts.map +1 -1
  893. package/dist/product/limits.js +61 -24
  894. package/dist/product/limits.js.map +1 -1
  895. package/dist/product/match.cjs +2 -1
  896. package/dist/product/match.d.ts +1 -1
  897. package/dist/product/match.d.ts.map +1 -1
  898. package/dist/product/match.js +2 -1
  899. package/dist/product/match.js.map +1 -1
  900. package/dist/product/social/CampaignCard.cjs +3 -1
  901. package/dist/product/social/CampaignCard.d.ts.map +1 -1
  902. package/dist/product/social/CampaignCard.js +3 -1
  903. package/dist/product/social/CampaignCard.js.map +1 -1
  904. package/dist/product/social/PostAgenda.cjs +3 -1
  905. package/dist/product/social/PostAgenda.d.ts.map +1 -1
  906. package/dist/product/social/PostAgenda.js +3 -1
  907. package/dist/product/social/PostAgenda.js.map +1 -1
  908. package/dist/product/social/PostCard.cjs +3 -1
  909. package/dist/product/social/PostCard.d.ts.map +1 -1
  910. package/dist/product/social/PostCard.js +3 -1
  911. package/dist/product/social/PostCard.js.map +1 -1
  912. package/dist/product/social/PostComposer.cjs +12 -6
  913. package/dist/product/social/PostComposer.d.ts.map +1 -1
  914. package/dist/product/social/PostComposer.js +12 -6
  915. package/dist/product/social/PostComposer.js.map +1 -1
  916. package/dist/product/social/ProviderReadinessList.cjs +3 -1
  917. package/dist/product/social/ProviderReadinessList.d.ts.map +1 -1
  918. package/dist/product/social/ProviderReadinessList.js +3 -1
  919. package/dist/product/social/ProviderReadinessList.js.map +1 -1
  920. package/dist/product/social/SocialResource.cjs +25 -16
  921. package/dist/product/social/SocialResource.d.ts.map +1 -1
  922. package/dist/product/social/SocialResource.js +26 -17
  923. package/dist/product/social/SocialResource.js.map +1 -1
  924. package/dist/product/social/SocialSummaryBar.cjs +6 -4
  925. package/dist/product/social/SocialSummaryBar.d.ts.map +1 -1
  926. package/dist/product/social/SocialSummaryBar.js +6 -4
  927. package/dist/product/social/SocialSummaryBar.js.map +1 -1
  928. package/dist/product/social/ViewToggle.cjs +6 -3
  929. package/dist/product/social/ViewToggle.d.ts.map +1 -1
  930. package/dist/product/social/ViewToggle.js +6 -3
  931. package/dist/product/social/ViewToggle.js.map +1 -1
  932. package/dist/product/useLimits.cjs +4 -2
  933. package/dist/product/useLimits.d.ts.map +1 -1
  934. package/dist/product/useLimits.js +4 -2
  935. package/dist/product/useLimits.js.map +1 -1
  936. package/dist/root.cjs +6 -4
  937. package/dist/root.d.ts +52 -2
  938. package/dist/root.d.ts.map +1 -1
  939. package/dist/root.js +6 -4
  940. package/dist/root.js.map +1 -1
  941. package/dist/root.node.cjs +6 -4
  942. package/dist/root.node.js +6 -4
  943. package/dist/settings/Section.cjs +4 -2
  944. package/dist/settings/Section.d.ts.map +1 -1
  945. package/dist/settings/Section.js +4 -2
  946. package/dist/settings/Section.js.map +1 -1
  947. package/dist/settings/Settings.cjs +4 -1
  948. package/dist/settings/Settings.d.ts +1 -1
  949. package/dist/settings/Settings.d.ts.map +1 -1
  950. package/dist/settings/Settings.js +4 -1
  951. package/dist/settings/Settings.js.map +1 -1
  952. package/dist/styles.css +10 -59
  953. package/dist/theme.css +10 -59
  954. package/package.json +11 -2
@@ -7,6 +7,7 @@ const jsx_runtime_1 = require("react/jsx-runtime");
7
7
  const react_1 = require("react");
8
8
  const gui_1 = require("@hanzo/gui");
9
9
  const shell_1 = require("@hanzogui/shell");
10
+ const react_2 = require("@hanzo/i18n/react");
10
11
  const nav_1 = require("./nav.cjs");
11
12
  /** A menu stays open this long after the pointer leaves, so a diagonal path to a row keeps it. */
12
13
  const GRACE = 160;
@@ -59,9 +60,25 @@ const BAR = {
59
60
  px: 'var(--page-gutter)',
60
61
  };
61
62
  /** The name of the place, lit under the pointer and while the company menu is open. */
62
- const BRAND = { items: 'center', shrink: 0, height: 34, marginInlineStart: -4, rounded: 999, hoverStyle: { bg: WASH, boxShadow: RING } };
63
+ const BRAND = {
64
+ items: 'center',
65
+ shrink: 0,
66
+ height: 34,
67
+ marginInlineStart: -4,
68
+ rounded: 999,
69
+ hoverStyle: { bg: WASH, boxShadow: RING },
70
+ };
63
71
  /** The wordmark: home, and never dim. */
64
- const NAME = { display: 'flex', items: 'center', height: '100%', pl: 12, pr: 12, color: 'var(--foreground)', whiteSpace: 'nowrap', textDecorationLine: 'none' };
72
+ const NAME = {
73
+ display: 'flex',
74
+ items: 'center',
75
+ height: '100%',
76
+ pl: 12,
77
+ pr: 12,
78
+ color: 'var(--foreground)',
79
+ whiteSpace: 'nowrap',
80
+ textDecorationLine: 'none',
81
+ };
65
82
  /** A pill in the bar: dim at rest, lit under the pointer. A button's own padding is the browser's, so it is stated. */
66
83
  const PILL = {
67
84
  display: 'flex',
@@ -77,7 +94,15 @@ const PILL = {
77
94
  hoverStyle: LIT,
78
95
  };
79
96
  /** A pill that opens a menu: its label, then a chevron. */
80
- const TRIGGER = { ...PILL, gap: 6, px: 12, fontSize: '$2', lineHeight: 20, fontWeight: '500', whiteSpace: 'nowrap' };
97
+ const TRIGGER = {
98
+ ...PILL,
99
+ gap: 6,
100
+ px: 12,
101
+ fontSize: '$2',
102
+ lineHeight: 20,
103
+ fontWeight: '500',
104
+ whiteSpace: 'nowrap',
105
+ };
81
106
  /** The one filled control, in the bar and in the sheet. */
82
107
  const ACT = {
83
108
  display: 'flex',
@@ -96,7 +121,10 @@ const ACT = {
96
121
  hoverStyle: { opacity: 0.88 },
97
122
  };
98
123
  /** What hangs from the bar arrives: up 4px, faded in. */
99
- const ARRIVE = { enterStyle: { opacity: 0, y: -4 }, transition: 'quickest' };
124
+ const ARRIVE = {
125
+ enterStyle: { opacity: 0, y: -4 },
126
+ transition: 'quickest',
127
+ };
100
128
  /**
101
129
  * A row in a plane. As wide as its words, so a keyboard ring hugs the words it
102
130
  * names rather than the column; its padding steps out of the column, so the
@@ -114,8 +142,23 @@ const ROW = {
114
142
  focusVisibleStyle: { color: 'var(--foreground)' },
115
143
  };
116
144
  /** The destinations someone arrives wanting, in display type. */
117
- const LEAD = { ...ROW, py: 2, fontSize: '$8', lineHeight: 33.28, fontWeight: '400', letterSpacing: -0.26, color: 'var(--foreground)' };
118
- const PLAIN = { ...ROW, py: 5, fontSize: '$2', lineHeight: 20, fontWeight: '500', color: 'var(--muted-foreground)' };
145
+ const LEAD = {
146
+ ...ROW,
147
+ py: 2,
148
+ fontSize: '$8',
149
+ lineHeight: 33.28,
150
+ fontWeight: '400',
151
+ letterSpacing: -0.26,
152
+ color: 'var(--foreground)',
153
+ };
154
+ const PLAIN = {
155
+ ...ROW,
156
+ py: 5,
157
+ fontSize: '$2',
158
+ lineHeight: 20,
159
+ fontWeight: '500',
160
+ color: 'var(--muted-foreground)',
161
+ };
119
162
  /** A row in the sheet: a thumb's height, the column's width. */
120
163
  const LINE = {
121
164
  display: 'flex',
@@ -129,7 +172,16 @@ const LINE = {
129
172
  focusVisibleStyle: { color: 'var(--foreground)' },
130
173
  };
131
174
  /** The sheet's doors: Log in's rows, or the reader's own page. */
132
- const DOOR = { display: 'flex', items: 'center', justify: 'flex-start', minH: 44, fontSize: '$4', lineHeight: 20, fontWeight: '400', color: 'var(--foreground)' };
175
+ const DOOR = {
176
+ display: 'flex',
177
+ items: 'center',
178
+ justify: 'flex-start',
179
+ minH: 44,
180
+ fontSize: '$4',
181
+ lineHeight: 20,
182
+ fontWeight: '400',
183
+ color: 'var(--foreground)',
184
+ };
133
185
  /** A menu's mark. In the bar it waits for `$xl`; in the sheet it always shows. */
134
186
  function Mark({ name, bar = false }) {
135
187
  const Glyph = shell_1.MARKS[name];
@@ -146,7 +198,8 @@ function Out() {
146
198
  /** A row: the label, and ↗ with a new tab when it leaves. */
147
199
  function Row({ link, place, onClick, ...style }) {
148
200
  const out = (0, nav_1.leaves)(link.href, place.here);
149
- return ((0, jsx_runtime_1.jsxs)(gui_1.Anchor, { href: (0, nav_1.at)(link.href, place.origin, place.here), target: out ? '_blank' : undefined, rel: out ? 'noreferrer' : undefined, onClick: onClick, textDecorationLine: "none", ...style, children: [link.label, out ? (0, jsx_runtime_1.jsx)(Out, {}) : null] }));
201
+ const { t } = (0, react_2.useI18n)();
202
+ return ((0, jsx_runtime_1.jsxs)(gui_1.Anchor, { href: (0, nav_1.at)(link.href, place.origin, place.here), target: out ? '_blank' : undefined, rel: out ? 'noreferrer' : undefined, onClick: onClick, textDecorationLine: "none", ...style, children: [t(link.label), out ? (0, jsx_runtime_1.jsx)(Out, {}) : null] }));
150
203
  }
151
204
  /** A column's title. In the sheet it is the quiet label over a section's rows. */
152
205
  function Title({ sheet = false, children }) {
@@ -159,7 +212,8 @@ function Title({ sheet = false, children }) {
159
212
  */
160
213
  function Columns({ menu, place, onPick }) {
161
214
  const [hot, setHot] = (0, react_1.useState)(null);
162
- return ((0, jsx_runtime_1.jsx)(gui_1.View, { display: "grid", gridAutoFlow: "column", gridAutoColumns: "max-content", justify: "flex-start", gap: "max(24px, min(3vw, 64px))", pt: 36, pb: 48, px: "calc(var(--page-gutter) + 8px)", children: menu.groups.map((group, i) => ((0, jsx_runtime_1.jsxs)(gui_1.YStack, { gap: 2, minW: 0, opacity: hot === null || hot === i ? 1 : 0.45, transition: "quickest", onPointerEnter: () => setHot(i), onPointerLeave: () => setHot(null), children: [(0, jsx_runtime_1.jsx)(Title, { children: group.title }), group.links.map((link) => ((0, jsx_runtime_1.jsx)(Row, { link: link, place: place, onClick: onPick, ...(group.lead ? LEAD : PLAIN) }, link.label)))] }, group.title))) }));
215
+ const { t } = (0, react_2.useI18n)();
216
+ return ((0, jsx_runtime_1.jsx)(gui_1.View, { display: "grid", gridAutoFlow: "column", gridAutoColumns: "max-content", justify: "flex-start", gap: "max(24px, min(3vw, 64px))", pt: 36, pb: 48, px: "calc(var(--page-gutter) + 8px)", children: menu.groups.map((group, i) => ((0, jsx_runtime_1.jsxs)(gui_1.YStack, { gap: 2, minW: 0, opacity: hot === null || hot === i ? 1 : 0.45, transition: "quickest", onPointerEnter: () => setHot(i), onPointerLeave: () => setHot(null), children: [(0, jsx_runtime_1.jsx)(Title, { children: t(group.title) }), group.links.map((link) => ((0, jsx_runtime_1.jsx)(Row, { link: link, place: place, onClick: onPick, ...(group.lead ? LEAD : PLAIN) }, link.label)))] }, group.title))) }));
163
217
  }
164
218
  /** The DOM node a gui element stands for, on the web. */
165
219
  const node = (el) => (el instanceof HTMLElement ? el : null);
@@ -176,20 +230,21 @@ function measure(el) {
176
230
  };
177
231
  }
178
232
  /** The bar's rows as ⌘K entries: what a reader can reach from here, they can find. */
179
- function entries(company, menus, login, place) {
233
+ function entries(company, menus, login, place, t) {
180
234
  return [company, ...menus]
181
235
  .flatMap((menu) => menu.groups.flatMap((group) => group.links.map((link) => ({ menu, link }))))
182
236
  .concat(login.map((link) => ({ menu: company, link })))
183
237
  .filter(({ link }) => !link.href.startsWith(`${nav_1.DOCS}/`))
184
238
  .map(({ menu, link }) => ({
185
239
  id: `nav/${menu.id}/${link.label}`,
186
- title: link.label,
240
+ title: t(link.label),
187
241
  href: (0, nav_1.at)(link.href, place.origin, place.here),
188
- group: menu.label,
242
+ group: t(menu.label),
189
243
  external: (0, nav_1.leaves)(link.href, place.here),
190
244
  }));
191
245
  }
192
- function Masthead({ label = 'Hanzo AI', home = '/', origin = '', here = '', tree = {}, person, onSignOut, commands = [], onAsk, askHref, bare = false, }) {
246
+ function Masthead({ label = 'Hanzo AI', home = '/', origin = '', here = '', tree = {}, person, onSignOut, commands = [], onAsk, askHref, bare = false }) {
247
+ const { t } = (0, react_2.useI18n)();
193
248
  const company = tree.company ?? nav_1.COMPANY;
194
249
  const menus = tree.menus ?? nav_1.MENUS;
195
250
  const login = tree.login ?? nav_1.LOGIN;
@@ -215,6 +270,35 @@ function Masthead({ label = 'Hanzo AI', home = '/', origin = '', here = '', tree
215
270
  pinned.current = false;
216
271
  setOpen(null);
217
272
  }, []);
273
+ // The oversized footer signature is another doorway to the SAME Company menu.
274
+ // The DOM event is cancellable: Footer only intercepts its home link if this
275
+ // masthead is mounted and handles the request. Mobile opens the regular sheet.
276
+ (0, react_1.useEffect)(() => {
277
+ if (bare)
278
+ return;
279
+ const fromFooter = (event) => {
280
+ event.preventDefault();
281
+ clearTimeout(timer.current);
282
+ if (window.matchMedia('(min-width: 1024px)').matches) {
283
+ setSheet(false);
284
+ if (open === company.id && pinned.current) {
285
+ close();
286
+ }
287
+ else {
288
+ pinned.current = true;
289
+ setOpen(company.id);
290
+ // Present the real Company links to keyboard users, not a duplicate menu.
291
+ requestAnimationFrame(() => document.querySelector(`#menu-${company.id} a`)?.focus());
292
+ }
293
+ }
294
+ else {
295
+ close();
296
+ setSheet(true);
297
+ }
298
+ };
299
+ window.addEventListener(nav_1.COMPANY_MENU_EVENT, fromFooter);
300
+ return () => window.removeEventListener(nav_1.COMPANY_MENU_EVENT, fromFooter);
301
+ }, [bare, company.id, open, close]);
218
302
  // The bar is clear over the top of the page and takes the glass once the page
219
303
  // moves under it.
220
304
  (0, react_1.useEffect)(() => {
@@ -315,24 +399,24 @@ function Masthead({ label = 'Hanzo AI', home = '/', origin = '', here = '', tree
315
399
  };
316
400
  /** What a pill wears while its menu is open. */
317
401
  const lit = (id) => (open === id ? LIT : {});
318
- const menu = (item, trigger) => ((0, jsx_runtime_1.jsxs)(gui_1.XStack, { position: "relative", onPointerEnter: rest(item.id), onPointerLeave: leave, onBlur: blur, children: [trigger, open === item.id ? ((0, jsx_runtime_1.jsx)(gui_1.YStack, { id: `menu-${item.id}`, role: "group", "aria-label": item.label, position: "fixed", t: UNDER, l: 0, r: 0, z: "var(--z-raised)", maxH: `calc(100dvh - ${exports.HEADER}px)`, overflowY: "auto", bg: PANEL, boxShadow: DROP, ...ARRIVE, children: (0, jsx_runtime_1.jsx)(Columns, { menu: item, place: place, onPick: close }) })) : null] }));
319
- const trigger = (item) => ((0, jsx_runtime_1.jsxs)(gui_1.Text, { render: "button", ...TRIGGER, ...lit(item.id), "aria-expanded": open === item.id, "aria-controls": `menu-${item.id}`, onClick: press(item.id), onKeyDown: step(item.id), children: [(0, jsx_runtime_1.jsx)(Mark, { name: item.glyph, bar: true }), item.label, (0, jsx_runtime_1.jsx)(Chevron, { turned: open === item.id })] }));
402
+ const menu = (item, trigger) => ((0, jsx_runtime_1.jsxs)(gui_1.XStack, { position: "relative", onPointerEnter: rest(item.id), onPointerLeave: leave, onBlur: blur, children: [trigger, open === item.id ? ((0, jsx_runtime_1.jsx)(gui_1.YStack, { id: `menu-${item.id}`, role: "group", "aria-label": t(item.label), position: "fixed", t: UNDER, l: 0, r: 0, z: "var(--z-raised)", maxH: `calc(100dvh - ${exports.HEADER}px)`, overflowY: "auto", bg: PANEL, boxShadow: DROP, ...ARRIVE, children: (0, jsx_runtime_1.jsx)(Columns, { menu: item, place: place, onPick: close }) })) : null] }));
403
+ const trigger = (item) => ((0, jsx_runtime_1.jsxs)(gui_1.Text, { render: "button", ...TRIGGER, ...lit(item.id), "aria-expanded": open === item.id, "aria-controls": `menu-${item.id}`, onClick: press(item.id), onKeyDown: step(item.id), children: [(0, jsx_runtime_1.jsx)(Mark, { name: item.glyph, bar: true }), t(item.label), (0, jsx_runtime_1.jsx)(Chevron, { turned: open === item.id })] }));
320
404
  // On the way in and on the way to pay, the name alone. The two bars are
321
405
  // different elements (`key`), so moving between them mounts the other bar
322
406
  // rather than re-rendering one with and without its `transition`, which
323
407
  // changes the hooks @hanzo/gui calls for it.
324
408
  if (bare) {
325
- return ((0, jsx_runtime_1.jsx)(gui_1.XStack, { ref: masthead, render: "header", "data-slot": "masthead", ...BAR, children: (0, jsx_runtime_1.jsx)(gui_1.XStack, { render: "span", ...BRAND, children: (0, jsx_runtime_1.jsx)(gui_1.Anchor, { href: homeHref, "aria-label": `${label} home`, ...NAME, children: (0, jsx_runtime_1.jsx)(shell_1.HanzoWordmark, { label: label, size: 22 }) }) }) }, "bare"));
409
+ return ((0, jsx_runtime_1.jsx)(gui_1.XStack, { ref: masthead, render: "header", "data-slot": "masthead", ...BAR, children: (0, jsx_runtime_1.jsx)(gui_1.XStack, { render: "span", ...BRAND, children: (0, jsx_runtime_1.jsx)(gui_1.Anchor, { href: homeHref, "aria-label": t('{name} home', { name: label }), ...NAME, children: (0, jsx_runtime_1.jsx)(shell_1.HanzoWordmark, { label: label, size: 22 }) }) }) }, "bare"));
326
410
  }
327
411
  const lifted = open !== null || sheet;
328
412
  return ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, jsx_runtime_1.jsxs)(gui_1.XStack, { ref: masthead, render: "header", "data-slot": "masthead", ...BAR, bg: lifted ? PANEL : grounded ? GLASS : 'transparent',
329
413
  // The chrome's own blur, by name: @hanzo/design's one radius, the glass every bar wears.
330
414
  backdropFilter: !lifted && grounded ? 'var(--chrome-blur)' : 'none', transition: "quickest",
331
415
  // inline-style: custom properties @hanzogui/shell's account menu reads; no prop sets a variable.
332
- style: INK, children: [menu(company, (0, jsx_runtime_1.jsxs)(gui_1.XStack, { render: "span", ...BRAND, ...(open === company.id ? { bg: WASH, boxShadow: RING } : {}), children: [(0, jsx_runtime_1.jsx)(gui_1.Anchor, { href: homeHref, "aria-label": `${label} home`, ...NAME, $lg: { paddingInlineEnd: 0 }, children: (0, jsx_runtime_1.jsx)(shell_1.HanzoWordmark, { label: label, size: 22 }) }), (0, jsx_runtime_1.jsx)(gui_1.Text, { render: "button", "aria-label": company.label, "aria-expanded": open === company.id, "aria-controls": `menu-${company.id}`, onClick: press(company.id), onKeyDown: step(company.id), display: "none", $lg: { display: 'grid' }, placeItems: "center", width: 30, height: "100%", p: 0, paddingInlineEnd: 6, borderWidth: 0, borderStartEndRadius: 999, borderEndEndRadius: 999, bg: "transparent", color: "var(--foreground)", cursor: "pointer", children: (0, jsx_runtime_1.jsx)(Chevron, { turned: open === company.id }) })] })), (0, jsx_runtime_1.jsx)(gui_1.XStack, { render: "nav", "aria-label": "Main", display: "none", $lg: { display: 'flex' }, items: "center", gap: 2, children: menus.map((item) => ((0, jsx_runtime_1.jsx)(react_1.Fragment, { children: menu(item, trigger(item)) }, item.id))) }), open && open !== 'login' ? ((0, jsx_runtime_1.jsx)(gui_1.View, { "aria-hidden": true, onPress: close, position: "fixed", t: UNDER, l: 0, r: 0, b: 0, z: "var(--z-base)", bg: "$black/40", backdropFilter: "var(--chrome-blur)" })) : null, (0, jsx_runtime_1.jsx)(gui_1.Text, { render: "button", "aria-label": "Search Hanzo or ask AI", onClick: find, ...PILL, justify: "center", width: 44, height: 44, marginInlineStart: "auto", $lg: { width: 34, height: 34, marginInlineStart: 0 }, children: (0, jsx_runtime_1.jsx)(shell_1.MARKS.search, { size: 16 }) }), (0, jsx_runtime_1.jsxs)(gui_1.XStack, { items: "center", gap: 8, $lg: { marginInlineStart: 'auto' }, children: [person ? ((0, jsx_runtime_1.jsx)(shell_1.HanzoIdentity, { auth: { user: person, onSignOut, items: [{ id: 'account', label: account.label, href: (0, nav_1.at)(account.href, origin, here) }] } })) : ((0, jsx_runtime_1.jsxs)(gui_1.XStack, { position: "relative", display: "none", $lg: { display: 'flex' }, onPointerEnter: rest('login'), onPointerLeave: leave, onBlur: blur, children: [(0, jsx_runtime_1.jsxs)(gui_1.Text, { render: "button", ...TRIGGER, ...lit('login'), "aria-expanded": open === 'login', "aria-controls": "menu-login", onClick: press('login'), onKeyDown: step('login'), children: ["Log in", (0, jsx_runtime_1.jsx)(Chevron, { turned: open === 'login' })] }), open === 'login' ? ((0, jsx_runtime_1.jsx)(gui_1.YStack, { id: "menu-login", role: "group", "aria-label": "Log in", position: "absolute", t: "calc(100% + 8px)", insetInlineEnd: 0, display: "grid", gap: 2, minW: 240, p: 6, borderWidth: 1, borderColor: "var(--border)", rounded: 12, bg: PANEL, boxShadow: DROP, ...ARRIVE, children: login.map((link) => ((0, jsx_runtime_1.jsxs)(gui_1.Anchor, { href: (0, nav_1.at)(link.href, origin, here), target: "_blank", rel: "noreferrer", onClick: close, display: "grid", gap: 2, py: 8, px: 10, rounded: 8, color: "var(--foreground)", fontSize: "$2", lineHeight: 20, fontWeight: "600", textDecorationLine: "none", hoverStyle: { bg: WASH }, focusVisibleStyle: { bg: WASH }, children: [link.label, (0, jsx_runtime_1.jsx)(gui_1.Text, { render: "small", fontSize: "$1", lineHeight: 20, fontWeight: "400", color: "var(--muted-foreground)", children: link.hint })] }, link.label))) })) : null] })), (0, jsx_runtime_1.jsx)(Row, { link: act, place: place, ...ACT, display: "none", $lg: { display: 'flex' } }), (0, jsx_runtime_1.jsx)(gui_1.Text, { ref: toggle, render: "button", "aria-label": sheet ? 'Close menu' : 'Open menu', "aria-expanded": sheet, "aria-controls": "sheet", onClick: () => {
416
+ style: INK, children: [menu(company, (0, jsx_runtime_1.jsxs)(gui_1.XStack, { render: "span", ...BRAND, ...(open === company.id ? { bg: WASH, boxShadow: RING } : {}), children: [(0, jsx_runtime_1.jsx)(gui_1.Anchor, { href: homeHref, "aria-label": t('{name} home', { name: label }), ...NAME, $lg: { paddingInlineEnd: 0 }, children: (0, jsx_runtime_1.jsx)(shell_1.HanzoWordmark, { label: label, size: 22 }) }), (0, jsx_runtime_1.jsx)(gui_1.Text, { render: "button", "aria-label": t(company.label), "aria-expanded": open === company.id, "aria-controls": `menu-${company.id}`, onClick: press(company.id), onKeyDown: step(company.id), display: "none", $lg: { display: 'grid' }, placeItems: "center", width: 30, height: "100%", p: 0, paddingInlineEnd: 6, borderWidth: 0, borderStartEndRadius: 999, borderEndEndRadius: 999, bg: "transparent", color: "var(--foreground)", cursor: "pointer", children: (0, jsx_runtime_1.jsx)(Chevron, { turned: open === company.id }) })] })), (0, jsx_runtime_1.jsx)(gui_1.XStack, { render: "nav", "aria-label": t('Main'), display: "none", $lg: { display: 'flex' }, items: "center", gap: 2, children: menus.map((item) => ((0, jsx_runtime_1.jsx)(react_1.Fragment, { children: menu(item, trigger(item)) }, item.id))) }), open && open !== 'login' ? ((0, jsx_runtime_1.jsx)(gui_1.View, { "aria-hidden": true, onPress: close, position: "fixed", t: UNDER, l: 0, r: 0, b: 0, z: "var(--z-base)", bg: "$black/40", backdropFilter: "var(--chrome-blur)" })) : null, (0, jsx_runtime_1.jsx)(gui_1.Text, { render: "button", "aria-label": t('Search Hanzo or ask AI'), onClick: find, ...PILL, justify: "center", width: 44, height: 44, marginInlineStart: "auto", $lg: { width: 34, height: 34, marginInlineStart: 0 }, children: (0, jsx_runtime_1.jsx)(shell_1.MARKS.search, { size: 16 }) }), (0, jsx_runtime_1.jsxs)(gui_1.XStack, { items: "center", gap: 8, $lg: { marginInlineStart: 'auto' }, children: [person ? ((0, jsx_runtime_1.jsx)(shell_1.HanzoIdentity, { auth: { user: person, onSignOut, items: [{ id: 'account', label: t(account.label), href: (0, nav_1.at)(account.href, origin, here) }] } })) : ((0, jsx_runtime_1.jsxs)(gui_1.XStack, { position: "relative", display: "none", $lg: { display: 'flex' }, onPointerEnter: rest('login'), onPointerLeave: leave, onBlur: blur, children: [(0, jsx_runtime_1.jsxs)(gui_1.Text, { render: "button", ...TRIGGER, ...lit('login'), "aria-expanded": open === 'login', "aria-controls": "menu-login", onClick: press('login'), onKeyDown: step('login'), children: [t('Log in'), (0, jsx_runtime_1.jsx)(Chevron, { turned: open === 'login' })] }), open === 'login' ? ((0, jsx_runtime_1.jsx)(gui_1.YStack, { id: "menu-login", role: "group", "aria-label": t('Log in'), position: "absolute", t: "calc(100% + 8px)", insetInlineEnd: 0, display: "grid", gap: 2, minW: 240, p: 6, borderWidth: 1, borderColor: "var(--border)", rounded: 12, bg: PANEL, boxShadow: DROP, ...ARRIVE, children: login.map((link) => ((0, jsx_runtime_1.jsxs)(gui_1.Anchor, { href: (0, nav_1.at)(link.href, origin, here), target: "_blank", rel: "noreferrer", onClick: close, display: "grid", gap: 2, py: 8, px: 10, rounded: 8, color: "var(--foreground)", fontSize: "$2", lineHeight: 20, fontWeight: "600", textDecorationLine: "none", hoverStyle: { bg: WASH }, focusVisibleStyle: { bg: WASH }, children: [t(link.label), (0, jsx_runtime_1.jsx)(gui_1.Text, { render: "small", fontSize: "$1", lineHeight: 20, fontWeight: "400", color: "var(--muted-foreground)", children: link.hint ? t(link.hint) : null })] }, link.label))) })) : null] })), (0, jsx_runtime_1.jsx)(Row, { link: act, place: place, ...ACT, display: "none", $lg: { display: 'flex' } }), (0, jsx_runtime_1.jsx)(gui_1.Text, { ref: toggle, render: "button", "aria-label": sheet ? t('Close menu') : t('Open menu'), "aria-expanded": sheet, "aria-controls": "sheet", onClick: () => {
333
417
  close();
334
418
  setSheet((s) => !s);
335
- }, display: "grid", $lg: { display: 'none' }, placeItems: "center", width: 44, height: 44, p: 0, marginInlineEnd: -10, borderWidth: 0, bg: "transparent", color: "var(--foreground)", cursor: "pointer", children: (0, jsx_runtime_1.jsx)("svg", { width: 22, height: 22, viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: 2, strokeLinecap: "round", "aria-hidden": "true", children: (0, jsx_runtime_1.jsx)("path", { d: sheet ? 'M6 6l12 12M18 6L6 18' : 'M3 9h18M3 15h18' }) }) })] })] }, "full"), sheet ? ((0, jsx_runtime_1.jsx)(Sheet, { company: company, menus: menus, login: login, door: person ? account : null, act: act, place: place, onClose: () => setSheet(false) })) : null, (0, jsx_runtime_1.jsx)(gui_1.View, { position: "fixed", z: TOP, children: (0, jsx_runtime_1.jsx)(shell_1.HanzoCommandPalette, { commands: [...commands, ...entries(company, menus, login, place).filter((e) => !commands.some((c) => c.href === e.href))], open: search, onOpenChange: setSearch, onAsk: onAsk, askHref: askHref }) })] }));
419
+ }, display: "grid", $lg: { display: 'none' }, placeItems: "center", width: 44, height: 44, p: 0, marginInlineEnd: -10, borderWidth: 0, bg: "transparent", color: "var(--foreground)", cursor: "pointer", children: (0, jsx_runtime_1.jsx)("svg", { width: 22, height: 22, viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: 2, strokeLinecap: "round", "aria-hidden": "true", children: (0, jsx_runtime_1.jsx)("path", { d: sheet ? 'M6 6l12 12M18 6L6 18' : 'M3 9h18M3 15h18' }) }) })] })] }, "full"), sheet ? (0, jsx_runtime_1.jsx)(Sheet, { company: company, menus: menus, login: login, door: person ? account : null, act: act, place: place, onClose: () => setSheet(false) }) : null, (0, jsx_runtime_1.jsx)(gui_1.View, { position: "fixed", z: TOP, children: (0, jsx_runtime_1.jsx)(shell_1.HanzoCommandPalette, { commands: [...commands, ...entries(company, menus, login, place, t).filter((e) => !commands.some((c) => c.href === e.href))], open: search, onOpenChange: setSearch, onAsk: onAsk, askHref: askHref }) })] }));
336
420
  }
337
421
  /**
338
422
  * The phone's menu: the whole tree, one section open at a time, then the two
@@ -341,11 +425,15 @@ function Masthead({ label = 'Hanzo AI', home = '/', origin = '', here = '', tree
341
425
  * and carries the bottom inset, as the bar carries the top one.
342
426
  */
343
427
  function Sheet({ company, menus, login, door, act, place, onClose, }) {
428
+ const { t } = (0, react_2.useI18n)();
344
429
  const first = (0, react_1.useRef)(null);
345
430
  const [section, setSection] = (0, react_1.useState)(null);
346
431
  (0, react_1.useEffect)(() => node(first.current)?.focus(), []);
347
- return ((0, jsx_runtime_1.jsxs)(gui_1.View, { id: "sheet", role: "dialog", "aria-modal": true, "aria-label": "Menu", display: "block", position: "fixed", t: UNDER, l: 0, r: 0, b: 0, z: "var(--z-overlay)", overflowY: "auto", "$platform-web": { overscrollBehaviorX: 'contain', overscrollBehaviorY: 'contain' }, pt: 4, px: "var(--page-gutter)", pb: "calc(24px + env(safe-area-inset-bottom))", bg: PANEL, ...ARRIVE, children: [(0, jsx_runtime_1.jsx)(gui_1.View, { render: "nav", "aria-label": "Main", display: "block", children: [company, ...menus].map((item, i) => ((0, jsx_runtime_1.jsxs)(gui_1.View, { render: (0, jsx_runtime_1.jsx)("details", { name: "sheet", onToggle: (e) => {
432
+ return ((0, jsx_runtime_1.jsxs)(gui_1.View, { id: "sheet", role: "dialog", "aria-modal": true, "aria-label": t('Menu'), display: "block", position: "fixed", t: UNDER, l: 0, r: 0, b: 0, z: "var(--z-overlay)", overflowY: "auto", "$platform-web": {
433
+ overscrollBehaviorX: 'contain',
434
+ overscrollBehaviorY: 'contain',
435
+ }, pt: 4, px: "var(--page-gutter)", pb: "calc(24px + env(safe-area-inset-bottom))", bg: PANEL, ...ARRIVE, children: [(0, jsx_runtime_1.jsx)(gui_1.View, { render: "nav", "aria-label": t('Main'), display: "block", children: [company, ...menus].map((item, i) => ((0, jsx_runtime_1.jsxs)(gui_1.View, { render: (0, jsx_runtime_1.jsx)("details", { name: "sheet", onToggle: (e) => {
348
436
  const now = e.currentTarget.open;
349
437
  setSection((s) => (now ? item.id : s === item.id ? null : s));
350
- } }), display: "block", borderBottomWidth: 1, borderColor: "var(--border)", children: [(0, jsx_runtime_1.jsxs)(gui_1.Text, { ref: i === 0 ? first : undefined, render: "summary", display: "flex", items: "center", gap: 10, minH: 56, fontSize: "$6", lineHeight: 20, fontWeight: "500", color: "var(--foreground)", cursor: "pointer", children: [(0, jsx_runtime_1.jsx)(Mark, { name: item.glyph }), item.label, (0, jsx_runtime_1.jsx)(Chevron, { turned: section === item.id, end: true })] }), item.groups.map((group) => ((0, jsx_runtime_1.jsxs)(gui_1.YStack, { gap: 2, minW: 0, pb: 16, children: [(0, jsx_runtime_1.jsx)(Title, { sheet: true, children: group.title }), group.links.map((link) => ((0, jsx_runtime_1.jsx)(Row, { link: link, place: place, onClick: onClose, ...LINE, fontSize: group.lead ? '$6' : '$4', lineHeight: group.lead ? 20.4 : 18 }, link.label)))] }, group.title)))] }, item.id))) }), (0, jsx_runtime_1.jsxs)(gui_1.View, { display: "grid", gap: 4, pt: 20, children: [door ? ((0, jsx_runtime_1.jsx)(Row, { link: door, place: place, onClick: onClose, ...DOOR })) : ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, jsx_runtime_1.jsx)(Title, { sheet: true, children: "Log in" }), login.map((link) => ((0, jsx_runtime_1.jsx)(Row, { link: link, place: place, onClick: onClose, ...DOOR }, link.label)))] })), (0, jsx_runtime_1.jsx)(Row, { link: act, place: place, onClick: onClose, ...ACT, height: 48, mt: 12, fontSize: "$3" })] })] }));
438
+ } }), display: "block", borderBottomWidth: 1, borderColor: "var(--border)", children: [(0, jsx_runtime_1.jsxs)(gui_1.Text, { ref: i === 0 ? first : undefined, render: "summary", display: "flex", items: "center", gap: 10, minH: 56, fontSize: "$6", lineHeight: 20, fontWeight: "500", color: "var(--foreground)", cursor: "pointer", children: [(0, jsx_runtime_1.jsx)(Mark, { name: item.glyph }), t(item.label), (0, jsx_runtime_1.jsx)(Chevron, { turned: section === item.id, end: true })] }), item.groups.map((group) => ((0, jsx_runtime_1.jsxs)(gui_1.YStack, { gap: 2, minW: 0, pb: 16, children: [(0, jsx_runtime_1.jsx)(Title, { sheet: true, children: t(group.title) }), group.links.map((link) => ((0, jsx_runtime_1.jsx)(Row, { link: link, place: place, onClick: onClose, ...LINE, fontSize: group.lead ? '$6' : '$4', lineHeight: group.lead ? 20.4 : 18 }, link.label)))] }, group.title)))] }, item.id))) }), (0, jsx_runtime_1.jsxs)(gui_1.View, { display: "grid", gap: 4, pt: 20, children: [door ? ((0, jsx_runtime_1.jsx)(Row, { link: door, place: place, onClick: onClose, ...DOOR })) : ((0, jsx_runtime_1.jsxs)(jsx_runtime_1.Fragment, { children: [(0, jsx_runtime_1.jsx)(Title, { sheet: true, children: t('Log in') }), login.map((link) => ((0, jsx_runtime_1.jsx)(Row, { link: link, place: place, onClick: onClose, ...DOOR }, link.label)))] })), (0, jsx_runtime_1.jsx)(Row, { link: act, place: place, onClick: onClose, ...ACT, height: 48, mt: 12, fontSize: "$3" })] })] }));
351
439
  }
@@ -71,5 +71,5 @@ export interface MastheadProps {
71
71
  }
72
72
  /** The bar's height, under the notch. */
73
73
  export declare const HEADER = 60;
74
- export declare function Masthead({ label, home, origin, here, tree, person, onSignOut, commands, onAsk, askHref, bare, }: MastheadProps): import("react").JSX.Element;
74
+ export declare function Masthead({ label, home, origin, here, tree, person, onSignOut, commands, onAsk, askHref, bare }: MastheadProps): import("react").JSX.Element;
75
75
  //# sourceMappingURL=Masthead.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"Masthead.d.ts","sourceRoot":"","sources":["../../src/masthead/Masthead.tsx"],"names":[],"mappings":"AAIA,OAAO,EAA4E,KAAK,iBAAiB,EAAE,MAAM,iBAAiB,CAAA;AAElI,OAAO,EAA+D,KAAK,IAAI,EAAE,KAAK,IAAI,EAAE,MAAM,OAAO,CAAA;AAEzG;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AAEH,wDAAwD;AACxD,MAAM,WAAW,MAAM;IACrB,IAAI,EAAE,MAAM,CAAA;IACZ,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,MAAM,CAAC,EAAE,MAAM,CAAA;CAChB;AAED,2EAA2E;AAC3E,MAAM,WAAW,IAAI;IACnB,OAAO,EAAE,IAAI,CAAA;IACb,KAAK,EAAE,SAAS,IAAI,EAAE,CAAA;IACtB,KAAK,EAAE,SAAS,IAAI,EAAE,CAAA;IACtB,6CAA6C;IAC7C,GAAG,EAAE,IAAI,CAAA;IACT,0CAA0C;IAC1C,IAAI,EAAE,IAAI,CAAA;IACV,0EAA0E;IAC1E,OAAO,EAAE,IAAI,CAAA;CACd;AAED,MAAM,WAAW,aAAa;IAC5B,sDAAsD;IACtD,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,6CAA6C;IAC7C,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,uGAAuG;IACvG,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,gGAAgG;IAChG,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,+CAA+C;IAC/C,IAAI,CAAC,EAAE,OAAO,CAAC,IAAI,CAAC,CAAA;IACpB,2EAA2E;IAC3E,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IACtB,SAAS,CAAC,EAAE,MAAM,IAAI,CAAA;IACtB,gDAAgD;IAChD,QAAQ,CAAC,EAAE,SAAS,iBAAiB,EAAE,CAAA;IACvC,kGAAkG;IAClG,KAAK,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAA;IAClC,oDAAoD;IACpD,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,mFAAmF;IACnF,IAAI,CAAC,EAAE,OAAO,CAAA;CACf;AAOD,yCAAyC;AACzC,eAAO,MAAM,MAAM,KAAK,CAAA;AAkQxB,wBAAgB,QAAQ,CAAC,EACvB,KAAkB,EAClB,IAAU,EACV,MAAW,EACX,IAAS,EACT,IAAS,EACT,MAAM,EACN,SAAS,EACT,QAAa,EACb,KAAK,EACL,OAAO,EACP,IAAY,GACb,EAAE,aAAa,+BA6Xf"}
1
+ {"version":3,"file":"Masthead.d.ts","sourceRoot":"","sources":["../../src/masthead/Masthead.tsx"],"names":[],"mappings":"AAIA,OAAO,EAA4E,KAAK,iBAAiB,EAAE,MAAM,iBAAiB,CAAA;AAGlI,OAAO,EAAmF,KAAK,IAAI,EAAE,KAAK,IAAI,EAAE,MAAM,OAAO,CAAA;AAE7H;;;;;;;;;;;;;;;;;;;;;;;;;;;GA2BG;AAEH,wDAAwD;AACxD,MAAM,WAAW,MAAM;IACrB,IAAI,EAAE,MAAM,CAAA;IACZ,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,MAAM,CAAC,EAAE,MAAM,CAAA;CAChB;AAED,2EAA2E;AAC3E,MAAM,WAAW,IAAI;IACnB,OAAO,EAAE,IAAI,CAAA;IACb,KAAK,EAAE,SAAS,IAAI,EAAE,CAAA;IACtB,KAAK,EAAE,SAAS,IAAI,EAAE,CAAA;IACtB,6CAA6C;IAC7C,GAAG,EAAE,IAAI,CAAA;IACT,0CAA0C;IAC1C,IAAI,EAAE,IAAI,CAAA;IACV,0EAA0E;IAC1E,OAAO,EAAE,IAAI,CAAA;CACd;AAED,MAAM,WAAW,aAAa;IAC5B,sDAAsD;IACtD,KAAK,CAAC,EAAE,MAAM,CAAA;IACd,6CAA6C;IAC7C,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,uGAAuG;IACvG,MAAM,CAAC,EAAE,MAAM,CAAA;IACf,gGAAgG;IAChG,IAAI,CAAC,EAAE,MAAM,CAAA;IACb,+CAA+C;IAC/C,IAAI,CAAC,EAAE,OAAO,CAAC,IAAI,CAAC,CAAA;IACpB,2EAA2E;IAC3E,MAAM,CAAC,EAAE,MAAM,GAAG,IAAI,CAAA;IACtB,SAAS,CAAC,EAAE,MAAM,IAAI,CAAA;IACtB,gDAAgD;IAChD,QAAQ,CAAC,EAAE,SAAS,iBAAiB,EAAE,CAAA;IACvC,kGAAkG;IAClG,KAAK,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,KAAK,IAAI,CAAA;IAClC,oDAAoD;IACpD,OAAO,CAAC,EAAE,MAAM,CAAA;IAChB,mFAAmF;IACnF,IAAI,CAAC,EAAE,OAAO,CAAA;CACf;AAOD,yCAAyC;AACzC,eAAO,MAAM,MAAM,KAAK,CAAA;AAsTxB,wBAAgB,QAAQ,CAAC,EAAE,KAAkB,EAAE,IAAU,EAAE,MAAW,EAAE,IAAS,EAAE,IAAS,EAAE,MAAM,EAAE,SAAS,EAAE,QAAa,EAAE,KAAK,EAAE,OAAO,EAAE,IAAY,EAAE,EAAE,aAAa,+BAuY5K"}
@@ -3,7 +3,8 @@ import { Fragment as _Fragment, jsx as _jsx, jsxs as _jsxs } from "react/jsx-run
3
3
  import { Fragment, useCallback, useEffect, useRef, useState } from 'react';
4
4
  import { Anchor, Text, View, XStack, YStack } from '@hanzo/gui';
5
5
  import { HanzoCommandPalette, HanzoIdentity, HanzoWordmark, MARKS } from '@hanzogui/shell';
6
- import { ACCOUNT, COMPANY, DOCS, LOGIN, MENUS, OPEN, TRY, at, leaves } from './nav.js';
6
+ import { useI18n } from '@hanzo/i18n/react';
7
+ import { ACCOUNT, at, COMPANY, COMPANY_MENU_EVENT, DOCS, leaves, LOGIN, MENUS, OPEN, TRY } from './nav.js';
7
8
  /** A menu stays open this long after the pointer leaves, so a diagonal path to a row keeps it. */
8
9
  const GRACE = 160;
9
10
  /** And opens after the pointer rests this long, so crossing the bar opens nothing. */
@@ -55,9 +56,25 @@ const BAR = {
55
56
  px: 'var(--page-gutter)',
56
57
  };
57
58
  /** The name of the place, lit under the pointer and while the company menu is open. */
58
- const BRAND = { items: 'center', shrink: 0, height: 34, marginInlineStart: -4, rounded: 999, hoverStyle: { bg: WASH, boxShadow: RING } };
59
+ const BRAND = {
60
+ items: 'center',
61
+ shrink: 0,
62
+ height: 34,
63
+ marginInlineStart: -4,
64
+ rounded: 999,
65
+ hoverStyle: { bg: WASH, boxShadow: RING },
66
+ };
59
67
  /** The wordmark: home, and never dim. */
60
- const NAME = { display: 'flex', items: 'center', height: '100%', pl: 12, pr: 12, color: 'var(--foreground)', whiteSpace: 'nowrap', textDecorationLine: 'none' };
68
+ const NAME = {
69
+ display: 'flex',
70
+ items: 'center',
71
+ height: '100%',
72
+ pl: 12,
73
+ pr: 12,
74
+ color: 'var(--foreground)',
75
+ whiteSpace: 'nowrap',
76
+ textDecorationLine: 'none',
77
+ };
61
78
  /** A pill in the bar: dim at rest, lit under the pointer. A button's own padding is the browser's, so it is stated. */
62
79
  const PILL = {
63
80
  display: 'flex',
@@ -73,7 +90,15 @@ const PILL = {
73
90
  hoverStyle: LIT,
74
91
  };
75
92
  /** A pill that opens a menu: its label, then a chevron. */
76
- const TRIGGER = { ...PILL, gap: 6, px: 12, fontSize: '$2', lineHeight: 20, fontWeight: '500', whiteSpace: 'nowrap' };
93
+ const TRIGGER = {
94
+ ...PILL,
95
+ gap: 6,
96
+ px: 12,
97
+ fontSize: '$2',
98
+ lineHeight: 20,
99
+ fontWeight: '500',
100
+ whiteSpace: 'nowrap',
101
+ };
77
102
  /** The one filled control, in the bar and in the sheet. */
78
103
  const ACT = {
79
104
  display: 'flex',
@@ -92,7 +117,10 @@ const ACT = {
92
117
  hoverStyle: { opacity: 0.88 },
93
118
  };
94
119
  /** What hangs from the bar arrives: up 4px, faded in. */
95
- const ARRIVE = { enterStyle: { opacity: 0, y: -4 }, transition: 'quickest' };
120
+ const ARRIVE = {
121
+ enterStyle: { opacity: 0, y: -4 },
122
+ transition: 'quickest',
123
+ };
96
124
  /**
97
125
  * A row in a plane. As wide as its words, so a keyboard ring hugs the words it
98
126
  * names rather than the column; its padding steps out of the column, so the
@@ -110,8 +138,23 @@ const ROW = {
110
138
  focusVisibleStyle: { color: 'var(--foreground)' },
111
139
  };
112
140
  /** The destinations someone arrives wanting, in display type. */
113
- const LEAD = { ...ROW, py: 2, fontSize: '$8', lineHeight: 33.28, fontWeight: '400', letterSpacing: -0.26, color: 'var(--foreground)' };
114
- const PLAIN = { ...ROW, py: 5, fontSize: '$2', lineHeight: 20, fontWeight: '500', color: 'var(--muted-foreground)' };
141
+ const LEAD = {
142
+ ...ROW,
143
+ py: 2,
144
+ fontSize: '$8',
145
+ lineHeight: 33.28,
146
+ fontWeight: '400',
147
+ letterSpacing: -0.26,
148
+ color: 'var(--foreground)',
149
+ };
150
+ const PLAIN = {
151
+ ...ROW,
152
+ py: 5,
153
+ fontSize: '$2',
154
+ lineHeight: 20,
155
+ fontWeight: '500',
156
+ color: 'var(--muted-foreground)',
157
+ };
115
158
  /** A row in the sheet: a thumb's height, the column's width. */
116
159
  const LINE = {
117
160
  display: 'flex',
@@ -125,7 +168,16 @@ const LINE = {
125
168
  focusVisibleStyle: { color: 'var(--foreground)' },
126
169
  };
127
170
  /** The sheet's doors: Log in's rows, or the reader's own page. */
128
- const DOOR = { display: 'flex', items: 'center', justify: 'flex-start', minH: 44, fontSize: '$4', lineHeight: 20, fontWeight: '400', color: 'var(--foreground)' };
171
+ const DOOR = {
172
+ display: 'flex',
173
+ items: 'center',
174
+ justify: 'flex-start',
175
+ minH: 44,
176
+ fontSize: '$4',
177
+ lineHeight: 20,
178
+ fontWeight: '400',
179
+ color: 'var(--foreground)',
180
+ };
129
181
  /** A menu's mark. In the bar it waits for `$xl`; in the sheet it always shows. */
130
182
  function Mark({ name, bar = false }) {
131
183
  const Glyph = MARKS[name];
@@ -142,7 +194,8 @@ function Out() {
142
194
  /** A row: the label, and ↗ with a new tab when it leaves. */
143
195
  function Row({ link, place, onClick, ...style }) {
144
196
  const out = leaves(link.href, place.here);
145
- return (_jsxs(Anchor, { href: at(link.href, place.origin, place.here), target: out ? '_blank' : undefined, rel: out ? 'noreferrer' : undefined, onClick: onClick, textDecorationLine: "none", ...style, children: [link.label, out ? _jsx(Out, {}) : null] }));
197
+ const { t } = useI18n();
198
+ return (_jsxs(Anchor, { href: at(link.href, place.origin, place.here), target: out ? '_blank' : undefined, rel: out ? 'noreferrer' : undefined, onClick: onClick, textDecorationLine: "none", ...style, children: [t(link.label), out ? _jsx(Out, {}) : null] }));
146
199
  }
147
200
  /** A column's title. In the sheet it is the quiet label over a section's rows. */
148
201
  function Title({ sheet = false, children }) {
@@ -155,7 +208,8 @@ function Title({ sheet = false, children }) {
155
208
  */
156
209
  function Columns({ menu, place, onPick }) {
157
210
  const [hot, setHot] = useState(null);
158
- return (_jsx(View, { display: "grid", gridAutoFlow: "column", gridAutoColumns: "max-content", justify: "flex-start", gap: "max(24px, min(3vw, 64px))", pt: 36, pb: 48, px: "calc(var(--page-gutter) + 8px)", children: menu.groups.map((group, i) => (_jsxs(YStack, { gap: 2, minW: 0, opacity: hot === null || hot === i ? 1 : 0.45, transition: "quickest", onPointerEnter: () => setHot(i), onPointerLeave: () => setHot(null), children: [_jsx(Title, { children: group.title }), group.links.map((link) => (_jsx(Row, { link: link, place: place, onClick: onPick, ...(group.lead ? LEAD : PLAIN) }, link.label)))] }, group.title))) }));
211
+ const { t } = useI18n();
212
+ return (_jsx(View, { display: "grid", gridAutoFlow: "column", gridAutoColumns: "max-content", justify: "flex-start", gap: "max(24px, min(3vw, 64px))", pt: 36, pb: 48, px: "calc(var(--page-gutter) + 8px)", children: menu.groups.map((group, i) => (_jsxs(YStack, { gap: 2, minW: 0, opacity: hot === null || hot === i ? 1 : 0.45, transition: "quickest", onPointerEnter: () => setHot(i), onPointerLeave: () => setHot(null), children: [_jsx(Title, { children: t(group.title) }), group.links.map((link) => (_jsx(Row, { link: link, place: place, onClick: onPick, ...(group.lead ? LEAD : PLAIN) }, link.label)))] }, group.title))) }));
159
213
  }
160
214
  /** The DOM node a gui element stands for, on the web. */
161
215
  const node = (el) => (el instanceof HTMLElement ? el : null);
@@ -172,20 +226,21 @@ function measure(el) {
172
226
  };
173
227
  }
174
228
  /** The bar's rows as ⌘K entries: what a reader can reach from here, they can find. */
175
- function entries(company, menus, login, place) {
229
+ function entries(company, menus, login, place, t) {
176
230
  return [company, ...menus]
177
231
  .flatMap((menu) => menu.groups.flatMap((group) => group.links.map((link) => ({ menu, link }))))
178
232
  .concat(login.map((link) => ({ menu: company, link })))
179
233
  .filter(({ link }) => !link.href.startsWith(`${DOCS}/`))
180
234
  .map(({ menu, link }) => ({
181
235
  id: `nav/${menu.id}/${link.label}`,
182
- title: link.label,
236
+ title: t(link.label),
183
237
  href: at(link.href, place.origin, place.here),
184
- group: menu.label,
238
+ group: t(menu.label),
185
239
  external: leaves(link.href, place.here),
186
240
  }));
187
241
  }
188
- export function Masthead({ label = 'Hanzo AI', home = '/', origin = '', here = '', tree = {}, person, onSignOut, commands = [], onAsk, askHref, bare = false, }) {
242
+ export function Masthead({ label = 'Hanzo AI', home = '/', origin = '', here = '', tree = {}, person, onSignOut, commands = [], onAsk, askHref, bare = false }) {
243
+ const { t } = useI18n();
189
244
  const company = tree.company ?? COMPANY;
190
245
  const menus = tree.menus ?? MENUS;
191
246
  const login = tree.login ?? LOGIN;
@@ -211,6 +266,35 @@ export function Masthead({ label = 'Hanzo AI', home = '/', origin = '', here = '
211
266
  pinned.current = false;
212
267
  setOpen(null);
213
268
  }, []);
269
+ // The oversized footer signature is another doorway to the SAME Company menu.
270
+ // The DOM event is cancellable: Footer only intercepts its home link if this
271
+ // masthead is mounted and handles the request. Mobile opens the regular sheet.
272
+ useEffect(() => {
273
+ if (bare)
274
+ return;
275
+ const fromFooter = (event) => {
276
+ event.preventDefault();
277
+ clearTimeout(timer.current);
278
+ if (window.matchMedia('(min-width: 1024px)').matches) {
279
+ setSheet(false);
280
+ if (open === company.id && pinned.current) {
281
+ close();
282
+ }
283
+ else {
284
+ pinned.current = true;
285
+ setOpen(company.id);
286
+ // Present the real Company links to keyboard users, not a duplicate menu.
287
+ requestAnimationFrame(() => document.querySelector(`#menu-${company.id} a`)?.focus());
288
+ }
289
+ }
290
+ else {
291
+ close();
292
+ setSheet(true);
293
+ }
294
+ };
295
+ window.addEventListener(COMPANY_MENU_EVENT, fromFooter);
296
+ return () => window.removeEventListener(COMPANY_MENU_EVENT, fromFooter);
297
+ }, [bare, company.id, open, close]);
214
298
  // The bar is clear over the top of the page and takes the glass once the page
215
299
  // moves under it.
216
300
  useEffect(() => {
@@ -311,24 +395,24 @@ export function Masthead({ label = 'Hanzo AI', home = '/', origin = '', here = '
311
395
  };
312
396
  /** What a pill wears while its menu is open. */
313
397
  const lit = (id) => (open === id ? LIT : {});
314
- const menu = (item, trigger) => (_jsxs(XStack, { position: "relative", onPointerEnter: rest(item.id), onPointerLeave: leave, onBlur: blur, children: [trigger, open === item.id ? (_jsx(YStack, { id: `menu-${item.id}`, role: "group", "aria-label": item.label, position: "fixed", t: UNDER, l: 0, r: 0, z: "var(--z-raised)", maxH: `calc(100dvh - ${HEADER}px)`, overflowY: "auto", bg: PANEL, boxShadow: DROP, ...ARRIVE, children: _jsx(Columns, { menu: item, place: place, onPick: close }) })) : null] }));
315
- const trigger = (item) => (_jsxs(Text, { render: "button", ...TRIGGER, ...lit(item.id), "aria-expanded": open === item.id, "aria-controls": `menu-${item.id}`, onClick: press(item.id), onKeyDown: step(item.id), children: [_jsx(Mark, { name: item.glyph, bar: true }), item.label, _jsx(Chevron, { turned: open === item.id })] }));
398
+ const menu = (item, trigger) => (_jsxs(XStack, { position: "relative", onPointerEnter: rest(item.id), onPointerLeave: leave, onBlur: blur, children: [trigger, open === item.id ? (_jsx(YStack, { id: `menu-${item.id}`, role: "group", "aria-label": t(item.label), position: "fixed", t: UNDER, l: 0, r: 0, z: "var(--z-raised)", maxH: `calc(100dvh - ${HEADER}px)`, overflowY: "auto", bg: PANEL, boxShadow: DROP, ...ARRIVE, children: _jsx(Columns, { menu: item, place: place, onPick: close }) })) : null] }));
399
+ const trigger = (item) => (_jsxs(Text, { render: "button", ...TRIGGER, ...lit(item.id), "aria-expanded": open === item.id, "aria-controls": `menu-${item.id}`, onClick: press(item.id), onKeyDown: step(item.id), children: [_jsx(Mark, { name: item.glyph, bar: true }), t(item.label), _jsx(Chevron, { turned: open === item.id })] }));
316
400
  // On the way in and on the way to pay, the name alone. The two bars are
317
401
  // different elements (`key`), so moving between them mounts the other bar
318
402
  // rather than re-rendering one with and without its `transition`, which
319
403
  // changes the hooks @hanzo/gui calls for it.
320
404
  if (bare) {
321
- return (_jsx(XStack, { ref: masthead, render: "header", "data-slot": "masthead", ...BAR, children: _jsx(XStack, { render: "span", ...BRAND, children: _jsx(Anchor, { href: homeHref, "aria-label": `${label} home`, ...NAME, children: _jsx(HanzoWordmark, { label: label, size: 22 }) }) }) }, "bare"));
405
+ return (_jsx(XStack, { ref: masthead, render: "header", "data-slot": "masthead", ...BAR, children: _jsx(XStack, { render: "span", ...BRAND, children: _jsx(Anchor, { href: homeHref, "aria-label": t('{name} home', { name: label }), ...NAME, children: _jsx(HanzoWordmark, { label: label, size: 22 }) }) }) }, "bare"));
322
406
  }
323
407
  const lifted = open !== null || sheet;
324
408
  return (_jsxs(_Fragment, { children: [_jsxs(XStack, { ref: masthead, render: "header", "data-slot": "masthead", ...BAR, bg: lifted ? PANEL : grounded ? GLASS : 'transparent',
325
409
  // The chrome's own blur, by name: @hanzo/design's one radius, the glass every bar wears.
326
410
  backdropFilter: !lifted && grounded ? 'var(--chrome-blur)' : 'none', transition: "quickest",
327
411
  // inline-style: custom properties @hanzogui/shell's account menu reads; no prop sets a variable.
328
- style: INK, children: [menu(company, _jsxs(XStack, { render: "span", ...BRAND, ...(open === company.id ? { bg: WASH, boxShadow: RING } : {}), children: [_jsx(Anchor, { href: homeHref, "aria-label": `${label} home`, ...NAME, $lg: { paddingInlineEnd: 0 }, children: _jsx(HanzoWordmark, { label: label, size: 22 }) }), _jsx(Text, { render: "button", "aria-label": company.label, "aria-expanded": open === company.id, "aria-controls": `menu-${company.id}`, onClick: press(company.id), onKeyDown: step(company.id), display: "none", $lg: { display: 'grid' }, placeItems: "center", width: 30, height: "100%", p: 0, paddingInlineEnd: 6, borderWidth: 0, borderStartEndRadius: 999, borderEndEndRadius: 999, bg: "transparent", color: "var(--foreground)", cursor: "pointer", children: _jsx(Chevron, { turned: open === company.id }) })] })), _jsx(XStack, { render: "nav", "aria-label": "Main", display: "none", $lg: { display: 'flex' }, items: "center", gap: 2, children: menus.map((item) => (_jsx(Fragment, { children: menu(item, trigger(item)) }, item.id))) }), open && open !== 'login' ? (_jsx(View, { "aria-hidden": true, onPress: close, position: "fixed", t: UNDER, l: 0, r: 0, b: 0, z: "var(--z-base)", bg: "$black/40", backdropFilter: "var(--chrome-blur)" })) : null, _jsx(Text, { render: "button", "aria-label": "Search Hanzo or ask AI", onClick: find, ...PILL, justify: "center", width: 44, height: 44, marginInlineStart: "auto", $lg: { width: 34, height: 34, marginInlineStart: 0 }, children: _jsx(MARKS.search, { size: 16 }) }), _jsxs(XStack, { items: "center", gap: 8, $lg: { marginInlineStart: 'auto' }, children: [person ? (_jsx(HanzoIdentity, { auth: { user: person, onSignOut, items: [{ id: 'account', label: account.label, href: at(account.href, origin, here) }] } })) : (_jsxs(XStack, { position: "relative", display: "none", $lg: { display: 'flex' }, onPointerEnter: rest('login'), onPointerLeave: leave, onBlur: blur, children: [_jsxs(Text, { render: "button", ...TRIGGER, ...lit('login'), "aria-expanded": open === 'login', "aria-controls": "menu-login", onClick: press('login'), onKeyDown: step('login'), children: ["Log in", _jsx(Chevron, { turned: open === 'login' })] }), open === 'login' ? (_jsx(YStack, { id: "menu-login", role: "group", "aria-label": "Log in", position: "absolute", t: "calc(100% + 8px)", insetInlineEnd: 0, display: "grid", gap: 2, minW: 240, p: 6, borderWidth: 1, borderColor: "var(--border)", rounded: 12, bg: PANEL, boxShadow: DROP, ...ARRIVE, children: login.map((link) => (_jsxs(Anchor, { href: at(link.href, origin, here), target: "_blank", rel: "noreferrer", onClick: close, display: "grid", gap: 2, py: 8, px: 10, rounded: 8, color: "var(--foreground)", fontSize: "$2", lineHeight: 20, fontWeight: "600", textDecorationLine: "none", hoverStyle: { bg: WASH }, focusVisibleStyle: { bg: WASH }, children: [link.label, _jsx(Text, { render: "small", fontSize: "$1", lineHeight: 20, fontWeight: "400", color: "var(--muted-foreground)", children: link.hint })] }, link.label))) })) : null] })), _jsx(Row, { link: act, place: place, ...ACT, display: "none", $lg: { display: 'flex' } }), _jsx(Text, { ref: toggle, render: "button", "aria-label": sheet ? 'Close menu' : 'Open menu', "aria-expanded": sheet, "aria-controls": "sheet", onClick: () => {
412
+ style: INK, children: [menu(company, _jsxs(XStack, { render: "span", ...BRAND, ...(open === company.id ? { bg: WASH, boxShadow: RING } : {}), children: [_jsx(Anchor, { href: homeHref, "aria-label": t('{name} home', { name: label }), ...NAME, $lg: { paddingInlineEnd: 0 }, children: _jsx(HanzoWordmark, { label: label, size: 22 }) }), _jsx(Text, { render: "button", "aria-label": t(company.label), "aria-expanded": open === company.id, "aria-controls": `menu-${company.id}`, onClick: press(company.id), onKeyDown: step(company.id), display: "none", $lg: { display: 'grid' }, placeItems: "center", width: 30, height: "100%", p: 0, paddingInlineEnd: 6, borderWidth: 0, borderStartEndRadius: 999, borderEndEndRadius: 999, bg: "transparent", color: "var(--foreground)", cursor: "pointer", children: _jsx(Chevron, { turned: open === company.id }) })] })), _jsx(XStack, { render: "nav", "aria-label": t('Main'), display: "none", $lg: { display: 'flex' }, items: "center", gap: 2, children: menus.map((item) => (_jsx(Fragment, { children: menu(item, trigger(item)) }, item.id))) }), open && open !== 'login' ? (_jsx(View, { "aria-hidden": true, onPress: close, position: "fixed", t: UNDER, l: 0, r: 0, b: 0, z: "var(--z-base)", bg: "$black/40", backdropFilter: "var(--chrome-blur)" })) : null, _jsx(Text, { render: "button", "aria-label": t('Search Hanzo or ask AI'), onClick: find, ...PILL, justify: "center", width: 44, height: 44, marginInlineStart: "auto", $lg: { width: 34, height: 34, marginInlineStart: 0 }, children: _jsx(MARKS.search, { size: 16 }) }), _jsxs(XStack, { items: "center", gap: 8, $lg: { marginInlineStart: 'auto' }, children: [person ? (_jsx(HanzoIdentity, { auth: { user: person, onSignOut, items: [{ id: 'account', label: t(account.label), href: at(account.href, origin, here) }] } })) : (_jsxs(XStack, { position: "relative", display: "none", $lg: { display: 'flex' }, onPointerEnter: rest('login'), onPointerLeave: leave, onBlur: blur, children: [_jsxs(Text, { render: "button", ...TRIGGER, ...lit('login'), "aria-expanded": open === 'login', "aria-controls": "menu-login", onClick: press('login'), onKeyDown: step('login'), children: [t('Log in'), _jsx(Chevron, { turned: open === 'login' })] }), open === 'login' ? (_jsx(YStack, { id: "menu-login", role: "group", "aria-label": t('Log in'), position: "absolute", t: "calc(100% + 8px)", insetInlineEnd: 0, display: "grid", gap: 2, minW: 240, p: 6, borderWidth: 1, borderColor: "var(--border)", rounded: 12, bg: PANEL, boxShadow: DROP, ...ARRIVE, children: login.map((link) => (_jsxs(Anchor, { href: at(link.href, origin, here), target: "_blank", rel: "noreferrer", onClick: close, display: "grid", gap: 2, py: 8, px: 10, rounded: 8, color: "var(--foreground)", fontSize: "$2", lineHeight: 20, fontWeight: "600", textDecorationLine: "none", hoverStyle: { bg: WASH }, focusVisibleStyle: { bg: WASH }, children: [t(link.label), _jsx(Text, { render: "small", fontSize: "$1", lineHeight: 20, fontWeight: "400", color: "var(--muted-foreground)", children: link.hint ? t(link.hint) : null })] }, link.label))) })) : null] })), _jsx(Row, { link: act, place: place, ...ACT, display: "none", $lg: { display: 'flex' } }), _jsx(Text, { ref: toggle, render: "button", "aria-label": sheet ? t('Close menu') : t('Open menu'), "aria-expanded": sheet, "aria-controls": "sheet", onClick: () => {
329
413
  close();
330
414
  setSheet((s) => !s);
331
- }, display: "grid", $lg: { display: 'none' }, placeItems: "center", width: 44, height: 44, p: 0, marginInlineEnd: -10, borderWidth: 0, bg: "transparent", color: "var(--foreground)", cursor: "pointer", children: _jsx("svg", { width: 22, height: 22, viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: 2, strokeLinecap: "round", "aria-hidden": "true", children: _jsx("path", { d: sheet ? 'M6 6l12 12M18 6L6 18' : 'M3 9h18M3 15h18' }) }) })] })] }, "full"), sheet ? (_jsx(Sheet, { company: company, menus: menus, login: login, door: person ? account : null, act: act, place: place, onClose: () => setSheet(false) })) : null, _jsx(View, { position: "fixed", z: TOP, children: _jsx(HanzoCommandPalette, { commands: [...commands, ...entries(company, menus, login, place).filter((e) => !commands.some((c) => c.href === e.href))], open: search, onOpenChange: setSearch, onAsk: onAsk, askHref: askHref }) })] }));
415
+ }, display: "grid", $lg: { display: 'none' }, placeItems: "center", width: 44, height: 44, p: 0, marginInlineEnd: -10, borderWidth: 0, bg: "transparent", color: "var(--foreground)", cursor: "pointer", children: _jsx("svg", { width: 22, height: 22, viewBox: "0 0 24 24", fill: "none", stroke: "currentColor", strokeWidth: 2, strokeLinecap: "round", "aria-hidden": "true", children: _jsx("path", { d: sheet ? 'M6 6l12 12M18 6L6 18' : 'M3 9h18M3 15h18' }) }) })] })] }, "full"), sheet ? _jsx(Sheet, { company: company, menus: menus, login: login, door: person ? account : null, act: act, place: place, onClose: () => setSheet(false) }) : null, _jsx(View, { position: "fixed", z: TOP, children: _jsx(HanzoCommandPalette, { commands: [...commands, ...entries(company, menus, login, place, t).filter((e) => !commands.some((c) => c.href === e.href))], open: search, onOpenChange: setSearch, onAsk: onAsk, askHref: askHref }) })] }));
332
416
  }
333
417
  /**
334
418
  * The phone's menu: the whole tree, one section open at a time, then the two
@@ -337,12 +421,16 @@ export function Masthead({ label = 'Hanzo AI', home = '/', origin = '', here = '
337
421
  * and carries the bottom inset, as the bar carries the top one.
338
422
  */
339
423
  function Sheet({ company, menus, login, door, act, place, onClose, }) {
424
+ const { t } = useI18n();
340
425
  const first = useRef(null);
341
426
  const [section, setSection] = useState(null);
342
427
  useEffect(() => node(first.current)?.focus(), []);
343
- return (_jsxs(View, { id: "sheet", role: "dialog", "aria-modal": true, "aria-label": "Menu", display: "block", position: "fixed", t: UNDER, l: 0, r: 0, b: 0, z: "var(--z-overlay)", overflowY: "auto", "$platform-web": { overscrollBehaviorX: 'contain', overscrollBehaviorY: 'contain' }, pt: 4, px: "var(--page-gutter)", pb: "calc(24px + env(safe-area-inset-bottom))", bg: PANEL, ...ARRIVE, children: [_jsx(View, { render: "nav", "aria-label": "Main", display: "block", children: [company, ...menus].map((item, i) => (_jsxs(View, { render: _jsx("details", { name: "sheet", onToggle: (e) => {
428
+ return (_jsxs(View, { id: "sheet", role: "dialog", "aria-modal": true, "aria-label": t('Menu'), display: "block", position: "fixed", t: UNDER, l: 0, r: 0, b: 0, z: "var(--z-overlay)", overflowY: "auto", "$platform-web": {
429
+ overscrollBehaviorX: 'contain',
430
+ overscrollBehaviorY: 'contain',
431
+ }, pt: 4, px: "var(--page-gutter)", pb: "calc(24px + env(safe-area-inset-bottom))", bg: PANEL, ...ARRIVE, children: [_jsx(View, { render: "nav", "aria-label": t('Main'), display: "block", children: [company, ...menus].map((item, i) => (_jsxs(View, { render: _jsx("details", { name: "sheet", onToggle: (e) => {
344
432
  const now = e.currentTarget.open;
345
433
  setSection((s) => (now ? item.id : s === item.id ? null : s));
346
- } }), display: "block", borderBottomWidth: 1, borderColor: "var(--border)", children: [_jsxs(Text, { ref: i === 0 ? first : undefined, render: "summary", display: "flex", items: "center", gap: 10, minH: 56, fontSize: "$6", lineHeight: 20, fontWeight: "500", color: "var(--foreground)", cursor: "pointer", children: [_jsx(Mark, { name: item.glyph }), item.label, _jsx(Chevron, { turned: section === item.id, end: true })] }), item.groups.map((group) => (_jsxs(YStack, { gap: 2, minW: 0, pb: 16, children: [_jsx(Title, { sheet: true, children: group.title }), group.links.map((link) => (_jsx(Row, { link: link, place: place, onClick: onClose, ...LINE, fontSize: group.lead ? '$6' : '$4', lineHeight: group.lead ? 20.4 : 18 }, link.label)))] }, group.title)))] }, item.id))) }), _jsxs(View, { display: "grid", gap: 4, pt: 20, children: [door ? (_jsx(Row, { link: door, place: place, onClick: onClose, ...DOOR })) : (_jsxs(_Fragment, { children: [_jsx(Title, { sheet: true, children: "Log in" }), login.map((link) => (_jsx(Row, { link: link, place: place, onClick: onClose, ...DOOR }, link.label)))] })), _jsx(Row, { link: act, place: place, onClick: onClose, ...ACT, height: 48, mt: 12, fontSize: "$3" })] })] }));
434
+ } }), display: "block", borderBottomWidth: 1, borderColor: "var(--border)", children: [_jsxs(Text, { ref: i === 0 ? first : undefined, render: "summary", display: "flex", items: "center", gap: 10, minH: 56, fontSize: "$6", lineHeight: 20, fontWeight: "500", color: "var(--foreground)", cursor: "pointer", children: [_jsx(Mark, { name: item.glyph }), t(item.label), _jsx(Chevron, { turned: section === item.id, end: true })] }), item.groups.map((group) => (_jsxs(YStack, { gap: 2, minW: 0, pb: 16, children: [_jsx(Title, { sheet: true, children: t(group.title) }), group.links.map((link) => (_jsx(Row, { link: link, place: place, onClick: onClose, ...LINE, fontSize: group.lead ? '$6' : '$4', lineHeight: group.lead ? 20.4 : 18 }, link.label)))] }, group.title)))] }, item.id))) }), _jsxs(View, { display: "grid", gap: 4, pt: 20, children: [door ? (_jsx(Row, { link: door, place: place, onClick: onClose, ...DOOR })) : (_jsxs(_Fragment, { children: [_jsx(Title, { sheet: true, children: t('Log in') }), login.map((link) => (_jsx(Row, { link: link, place: place, onClick: onClose, ...DOOR }, link.label)))] })), _jsx(Row, { link: act, place: place, onClick: onClose, ...ACT, height: 48, mt: 12, fontSize: "$3" })] })] }));
347
435
  }
348
436
  //# sourceMappingURL=Masthead.js.map