@arbidocs/blocks 0.3.184 → 0.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (598) hide show
  1. package/README.md +100 -0
  2. package/dist/agents/approvals/AuthorizeAgentParts.d.ts +79 -0
  3. package/dist/agents/approvals/ConsentPage.d.ts +76 -0
  4. package/dist/agents/approvals/ConsentParts.d.ts +37 -0
  5. package/dist/agents/approvals/index.d.ts +3 -0
  6. package/dist/agents/config/ConfigField.d.ts +43 -0
  7. package/dist/agents/config/ConfigForm.d.ts +35 -0
  8. package/dist/agents/config/TupleArrayField.d.ts +32 -0
  9. package/dist/agents/config/index.d.ts +4 -0
  10. package/dist/agents/config/schema-utils.d.ts +28 -0
  11. package/dist/agents/definitions/AgentCard.d.ts +63 -0
  12. package/dist/agents/definitions/AgentCreator.d.ts +118 -0
  13. package/dist/agents/definitions/AgentEditorParts.d.ts +63 -0
  14. package/dist/agents/definitions/AgentGallery.d.ts +29 -0
  15. package/dist/agents/definitions/index.d.ts +4 -0
  16. package/dist/agents/index.cjs +595 -0
  17. package/dist/agents/index.cjs.map +1 -0
  18. package/dist/agents/index.d.ts +7 -0
  19. package/dist/agents/index.js +14 -0
  20. package/dist/agents/index.js.map +1 -0
  21. package/dist/agents/runs/AgentBar.d.ts +103 -0
  22. package/dist/agents/runs/AgentSteps.d.ts +157 -0
  23. package/dist/agents/runs/SubagentRoster.d.ts +37 -0
  24. package/dist/agents/runs/index.d.ts +3 -0
  25. package/dist/agents/skills/SkillBrowserParts.d.ts +70 -0
  26. package/dist/agents/skills/SkillCard.d.ts +48 -0
  27. package/dist/agents/skills/SkillForms.d.ts +64 -0
  28. package/dist/agents/skills/SkillParts.d.ts +31 -0
  29. package/dist/agents/skills/SkillRow.d.ts +34 -0
  30. package/dist/agents/skills/index.d.ts +5 -0
  31. package/dist/agents/tasks/LiveRunsBanner.d.ts +26 -0
  32. package/dist/agents/tasks/RecurrenceBuilder.d.ts +36 -0
  33. package/dist/agents/tasks/TaskComposer.d.ts +108 -0
  34. package/dist/agents/tasks/TaskPlan.d.ts +78 -0
  35. package/dist/agents/tasks/TaskRowActions.d.ts +43 -0
  36. package/dist/agents/tasks/TaskRunsDialog.d.ts +45 -0
  37. package/dist/agents/tasks/TasksChrome.d.ts +36 -0
  38. package/dist/agents/tasks/UploadTaskItem.d.ts +39 -0
  39. package/dist/agents/tasks/UploadTaskList.d.ts +35 -0
  40. package/dist/agents/tasks/elapsed.d.ts +2 -0
  41. package/dist/agents/tasks/index.d.ts +13 -0
  42. package/dist/agents/tasks/rrule.d.ts +36 -0
  43. package/dist/agents/tasks/taskColumns.d.ts +68 -0
  44. package/dist/agents/tasks/taskLabels.d.ts +26 -0
  45. package/dist/agents/workflows/AgentSelect.d.ts +33 -0
  46. package/dist/agents/workflows/SchemaForm.d.ts +37 -0
  47. package/dist/agents/workflows/WorkflowConfigDialog.d.ts +73 -0
  48. package/dist/agents/workflows/WorkflowLauncher.d.ts +38 -0
  49. package/dist/agents/workflows/index.d.ts +6 -0
  50. package/dist/agents/workflows/types.d.ts +125 -0
  51. package/dist/agents/workflows/workflow.d.ts +62 -0
  52. package/dist/auth/AuthFooter.d.ts +56 -0
  53. package/dist/auth/AuthForm.d.ts +105 -0
  54. package/dist/auth/AuthLayout.d.ts +46 -0
  55. package/dist/auth/PasswordStrengthInput.d.ts +44 -0
  56. package/dist/auth/RecoveryDialogs.d.ts +90 -0
  57. package/dist/auth/SsoLoginButton.d.ts +19 -0
  58. package/dist/auth/index.cjs +123 -0
  59. package/dist/auth/index.cjs.map +1 -0
  60. package/dist/auth/index.d.ts +6 -0
  61. package/dist/auth/index.js +6 -0
  62. package/dist/auth/index.js.map +1 -0
  63. package/dist/builder/AgentsPanel.d.ts +9 -0
  64. package/dist/builder/ModuleManager.d.ts +6 -0
  65. package/dist/builder/VerticalBuilder.d.ts +32 -0
  66. package/dist/builder/agents/store.d.ts +21 -0
  67. package/dist/builder/export.d.ts +30 -0
  68. package/dist/builder/modules/registry.d.ts +11 -0
  69. package/dist/builder/modules/store.d.ts +29 -0
  70. package/dist/builder/modules/types.d.ts +29 -0
  71. package/dist/builder/types.d.ts +28 -0
  72. package/dist/chat/BranchControls.d.ts +33 -0
  73. package/dist/chat/Composer.d.ts +156 -0
  74. package/dist/chat/ContextChip.d.ts +19 -0
  75. package/dist/chat/ContextPanel.d.ts +108 -0
  76. package/dist/chat/ConversationEmpty.d.ts +53 -0
  77. package/dist/chat/ConversationLayout.d.ts +40 -0
  78. package/dist/chat/ConversationParts.d.ts +62 -0
  79. package/dist/chat/ConversationSearchView.d.ts +57 -0
  80. package/dist/chat/LabelPinRow.d.ts +30 -0
  81. package/dist/chat/Message.d.ts +189 -0
  82. package/dist/chat/MessageAlert.d.ts +25 -0
  83. package/dist/chat/MessageList.d.ts +102 -0
  84. package/dist/chat/ModelPicker.d.ts +103 -0
  85. package/dist/chat/PendingAnswerBar.d.ts +36 -0
  86. package/dist/chat/PinnedDocChip.d.ts +22 -0
  87. package/dist/chat/SlashMenu.d.ts +57 -0
  88. package/dist/chat/ThreadMap.d.ts +45 -0
  89. package/dist/chat/index.cjs +423 -0
  90. package/dist/chat/index.cjs.map +1 -0
  91. package/dist/chat/index.d.ts +21 -0
  92. package/dist/chat/index.js +6 -0
  93. package/dist/chat/index.js.map +1 -0
  94. package/dist/chat/test-id.d.ts +16 -0
  95. package/dist/chat/useStreamAnnouncement.d.ts +19 -0
  96. package/dist/chunk-223D4727.cjs +50 -0
  97. package/dist/chunk-223D4727.cjs.map +1 -0
  98. package/dist/chunk-4EZVCGRL.js +803 -0
  99. package/dist/chunk-4EZVCGRL.js.map +1 -0
  100. package/dist/chunk-54Q3RNJU.cjs +516 -0
  101. package/dist/chunk-54Q3RNJU.cjs.map +1 -0
  102. package/dist/chunk-5B4PXAKI.cjs +287 -0
  103. package/dist/chunk-5B4PXAKI.cjs.map +1 -0
  104. package/dist/chunk-5TYEJOXY.js +1762 -0
  105. package/dist/chunk-5TYEJOXY.js.map +1 -0
  106. package/dist/chunk-6ALISABK.cjs +677 -0
  107. package/dist/chunk-6ALISABK.cjs.map +1 -0
  108. package/dist/chunk-6HIPFEID.cjs +574 -0
  109. package/dist/chunk-6HIPFEID.cjs.map +1 -0
  110. package/dist/chunk-76JDDMSP.js +31 -0
  111. package/dist/chunk-76JDDMSP.js.map +1 -0
  112. package/dist/chunk-7F6CBP3Z.js +12 -0
  113. package/dist/chunk-7F6CBP3Z.js.map +1 -0
  114. package/dist/chunk-7G2LJMUG.cjs +45 -0
  115. package/dist/chunk-7G2LJMUG.cjs.map +1 -0
  116. package/dist/chunk-7G3JNSJB.cjs +1809 -0
  117. package/dist/chunk-7G3JNSJB.cjs.map +1 -0
  118. package/dist/chunk-A2YAC22G.js +93 -0
  119. package/dist/chunk-A2YAC22G.js.map +1 -0
  120. package/dist/chunk-ADOKTJHV.cjs +262 -0
  121. package/dist/chunk-ADOKTJHV.cjs.map +1 -0
  122. package/dist/chunk-AXIZ2MDV.js +751 -0
  123. package/dist/chunk-AXIZ2MDV.js.map +1 -0
  124. package/dist/chunk-AZQDNYH4.js +2865 -0
  125. package/dist/chunk-AZQDNYH4.js.map +1 -0
  126. package/dist/chunk-C54XEN5T.cjs +34 -0
  127. package/dist/chunk-C54XEN5T.cjs.map +1 -0
  128. package/dist/chunk-CQCC7LE7.js +210 -0
  129. package/dist/chunk-CQCC7LE7.js.map +1 -0
  130. package/dist/chunk-CRIKTUEU.cjs +47 -0
  131. package/dist/chunk-CRIKTUEU.cjs.map +1 -0
  132. package/dist/chunk-CTZ5745I.js +564 -0
  133. package/dist/chunk-CTZ5745I.js.map +1 -0
  134. package/dist/chunk-DPLRHEJZ.js +78 -0
  135. package/dist/chunk-DPLRHEJZ.js.map +1 -0
  136. package/dist/chunk-DVLEQURC.js +672 -0
  137. package/dist/chunk-DVLEQURC.js.map +1 -0
  138. package/dist/chunk-ELR74ME6.cjs +68 -0
  139. package/dist/chunk-ELR74ME6.cjs.map +1 -0
  140. package/dist/{chunk-DBAUZD7A.cjs → chunk-FZQJ2S6P.cjs} +244 -1123
  141. package/dist/chunk-FZQJ2S6P.cjs.map +1 -0
  142. package/dist/chunk-G3G7LZPM.cjs +205 -0
  143. package/dist/chunk-G3G7LZPM.cjs.map +1 -0
  144. package/dist/chunk-GDFWJ73C.cjs +2973 -0
  145. package/dist/chunk-GDFWJ73C.cjs.map +1 -0
  146. package/dist/chunk-ITGHMJOM.js +5528 -0
  147. package/dist/chunk-ITGHMJOM.js.map +1 -0
  148. package/dist/chunk-K4BGOPGG.js +79 -0
  149. package/dist/chunk-K4BGOPGG.js.map +1 -0
  150. package/dist/chunk-KUA3BCT2.cjs +272 -0
  151. package/dist/chunk-KUA3BCT2.cjs.map +1 -0
  152. package/dist/chunk-LGBAZD37.js +341 -0
  153. package/dist/chunk-LGBAZD37.js.map +1 -0
  154. package/dist/chunk-MHVNT4J3.cjs +15 -0
  155. package/dist/chunk-MHVNT4J3.cjs.map +1 -0
  156. package/dist/chunk-MMYCZRKT.cjs +168 -0
  157. package/dist/chunk-MMYCZRKT.cjs.map +1 -0
  158. package/dist/chunk-NBV56SGU.js +42 -0
  159. package/dist/chunk-NBV56SGU.js.map +1 -0
  160. package/dist/chunk-NPLYHR2E.js +13 -0
  161. package/dist/chunk-NPLYHR2E.js.map +1 -0
  162. package/dist/chunk-NUNKSZKU.js +203 -0
  163. package/dist/chunk-NUNKSZKU.js.map +1 -0
  164. package/dist/chunk-OB5F4577.cjs +40 -0
  165. package/dist/chunk-OB5F4577.cjs.map +1 -0
  166. package/dist/chunk-OUW6G4O2.cjs +96 -0
  167. package/dist/chunk-OUW6G4O2.cjs.map +1 -0
  168. package/dist/chunk-OVEQERPO.js +66 -0
  169. package/dist/chunk-OVEQERPO.js.map +1 -0
  170. package/dist/chunk-P6GHJSLR.js +34 -0
  171. package/dist/chunk-P6GHJSLR.js.map +1 -0
  172. package/dist/chunk-PCB2BPN3.cjs +41 -0
  173. package/dist/chunk-PCB2BPN3.cjs.map +1 -0
  174. package/dist/chunk-PPCATBOY.cjs +15 -0
  175. package/dist/chunk-PPCATBOY.cjs.map +1 -0
  176. package/dist/chunk-QN42OA5J.js +887 -0
  177. package/dist/chunk-QN42OA5J.js.map +1 -0
  178. package/dist/{chunk-FZ2S6VAZ.js → chunk-RBXZYNVB.js} +223 -1102
  179. package/dist/chunk-RBXZYNVB.js.map +1 -0
  180. package/dist/chunk-RC6VTY2H.js +47 -0
  181. package/dist/chunk-RC6VTY2H.js.map +1 -0
  182. package/dist/chunk-RFIBUWLF.cjs +232 -0
  183. package/dist/chunk-RFIBUWLF.cjs.map +1 -0
  184. package/dist/chunk-S5T7ZTX2.js +266 -0
  185. package/dist/chunk-S5T7ZTX2.js.map +1 -0
  186. package/dist/chunk-S7PSMMRG.js +38 -0
  187. package/dist/chunk-S7PSMMRG.js.map +1 -0
  188. package/dist/chunk-SCFYPAG6.cjs +18 -0
  189. package/dist/chunk-SCFYPAG6.cjs.map +1 -0
  190. package/dist/chunk-SYDHKKRZ.cjs +818 -0
  191. package/dist/chunk-SYDHKKRZ.cjs.map +1 -0
  192. package/dist/chunk-TX2ZICS7.js +139 -0
  193. package/dist/chunk-TX2ZICS7.js.map +1 -0
  194. package/dist/chunk-TYZUCAT7.js +787 -0
  195. package/dist/chunk-TYZUCAT7.js.map +1 -0
  196. package/dist/chunk-U2E3WT3J.js +45 -0
  197. package/dist/chunk-U2E3WT3J.js.map +1 -0
  198. package/dist/chunk-UBNVIIBT.js +284 -0
  199. package/dist/chunk-UBNVIIBT.js.map +1 -0
  200. package/dist/chunk-UFHMLHIR.cjs +66 -0
  201. package/dist/chunk-UFHMLHIR.cjs.map +1 -0
  202. package/dist/chunk-UJE32SST.js +39 -0
  203. package/dist/chunk-UJE32SST.js.map +1 -0
  204. package/dist/chunk-ULWRNGGE.cjs +146 -0
  205. package/dist/chunk-ULWRNGGE.cjs.map +1 -0
  206. package/dist/chunk-UTWX2X2A.js +165 -0
  207. package/dist/chunk-UTWX2X2A.js.map +1 -0
  208. package/dist/chunk-UWGIB3VQ.js +64 -0
  209. package/dist/chunk-UWGIB3VQ.js.map +1 -0
  210. package/dist/chunk-V4ISCZJ7.cjs +207 -0
  211. package/dist/chunk-V4ISCZJ7.cjs.map +1 -0
  212. package/dist/chunk-VFUWWH52.cjs +83 -0
  213. package/dist/chunk-VFUWWH52.cjs.map +1 -0
  214. package/dist/chunk-VILAPTCB.js +259 -0
  215. package/dist/chunk-VILAPTCB.js.map +1 -0
  216. package/dist/chunk-VLCY46K6.cjs +82 -0
  217. package/dist/chunk-VLCY46K6.cjs.map +1 -0
  218. package/dist/chunk-VPPX5XUF.cjs +813 -0
  219. package/dist/chunk-VPPX5XUF.cjs.map +1 -0
  220. package/dist/chunk-WJMEXTVD.cjs +122 -0
  221. package/dist/chunk-WJMEXTVD.cjs.map +1 -0
  222. package/dist/chunk-WTNMWEBC.js +504 -0
  223. package/dist/chunk-WTNMWEBC.js.map +1 -0
  224. package/dist/chunk-WW6EOVZA.js +112 -0
  225. package/dist/chunk-WW6EOVZA.js.map +1 -0
  226. package/dist/chunk-XNBAXRY7.cjs +5673 -0
  227. package/dist/chunk-XNBAXRY7.cjs.map +1 -0
  228. package/dist/chunk-XQ7PKKDY.cjs +787 -0
  229. package/dist/chunk-XQ7PKKDY.cjs.map +1 -0
  230. package/dist/chunk-XZIYRKLW.cjs +347 -0
  231. package/dist/chunk-XZIYRKLW.cjs.map +1 -0
  232. package/dist/chunk-YBXCZEWS.js +187 -0
  233. package/dist/chunk-YBXCZEWS.js.map +1 -0
  234. package/dist/chunk-YDHO4AVL.js +16 -0
  235. package/dist/chunk-YDHO4AVL.js.map +1 -0
  236. package/dist/chunk-ZORQ5M3W.cjs +934 -0
  237. package/dist/chunk-ZORQ5M3W.cjs.map +1 -0
  238. package/dist/chunk-ZW6FPIFC.cjs +36 -0
  239. package/dist/chunk-ZW6FPIFC.cjs.map +1 -0
  240. package/dist/citations/CitationEditor.d.ts +58 -0
  241. package/dist/citations/PassagePill.d.ts +49 -0
  242. package/dist/citations/QuietMarks.d.ts +81 -0
  243. package/dist/citations/index.cjs +47 -0
  244. package/dist/citations/index.cjs.map +1 -0
  245. package/dist/citations/index.d.ts +3 -0
  246. package/dist/citations/index.js +6 -0
  247. package/dist/citations/index.js.map +1 -0
  248. package/dist/collaboration/contacts/AddContactsParts.d.ts +46 -0
  249. package/dist/collaboration/contacts/index.d.ts +1 -0
  250. package/dist/collaboration/direct-messages/DirectMessages.d.ts +33 -0
  251. package/dist/collaboration/direct-messages/DmParts.d.ts +139 -0
  252. package/dist/collaboration/direct-messages/index.d.ts +2 -0
  253. package/dist/collaboration/index.cjs +141 -0
  254. package/dist/collaboration/index.cjs.map +1 -0
  255. package/dist/collaboration/index.d.ts +5 -0
  256. package/dist/collaboration/index.js +8 -0
  257. package/dist/collaboration/index.js.map +1 -0
  258. package/dist/collaboration/mail/MailFolderTree.d.ts +34 -0
  259. package/dist/collaboration/mail/index.d.ts +2 -0
  260. package/dist/collaboration/mail/mailFolders.d.ts +25 -0
  261. package/dist/collaboration/members/WorkspaceMembers.d.ts +74 -0
  262. package/dist/collaboration/members/index.d.ts +1 -0
  263. package/dist/collaboration/sharing/ShareControl.d.ts +38 -0
  264. package/dist/collaboration/sharing/index.d.ts +1 -0
  265. package/dist/components/Accordion.d.ts +12 -0
  266. package/dist/components/ActionLink.d.ts +18 -0
  267. package/dist/components/AskBar.d.ts +48 -0
  268. package/dist/components/AvatarBlock.d.ts +9 -0
  269. package/dist/components/Banner.d.ts +12 -0
  270. package/dist/components/BlockImage.d.ts +18 -0
  271. package/dist/components/CTABanner.d.ts +17 -0
  272. package/dist/components/Callout.d.ts +9 -0
  273. package/dist/components/Chart.d.ts +27 -0
  274. package/dist/components/CollectionDetail.d.ts +23 -0
  275. package/dist/components/Columns.d.ts +11 -0
  276. package/dist/components/ContactForm.d.ts +42 -0
  277. package/dist/components/Container.d.ts +11 -0
  278. package/dist/components/DataTable.d.ts +47 -0
  279. package/dist/components/DataTableBlock.d.ts +26 -0
  280. package/dist/components/EmptyState.d.ts +11 -0
  281. package/dist/components/EntityChip.d.ts +24 -0
  282. package/dist/components/EntityIdentityBar.d.ts +90 -0
  283. package/dist/components/EntityTooltip.d.ts +43 -0
  284. package/dist/components/FAQ.d.ts +14 -0
  285. package/dist/components/FeatureGrid.d.ts +18 -0
  286. package/dist/components/Footer.d.ts +25 -0
  287. package/dist/components/Gallery.d.ts +15 -0
  288. package/dist/components/Hero.d.ts +35 -0
  289. package/dist/components/ListBlock.d.ts +10 -0
  290. package/dist/components/LogoCloud.d.ts +12 -0
  291. package/dist/components/MediaText.d.ts +15 -0
  292. package/dist/components/MemberAvatarStack.d.ts +36 -0
  293. package/dist/components/MetricCard.d.ts +28 -0
  294. package/dist/components/Navbar.d.ts +39 -0
  295. package/dist/components/PageHeader.d.ts +15 -0
  296. package/dist/components/PricingTable.d.ts +19 -0
  297. package/dist/components/RichTextBlock.d.ts +10 -0
  298. package/dist/components/SectionHeading.d.ts +11 -0
  299. package/dist/components/Spacer.d.ts +7 -0
  300. package/dist/components/StatGroup.d.ts +12 -0
  301. package/dist/components/Steps.d.ts +12 -0
  302. package/dist/components/Tabs.d.ts +15 -0
  303. package/dist/components/TeamGrid.d.ts +18 -0
  304. package/dist/components/Testimonial.d.ts +9 -0
  305. package/dist/components/TestimonialGrid.d.ts +13 -0
  306. package/dist/components/ToneBadge.d.ts +18 -0
  307. package/dist/components/Toolbar.d.ts +11 -0
  308. package/dist/components/UsageMeter.d.ts +21 -0
  309. package/dist/components/VideoEmbed.d.ts +16 -0
  310. package/dist/components/assetImage.d.ts +16 -0
  311. package/dist/components/assetResolver.d.ts +57 -0
  312. package/dist/components/blockLink.d.ts +26 -0
  313. package/dist/components/tones.d.ts +14 -0
  314. package/dist/connect/index.cjs +65 -0
  315. package/dist/connect/index.cjs.map +1 -0
  316. package/dist/connect/index.d.ts +8 -0
  317. package/dist/connect/index.js +28 -0
  318. package/dist/connect/index.js.map +1 -0
  319. package/dist/connection/ArbiAppProvider.d.ts +16 -0
  320. package/dist/connection/ConnectionProvider.d.ts +50 -0
  321. package/dist/connection/ai.d.ts +99 -0
  322. package/dist/connection/types.d.ts +54 -0
  323. package/dist/connection/useImageGen.d.ts +22 -0
  324. package/dist/facts/FactComposer.d.ts +75 -0
  325. package/dist/facts/FactDateInput.d.ts +34 -0
  326. package/dist/facts/FactLabelsCell.d.ts +35 -0
  327. package/dist/facts/FactPassages.d.ts +52 -0
  328. package/dist/facts/FactRowActions.d.ts +18 -0
  329. package/dist/facts/FactSearchParts.d.ts +80 -0
  330. package/dist/facts/FactSourceGroup.d.ts +26 -0
  331. package/dist/facts/FactTimelineViews.d.ts +37 -0
  332. package/dist/facts/FactsBulkBar.d.ts +53 -0
  333. package/dist/facts/FactsEmptyState.d.ts +38 -0
  334. package/dist/facts/FactsFieldsButton.d.ts +21 -0
  335. package/dist/facts/FactsFilterInput.d.ts +46 -0
  336. package/dist/facts/FactsTable.d.ts +28 -0
  337. package/dist/facts/FactsToolbar.d.ts +53 -0
  338. package/dist/facts/FactsViewToggle.d.ts +36 -0
  339. package/dist/facts/fact-date.d.ts +22 -0
  340. package/dist/facts/fact-text.d.ts +14 -0
  341. package/dist/facts/factColumns.d.ts +88 -0
  342. package/dist/facts/index.cjs +2372 -0
  343. package/dist/facts/index.cjs.map +1 -0
  344. package/dist/facts/index.d.ts +34 -0
  345. package/dist/facts/index.js +2316 -0
  346. package/dist/facts/index.js.map +1 -0
  347. package/dist/facts/timezone.d.ts +4 -0
  348. package/dist/files/AiReviewDialog.d.ts +77 -0
  349. package/dist/files/DocStatusIcon.d.ts +12 -0
  350. package/dist/files/DocumentGrid.d.ts +27 -0
  351. package/dist/files/Explorer.d.ts +10 -0
  352. package/dist/files/ExplorerSurface.d.ts +34 -0
  353. package/dist/files/ExplorerTile.d.ts +142 -0
  354. package/dist/files/ExportParts.d.ts +114 -0
  355. package/dist/files/FieldParts.d.ts +64 -0
  356. package/dist/files/FilesPage.d.ts +20 -0
  357. package/dist/files/FilesToolbar.d.ts +59 -0
  358. package/dist/files/FolderPicker.d.ts +82 -0
  359. package/dist/files/GridView.d.ts +59 -0
  360. package/dist/files/HtmlViewerParts.d.ts +183 -0
  361. package/dist/files/MoveToFolderDialog.d.ts +32 -0
  362. package/dist/files/RedlineParts.d.ts +72 -0
  363. package/dist/files/SelectionBar.d.ts +65 -0
  364. package/dist/files/StatusPill.d.ts +23 -0
  365. package/dist/files/TagPassagePanel.d.ts +60 -0
  366. package/dist/files/UploadDropzone.d.ts +33 -0
  367. package/dist/files/UploadFooter.d.ts +59 -0
  368. package/dist/files/UploadParts.d.ts +78 -0
  369. package/dist/files/UploadSources.d.ts +77 -0
  370. package/dist/files/VersionTimeline.d.ts +60 -0
  371. package/dist/files/ViewToggle.d.ts +49 -0
  372. package/dist/files/ViewerChrome.d.ts +155 -0
  373. package/dist/files/ViewerLayout.d.ts +32 -0
  374. package/dist/files/ViewerParts.d.ts +62 -0
  375. package/dist/files/bulk/BulkActionsBar.d.ts +76 -0
  376. package/dist/files/bulk/FolderFilterButton.d.ts +35 -0
  377. package/dist/files/bulk/index.d.ts +2 -0
  378. package/dist/files/cells/DocumentNameCell.d.ts +31 -0
  379. package/dist/files/cells/FolderCell.d.ts +25 -0
  380. package/dist/files/cells/HoverIconCell.d.ts +21 -0
  381. package/dist/files/cells/LabelMultiSelect.d.ts +50 -0
  382. package/dist/files/cells/RelatedDocsCell.d.ts +22 -0
  383. package/dist/files/cells/TagColumnParts.d.ts +29 -0
  384. package/dist/files/cells/index.d.ts +6 -0
  385. package/dist/files/documentGridLayout.d.ts +31 -0
  386. package/dist/files/grid-test-ids.d.ts +18 -0
  387. package/dist/files/import/CalendarImportRow.d.ts +26 -0
  388. package/dist/files/import/ImportParts.d.ts +114 -0
  389. package/dist/files/import/TaskSection.d.ts +51 -0
  390. package/dist/files/import/UrlInputDialogView.d.ts +63 -0
  391. package/dist/files/import/VendorLogo.d.ts +15 -0
  392. package/dist/files/import/index.d.ts +5 -0
  393. package/dist/files/index.cjs +7589 -0
  394. package/dist/files/index.cjs.map +1 -0
  395. package/dist/files/index.d.ts +34 -0
  396. package/dist/files/index.js +7374 -0
  397. package/dist/files/index.js.map +1 -0
  398. package/dist/files/page/FilesAddMenu.d.ts +30 -0
  399. package/dist/files/page/FilesPageParts.d.ts +24 -0
  400. package/dist/files/page/FilesPageTitle.d.ts +24 -0
  401. package/dist/files/page/index.d.ts +3 -0
  402. package/dist/files/tags/BulkTagEditor.d.ts +136 -0
  403. package/dist/files/tags/DocTagPopover.d.ts +113 -0
  404. package/dist/files/tags/TagManager.d.ts +54 -0
  405. package/dist/files/tags/index.d.ts +3 -0
  406. package/dist/files/views/FieldsEditorParts.d.ts +151 -0
  407. package/dist/files/views/FieldsManagerParts.d.ts +17 -0
  408. package/dist/files/views/TagFormParts.d.ts +109 -0
  409. package/dist/files/views/ViewSelectorMenu.d.ts +66 -0
  410. package/dist/files/views/fieldsEditorModel.d.ts +43 -0
  411. package/dist/files/views/index.d.ts +5 -0
  412. package/dist/home/ActionMenuDialog.d.ts +26 -0
  413. package/dist/home/AddFilesFirst.d.ts +22 -0
  414. package/dist/home/CardHeaderBar.d.ts +40 -0
  415. package/dist/home/CollapsibleSection.d.ts +43 -0
  416. package/dist/home/CreateTile.d.ts +17 -0
  417. package/dist/home/DashboardParts.d.ts +32 -0
  418. package/dist/home/FactsStrip.d.ts +41 -0
  419. package/dist/home/FoldSection.d.ts +19 -0
  420. package/dist/home/GettingStartedStrip.d.ts +49 -0
  421. package/dist/home/Greeting.d.ts +18 -0
  422. package/dist/home/HomeLayout.d.ts +28 -0
  423. package/dist/home/KeyValueRow.d.ts +43 -0
  424. package/dist/home/ProjectBandParts.d.ts +70 -0
  425. package/dist/home/QuickActionDialogHeader.d.ts +21 -0
  426. package/dist/home/RecentList.d.ts +48 -0
  427. package/dist/home/ScopePicker.d.ts +65 -0
  428. package/dist/home/StartTiles.d.ts +33 -0
  429. package/dist/home/index.cjs +854 -0
  430. package/dist/home/index.cjs.map +1 -0
  431. package/dist/home/index.d.ts +37 -0
  432. package/dist/home/index.js +763 -0
  433. package/dist/home/index.js.map +1 -0
  434. package/dist/home/sections.d.ts +33 -0
  435. package/dist/index.cjs +1932 -5547
  436. package/dist/index.cjs.map +1 -1
  437. package/dist/index.d.ts +71 -1716
  438. package/dist/index.js +142 -5316
  439. package/dist/index.js.map +1 -1
  440. package/dist/lib/balanced-columns.d.ts +8 -0
  441. package/dist/lib/format.d.ts +37 -0
  442. package/dist/lib/observe-resize.d.ts +6 -0
  443. package/dist/lib/password-strength.d.ts +24 -0
  444. package/dist/lib/sidebar-mode.d.ts +46 -0
  445. package/dist/lib/testid.d.ts +7 -0
  446. package/dist/lib/use-drawer.d.ts +11 -0
  447. package/dist/lib/useControllableState.d.ts +5 -0
  448. package/dist/lib/useDismissibleCard.d.ts +15 -0
  449. package/dist/lib/useListKeyNav.d.ts +42 -0
  450. package/dist/lib/useLongPaste.d.ts +15 -0
  451. package/dist/lib/useRestoreFocus.d.ts +11 -0
  452. package/dist/lib/useScopeSelection.d.ts +34 -0
  453. package/dist/nav/types.d.ts +19 -0
  454. package/dist/provider/BlocksProvider.d.ts +20 -0
  455. package/dist/provider/TooltipScope.d.ts +9 -0
  456. package/dist/record/index.cjs +2 -4
  457. package/dist/record/index.cjs.map +1 -1
  458. package/dist/record/index.d.ts +12 -16
  459. package/dist/record/index.js +2 -4
  460. package/dist/record/index.js.map +1 -1
  461. package/dist/retrieval/HighlightText.d.ts +21 -0
  462. package/dist/retrieval/SearchEmptyState.d.ts +39 -0
  463. package/dist/retrieval/SearchGroupHeader.d.ts +21 -0
  464. package/dist/retrieval/SearchHit.d.ts +36 -0
  465. package/dist/retrieval/SearchPage.d.ts +187 -0
  466. package/dist/retrieval/SearchPagination.d.ts +21 -0
  467. package/dist/retrieval/highlight.d.ts +21 -0
  468. package/dist/retrieval/index.cjs +160 -0
  469. package/dist/retrieval/index.cjs.map +1 -0
  470. package/dist/retrieval/index.d.ts +7 -0
  471. package/dist/retrieval/index.js +7 -0
  472. package/dist/retrieval/index.js.map +1 -0
  473. package/dist/settings/AccountDialogs.d.ts +89 -0
  474. package/dist/settings/AvatarPicker.d.ts +25 -0
  475. package/dist/settings/Billing.d.ts +113 -0
  476. package/dist/settings/ConfigSwitcherBar.d.ts +46 -0
  477. package/dist/settings/ConfirmDialog.d.ts +28 -0
  478. package/dist/settings/ConnectionCard.d.ts +58 -0
  479. package/dist/settings/ConversationSettingsParts.d.ts +53 -0
  480. package/dist/settings/DocumentPicker.d.ts +57 -0
  481. package/dist/settings/EmailWorkspaceDialogView.d.ts +60 -0
  482. package/dist/settings/ErrorDialog.d.ts +36 -0
  483. package/dist/settings/FloatingPanel.d.ts +32 -0
  484. package/dist/settings/JsonTree.d.ts +24 -0
  485. package/dist/settings/LogoutDialog.d.ts +51 -0
  486. package/dist/settings/ModalBreadcrumbHeader.d.ts +32 -0
  487. package/dist/settings/ModalScaffold.d.ts +60 -0
  488. package/dist/settings/MultiSelect.d.ts +111 -0
  489. package/dist/settings/NotificationCategoryList.d.ts +26 -0
  490. package/dist/settings/PanelFrame.d.ts +47 -0
  491. package/dist/settings/PasswordChangeDialog.d.ts +64 -0
  492. package/dist/settings/PlanBadge.d.ts +14 -0
  493. package/dist/settings/PlanCard.d.ts +97 -0
  494. package/dist/settings/PremiumModelsFrame.d.ts +17 -0
  495. package/dist/settings/ProfileCard.d.ts +67 -0
  496. package/dist/settings/Projects.d.ts +108 -0
  497. package/dist/settings/QuotaMeter.d.ts +31 -0
  498. package/dist/settings/ReferralCredit.d.ts +46 -0
  499. package/dist/settings/SegmentedControl.d.ts +20 -0
  500. package/dist/settings/ServerConnectionControls.d.ts +31 -0
  501. package/dist/settings/SettingsPanel.d.ts +61 -0
  502. package/dist/settings/SettingsSwitchRow.d.ts +21 -0
  503. package/dist/settings/SubscriptionParts.d.ts +215 -0
  504. package/dist/settings/SupportPanel.d.ts +32 -0
  505. package/dist/settings/SyncDialogParts.d.ts +155 -0
  506. package/dist/settings/ThreadPreviewDialog.d.ts +18 -0
  507. package/dist/settings/TipsEditorDialog.d.ts +94 -0
  508. package/dist/settings/TriStateFilterMenu.d.ts +66 -0
  509. package/dist/settings/Usage.d.ts +102 -0
  510. package/dist/settings/WelcomeDialog.d.ts +79 -0
  511. package/dist/settings/index.cjs +5131 -0
  512. package/dist/settings/index.cjs.map +1 -0
  513. package/dist/settings/index.d.ts +38 -0
  514. package/dist/settings/index.js +4922 -0
  515. package/dist/settings/index.js.map +1 -0
  516. package/dist/shell/ActionCluster.d.ts +28 -0
  517. package/dist/shell/AskField.d.ts +71 -0
  518. package/dist/shell/InfoBar.d.ts +20 -0
  519. package/dist/shell/MobileBars.d.ts +47 -0
  520. package/dist/shell/OfflinePill.d.ts +28 -0
  521. package/dist/shell/RemoteControlPill.d.ts +23 -0
  522. package/dist/shell/Shell.d.ts +123 -0
  523. package/dist/shell/Sidebar.d.ts +104 -0
  524. package/dist/shell/SidebarBadgeRow.d.ts +29 -0
  525. package/dist/shell/SidebarRowAction.d.ts +24 -0
  526. package/dist/shell/StatusRow.d.ts +20 -0
  527. package/dist/shell/TabHeader.d.ts +70 -0
  528. package/dist/shell/TipCard.d.ts +46 -0
  529. package/dist/shell/ToolButton.d.ts +12 -0
  530. package/dist/shell/Workspace.d.ts +90 -0
  531. package/dist/shell/index.cjs +187 -0
  532. package/dist/shell/index.cjs.map +1 -0
  533. package/dist/shell/index.d.ts +20 -0
  534. package/dist/shell/index.js +10 -0
  535. package/dist/shell/index.js.map +1 -0
  536. package/dist/shell/sidebar-context.d.ts +19 -0
  537. package/dist/shell/types.d.ts +48 -0
  538. package/dist/site/index.cjs +113 -90
  539. package/dist/site/index.d.ts +59 -4
  540. package/dist/site/index.js +8 -1
  541. package/dist/studio/PageRenderer.d.ts +35 -0
  542. package/dist/studio/Section.d.ts +24 -0
  543. package/dist/studio/StudioEditor.d.ts +32 -0
  544. package/dist/studio/aiFields.d.ts +17 -0
  545. package/dist/studio/blockKit.d.ts +36 -0
  546. package/dist/studio/blocksConfig.d.ts +42 -0
  547. package/dist/studio/imageFields.d.ts +14 -0
  548. package/dist/studio/index.cjs +3353 -0
  549. package/dist/studio/index.cjs.map +1 -0
  550. package/dist/studio/index.d.ts +32 -0
  551. package/dist/studio/index.js +3297 -0
  552. package/dist/studio/index.js.map +1 -0
  553. package/dist/studio/liveData.d.ts +4 -0
  554. package/dist/studio/liveWidgetRuntime.d.ts +41 -0
  555. package/dist/studio/persistence.d.ts +38 -0
  556. package/dist/studio/publish.d.ts +39 -0
  557. package/dist/studio/siteBlocks.d.ts +14 -0
  558. package/dist/studio/types.d.ts +46 -0
  559. package/dist/studio/websiteBlocks.d.ts +4 -0
  560. package/dist/studio/widgets.d.ts +20 -0
  561. package/dist/theme/ThemeEditor.d.ts +16 -0
  562. package/dist/theme/fontPairings.d.ts +48 -0
  563. package/dist/theme/store.d.ts +53 -0
  564. package/dist/theme/tokens.d.ts +105 -0
  565. package/dist/timeline/Timeline.d.ts +27 -0
  566. package/dist/timeline/TimelineCalendar.d.ts +54 -0
  567. package/dist/timeline/TimelineGantt.d.ts +71 -0
  568. package/dist/timeline/TimelineZoomControl.d.ts +17 -0
  569. package/dist/timeline/index.cjs +50 -0
  570. package/dist/timeline/index.cjs.map +1 -0
  571. package/dist/timeline/index.d.ts +13 -0
  572. package/dist/timeline/index.js +5 -0
  573. package/dist/timeline/index.js.map +1 -0
  574. package/dist/timeline/span.d.ts +29 -0
  575. package/dist/timeline/types.d.ts +30 -0
  576. package/dist/workspaces/WorkspaceBadges.d.ts +27 -0
  577. package/dist/workspaces/WorkspaceCard.d.ts +142 -0
  578. package/dist/workspaces/WorkspaceFormParts.d.ts +98 -0
  579. package/dist/workspaces/WorkspaceGroup.d.ts +31 -0
  580. package/dist/workspaces/WorkspaceSettingsParts.d.ts +70 -0
  581. package/dist/workspaces/index.cjs +690 -0
  582. package/dist/workspaces/index.cjs.map +1 -0
  583. package/dist/workspaces/index.d.ts +9 -0
  584. package/dist/workspaces/index.js +661 -0
  585. package/dist/workspaces/index.js.map +1 -0
  586. package/package.json +164 -9
  587. package/src/blocks.css +348 -0
  588. package/src/components/grid.css +60 -107
  589. package/src/source.css +20 -0
  590. package/src/studio/studio.css +3 -3
  591. package/src/tokens.css +226 -0
  592. package/dist/chunk-DBAUZD7A.cjs.map +0 -1
  593. package/dist/chunk-FZ2S6VAZ.js.map +0 -1
  594. package/dist/index-DduoEosi.d.cts +0 -846
  595. package/dist/index-DduoEosi.d.ts +0 -846
  596. package/dist/index.d.cts +0 -1717
  597. package/dist/record/index.d.cts +0 -96
  598. package/dist/site/index.d.cts +0 -4
@@ -0,0 +1,887 @@
1
+ "use client";
2
+ import { testIdOr } from './chunk-7F6CBP3Z.js';
3
+ import { ArrowRight, EyeOff, Eye, AlertCircle, Loader2, WifiOff, MoreVertical, Key, Shield, Upload } from 'lucide-react';
4
+ import { cn, Input, Button, Checkbox, DropdownMenu, DropdownMenuTrigger, DropdownMenuContent, DropdownMenuItem, Dialog, DialogContent, DialogHeader, DialogTitle, DialogDescription, DialogFooter } from '@arbidocs/react/ui';
5
+ import { jsxs, jsx, Fragment } from 'react/jsx-runtime';
6
+ import { createContext, useId, useMemo, useContext, useState, useRef } from 'react';
7
+ import * as TabsPrimitive from '@radix-ui/react-tabs';
8
+
9
+ function AuthLayout({
10
+ children,
11
+ headerRight,
12
+ aside,
13
+ brand,
14
+ corner,
15
+ className,
16
+ testId = "auth-layout"
17
+ }) {
18
+ return /* @__PURE__ */ jsxs(
19
+ "div",
20
+ {
21
+ "data-slot": "auth-layout",
22
+ className: cn(
23
+ "min-h-screen bg-background text-foreground",
24
+ // The hero needs height: a phone held sideways (under 32rem tall) gets the form alone.
25
+ aside && "md:grid [@media(min-height:32rem)]:md:grid-cols-2",
26
+ className
27
+ ),
28
+ "data-testid": testId,
29
+ children: [
30
+ corner,
31
+ /* @__PURE__ */ jsxs("section", { className: "flex min-h-screen flex-col px-4 py-5 sm:px-8 md:px-12 md:py-6", children: [
32
+ brand && /* @__PURE__ */ jsx("div", { className: "flex items-center gap-3 font-semibold text-foreground", children: brand }),
33
+ /* @__PURE__ */ jsxs("div", { className: "mx-auto mt-10 flex w-full max-w-sm flex-col gap-5 py-8 md:mt-[14vh]", children: [
34
+ headerRight && /* @__PURE__ */ jsx("div", { className: "flex items-center", children: headerRight }),
35
+ children
36
+ ] })
37
+ ] }),
38
+ aside && /* @__PURE__ */ jsx("div", { className: "hidden [@media(min-height:32rem)]:md:flex", children: aside })
39
+ ]
40
+ }
41
+ );
42
+ }
43
+ function AuthHero({
44
+ headline,
45
+ emphasis,
46
+ lead,
47
+ pillars = [],
48
+ link,
49
+ backgroundImage,
50
+ children,
51
+ className,
52
+ testId = "product-pillars"
53
+ }) {
54
+ return /* @__PURE__ */ jsxs(
55
+ "div",
56
+ {
57
+ "data-slot": "auth-hero",
58
+ className: cn(
59
+ "relative flex w-full flex-col justify-center gap-6 overflow-hidden bg-hero px-12 py-16 text-white",
60
+ className
61
+ ),
62
+ "data-testid": testId,
63
+ children: [
64
+ backgroundImage && /* @__PURE__ */ jsxs(Fragment, { children: [
65
+ /* @__PURE__ */ jsx(
66
+ "div",
67
+ {
68
+ "aria-hidden": "true",
69
+ "data-slot": "auth-hero-image",
70
+ className: "absolute inset-0 bg-cover bg-center",
71
+ style: { backgroundImage: `url(${backgroundImage})` }
72
+ }
73
+ ),
74
+ /* @__PURE__ */ jsx("div", { "aria-hidden": "true", className: "absolute inset-0 bg-hero/70" })
75
+ ] }),
76
+ headline && /* @__PURE__ */ jsxs("h2", { className: "relative max-w-[18ch] text-3xl font-semibold leading-tight text-white", children: [
77
+ headline,
78
+ emphasis && /* @__PURE__ */ jsxs(Fragment, { children: [
79
+ /* @__PURE__ */ jsx("br", {}),
80
+ /* @__PURE__ */ jsx("span", { className: "italic text-theme-cyan-bright", children: emphasis })
81
+ ] })
82
+ ] }),
83
+ lead && /* @__PURE__ */ jsx("p", { className: "relative max-w-[44ch] text-base text-white/70", children: lead }),
84
+ /* @__PURE__ */ jsx("ul", { className: "relative flex max-w-[46ch] flex-col gap-5", children: pillars.map(({ icon: Icon, title, body }) => /* @__PURE__ */ jsxs("li", { className: "flex gap-3", children: [
85
+ /* @__PURE__ */ jsx(Icon, { className: "mt-0.5 h-5 w-5 shrink-0 text-theme-cyan-bright", "aria-hidden": "true" }),
86
+ /* @__PURE__ */ jsxs("div", { children: [
87
+ /* @__PURE__ */ jsx("h3", { className: "text-base font-semibold leading-snug text-white", children: title }),
88
+ /* @__PURE__ */ jsx("p", { className: "text-sm leading-relaxed text-white/70", children: body })
89
+ ] })
90
+ ] }, title)) }),
91
+ children && /* @__PURE__ */ jsx("div", { className: "relative", children }),
92
+ link && /* @__PURE__ */ jsxs(
93
+ "a",
94
+ {
95
+ href: link.href,
96
+ target: "_blank",
97
+ rel: "noopener noreferrer",
98
+ className: "relative inline-flex items-center gap-1 text-sm font-medium text-theme-cyan-bright transition-colors hover:text-white",
99
+ children: [
100
+ link.label,
101
+ /* @__PURE__ */ jsx(ArrowRight, { className: "h-4 w-4" })
102
+ ]
103
+ }
104
+ )
105
+ ]
106
+ }
107
+ );
108
+ }
109
+ function AuthHeading({ title, description }) {
110
+ return /* @__PURE__ */ jsxs("div", { "data-slot": "auth-heading", children: [
111
+ /* @__PURE__ */ jsx("h1", { className: "text-2xl font-semibold tracking-tight text-foreground", children: title }),
112
+ description && /* @__PURE__ */ jsx("p", { className: "mt-1.5 text-sm text-muted-foreground", children: description })
113
+ ] });
114
+ }
115
+ function AuthLink({ className, type = "button", ...props }) {
116
+ return /* @__PURE__ */ jsx(
117
+ "button",
118
+ {
119
+ type,
120
+ "data-slot": "auth-link",
121
+ className: cn(
122
+ "text-sm text-primary hover:underline focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring pointer-coarse:min-h-11",
123
+ className
124
+ ),
125
+ ...props
126
+ }
127
+ );
128
+ }
129
+ var AuthFieldContext = createContext(null);
130
+ function joinIds(...ids) {
131
+ const joined = ids.filter(Boolean).join(" ");
132
+ return joined || void 0;
133
+ }
134
+ function AuthField({
135
+ htmlFor,
136
+ error,
137
+ errorTestId,
138
+ label,
139
+ required,
140
+ labelAction,
141
+ trailing,
142
+ className,
143
+ children
144
+ }) {
145
+ const generatedId = useId();
146
+ const id = htmlFor ?? generatedId;
147
+ const errorId = error ? `${id}-error` : void 0;
148
+ const context = useMemo(() => ({ id, errorId }), [id, errorId]);
149
+ return /* @__PURE__ */ jsx(AuthFieldContext.Provider, { value: context, children: /* @__PURE__ */ jsxs("div", { "data-slot": "auth-field", className, children: [
150
+ /* @__PURE__ */ jsxs("div", { className: "mb-1 flex items-center justify-between", children: [
151
+ /* @__PURE__ */ jsxs("label", { htmlFor: id, className: "block text-sm font-medium text-foreground", children: [
152
+ label,
153
+ " ",
154
+ required && /* @__PURE__ */ jsx("span", { className: "text-red-text", children: "*" })
155
+ ] }),
156
+ labelAction
157
+ ] }),
158
+ trailing ? /* @__PURE__ */ jsxs("div", { className: "relative", children: [
159
+ children,
160
+ trailing
161
+ ] }) : children,
162
+ error && /* @__PURE__ */ jsx(
163
+ "p",
164
+ {
165
+ id: errorId,
166
+ role: "alert",
167
+ className: "mt-1 text-sm text-red-text",
168
+ "data-testid": errorTestId,
169
+ children: error
170
+ }
171
+ )
172
+ ] }) });
173
+ }
174
+ function AuthInput({
175
+ className,
176
+ id,
177
+ "aria-describedby": describedBy,
178
+ "aria-invalid": invalid,
179
+ ...props
180
+ }) {
181
+ const field = useContext(AuthFieldContext);
182
+ return /* @__PURE__ */ jsx(
183
+ Input,
184
+ {
185
+ id: id ?? field?.id,
186
+ "aria-describedby": joinIds(describedBy, field?.errorId),
187
+ "aria-invalid": invalid ?? (field?.errorId ? true : void 0),
188
+ className: cn("placeholder:text-muted-foreground", className),
189
+ ...props
190
+ }
191
+ );
192
+ }
193
+ var DEFAULT_REVEALABLE_PASSWORD_INPUT_LABELS = {
194
+ hidePassword: "Hide password",
195
+ showPassword: "Show password"
196
+ };
197
+ var DEFAULT_AUTH_OFFLINE_BADGE_LABELS = {
198
+ offline: "Offline"
199
+ };
200
+ function RevealablePasswordInput({
201
+ isRevealed: controlledRevealed,
202
+ defaultRevealed = false,
203
+ onToggleReveal,
204
+ className,
205
+ labels,
206
+ toggleTestId,
207
+ ...props
208
+ }) {
209
+ const [innerRevealed, setInnerRevealed] = useState(defaultRevealed);
210
+ const isControlled = controlledRevealed !== void 0;
211
+ const isRevealed = isControlled ? controlledRevealed : innerRevealed;
212
+ const l = useMemo(() => ({ ...DEFAULT_REVEALABLE_PASSWORD_INPUT_LABELS, ...labels }), [labels]);
213
+ return /* @__PURE__ */ jsxs("div", { className: "relative", children: [
214
+ /* @__PURE__ */ jsx(
215
+ AuthInput,
216
+ {
217
+ type: isRevealed ? "text" : "password",
218
+ className: cn("pr-10", className),
219
+ ...props
220
+ }
221
+ ),
222
+ /* @__PURE__ */ jsx(
223
+ "button",
224
+ {
225
+ type: "button",
226
+ onClick: () => {
227
+ if (!isControlled) setInnerRevealed((prev) => !prev);
228
+ onToggleReveal?.();
229
+ },
230
+ "aria-label": isRevealed ? l.hidePassword : l.showPassword,
231
+ "aria-pressed": isRevealed,
232
+ className: "absolute inset-y-0 right-0 flex w-10 items-center justify-center rounded-r-md text-muted-foreground hover:text-foreground focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring pointer-coarse:w-11",
233
+ "data-testid": testIdOr(toggleTestId, { testId: "toggle-password-visibility" }),
234
+ children: isRevealed ? /* @__PURE__ */ jsx(EyeOff, { className: "h-4 w-4", "aria-hidden": "true" }) : /* @__PURE__ */ jsx(Eye, { className: "h-4 w-4", "aria-hidden": "true" })
235
+ }
236
+ )
237
+ ] });
238
+ }
239
+ function AuthFieldBadge({
240
+ icon,
241
+ children,
242
+ testId
243
+ }) {
244
+ return /* @__PURE__ */ jsxs(
245
+ "span",
246
+ {
247
+ className: "pointer-events-none absolute inset-y-0 right-3 flex items-center gap-1 text-xs font-medium text-green-text",
248
+ "data-testid": testId,
249
+ children: [
250
+ icon,
251
+ children
252
+ ]
253
+ }
254
+ );
255
+ }
256
+ function AuthNote({ className, ...props }) {
257
+ return /* @__PURE__ */ jsx("p", { className: cn("text-center text-sm text-muted-foreground", className), ...props });
258
+ }
259
+ function AuthAlert({
260
+ children,
261
+ withIcon = false,
262
+ testId,
263
+ id
264
+ }) {
265
+ return /* @__PURE__ */ jsxs(
266
+ "div",
267
+ {
268
+ id,
269
+ role: "alert",
270
+ "data-testid": testId,
271
+ className: "flex gap-2 rounded-md bg-red-bg p-3 text-sm text-red-text",
272
+ children: [
273
+ withIcon && /* @__PURE__ */ jsx(AlertCircle, { className: "h-5 w-5 flex-shrink-0", "aria-hidden": "true" }),
274
+ /* @__PURE__ */ jsx("div", { children })
275
+ ]
276
+ }
277
+ );
278
+ }
279
+ function AuthSubmitButton({
280
+ isBusy,
281
+ testId,
282
+ children,
283
+ className,
284
+ ...props
285
+ }) {
286
+ return /* @__PURE__ */ jsxs(
287
+ Button,
288
+ {
289
+ type: "submit",
290
+ className: cn("w-full", className),
291
+ "aria-busy": isBusy || void 0,
292
+ "data-testid": testId,
293
+ ...props,
294
+ children: [
295
+ isBusy && /* @__PURE__ */ jsx(Loader2, { className: "mr-2 h-4 w-4 animate-spin" }),
296
+ children
297
+ ]
298
+ }
299
+ );
300
+ }
301
+ function AuthDivider({ label, testId }) {
302
+ return /* @__PURE__ */ jsxs(
303
+ "div",
304
+ {
305
+ "data-slot": "auth-divider",
306
+ "data-testid": testIdOr(testId, { testId: "login-divider" }),
307
+ className: "relative",
308
+ children: [
309
+ /* @__PURE__ */ jsx("div", { className: "absolute inset-0 flex items-center", children: /* @__PURE__ */ jsx("div", { className: "w-full border-t border-border" }) }),
310
+ /* @__PURE__ */ jsx("div", { className: "relative flex justify-center text-xs", children: /* @__PURE__ */ jsx("span", { className: "bg-background px-2 text-muted-foreground", children: label }) })
311
+ ]
312
+ }
313
+ );
314
+ }
315
+ function AuthTabs({
316
+ value,
317
+ onChange,
318
+ tabs,
319
+ ariaLabel
320
+ }) {
321
+ return /* @__PURE__ */ jsxs(TabsPrimitive.Root, { value, onValueChange: (next) => onChange(next), children: [
322
+ /* @__PURE__ */ jsx(TabsPrimitive.List, { "aria-label": ariaLabel, className: "inline-flex items-center gap-6", children: tabs.map((tab) => /* @__PURE__ */ jsx(
323
+ TabsPrimitive.Trigger,
324
+ {
325
+ value: tab.value,
326
+ "data-testid": tab.testId,
327
+ className: cn(
328
+ "-mb-px border-b-2 py-2 text-sm font-medium transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring pointer-coarse:min-w-11 pointer-coarse:py-3",
329
+ tab.value === value ? "border-primary text-foreground" : "border-transparent text-muted-foreground hover:text-foreground"
330
+ ),
331
+ children: tab.label
332
+ },
333
+ tab.value
334
+ )) }),
335
+ tabs.map((tab) => /* @__PURE__ */ jsx(
336
+ TabsPrimitive.Content,
337
+ {
338
+ value: tab.value,
339
+ tabIndex: -1,
340
+ "aria-hidden": "true",
341
+ className: "hidden"
342
+ },
343
+ tab.value
344
+ ))
345
+ ] });
346
+ }
347
+ function AuthOfflineBadge({
348
+ label,
349
+ title,
350
+ testId,
351
+ labels
352
+ }) {
353
+ const text = label ?? labels?.offline ?? DEFAULT_AUTH_OFFLINE_BADGE_LABELS.offline;
354
+ return /* @__PURE__ */ jsxs(
355
+ "span",
356
+ {
357
+ "data-testid": testIdOr(testId, { testId: "login-offline-indicator" }),
358
+ className: "inline-flex items-center gap-1.5 rounded-md bg-yellow-bg px-2.5 py-1.5 text-sm font-medium text-yellow-text",
359
+ title,
360
+ children: [
361
+ /* @__PURE__ */ jsx(WifiOff, { className: "h-4 w-4 shrink-0" }),
362
+ text
363
+ ]
364
+ }
365
+ );
366
+ }
367
+ var DEFAULT_SSO_LOGIN_BUTTON_LABELS = {
368
+ loginWith: "Login with",
369
+ brandIconAlt: "ARBI Docs"
370
+ };
371
+ function SsoLoginButton({
372
+ onClick,
373
+ brandIconSrc = "/favicon.svg",
374
+ brandIconAlt,
375
+ testId,
376
+ containerTestId,
377
+ labels
378
+ }) {
379
+ const l = useMemo(() => ({ ...DEFAULT_SSO_LOGIN_BUTTON_LABELS, ...labels }), [labels]);
380
+ return /* @__PURE__ */ jsx(
381
+ "div",
382
+ {
383
+ "data-slot": "sso-login",
384
+ "data-testid": testIdOr(containerTestId, { testId: "sso-login-button-container" }),
385
+ className: "text-center",
386
+ children: /* @__PURE__ */ jsxs(
387
+ Button,
388
+ {
389
+ onClick,
390
+ className: "flex w-full items-center justify-center gap-3",
391
+ variant: "outline",
392
+ "data-testid": testIdOr(testId, { testId: "login-with-arbi-button" }),
393
+ children: [
394
+ /* @__PURE__ */ jsx("span", { children: l.loginWith }),
395
+ /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-3 pr-1", children: [
396
+ /* @__PURE__ */ jsx(
397
+ "img",
398
+ {
399
+ src: brandIconSrc,
400
+ alt: brandIconAlt ?? l.brandIconAlt,
401
+ className: "h-5 w-5 rounded object-contain"
402
+ }
403
+ ),
404
+ /* @__PURE__ */ jsx("svg", { className: "h-5 w-5", viewBox: "0 0 24 24", fill: "#0A66C2", "aria-hidden": "true", children: /* @__PURE__ */ jsx("path", { d: "M20.447 20.452h-3.554v-5.569c0-1.328-.027-3.037-1.852-3.037-1.853 0-2.136 1.445-2.136 2.939v5.667H9.351V9h3.414v1.561h.046c.477-.9 1.637-1.85 3.37-1.85 3.601 0 4.267 2.37 4.267 5.455v6.286zM5.337 7.433c-1.144 0-2.063-.926-2.063-2.065 0-1.138.92-2.063 2.063-2.063 1.14 0 2.064.925 2.064 2.063 0 1.139-.925 2.065-2.064 2.065zm1.782 13.019H3.555V9h3.564v11.452zM22.225 0H1.771C.792 0 0 .774 0 1.729v20.542C0 23.227.792 24 1.771 24h20.451C23.2 24 24 23.227 24 22.271V1.729C24 .774 23.2 0 22.222 0h.003z" }) }),
405
+ /* @__PURE__ */ jsxs("svg", { className: "h-5 w-5", viewBox: "0 0 24 24", "aria-hidden": "true", children: [
406
+ /* @__PURE__ */ jsx(
407
+ "path",
408
+ {
409
+ fill: "#4285F4",
410
+ d: "M22.56 12.25c0-.78-.07-1.53-.2-2.25H12v4.26h5.92c-.26 1.37-1.04 2.53-2.21 3.31v2.77h3.57c2.08-1.92 3.28-4.74 3.28-8.09z"
411
+ }
412
+ ),
413
+ /* @__PURE__ */ jsx(
414
+ "path",
415
+ {
416
+ fill: "#34A853",
417
+ d: "M12 23c2.97 0 5.46-.98 7.28-2.66l-3.57-2.77c-.98.66-2.23 1.06-3.71 1.06-2.86 0-5.29-1.93-6.16-4.53H2.18v2.84C3.99 20.53 7.7 23 12 23z"
418
+ }
419
+ ),
420
+ /* @__PURE__ */ jsx(
421
+ "path",
422
+ {
423
+ fill: "#FBBC05",
424
+ d: "M5.84 14.09c-.22-.66-.35-1.36-.35-2.09s.13-1.43.35-2.09V7.07H2.18C1.43 8.55 1 10.22 1 12s.43 3.45 1.18 4.93l2.85-2.22.81-.62z"
425
+ }
426
+ ),
427
+ /* @__PURE__ */ jsx(
428
+ "path",
429
+ {
430
+ fill: "#EA4335",
431
+ d: "M12 5.38c1.62 0 3.06.56 4.21 1.64l3.15-3.15C17.45 2.09 14.97 1 12 1 7.7 1 3.99 3.47 2.18 7.07l3.66 2.84c.87-2.6 3.3-4.53 6.16-4.53z"
432
+ }
433
+ )
434
+ ] }),
435
+ /* @__PURE__ */ jsx("svg", { className: "h-5 w-5", viewBox: "0 0 24 24", fill: "currentColor", "aria-hidden": "true", children: /* @__PURE__ */ jsx("path", { d: "M17.05 20.28c-.98.95-2.05.8-3.08.35-1.09-.46-2.09-.48-3.24 0-1.44.62-2.2.44-3.06-.35C2.79 15.25 3.51 7.59 9.05 7.31c1.35.07 2.29.74 3.08.8 1.18-.24 2.31-.93 3.57-.84 1.51.12 2.65.72 3.4 1.8-3.12 1.87-2.38 5.98.48 7.13-.57 1.5-1.31 2.99-2.54 4.09l.01-.01zM12.03 7.25c-.15-2.23 1.66-4.07 3.74-4.25.29 2.58-2.34 4.5-3.74 4.25z" }) })
436
+ ] })
437
+ ]
438
+ }
439
+ )
440
+ }
441
+ );
442
+ }
443
+ var DEFAULT_AUTH_CONSENT_LABELS = {
444
+ acknowledge: "I acknowledge the",
445
+ and: "and",
446
+ downloadRecoveryKey: "Download my recovery key"
447
+ };
448
+ var DEFAULT_AUTH_FOOTER_LINKS_LABELS = {
449
+ installOptions: "Install options",
450
+ install: "Install"
451
+ };
452
+ var LEGAL_LINK_CLASS = "underline transition-colors hover:text-primary";
453
+ function AuthConsent({
454
+ termsAccepted,
455
+ onTermsAcceptedChange,
456
+ saveRecoveryKey,
457
+ onSaveRecoveryKeyChange,
458
+ termsLink,
459
+ privacyLink,
460
+ noRecoveryKeyWarning,
461
+ labels,
462
+ testIds
463
+ }) {
464
+ const l = useMemo(() => ({ ...DEFAULT_AUTH_CONSENT_LABELS, ...labels }), [labels]);
465
+ return /* @__PURE__ */ jsxs("div", { "data-slot": "auth-consent", className: "space-y-2", children: [
466
+ /* @__PURE__ */ jsxs("div", { className: "flex items-start gap-2", children: [
467
+ /* @__PURE__ */ jsx(
468
+ Checkbox,
469
+ {
470
+ id: "accept-terms",
471
+ checked: termsAccepted,
472
+ onCheckedChange: (checked) => onTermsAcceptedChange(checked === true),
473
+ "data-testid": testIdOr(testIds?.termsCheckbox, { testId: "accept-terms-checkbox" })
474
+ }
475
+ ),
476
+ /* @__PURE__ */ jsxs(
477
+ "label",
478
+ {
479
+ htmlFor: "accept-terms",
480
+ className: "cursor-pointer text-sm leading-relaxed text-muted-foreground",
481
+ children: [
482
+ l.acknowledge,
483
+ " ",
484
+ /* @__PURE__ */ jsx(
485
+ "a",
486
+ {
487
+ href: termsLink.href,
488
+ target: "_blank",
489
+ rel: "noopener noreferrer",
490
+ className: LEGAL_LINK_CLASS,
491
+ children: termsLink.label
492
+ }
493
+ ),
494
+ " ",
495
+ l.and,
496
+ " ",
497
+ /* @__PURE__ */ jsx(
498
+ "a",
499
+ {
500
+ href: privacyLink.href,
501
+ target: "_blank",
502
+ rel: "noopener noreferrer",
503
+ className: LEGAL_LINK_CLASS,
504
+ children: privacyLink.label
505
+ }
506
+ )
507
+ ]
508
+ }
509
+ )
510
+ ] }),
511
+ /* @__PURE__ */ jsxs("div", { className: "flex items-start gap-2", children: [
512
+ /* @__PURE__ */ jsx(
513
+ Checkbox,
514
+ {
515
+ id: "save-recovery-key",
516
+ checked: saveRecoveryKey,
517
+ onCheckedChange: (checked) => onSaveRecoveryKeyChange(checked === true),
518
+ "data-testid": testIdOr(testIds?.recoveryKeyCheckbox, {
519
+ testId: "save-recovery-key-checkbox"
520
+ })
521
+ }
522
+ ),
523
+ /* @__PURE__ */ jsx(
524
+ "label",
525
+ {
526
+ htmlFor: "save-recovery-key",
527
+ className: "cursor-pointer text-sm leading-relaxed text-muted-foreground",
528
+ children: l.downloadRecoveryKey
529
+ }
530
+ )
531
+ ] }),
532
+ !saveRecoveryKey && /* @__PURE__ */ jsx(
533
+ "p",
534
+ {
535
+ className: "text-sm text-red-text",
536
+ role: "alert",
537
+ "data-testid": testIdOr(testIds?.noRecoveryKeyWarning, {
538
+ testId: "no-recovery-key-warning"
539
+ }),
540
+ children: noRecoveryKeyWarning
541
+ }
542
+ )
543
+ ] });
544
+ }
545
+ function AuthFooterLinks({
546
+ privacyLink,
547
+ installOptions = [],
548
+ children,
549
+ labels,
550
+ installTriggerTestId
551
+ }) {
552
+ const l = useMemo(() => ({ ...DEFAULT_AUTH_FOOTER_LINKS_LABELS, ...labels }), [labels]);
553
+ return /* @__PURE__ */ jsxs(
554
+ "div",
555
+ {
556
+ "data-slot": "auth-footer-links",
557
+ className: "flex items-center justify-between pt-2 text-sm text-muted-foreground",
558
+ children: [
559
+ /* @__PURE__ */ jsx(
560
+ "a",
561
+ {
562
+ href: privacyLink.href,
563
+ target: "_blank",
564
+ rel: "noopener noreferrer",
565
+ className: "inline-flex items-center transition-colors hover:text-primary pointer-coarse:min-h-11",
566
+ children: privacyLink.label
567
+ }
568
+ ),
569
+ installOptions.length > 0 && /* @__PURE__ */ jsxs(DropdownMenu, { children: [
570
+ /* @__PURE__ */ jsxs(
571
+ DropdownMenuTrigger,
572
+ {
573
+ className: "flex items-center gap-1 rounded-md px-1.5 py-1 transition-colors hover:text-primary focus:outline-none focus-visible:ring-1 focus-visible:ring-ring pointer-coarse:min-h-11",
574
+ "aria-label": l.installOptions,
575
+ "data-testid": testIdOr(installTriggerTestId, { testId: "install-options-trigger" }),
576
+ children: [
577
+ l.install,
578
+ /* @__PURE__ */ jsx(MoreVertical, { size: 14 })
579
+ ]
580
+ }
581
+ ),
582
+ /* @__PURE__ */ jsx(DropdownMenuContent, { align: "end", children: installOptions.map((option) => /* @__PURE__ */ jsxs(
583
+ DropdownMenuItem,
584
+ {
585
+ onClick: option.onSelect,
586
+ disabled: option.disabled,
587
+ className: "gap-2",
588
+ "data-testid": option.testId,
589
+ children: [
590
+ option.icon,
591
+ option.label
592
+ ]
593
+ },
594
+ option.id
595
+ )) })
596
+ ] }),
597
+ children
598
+ ]
599
+ }
600
+ );
601
+ }
602
+ function ErrorBox({ message, id }) {
603
+ return /* @__PURE__ */ jsx("div", { id, role: "alert", className: "rounded-md bg-red-bg p-3", children: /* @__PURE__ */ jsxs("div", { className: "flex gap-2", children: [
604
+ /* @__PURE__ */ jsx(AlertCircle, { className: "h-5 w-5 flex-shrink-0 text-red-text", "aria-hidden": "true" }),
605
+ /* @__PURE__ */ jsx("p", { className: "text-sm text-red-text", children: message })
606
+ ] }) });
607
+ }
608
+ var DEFAULT_RECOVERY_KEY_DIALOG_LABELS = {
609
+ title: "Save your recovery key",
610
+ verifiedDescription: "If you forget your password, this is the only way to get back into your account. Save it to your password manager so it's there when you need it.",
611
+ unverifiedDescription: "Confirm your password to continue.",
612
+ done: "Done",
613
+ currentPassword: "Current Password",
614
+ passwordPlaceholder: "Enter your password",
615
+ cancel: "Cancel",
616
+ verifying: "Verifying...",
617
+ verify: "Verify"
618
+ };
619
+ var DEFAULT_ACCOUNT_RECOVERY_DIALOG_LABELS = {
620
+ title: "Recover Your Account",
621
+ description: "Upload your recovery key to regain access to your account",
622
+ emailAddress: "Email Address",
623
+ emailPlaceholder: "Enter your email",
624
+ keyLoadedFromLink: "Recovery key loaded from link",
625
+ ssoProtectedKeyNotice: "SSO-protected key \u2014 you must be signed into the matching SSO account.",
626
+ recoveryKey: "Recovery Key",
627
+ ssoProtectedKey: "SSO Protected Key",
628
+ dropKeyHere: "Drop your recovery key here",
629
+ uploadKeyPrompt: "Click or drag to upload your recovery key (.key file)",
630
+ ssoSignInNotice: "This account signs in with single sign-on. Sign in with your identity provider to continue \u2014 you won\u2019t need your forgotten master password for that step.",
631
+ ssoSignIn: "Sign in with Auth0 to continue",
632
+ afterRecoveryNotice: "After successful recovery, you will be prompted to set a new password to secure your account.",
633
+ cancel: "Cancel",
634
+ recovering: "Recovering...",
635
+ recoverAccount: "Recover Account"
636
+ };
637
+ function RecoveryKeyDialog({
638
+ open,
639
+ onClose,
640
+ verified,
641
+ password,
642
+ onPasswordChange,
643
+ onVerify,
644
+ isVerifying,
645
+ error,
646
+ title,
647
+ verifiedDescription,
648
+ unverifiedDescription,
649
+ labels,
650
+ testId,
651
+ testIds
652
+ }) {
653
+ const verifyPasswordId = useId();
654
+ const l = useMemo(() => ({ ...DEFAULT_RECOVERY_KEY_DIALOG_LABELS, ...labels }), [labels]);
655
+ const handleSubmit = (e) => {
656
+ e.preventDefault();
657
+ onVerify();
658
+ };
659
+ return /* @__PURE__ */ jsx(Dialog, { open, onOpenChange: onClose, children: /* @__PURE__ */ jsxs(
660
+ DialogContent,
661
+ {
662
+ presentation: "sheet",
663
+ className: "sm:max-w-md",
664
+ "data-testid": testIdOr(testId, { testId: "download-recovery-key-dialog" }),
665
+ children: [
666
+ /* @__PURE__ */ jsxs(DialogHeader, { children: [
667
+ /* @__PURE__ */ jsx(DialogTitle, { className: "font-heading", children: title ?? l.title }),
668
+ /* @__PURE__ */ jsx(DialogDescription, { children: verified ? verifiedDescription ?? l.verifiedDescription : unverifiedDescription ?? l.unverifiedDescription })
669
+ ] }),
670
+ verified ? /* @__PURE__ */ jsxs("div", { className: "space-y-4", children: [
671
+ verified,
672
+ /* @__PURE__ */ jsx("div", { className: "flex justify-end", children: /* @__PURE__ */ jsx(Button, { onClick: onClose, children: l.done }) })
673
+ ] }) : /* @__PURE__ */ jsxs("form", { onSubmit: handleSubmit, className: "space-y-4", children: [
674
+ /* @__PURE__ */ jsxs("div", { className: "space-y-2", children: [
675
+ /* @__PURE__ */ jsx("label", { htmlFor: verifyPasswordId, className: "text-sm font-medium", children: l.currentPassword }),
676
+ /* @__PURE__ */ jsx(
677
+ Input,
678
+ {
679
+ id: verifyPasswordId,
680
+ type: "password",
681
+ value: password,
682
+ onChange: (e) => onPasswordChange(e.target.value),
683
+ placeholder: l.passwordPlaceholder,
684
+ disabled: isVerifying,
685
+ autoComplete: "current-password",
686
+ "aria-invalid": error ? true : void 0,
687
+ "aria-describedby": error ? `${verifyPasswordId}-error` : void 0,
688
+ "data-testid": testIdOr(testIds?.passwordInput, { testId: "verify-password-input" })
689
+ }
690
+ )
691
+ ] }),
692
+ error && /* @__PURE__ */ jsx(ErrorBox, { message: error, id: `${verifyPasswordId}-error` }),
693
+ /* @__PURE__ */ jsxs("div", { className: "flex flex-col-reverse sm:flex-row sm:justify-end gap-3", children: [
694
+ /* @__PURE__ */ jsx(Button, { type: "button", variant: "outline", onClick: onClose, disabled: isVerifying, children: l.cancel }),
695
+ /* @__PURE__ */ jsx(Button, { type: "submit", disabled: isVerifying || !password, children: isVerifying ? /* @__PURE__ */ jsxs(Fragment, { children: [
696
+ /* @__PURE__ */ jsx(Loader2, { className: "mr-2 h-4 w-4 animate-spin" }),
697
+ l.verifying
698
+ ] }) : l.verify })
699
+ ] })
700
+ ] })
701
+ ]
702
+ }
703
+ ) });
704
+ }
705
+ function AccountRecoveryDialog({
706
+ open,
707
+ onClose,
708
+ email,
709
+ onEmailChange,
710
+ isKeyFromLink,
711
+ keyFileName,
712
+ isKeyEncrypted,
713
+ onKeyFile,
714
+ error,
715
+ needsSsoSignIn,
716
+ onSsoSignIn,
717
+ isProcessing,
718
+ canSubmit,
719
+ onSubmit,
720
+ labels,
721
+ testId,
722
+ testIds
723
+ }) {
724
+ const recoveryEmailId = useId();
725
+ const l = useMemo(() => ({ ...DEFAULT_ACCOUNT_RECOVERY_DIALOG_LABELS, ...labels }), [labels]);
726
+ const fileInputRef = useRef(null);
727
+ const [isDragActive, setIsDragActive] = useState(false);
728
+ const handleDragOver = (e) => {
729
+ e.preventDefault();
730
+ e.stopPropagation();
731
+ setIsDragActive(true);
732
+ };
733
+ const handleDragLeave = (e) => {
734
+ e.preventDefault();
735
+ e.stopPropagation();
736
+ setIsDragActive(false);
737
+ };
738
+ const handleDrop = (e) => {
739
+ e.preventDefault();
740
+ e.stopPropagation();
741
+ setIsDragActive(false);
742
+ const file = e.dataTransfer.files?.[0];
743
+ if (file) onKeyFile(file);
744
+ };
745
+ return /* @__PURE__ */ jsx(Dialog, { open, onOpenChange: onClose, children: /* @__PURE__ */ jsxs(
746
+ DialogContent,
747
+ {
748
+ presentation: "sheet",
749
+ className: "sm:max-w-md",
750
+ "data-testid": testIdOr(testId, { testId: "forgot-password-modal" }),
751
+ children: [
752
+ /* @__PURE__ */ jsxs(DialogHeader, { children: [
753
+ /* @__PURE__ */ jsxs(DialogTitle, { className: "flex items-center gap-2", children: [
754
+ /* @__PURE__ */ jsx(Key, { className: "h-5 w-5 text-primary" }),
755
+ l.title
756
+ ] }),
757
+ /* @__PURE__ */ jsx(DialogDescription, { children: l.description })
758
+ ] }),
759
+ /* @__PURE__ */ jsxs("div", { className: "space-y-4", children: [
760
+ /* @__PURE__ */ jsxs("div", { className: "space-y-2", children: [
761
+ /* @__PURE__ */ jsx("label", { htmlFor: recoveryEmailId, className: "text-sm font-medium", children: l.emailAddress }),
762
+ /* @__PURE__ */ jsx(
763
+ Input,
764
+ {
765
+ id: recoveryEmailId,
766
+ type: "email",
767
+ value: email,
768
+ onChange: (e) => onEmailChange(e.target.value),
769
+ placeholder: l.emailPlaceholder,
770
+ disabled: isProcessing,
771
+ "data-testid": testIdOr(testIds?.emailInput, { testId: "recovery-email-input" })
772
+ }
773
+ )
774
+ ] }),
775
+ isKeyFromLink ? /* @__PURE__ */ jsxs("div", { className: "rounded-md bg-green-bg p-3", children: [
776
+ /* @__PURE__ */ jsxs("div", { className: "flex items-center gap-2 text-sm", children: [
777
+ /* @__PURE__ */ jsx(Key, { className: "h-4 w-4 text-green-text" }),
778
+ /* @__PURE__ */ jsx("span", { className: "font-medium text-green-text", children: l.keyLoadedFromLink })
779
+ ] }),
780
+ isKeyEncrypted && /* @__PURE__ */ jsxs("p", { className: "mt-1 inline-flex items-center gap-1 text-sm text-primary", children: [
781
+ /* @__PURE__ */ jsx(Shield, { className: "h-3 w-3" }),
782
+ l.ssoProtectedKeyNotice
783
+ ] })
784
+ ] }) : /* @__PURE__ */ jsxs("div", { className: "space-y-2", children: [
785
+ /* @__PURE__ */ jsx("label", { className: "text-sm font-medium", children: l.recoveryKey }),
786
+ /* @__PURE__ */ jsxs(
787
+ "div",
788
+ {
789
+ role: "button",
790
+ tabIndex: 0,
791
+ className: cn(
792
+ "cursor-pointer rounded-lg p-4 text-center transition-colors focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring",
793
+ isDragActive ? "bg-accent" : "bg-muted hover:bg-muted/70"
794
+ ),
795
+ onClick: () => fileInputRef.current?.click(),
796
+ onKeyDown: (e) => {
797
+ if (e.key === "Enter" || e.key === " ") {
798
+ e.preventDefault();
799
+ fileInputRef.current?.click();
800
+ }
801
+ },
802
+ onDragOver: handleDragOver,
803
+ onDragLeave: handleDragLeave,
804
+ onDrop: handleDrop,
805
+ "data-testid": testIdOr(testIds?.keyDropzone, { testId: "recovery-key-dropzone" }),
806
+ children: [
807
+ /* @__PURE__ */ jsx(
808
+ "input",
809
+ {
810
+ ref: fileInputRef,
811
+ type: "file",
812
+ accept: ".key",
813
+ onClick: (e) => e.stopPropagation(),
814
+ onChange: (e) => {
815
+ const file = e.target.files?.[0];
816
+ if (file) onKeyFile(file);
817
+ },
818
+ className: "hidden",
819
+ "data-testid": testIdOr(testIds?.keyInput, { testId: "recovery-key-input" })
820
+ }
821
+ ),
822
+ keyFileName ? /* @__PURE__ */ jsxs("div", { className: "flex flex-col items-center gap-1", children: [
823
+ /* @__PURE__ */ jsxs("div", { className: "flex items-center justify-center gap-2 text-sm", children: [
824
+ /* @__PURE__ */ jsx(Key, { className: "h-4 w-4 text-green-text" }),
825
+ /* @__PURE__ */ jsx("span", { className: "font-medium text-green-text", children: keyFileName })
826
+ ] }),
827
+ isKeyEncrypted && /* @__PURE__ */ jsxs("span", { className: "inline-flex items-center gap-1 text-sm text-primary", children: [
828
+ /* @__PURE__ */ jsx(Shield, { className: "h-3 w-3" }),
829
+ l.ssoProtectedKey
830
+ ] })
831
+ ] }) : /* @__PURE__ */ jsxs("div", { className: "space-y-2", children: [
832
+ /* @__PURE__ */ jsx(Upload, { className: "mx-auto h-8 w-8 text-muted-foreground" }),
833
+ /* @__PURE__ */ jsx("p", { className: "text-sm text-muted-foreground", children: isDragActive ? l.dropKeyHere : l.uploadKeyPrompt })
834
+ ] })
835
+ ]
836
+ }
837
+ )
838
+ ] }),
839
+ error && /* @__PURE__ */ jsx(ErrorBox, { message: error }),
840
+ needsSsoSignIn ? /* @__PURE__ */ jsxs("div", { className: "space-y-2 rounded-lg bg-muted p-3", children: [
841
+ /* @__PURE__ */ jsxs("div", { className: "flex gap-2", children: [
842
+ /* @__PURE__ */ jsx(Shield, { className: "h-5 w-5 flex-shrink-0 text-primary" }),
843
+ /* @__PURE__ */ jsx("p", { className: "text-sm", children: l.ssoSignInNotice })
844
+ ] }),
845
+ /* @__PURE__ */ jsx(
846
+ Button,
847
+ {
848
+ onClick: onSsoSignIn,
849
+ className: "w-full",
850
+ "data-testid": testIdOr(testIds?.ssoSignIn, { testId: "recovery-sso-signin-button" }),
851
+ children: l.ssoSignIn
852
+ }
853
+ )
854
+ ] }) : /* @__PURE__ */ jsx("div", { className: "rounded-md bg-muted p-3", children: /* @__PURE__ */ jsx("p", { className: "text-sm text-muted-foreground", children: l.afterRecoveryNotice }) })
855
+ ] }),
856
+ /* @__PURE__ */ jsxs(DialogFooter, { className: "gap-2", children: [
857
+ /* @__PURE__ */ jsx(
858
+ Button,
859
+ {
860
+ variant: "outline",
861
+ onClick: onClose,
862
+ disabled: isProcessing,
863
+ "data-testid": testIdOr(testIds?.cancel, { testId: "forgot-password-cancel" }),
864
+ children: l.cancel
865
+ }
866
+ ),
867
+ !needsSsoSignIn && /* @__PURE__ */ jsx(
868
+ Button,
869
+ {
870
+ onClick: onSubmit,
871
+ disabled: isProcessing || !canSubmit,
872
+ "data-testid": testIdOr(testIds?.submit, { testId: "forgot-password-submit" }),
873
+ children: isProcessing ? /* @__PURE__ */ jsxs(Fragment, { children: [
874
+ /* @__PURE__ */ jsx(Loader2, { className: "mr-2 h-4 w-4 animate-spin" }),
875
+ l.recovering
876
+ ] }) : l.recoverAccount
877
+ }
878
+ )
879
+ ] })
880
+ ]
881
+ }
882
+ ) });
883
+ }
884
+
885
+ export { AccountRecoveryDialog, AuthAlert, AuthConsent, AuthDivider, AuthField, AuthFieldBadge, AuthFooterLinks, AuthHeading, AuthHero, AuthInput, AuthLayout, AuthLink, AuthNote, AuthOfflineBadge, AuthSubmitButton, AuthTabs, DEFAULT_ACCOUNT_RECOVERY_DIALOG_LABELS, DEFAULT_AUTH_CONSENT_LABELS, DEFAULT_AUTH_FOOTER_LINKS_LABELS, DEFAULT_AUTH_OFFLINE_BADGE_LABELS, DEFAULT_RECOVERY_KEY_DIALOG_LABELS, DEFAULT_REVEALABLE_PASSWORD_INPUT_LABELS, DEFAULT_SSO_LOGIN_BUTTON_LABELS, RecoveryKeyDialog, RevealablePasswordInput, SsoLoginButton };
886
+ //# sourceMappingURL=chunk-QN42OA5J.js.map
887
+ //# sourceMappingURL=chunk-QN42OA5J.js.map