@tinyrack/issuary-server 0.26.0 → 0.27.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 (386) hide show
  1. package/dist/entities/terms-content.entity.d.ts +9 -0
  2. package/dist/entities/terms-content.entity.d.ts.map +1 -1
  3. package/dist/entities/terms.entity.d.ts +9 -0
  4. package/dist/entities/terms.entity.d.ts.map +1 -1
  5. package/dist/entities/terms.entity.js +4 -0
  6. package/dist/entities/terms.entity.js.map +1 -1
  7. package/dist/entities/user-terms-consent.entity.d.ts +9 -0
  8. package/dist/entities/user-terms-consent.entity.d.ts.map +1 -1
  9. package/dist/entrypoints/app.d.ts +598 -3
  10. package/dist/entrypoints/app.d.ts.map +1 -1
  11. package/dist/entrypoints/database/postgres/compiled-functions.d.ts +19 -16
  12. package/dist/entrypoints/database/postgres/compiled-functions.d.ts.map +1 -1
  13. package/dist/entrypoints/database/postgres/compiled-functions.js +133 -76
  14. package/dist/entrypoints/database/postgres/compiled-functions.js.map +1 -1
  15. package/dist/entrypoints/database/sqlite/compiled-functions.d.ts +19 -16
  16. package/dist/entrypoints/database/sqlite/compiled-functions.d.ts.map +1 -1
  17. package/dist/entrypoints/database/sqlite/compiled-functions.js +133 -76
  18. package/dist/entrypoints/database/sqlite/compiled-functions.js.map +1 -1
  19. package/dist/lib/config/branding.d.ts +5 -0
  20. package/dist/lib/config/branding.d.ts.map +1 -1
  21. package/dist/lib/config/branding.js +23 -1
  22. package/dist/lib/config/branding.js.map +1 -1
  23. package/dist/lib/config/resolved.d.ts +3 -0
  24. package/dist/lib/config/resolved.d.ts.map +1 -1
  25. package/dist/lib/interpolate-html.d.ts +3 -3
  26. package/dist/lib/interpolate-html.js +3 -3
  27. package/dist/lib/interpolate-html.js.map +1 -1
  28. package/dist/migrations/postgres/Migration20260827090000_archive_terms.d.ts +6 -0
  29. package/dist/migrations/postgres/Migration20260827090000_archive_terms.d.ts.map +1 -0
  30. package/dist/migrations/postgres/Migration20260827090000_archive_terms.js +12 -0
  31. package/dist/migrations/postgres/Migration20260827090000_archive_terms.js.map +1 -0
  32. package/dist/migrations/postgres/index.d.ts.map +1 -1
  33. package/dist/migrations/postgres/index.js +2 -0
  34. package/dist/migrations/postgres/index.js.map +1 -1
  35. package/dist/migrations/sqlite/Migration20260827090000_archive_terms.d.ts +6 -0
  36. package/dist/migrations/sqlite/Migration20260827090000_archive_terms.d.ts.map +1 -0
  37. package/dist/migrations/sqlite/Migration20260827090000_archive_terms.js +12 -0
  38. package/dist/migrations/sqlite/Migration20260827090000_archive_terms.js.map +1 -0
  39. package/dist/migrations/sqlite/index.d.ts.map +1 -1
  40. package/dist/migrations/sqlite/index.js +2 -0
  41. package/dist/migrations/sqlite/index.js.map +1 -1
  42. package/dist/repositories/terms.repository.d.ts.map +1 -1
  43. package/dist/repositories/terms.repository.js +1 -1
  44. package/dist/repositories/terms.repository.js.map +1 -1
  45. package/dist/routes/api/admin/console/index.d.ts +523 -0
  46. package/dist/routes/api/admin/console/index.d.ts.map +1 -0
  47. package/dist/routes/api/admin/console/index.js +212 -0
  48. package/dist/routes/api/admin/console/index.js.map +1 -0
  49. package/dist/routes/api/admin/index.d.ts +584 -0
  50. package/dist/routes/api/admin/index.d.ts.map +1 -1
  51. package/dist/routes/api/admin/index.js +3 -1
  52. package/dist/routes/api/admin/index.js.map +1 -1
  53. package/dist/routes/api/admin/users/index.d.ts +64 -0
  54. package/dist/routes/api/admin/users/index.d.ts.map +1 -1
  55. package/dist/routes/api/admin/users/index.js +47 -0
  56. package/dist/routes/api/admin/users/index.js.map +1 -1
  57. package/dist/routes/api/config/get.d.ts +10 -3
  58. package/dist/routes/api/config/get.d.ts.map +1 -1
  59. package/dist/routes/api/config/get.js +3 -0
  60. package/dist/routes/api/config/get.js.map +1 -1
  61. package/dist/routes/api/config/index.d.ts +10 -3
  62. package/dist/routes/api/config/index.d.ts.map +1 -1
  63. package/dist/routes/api/index.d.ts +594 -3
  64. package/dist/routes/api/index.d.ts.map +1 -1
  65. package/dist/routes/index.d.ts +594 -3
  66. package/dist/routes/index.d.ts.map +1 -1
  67. package/dist/schemas/response.d.ts +4 -1
  68. package/dist/schemas/response.d.ts.map +1 -1
  69. package/dist/schemas/response.js +11 -2
  70. package/dist/schemas/response.js.map +1 -1
  71. package/dist/services/admin-console.service.d.ts +407 -0
  72. package/dist/services/admin-console.service.d.ts.map +1 -0
  73. package/dist/services/admin-console.service.js +377 -0
  74. package/dist/services/admin-console.service.js.map +1 -0
  75. package/dist/services/container.d.ts +5 -0
  76. package/dist/services/container.d.ts.map +1 -1
  77. package/dist/services/container.js +3 -0
  78. package/dist/services/container.js.map +1 -1
  79. package/dist/services/user.service.d.ts +21 -0
  80. package/dist/services/user.service.d.ts.map +1 -1
  81. package/dist/services/user.service.js +65 -1
  82. package/dist/services/user.service.js.map +1 -1
  83. package/package.json +1 -1
  84. package/public/assets/2fa-BowFczF7.js +2 -0
  85. package/public/assets/2fa-BowFczF7.js.map +1 -0
  86. package/public/assets/2fa-C_pA-n2i.js +2 -0
  87. package/public/assets/{2fa-DFTcWEMb.js.map → 2fa-C_pA-n2i.js.map} +1 -1
  88. package/public/assets/2fa-Cpfhakvn.js +2 -0
  89. package/public/assets/{2fa-huNZDYU9.js.map → 2fa-Cpfhakvn.js.map} +1 -1
  90. package/public/assets/2fa-o1a13VHx.js +2 -0
  91. package/public/assets/2fa-o1a13VHx.js.map +1 -0
  92. package/public/assets/FieldControl-ShLuCjvG.js +2 -0
  93. package/public/assets/FieldControl-ShLuCjvG.js.map +1 -0
  94. package/public/assets/Separator-C6MmGAmP.js +2 -0
  95. package/public/assets/Separator-C6MmGAmP.js.map +1 -0
  96. package/public/assets/admin-_jFLs8Ve.js +2 -0
  97. package/public/assets/admin-_jFLs8Ve.js.map +1 -0
  98. package/public/assets/admin-shell-B91U4-Ro.js +2 -0
  99. package/public/assets/admin-shell-B91U4-Ro.js.map +1 -0
  100. package/public/assets/alert-D3aaK-_3.js +2 -0
  101. package/public/assets/alert-D3aaK-_3.js.map +1 -0
  102. package/public/assets/alert-kRxM1xsM.js +2 -0
  103. package/public/assets/alert-kRxM1xsM.js.map +1 -0
  104. package/public/assets/auth-choice-row-h4heOMHs.js +2 -0
  105. package/public/assets/auth-choice-row-h4heOMHs.js.map +1 -0
  106. package/public/assets/auth-field-BpJ4AHtU.js +2 -0
  107. package/public/assets/{auth-field-CWyXGKoC.js.map → auth-field-BpJ4AHtU.js.map} +1 -1
  108. package/public/assets/auth-footer-Du6S-oDG.js +2 -0
  109. package/public/assets/auth-footer-Du6S-oDG.js.map +1 -0
  110. package/public/assets/auth-layout-BdRRr0vT.js +2 -0
  111. package/public/assets/auth-layout-BdRRr0vT.js.map +1 -0
  112. package/public/assets/auth-page-header-ChaCNNrn.js +2 -0
  113. package/public/assets/{auth-page-header-DgGAaIiP.js.map → auth-page-header-ChaCNNrn.js.map} +1 -1
  114. package/public/assets/authorization-context-banner-zVxGX5e8.js +2 -0
  115. package/public/assets/{authorization-context-banner-DznMDPOX.js.map → authorization-context-banner-zVxGX5e8.js.map} +1 -1
  116. package/public/assets/avatar-BxTPQIDp.js +2 -0
  117. package/public/assets/{avatar-D-FRGa1m.js.map → avatar-BxTPQIDp.js.map} +1 -1
  118. package/public/assets/badge-B8D0Q2qq.js +2 -0
  119. package/public/assets/{badge-CsOfUji0.js.map → badge-B8D0Q2qq.js.map} +1 -1
  120. package/public/assets/checkbox-DTPGfvmq.js +2 -0
  121. package/public/assets/{checkbox-C90dDDza.js.map → checkbox-DTPGfvmq.js.map} +1 -1
  122. package/public/assets/{circle-check-6QTLhwM_.js → circle-check-Cnzuu7xR.js} +2 -2
  123. package/public/assets/{circle-check-6QTLhwM_.js.map → circle-check-Cnzuu7xR.js.map} +1 -1
  124. package/public/assets/clients-DLqy7K3N.js +5 -0
  125. package/public/assets/clients-DLqy7K3N.js.map +1 -0
  126. package/public/assets/config-C18-l7z7.js +2 -0
  127. package/public/assets/config-C18-l7z7.js.map +1 -0
  128. package/public/assets/{consent-RtCi_85E.js → consent-BWniDzI3.js} +2 -2
  129. package/public/assets/{consent-RtCi_85E.js.map → consent-BWniDzI3.js.map} +1 -1
  130. package/public/assets/consent-r_tX8DTb.js +2 -0
  131. package/public/assets/{consent-B9sQEyO8.js.map → consent-r_tX8DTb.js.map} +1 -1
  132. package/public/assets/{createLucideIcon-BPpAIXR_.js → createLucideIcon-D-yizrWN.js} +2 -2
  133. package/public/assets/{createLucideIcon-BPpAIXR_.js.map → createLucideIcon-D-yizrWN.js.map} +1 -1
  134. package/public/assets/design-system-rich-text-B3NzIRoJ.js +2 -0
  135. package/public/assets/design-system-rich-text-B3NzIRoJ.js.map +1 -0
  136. package/public/assets/email-Bx9JlWp3.js +2 -0
  137. package/public/assets/email-Bx9JlWp3.js.map +1 -0
  138. package/public/assets/email-Cpfhakvn.js +2 -0
  139. package/public/assets/email-Cpfhakvn.js.map +1 -0
  140. package/public/assets/error-DDY8m_Px.js +2 -0
  141. package/public/assets/error-DDY8m_Px.js.map +1 -0
  142. package/public/assets/field-CsrUbl__.js +3 -0
  143. package/public/assets/field-CsrUbl__.js.map +1 -0
  144. package/public/assets/{fingerprint-pattern-DP62Vk8x.js → fingerprint-pattern-BwUoN1_w.js} +2 -2
  145. package/public/assets/{fingerprint-pattern-DP62Vk8x.js.map → fingerprint-pattern-BwUoN1_w.js.map} +1 -1
  146. package/public/assets/forgot-Cpfhakvn.js +2 -0
  147. package/public/assets/forgot-Cpfhakvn.js.map +1 -0
  148. package/public/assets/forgot-u52JMu6e.js +2 -0
  149. package/public/assets/forgot-u52JMu6e.js.map +1 -0
  150. package/public/assets/form-sJw-V9wb.js +2 -0
  151. package/public/assets/form-sJw-V9wb.js.map +1 -0
  152. package/public/assets/index-8mX6CKcW.css +2 -0
  153. package/public/assets/index-lTEyHSus.js +11 -0
  154. package/public/assets/index-lTEyHSus.js.map +1 -0
  155. package/public/assets/initial-avatar-WMjxW3Zz.js +2 -0
  156. package/public/assets/initial-avatar-WMjxW3Zz.js.map +1 -0
  157. package/public/assets/input-QvBxPgy5.js +2 -0
  158. package/public/assets/{input-CxVeC8Pn.js.map → input-QvBxPgy5.js.map} +1 -1
  159. package/public/assets/{key-round-CdvHb8vT.js → key-round-BxWppK6h.js} +2 -2
  160. package/public/assets/{key-round-CdvHb8vT.js.map → key-round-BxWppK6h.js.map} +1 -1
  161. package/public/assets/labeled-separator-DdkyYDWH.js +2 -0
  162. package/public/assets/labeled-separator-DdkyYDWH.js.map +1 -0
  163. package/public/assets/link-BHmn75Zo.js +2 -0
  164. package/public/assets/{link-C-WdTj3F.js.map → link-BHmn75Zo.js.map} +1 -1
  165. package/public/assets/{lock-7NRyvXBS.js → lock-8wpR2C78.js} +2 -2
  166. package/public/assets/{lock-7NRyvXBS.js.map → lock-8wpR2C78.js.map} +1 -1
  167. package/public/assets/login-Cpfhakvn.js +2 -0
  168. package/public/assets/login-Cpfhakvn.js.map +1 -0
  169. package/public/assets/login-DRcHjJ2-.js +2 -0
  170. package/public/assets/login-DRcHjJ2-.js.map +1 -0
  171. package/public/assets/logout-Dphj1d_0.js +2 -0
  172. package/public/assets/logout-Dphj1d_0.js.map +1 -0
  173. package/public/assets/{mail-D0B_1Dzd.js → mail-DVP_XMUi.js} +2 -2
  174. package/public/assets/{mail-D0B_1Dzd.js.map → mail-DVP_XMUi.js.map} +1 -1
  175. package/public/assets/modal-JuaLVSyx.js +2 -0
  176. package/public/assets/modal-JuaLVSyx.js.map +1 -0
  177. package/public/assets/mutationOptions-Cv_vJkJn.js +2 -0
  178. package/public/assets/{mutationOptions-DyYFUbyn.js.map → mutationOptions-Cv_vJkJn.js.map} +1 -1
  179. package/public/assets/passkey-CObBlfKK.js +2 -0
  180. package/public/assets/passkey-CObBlfKK.js.map +1 -0
  181. package/public/assets/{passkey-J1qnYp9A.js → passkey-CWTjw19S.js} +2 -2
  182. package/public/assets/{passkey-J1qnYp9A.js.map → passkey-CWTjw19S.js.map} +1 -1
  183. package/public/assets/passkey-CavITajY.js +2 -0
  184. package/public/assets/passkey-CavITajY.js.map +1 -0
  185. package/public/assets/passkey-Cpfhakvn.js +2 -0
  186. package/public/assets/passkey-Cpfhakvn.js.map +1 -0
  187. package/public/assets/{passkey-error-ZqqPQUta.js → passkey-error-CZ26Ss-I.js} +2 -2
  188. package/public/assets/{passkey-error-ZqqPQUta.js.map → passkey-error-CZ26Ss-I.js.map} +1 -1
  189. package/public/assets/password-Cpfhakvn.js +2 -0
  190. package/public/assets/password-Cpfhakvn.js.map +1 -0
  191. package/public/assets/password-Dk8PwtZN.js +2 -0
  192. package/public/assets/password-Dk8PwtZN.js.map +1 -0
  193. package/public/assets/password-reset-BcFpGOop.js +2 -0
  194. package/public/assets/{password-reset-sU5KkBKi.js.map → password-reset-BcFpGOop.js.map} +1 -1
  195. package/public/assets/password-strength-Bgvy7kz6.js +2 -0
  196. package/public/assets/{password-strength-BIPcWiM_.js.map → password-strength-Bgvy7kz6.js.map} +1 -1
  197. package/public/assets/pin-input-DhsRO4Ei.js +2 -0
  198. package/public/assets/{pin-input-CITrr-Yc.js.map → pin-input-DhsRO4Ei.js.map} +1 -1
  199. package/public/assets/profile-PjXEnzA-.js +2 -0
  200. package/public/assets/profile-PjXEnzA-.js.map +1 -0
  201. package/public/assets/profile-k66ruDWl.js +2 -0
  202. package/public/assets/{profile-BHPL9Px_.js.map → profile-k66ruDWl.js.map} +1 -1
  203. package/public/assets/provider-mark-CeYazOfu.js +2 -0
  204. package/public/assets/provider-mark-CeYazOfu.js.map +1 -0
  205. package/public/assets/recovery-hdRyezmb.js +2 -0
  206. package/public/assets/recovery-hdRyezmb.js.map +1 -0
  207. package/public/assets/register-Cpfhakvn.js +2 -0
  208. package/public/assets/register-Cpfhakvn.js.map +1 -0
  209. package/public/assets/register-DMgKT_fm.js +2 -0
  210. package/public/assets/register-DMgKT_fm.js.map +1 -0
  211. package/public/assets/reset-Cpfhakvn.js +2 -0
  212. package/public/assets/reset-Cpfhakvn.js.map +1 -0
  213. package/public/assets/reset-DBu3wYpE.js +2 -0
  214. package/public/assets/reset-DBu3wYpE.js.map +1 -0
  215. package/public/assets/select-5LheSsRl.js +2 -0
  216. package/public/assets/select-5LheSsRl.js.map +1 -0
  217. package/public/assets/select-Cpfhakvn.js +2 -0
  218. package/public/assets/{select-huNZDYU9.js.map → select-Cpfhakvn.js.map} +1 -1
  219. package/public/assets/separator-CMGc2Y1q.js +2 -0
  220. package/public/assets/separator-CMGc2Y1q.js.map +1 -0
  221. package/public/assets/settings-BVe4k3kJ.js +2 -0
  222. package/public/assets/settings-BVe4k3kJ.js.map +1 -0
  223. package/public/assets/shell-header-bar-CdOEWmCT.js +2 -0
  224. package/public/assets/shell-header-bar-CdOEWmCT.js.map +1 -0
  225. package/public/assets/{shield-check-D_p8H0ni.js → shield-check-DpYF8yeI.js} +2 -2
  226. package/public/assets/{shield-check-D_p8H0ni.js.map → shield-check-DpYF8yeI.js.map} +1 -1
  227. package/public/assets/standard-schema-C50nwAaQ.js +2 -0
  228. package/public/assets/{standard-schema-e8gtSzGE.js.map → standard-schema-C50nwAaQ.js.map} +1 -1
  229. package/public/assets/system-BoUqxc5h.js +2 -0
  230. package/public/assets/system-BoUqxc5h.js.map +1 -0
  231. package/public/assets/table-Dl89o43x.js +2 -0
  232. package/public/assets/table-Dl89o43x.js.map +1 -0
  233. package/public/assets/terms-B2wWfx1d.js +2 -0
  234. package/public/assets/terms-B2wWfx1d.js.map +1 -0
  235. package/public/assets/terms-COr3cDw5.js +2 -0
  236. package/public/assets/terms-COr3cDw5.js.map +1 -0
  237. package/public/assets/terms-checkbox-list-C9TkDC8Y.js +2 -0
  238. package/public/assets/terms-checkbox-list-C9TkDC8Y.js.map +1 -0
  239. package/public/assets/terms-k66ruDWl.js +2 -0
  240. package/public/assets/terms-k66ruDWl.js.map +1 -0
  241. package/public/assets/totp-BJycMMTC.js +2 -0
  242. package/public/assets/totp-BJycMMTC.js.map +1 -0
  243. package/public/assets/{totp-BNZ904Zm.js → totp-BhElob6P.js} +2 -2
  244. package/public/assets/{totp-BNZ904Zm.js.map → totp-BhElob6P.js.map} +1 -1
  245. package/public/assets/totp-C1ba10Is.js +2 -0
  246. package/public/assets/totp-C1ba10Is.js.map +1 -0
  247. package/public/assets/{trash-2-DZdKBLvC.js → trash-2-B3NVE8pR.js} +2 -2
  248. package/public/assets/{trash-2-DZdKBLvC.js.map → trash-2-B3NVE8pR.js.map} +1 -1
  249. package/public/assets/{triangle-alert-CqNn0kPs.js → triangle-alert-DATO9o3k.js} +2 -2
  250. package/public/assets/{triangle-alert-CqNn0kPs.js.map → triangle-alert-DATO9o3k.js.map} +1 -1
  251. package/public/assets/use-admin-selection-D2b7jnym.js +2 -0
  252. package/public/assets/use-admin-selection-D2b7jnym.js.map +1 -0
  253. package/public/assets/use-totp-setup-KOVNS2DC.js +3 -0
  254. package/public/assets/use-totp-setup-KOVNS2DC.js.map +1 -0
  255. package/public/assets/useAriaLabelledBy-CF3crxLc.js +2 -0
  256. package/public/assets/{useAriaLabelledBy-IIwdHUss.js.map → useAriaLabelledBy-CF3crxLc.js.map} +1 -1
  257. package/public/assets/useMutation-DqIIIiBW.js +2 -0
  258. package/public/assets/{useMutation-BWZ0G4Td.js.map → useMutation-DqIIIiBW.js.map} +1 -1
  259. package/public/assets/useQuery-CLr9TaKA.js +2 -0
  260. package/public/assets/{useQuery-Ccv_nzQl.js.map → useQuery-CLr9TaKA.js.map} +1 -1
  261. package/public/assets/users-BQQQm353.js +2 -0
  262. package/public/assets/users-BQQQm353.js.map +1 -0
  263. package/public/assets/{zod-C87S6Tec.js → zod-Dszyrytb.js} +2 -2
  264. package/public/assets/{zod-C87S6Tec.js.map → zod-Dszyrytb.js.map} +1 -1
  265. package/public/index.html +6 -6
  266. package/public/issuary-app-icon-512.png +0 -0
  267. package/public/issuary-app-icon.svg +8 -0
  268. package/public/assets/2fa-C9wUlSBS.js +0 -2
  269. package/public/assets/2fa-C9wUlSBS.js.map +0 -1
  270. package/public/assets/2fa-DFTcWEMb.js +0 -2
  271. package/public/assets/2fa-TtshNxXv.js +0 -2
  272. package/public/assets/2fa-TtshNxXv.js.map +0 -1
  273. package/public/assets/2fa-huNZDYU9.js +0 -2
  274. package/public/assets/DialogHandle-DICBMcjK.js +0 -2
  275. package/public/assets/DialogHandle-DICBMcjK.js.map +0 -1
  276. package/public/assets/FieldItemContext-BeNfhOsU.js +0 -2
  277. package/public/assets/FieldItemContext-BeNfhOsU.js.map +0 -1
  278. package/public/assets/admin-CFZaO1bM.js +0 -2
  279. package/public/assets/admin-CFZaO1bM.js.map +0 -1
  280. package/public/assets/admin-users-BK_BN8jm.js +0 -2
  281. package/public/assets/admin-users-BK_BN8jm.js.map +0 -1
  282. package/public/assets/alert-leqyvHOp.js +0 -2
  283. package/public/assets/alert-leqyvHOp.js.map +0 -1
  284. package/public/assets/auth-choice-row-CXuyJgkR.js +0 -2
  285. package/public/assets/auth-choice-row-CXuyJgkR.js.map +0 -1
  286. package/public/assets/auth-field-CWyXGKoC.js +0 -2
  287. package/public/assets/auth-footer-Cz5ivsDc.js +0 -2
  288. package/public/assets/auth-footer-Cz5ivsDc.js.map +0 -1
  289. package/public/assets/auth-layout-CiNn2-Nb.js +0 -2
  290. package/public/assets/auth-layout-CiNn2-Nb.js.map +0 -1
  291. package/public/assets/auth-page-header-DgGAaIiP.js +0 -2
  292. package/public/assets/authorization-context-banner-DznMDPOX.js +0 -2
  293. package/public/assets/avatar-D-FRGa1m.js +0 -2
  294. package/public/assets/badge-CsOfUji0.js +0 -2
  295. package/public/assets/checkbox-C90dDDza.js +0 -2
  296. package/public/assets/chevron-right-CN0jUyV0.js +0 -2
  297. package/public/assets/chevron-right-CN0jUyV0.js.map +0 -1
  298. package/public/assets/config-DTQCUlfZ.js +0 -2
  299. package/public/assets/config-DTQCUlfZ.js.map +0 -1
  300. package/public/assets/consent-B9sQEyO8.js +0 -2
  301. package/public/assets/email-8RKQzeig.js +0 -2
  302. package/public/assets/email-8RKQzeig.js.map +0 -1
  303. package/public/assets/email-huNZDYU9.js +0 -2
  304. package/public/assets/email-huNZDYU9.js.map +0 -1
  305. package/public/assets/error-BYe3gUMO.js +0 -2
  306. package/public/assets/error-BYe3gUMO.js.map +0 -1
  307. package/public/assets/field-BMT214_m.js +0 -3
  308. package/public/assets/field-BMT214_m.js.map +0 -1
  309. package/public/assets/forgot-BenoOUxC.js +0 -2
  310. package/public/assets/forgot-BenoOUxC.js.map +0 -1
  311. package/public/assets/forgot-huNZDYU9.js +0 -2
  312. package/public/assets/forgot-huNZDYU9.js.map +0 -1
  313. package/public/assets/index-CKpnrw9M.js +0 -11
  314. package/public/assets/index-CKpnrw9M.js.map +0 -1
  315. package/public/assets/index-Ct9o0oCZ.css +0 -2
  316. package/public/assets/initial-avatar-E5DK9Igm.js +0 -2
  317. package/public/assets/initial-avatar-E5DK9Igm.js.map +0 -1
  318. package/public/assets/input-CxVeC8Pn.js +0 -2
  319. package/public/assets/labeled-separator-CV7nb0XW.js +0 -2
  320. package/public/assets/labeled-separator-CV7nb0XW.js.map +0 -1
  321. package/public/assets/link-C-WdTj3F.js +0 -2
  322. package/public/assets/login-1YuiZD30.js +0 -2
  323. package/public/assets/login-1YuiZD30.js.map +0 -1
  324. package/public/assets/login-huNZDYU9.js +0 -2
  325. package/public/assets/login-huNZDYU9.js.map +0 -1
  326. package/public/assets/logout-B5T52P8u.js +0 -2
  327. package/public/assets/logout-B5T52P8u.js.map +0 -1
  328. package/public/assets/modal-tByFpy18.js +0 -2
  329. package/public/assets/modal-tByFpy18.js.map +0 -1
  330. package/public/assets/mutationOptions-DyYFUbyn.js +0 -2
  331. package/public/assets/passkey-CgAHaQ1p.js +0 -2
  332. package/public/assets/passkey-CgAHaQ1p.js.map +0 -1
  333. package/public/assets/passkey-huNZDYU9.js +0 -2
  334. package/public/assets/passkey-huNZDYU9.js.map +0 -1
  335. package/public/assets/passkey-v9Pzv-4A.js +0 -2
  336. package/public/assets/passkey-v9Pzv-4A.js.map +0 -1
  337. package/public/assets/password-Cuh9Hnjp.js +0 -2
  338. package/public/assets/password-Cuh9Hnjp.js.map +0 -1
  339. package/public/assets/password-huNZDYU9.js +0 -2
  340. package/public/assets/password-huNZDYU9.js.map +0 -1
  341. package/public/assets/password-reset-sU5KkBKi.js +0 -2
  342. package/public/assets/password-strength-BIPcWiM_.js +0 -2
  343. package/public/assets/pin-input-CITrr-Yc.js +0 -2
  344. package/public/assets/plus-DSBBSrgj.js +0 -2
  345. package/public/assets/plus-DSBBSrgj.js.map +0 -1
  346. package/public/assets/profile-BHPL9Px_.js +0 -2
  347. package/public/assets/profile-C8KaELVe.js +0 -2
  348. package/public/assets/profile-C8KaELVe.js.map +0 -1
  349. package/public/assets/provider-logos-u1YURWQr.js +0 -2
  350. package/public/assets/provider-logos-u1YURWQr.js.map +0 -1
  351. package/public/assets/recovery-CVROV9nj.js +0 -2
  352. package/public/assets/recovery-CVROV9nj.js.map +0 -1
  353. package/public/assets/register-cpxjX3qr.js +0 -2
  354. package/public/assets/register-cpxjX3qr.js.map +0 -1
  355. package/public/assets/register-huNZDYU9.js +0 -2
  356. package/public/assets/register-huNZDYU9.js.map +0 -1
  357. package/public/assets/reset-huNZDYU9.js +0 -2
  358. package/public/assets/reset-huNZDYU9.js.map +0 -1
  359. package/public/assets/reset-iNqYdsoa.js +0 -2
  360. package/public/assets/reset-iNqYdsoa.js.map +0 -1
  361. package/public/assets/select-DdjQtcLJ.js +0 -2
  362. package/public/assets/select-DdjQtcLJ.js.map +0 -1
  363. package/public/assets/select-huNZDYU9.js +0 -2
  364. package/public/assets/separator-B0Bvh1he.js +0 -2
  365. package/public/assets/separator-B0Bvh1he.js.map +0 -1
  366. package/public/assets/shell-header-bar-JcFhS7mb.js +0 -2
  367. package/public/assets/shell-header-bar-JcFhS7mb.js.map +0 -1
  368. package/public/assets/standard-schema-e8gtSzGE.js +0 -2
  369. package/public/assets/terms-BHPL9Px_.js +0 -2
  370. package/public/assets/terms-BHPL9Px_.js.map +0 -1
  371. package/public/assets/terms-BjwMWDFp.js +0 -2
  372. package/public/assets/terms-BjwMWDFp.js.map +0 -1
  373. package/public/assets/terms-checkbox-list-DNOq4Pb2.js +0 -2
  374. package/public/assets/terms-checkbox-list-DNOq4Pb2.js.map +0 -1
  375. package/public/assets/totp-D_EWG1h8.js +0 -2
  376. package/public/assets/totp-D_EWG1h8.js.map +0 -1
  377. package/public/assets/totp-DetFwOkk.js +0 -2
  378. package/public/assets/totp-DetFwOkk.js.map +0 -1
  379. package/public/assets/use-totp-setup-DtlgPUPJ.js +0 -3
  380. package/public/assets/use-totp-setup-DtlgPUPJ.js.map +0 -1
  381. package/public/assets/useAriaLabelledBy-IIwdHUss.js +0 -2
  382. package/public/assets/useMutation-BWZ0G4Td.js +0 -2
  383. package/public/assets/useQuery-Ccv_nzQl.js +0 -2
  384. package/public/assets/users-B1gvPM_x.js +0 -2
  385. package/public/assets/users-B1gvPM_x.js.map +0 -1
  386. package/public/vite.svg +0 -1
@@ -1,2 +1,2 @@
1
- import{q as e}from"./createLucideIcon-BPpAIXR_.js";import{I as t,M as n}from"./index-CKpnrw9M.js";var r=e();function i(e){return(0,r.jsx)(t,{...e,onUnauthorized:()=>{let e=new URLSearchParams(window.location.search),t=Object.fromEntries(e.entries());window.location.href=n(t)}})}export{i as errorComponent};
2
- //# sourceMappingURL=consent-RtCi_85E.js.map
1
+ import{X as e}from"./createLucideIcon-D-yizrWN.js";import{B as t,I as n}from"./index-lTEyHSus.js";var r=e();function i(e){return(0,r.jsx)(t,{...e,onUnauthorized:()=>{let e=new URLSearchParams(window.location.search),t=Object.fromEntries(e.entries());window.location.href=n(t)}})}export{i as errorComponent};
2
+ //# sourceMappingURL=consent-BWniDzI3.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"consent-RtCi_85E.js","names":["RouteErrorFallback","buildAuthorizeUrl","ConsentError","props","ErrorComponentProps","params","URLSearchParams","window","location","search","Object","fromEntries","entries","href","errorComponent"],"sources":["../../../frontend/src/routes/consent/index.tsx?tsr-split=errorComponent"],"sourcesContent":["import { useMutation, useSuspenseQuery } from '@tanstack/react-query';\nimport {\n createFileRoute,\n type ErrorComponentProps,\n} from '@tanstack/react-router';\nimport { TRButton } from '@tinyrack/ui/components/button';\nimport { TRCard } from '@tinyrack/ui/components/card';\nimport { TRText } from '@tinyrack/ui/components/text';\nimport { ShieldCheckIcon, XIcon } from 'lucide-react';\nimport { useTranslation } from 'react-i18next';\nimport { z } from 'zod';\nimport { AuthPageHeader } from '#frontend/components/auth/auth-page-header.tsx';\nimport { InitialAvatar } from '#frontend/components/ui/initial-avatar.tsx';\nimport { RouteErrorFallback } from '#frontend/components/ui/route-error-fallback.tsx';\nimport { AuthLayout } from '#frontend/features/layout/auth-layout.tsx';\nimport {\n buildAuthorizeUrl,\n OAuthSearchSchema,\n} from '#frontend/libs/oauth-search.ts';\nimport {\n consentDecisionMutationOptions,\n getConsentInfoQueryOptions,\n} from '#frontend/queries/consent.ts';\n\nconst ConsentSearchSchema = OAuthSearchSchema.extend({\n client_id: z.string(),\n redirect_uri: z.string(),\n response_type: z.string(),\n});\n\nexport const Route = createFileRoute('/consent/')({\n component: Consent,\n errorComponent: ConsentError,\n validateSearch: ConsentSearchSchema,\n loaderDeps: ({ search }) => ({\n client_id: search.client_id,\n scope: search.scope,\n }),\n loader: async ({ context, deps }) => {\n await context.queryClient.ensureQueryData(\n getConsentInfoQueryOptions({\n client_id: deps.client_id,\n scope: deps.scope,\n }),\n );\n },\n});\n\nfunction ConsentError(props: ErrorComponentProps) {\n return (\n <RouteErrorFallback\n {...props}\n onUnauthorized={() => {\n // Re-enter the OAuth flow from the beginning so the\n // user can log in and be redirected back through\n // /oauth/authorize -> /consent/.\n const params = new URLSearchParams(window.location.search);\n const search = Object.fromEntries(params.entries());\n window.location.href = buildAuthorizeUrl(search);\n }}\n />\n );\n}\n\nfunction Consent() {\n const { t } = useTranslation();\n const search = Route.useSearch();\n\n const consentInfoQuery = useSuspenseQuery(\n getConsentInfoQueryOptions({\n client_id: search.client_id,\n scope: search.scope,\n }),\n );\n\n const consentMutation = useMutation({\n ...consentDecisionMutationOptions,\n onSuccess: (data) => {\n window.location.href = data.redirect_url;\n },\n });\n\n const handleAllow = () => {\n consentMutation.mutate({\n client_id: search.client_id,\n redirect_uri: search.redirect_uri,\n response_type: search.response_type,\n scope: search.scope,\n state: search.state,\n nonce: search.nonce,\n code_challenge: search.code_challenge,\n code_challenge_method: search.code_challenge_method,\n prompt: search.prompt,\n max_age: search.max_age,\n reauthenticated: search.reauthenticated,\n display: search.display,\n response_mode: search.response_mode,\n login_hint: search.login_hint,\n ui_locales: search.ui_locales,\n id_token_hint: search.id_token_hint,\n acr_values: search.acr_values,\n account_selected: search.account_selected,\n account_selection_state: search.account_selection_state,\n decision: 'allow',\n });\n };\n\n const handleDeny = () => {\n consentMutation.mutate({\n client_id: search.client_id,\n redirect_uri: search.redirect_uri,\n response_type: search.response_type,\n scope: search.scope,\n state: search.state,\n nonce: search.nonce,\n code_challenge: search.code_challenge,\n code_challenge_method: search.code_challenge_method,\n prompt: search.prompt,\n max_age: search.max_age,\n reauthenticated: search.reauthenticated,\n display: search.display,\n response_mode: search.response_mode,\n login_hint: search.login_hint,\n ui_locales: search.ui_locales,\n id_token_hint: search.id_token_hint,\n acr_values: search.acr_values,\n account_selected: search.account_selected,\n account_selection_state: search.account_selection_state,\n decision: 'deny',\n });\n };\n\n const { client, scopes, user } = consentInfoQuery.data;\n\n return (\n <AuthLayout width=\"wide\">\n <AuthPageHeader\n subtitle={t('consent.subtitle', { app: client.name })}\n title={t('consent.title')}\n />\n\n {/*\n Who is about to hand out access. The decision is meaningless without\n it, so it sits above the scopes rather than in fine print.\n */}\n <TRCard.Root padding=\"lg\" variant=\"outlined\">\n <TRCard.Content className=\"flex items-center gap-tinyrack-md\">\n <InitialAvatar email={user.email} size=\"sm\" />\n <span className=\"flex min-w-0 flex-col\">\n <TRText color=\"muted\" variant=\"caption\">\n {t('consent.loggedInAs')}\n </TRText>\n <TRText\n data-testid=\"consent-user-email\"\n truncate\n variant=\"body\"\n weight=\"medium\"\n >\n {user.email}\n </TRText>\n </span>\n </TRCard.Content>\n </TRCard.Root>\n\n {/* Requested permissions */}\n <div className=\"flex flex-col gap-tinyrack-sm\">\n <TRText as=\"h3\" variant=\"label\">\n {t('consent.permissions.title')}\n </TRText>\n <ul\n className=\"flex flex-col gap-tinyrack-xs\"\n data-testid=\"consent-scope-list\"\n >\n {scopes.map((scope: { name: string; description: string }) => (\n <li\n className=\"flex items-center gap-tinyrack-sm rounded-tinyrack-md bg-tinyrack-surface-muted px-tinyrack-md py-tinyrack-sm\"\n key={scope.name}\n >\n <ShieldCheckIcon\n aria-hidden\n className=\"size-tinyrack-lg shrink-0 text-tinyrack-info-foreground\"\n />\n <TRText variant=\"body\">\n {t(`consent.scope.${scope.name}`, {\n defaultValue: scope.description,\n })}\n </TRText>\n </li>\n ))}\n </ul>\n </div>\n\n {/*\n Sticky so the decision stays reachable when a client asks for a long\n list of scopes and the page scrolls.\n */}\n <div className=\"sticky bottom-0 flex gap-tinyrack-sm border-tinyrack-border border-t-tinyrack-default bg-tinyrack-surface/80 py-tinyrack-md backdrop-blur-sm\">\n <TRButton\n appearance=\"outline\"\n className=\"flex-1\"\n data-testid=\"consent-deny\"\n intent=\"neutral\"\n loading={consentMutation.isPending}\n loadingLabel={t('consent.deny')}\n onClick={handleDeny}\n type=\"button\"\n uiSize=\"lg\"\n >\n <XIcon aria-hidden className=\"size-tinyrack-lg\" />\n {t('consent.deny')}\n </TRButton>\n <TRButton\n className=\"flex-1\"\n data-testid=\"consent-allow\"\n intent=\"primary\"\n loading={consentMutation.isPending}\n loadingLabel={t('consent.allow')}\n onClick={handleAllow}\n type=\"button\"\n uiSize=\"lg\"\n >\n <ShieldCheckIcon aria-hidden className=\"size-tinyrack-lg\" />\n {t('consent.allow')}\n </TRButton>\n </div>\n </AuthLayout>\n );\n}\n"],"mappings":"4GAgDA,SAASE,EAAaC,EAA4B,CAChD,OACE,EAAA,EAAA,IAAA,CAAC,EAAD,CACE,GAAIA,EACJ,mBAAsB,CAIpB,IAAME,EAAS,IAAIC,gBAAgBC,OAAOC,SAASC,MAAM,EACnDA,EAASC,OAAOC,YAAYN,EAAOO,QAAQ,CAAC,EAClDL,OAAOC,SAASK,KAAOZ,EAAkBQ,CAAM,CACjD,CAAE,CAAA,CAGR"}
1
+ {"version":3,"file":"consent-BWniDzI3.js","names":["RouteErrorFallback","buildAuthorizeUrl","ConsentError","props","ErrorComponentProps","params","URLSearchParams","window","location","search","Object","fromEntries","entries","href","errorComponent"],"sources":["../../../frontend/src/routes/consent/index.tsx?tsr-split=errorComponent"],"sourcesContent":["import { useMutation, useSuspenseQuery } from '@tanstack/react-query';\nimport {\n createFileRoute,\n type ErrorComponentProps,\n} from '@tanstack/react-router';\nimport { TRButton } from '@tinyrack/ui/components/button';\nimport { TRCard } from '@tinyrack/ui/components/card';\nimport { TRText } from '@tinyrack/ui/components/text';\nimport { ShieldCheckIcon, XIcon } from 'lucide-react';\nimport { useTranslation } from 'react-i18next';\nimport { z } from 'zod';\nimport { AuthPageHeader } from '#frontend/components/auth/auth-page-header.tsx';\nimport { InitialAvatar } from '#frontend/components/ui/initial-avatar.tsx';\nimport { RouteErrorFallback } from '#frontend/components/ui/route-error-fallback.tsx';\nimport { AuthLayout } from '#frontend/features/layout/auth-layout.tsx';\nimport {\n buildAuthorizeUrl,\n OAuthSearchSchema,\n} from '#frontend/libs/oauth-search.ts';\nimport {\n consentDecisionMutationOptions,\n getConsentInfoQueryOptions,\n} from '#frontend/queries/consent.ts';\n\nconst ConsentSearchSchema = OAuthSearchSchema.extend({\n client_id: z.string(),\n redirect_uri: z.string(),\n response_type: z.string(),\n});\n\nexport const Route = createFileRoute('/consent/')({\n component: Consent,\n errorComponent: ConsentError,\n validateSearch: ConsentSearchSchema,\n loaderDeps: ({ search }) => ({\n client_id: search.client_id,\n scope: search.scope,\n }),\n loader: async ({ context, deps }) => {\n await context.queryClient.ensureQueryData(\n getConsentInfoQueryOptions({\n client_id: deps.client_id,\n scope: deps.scope,\n }),\n );\n },\n});\n\nfunction ConsentError(props: ErrorComponentProps) {\n return (\n <RouteErrorFallback\n {...props}\n onUnauthorized={() => {\n // Re-enter the OAuth flow from the beginning so the\n // user can log in and be redirected back through\n // /oauth/authorize -> /consent/.\n const params = new URLSearchParams(window.location.search);\n const search = Object.fromEntries(params.entries());\n window.location.href = buildAuthorizeUrl(search);\n }}\n />\n );\n}\n\nfunction Consent() {\n const { t } = useTranslation();\n const search = Route.useSearch();\n\n const consentInfoQuery = useSuspenseQuery(\n getConsentInfoQueryOptions({\n client_id: search.client_id,\n scope: search.scope,\n }),\n );\n\n const consentMutation = useMutation({\n ...consentDecisionMutationOptions,\n onSuccess: (data) => {\n window.location.href = data.redirect_url;\n },\n });\n\n const handleAllow = () => {\n consentMutation.mutate({\n client_id: search.client_id,\n redirect_uri: search.redirect_uri,\n response_type: search.response_type,\n scope: search.scope,\n state: search.state,\n nonce: search.nonce,\n code_challenge: search.code_challenge,\n code_challenge_method: search.code_challenge_method,\n prompt: search.prompt,\n max_age: search.max_age,\n reauthenticated: search.reauthenticated,\n display: search.display,\n response_mode: search.response_mode,\n login_hint: search.login_hint,\n ui_locales: search.ui_locales,\n id_token_hint: search.id_token_hint,\n acr_values: search.acr_values,\n account_selected: search.account_selected,\n account_selection_state: search.account_selection_state,\n decision: 'allow',\n });\n };\n\n const handleDeny = () => {\n consentMutation.mutate({\n client_id: search.client_id,\n redirect_uri: search.redirect_uri,\n response_type: search.response_type,\n scope: search.scope,\n state: search.state,\n nonce: search.nonce,\n code_challenge: search.code_challenge,\n code_challenge_method: search.code_challenge_method,\n prompt: search.prompt,\n max_age: search.max_age,\n reauthenticated: search.reauthenticated,\n display: search.display,\n response_mode: search.response_mode,\n login_hint: search.login_hint,\n ui_locales: search.ui_locales,\n id_token_hint: search.id_token_hint,\n acr_values: search.acr_values,\n account_selected: search.account_selected,\n account_selection_state: search.account_selection_state,\n decision: 'deny',\n });\n };\n\n const { client, scopes, user } = consentInfoQuery.data;\n\n return (\n <AuthLayout width=\"wide\">\n <AuthPageHeader\n subtitle={t('consent.subtitle', { app: client.name })}\n title={t('consent.title')}\n />\n\n {/*\n Who is about to hand out access. The decision is meaningless without\n it, so it sits above the scopes rather than in fine print.\n */}\n <TRCard.Root padding=\"lg\" variant=\"outlined\">\n <TRCard.Content className=\"flex items-center gap-tinyrack-md\">\n <InitialAvatar email={user.email} size=\"sm\" />\n <span className=\"flex min-w-0 flex-col\">\n <TRText color=\"muted\" variant=\"caption\">\n {t('consent.loggedInAs')}\n </TRText>\n <TRText\n data-testid=\"consent-user-email\"\n truncate\n variant=\"body\"\n weight=\"medium\"\n >\n {user.email}\n </TRText>\n </span>\n </TRCard.Content>\n </TRCard.Root>\n\n {/* Requested permissions */}\n <div className=\"flex flex-col gap-tinyrack-sm\">\n <TRText as=\"h3\" variant=\"label\">\n {t('consent.permissions.title')}\n </TRText>\n <ul\n className=\"flex flex-col gap-tinyrack-xs\"\n data-testid=\"consent-scope-list\"\n >\n {scopes.map((scope: { name: string; description: string }) => (\n <li\n className=\"flex items-center gap-tinyrack-sm rounded-tinyrack-md bg-tinyrack-surface-muted px-tinyrack-md py-tinyrack-sm\"\n key={scope.name}\n >\n <ShieldCheckIcon\n aria-hidden\n className=\"size-tinyrack-lg shrink-0 text-tinyrack-info-foreground\"\n />\n <TRText variant=\"body\">\n {t(`consent.scope.${scope.name}`, {\n defaultValue: scope.description,\n })}\n </TRText>\n </li>\n ))}\n </ul>\n </div>\n\n {/*\n Sticky so the decision stays reachable when a client asks for a long\n list of scopes and the page scrolls.\n */}\n <div className=\"sticky bottom-0 flex gap-tinyrack-sm border-tinyrack-border border-t-tinyrack-default bg-tinyrack-surface py-tinyrack-md\">\n <TRButton\n appearance=\"outline\"\n className=\"flex-1\"\n data-testid=\"consent-deny\"\n intent=\"neutral\"\n loading={consentMutation.isPending}\n loadingLabel={t('consent.deny')}\n onClick={handleDeny}\n type=\"button\"\n uiSize=\"lg\"\n >\n <XIcon aria-hidden className=\"size-tinyrack-lg\" />\n {t('consent.deny')}\n </TRButton>\n <TRButton\n className=\"flex-1\"\n data-testid=\"consent-allow\"\n intent=\"primary\"\n loading={consentMutation.isPending}\n loadingLabel={t('consent.allow')}\n onClick={handleAllow}\n type=\"button\"\n uiSize=\"lg\"\n >\n <ShieldCheckIcon aria-hidden className=\"size-tinyrack-lg\" />\n {t('consent.allow')}\n </TRButton>\n </div>\n </AuthLayout>\n );\n}\n"],"mappings":"4GAgDA,SAASE,EAAaC,EAA4B,CAChD,OACE,EAAA,EAAA,IAAA,CAAC,EAAD,CACE,GAAIA,EACJ,mBAAsB,CAIpB,IAAME,EAAS,IAAIC,gBAAgBC,OAAOC,SAASC,MAAM,EACnDA,EAASC,OAAOC,YAAYN,EAAOO,QAAQ,CAAC,EAClDL,OAAOC,SAASK,KAAOZ,EAAkBQ,CAAM,CACjD,CAAE,CAAA,CAGR"}
@@ -0,0 +1,2 @@
1
+ import{X as e,i as t,n,s as r}from"./createLucideIcon-D-yizrWN.js";import{t as i}from"./useMutation-DqIIIiBW.js";import{Dt as a,X as o}from"./shell-header-bar-CdOEWmCT.js";import{t as s}from"./shield-check-DpYF8yeI.js";import{C as c,G as l,S as u,x as d}from"./index-lTEyHSus.js";import{t as f}from"./auth-page-header-ChaCNNrn.js";import{t as p}from"./initial-avatar-WMjxW3Zz.js";import{t as m}from"./auth-layout-BdRRr0vT.js";var h=e();function g(){let{t:e}=t(),g=d.useSearch(),_=a(c({client_id:g.client_id,scope:g.scope})),v=i({...u,onSuccess:e=>{window.location.href=e.redirect_url}}),y=()=>{v.mutate({client_id:g.client_id,redirect_uri:g.redirect_uri,response_type:g.response_type,scope:g.scope,state:g.state,nonce:g.nonce,code_challenge:g.code_challenge,code_challenge_method:g.code_challenge_method,prompt:g.prompt,max_age:g.max_age,reauthenticated:g.reauthenticated,display:g.display,response_mode:g.response_mode,login_hint:g.login_hint,ui_locales:g.ui_locales,id_token_hint:g.id_token_hint,acr_values:g.acr_values,account_selected:g.account_selected,account_selection_state:g.account_selection_state,decision:`allow`})},b=()=>{v.mutate({client_id:g.client_id,redirect_uri:g.redirect_uri,response_type:g.response_type,scope:g.scope,state:g.state,nonce:g.nonce,code_challenge:g.code_challenge,code_challenge_method:g.code_challenge_method,prompt:g.prompt,max_age:g.max_age,reauthenticated:g.reauthenticated,display:g.display,response_mode:g.response_mode,login_hint:g.login_hint,ui_locales:g.ui_locales,id_token_hint:g.id_token_hint,acr_values:g.acr_values,account_selected:g.account_selected,account_selection_state:g.account_selection_state,decision:`deny`})},{client:x,scopes:S,user:C}=_.data;return(0,h.jsxs)(m,{width:`wide`,children:[(0,h.jsx)(f,{subtitle:e(`consent.subtitle`,{app:x.name}),title:e(`consent.title`)}),(0,h.jsx)(l.Root,{padding:`lg`,variant:`outlined`,children:(0,h.jsxs)(l.Content,{className:`flex items-center gap-tinyrack-md`,children:[(0,h.jsx)(p,{email:C.email,size:`sm`}),(0,h.jsxs)(`span`,{className:`flex min-w-0 flex-col`,children:[(0,h.jsx)(n,{color:`muted`,variant:`caption`,children:e(`consent.loggedInAs`)}),(0,h.jsx)(n,{"data-testid":`consent-user-email`,truncate:!0,variant:`body`,weight:`medium`,children:C.email})]})]})}),(0,h.jsxs)(`div`,{className:`flex flex-col gap-tinyrack-sm`,children:[(0,h.jsx)(n,{as:`h3`,variant:`label`,children:e(`consent.permissions.title`)}),(0,h.jsx)(`ul`,{className:`flex flex-col gap-tinyrack-xs`,"data-testid":`consent-scope-list`,children:S.map(t=>(0,h.jsxs)(`li`,{className:`flex items-center gap-tinyrack-sm rounded-tinyrack-md bg-tinyrack-surface-muted px-tinyrack-md py-tinyrack-sm`,children:[(0,h.jsx)(s,{"aria-hidden":!0,className:`size-tinyrack-lg shrink-0 text-tinyrack-info-foreground`}),(0,h.jsx)(n,{variant:`body`,children:e(`consent.scope.${t.name}`,{defaultValue:t.description})})]},t.name))})]}),(0,h.jsxs)(`div`,{className:`sticky bottom-0 flex gap-tinyrack-sm border-tinyrack-border border-t-tinyrack-default bg-tinyrack-surface py-tinyrack-md`,children:[(0,h.jsxs)(r,{appearance:`outline`,className:`flex-1`,"data-testid":`consent-deny`,intent:`neutral`,loading:v.isPending,loadingLabel:e(`consent.deny`),onClick:b,type:`button`,uiSize:`lg`,children:[(0,h.jsx)(o,{"aria-hidden":!0,className:`size-tinyrack-lg`}),e(`consent.deny`)]}),(0,h.jsxs)(r,{className:`flex-1`,"data-testid":`consent-allow`,intent:`primary`,loading:v.isPending,loadingLabel:e(`consent.allow`),onClick:y,type:`button`,uiSize:`lg`,children:[(0,h.jsx)(s,{"aria-hidden":!0,className:`size-tinyrack-lg`}),e(`consent.allow`)]})]})]})}export{g as component};
2
+ //# sourceMappingURL=consent-r_tX8DTb.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"consent-B9sQEyO8.js","names":["useMutation","useSuspenseQuery","TRButton","TRCard","TRText","ShieldCheckIcon","XIcon","useTranslation","AuthPageHeader","InitialAvatar","AuthLayout","consentDecisionMutationOptions","getConsentInfoQueryOptions","Route","Consent","t","search","useSearch","consentInfoQuery","client_id","scope","consentMutation","onSuccess","data","window","location","href","redirect_url","handleAllow","mutate","redirect_uri","response_type","state","nonce","code_challenge","code_challenge_method","prompt","max_age","reauthenticated","display","response_mode","login_hint","ui_locales","id_token_hint","acr_values","account_selected","account_selection_state","decision","handleDeny","client","scopes","user","app","name","email","map","description","defaultValue","isPending","component"],"sources":["../../../frontend/src/routes/consent/index.tsx?tsr-split=component"],"sourcesContent":["import { useMutation, useSuspenseQuery } from '@tanstack/react-query';\nimport {\n createFileRoute,\n type ErrorComponentProps,\n} from '@tanstack/react-router';\nimport { TRButton } from '@tinyrack/ui/components/button';\nimport { TRCard } from '@tinyrack/ui/components/card';\nimport { TRText } from '@tinyrack/ui/components/text';\nimport { ShieldCheckIcon, XIcon } from 'lucide-react';\nimport { useTranslation } from 'react-i18next';\nimport { z } from 'zod';\nimport { AuthPageHeader } from '#frontend/components/auth/auth-page-header.tsx';\nimport { InitialAvatar } from '#frontend/components/ui/initial-avatar.tsx';\nimport { RouteErrorFallback } from '#frontend/components/ui/route-error-fallback.tsx';\nimport { AuthLayout } from '#frontend/features/layout/auth-layout.tsx';\nimport {\n buildAuthorizeUrl,\n OAuthSearchSchema,\n} from '#frontend/libs/oauth-search.ts';\nimport {\n consentDecisionMutationOptions,\n getConsentInfoQueryOptions,\n} from '#frontend/queries/consent.ts';\n\nconst ConsentSearchSchema = OAuthSearchSchema.extend({\n client_id: z.string(),\n redirect_uri: z.string(),\n response_type: z.string(),\n});\n\nexport const Route = createFileRoute('/consent/')({\n component: Consent,\n errorComponent: ConsentError,\n validateSearch: ConsentSearchSchema,\n loaderDeps: ({ search }) => ({\n client_id: search.client_id,\n scope: search.scope,\n }),\n loader: async ({ context, deps }) => {\n await context.queryClient.ensureQueryData(\n getConsentInfoQueryOptions({\n client_id: deps.client_id,\n scope: deps.scope,\n }),\n );\n },\n});\n\nfunction ConsentError(props: ErrorComponentProps) {\n return (\n <RouteErrorFallback\n {...props}\n onUnauthorized={() => {\n // Re-enter the OAuth flow from the beginning so the\n // user can log in and be redirected back through\n // /oauth/authorize -> /consent/.\n const params = new URLSearchParams(window.location.search);\n const search = Object.fromEntries(params.entries());\n window.location.href = buildAuthorizeUrl(search);\n }}\n />\n );\n}\n\nfunction Consent() {\n const { t } = useTranslation();\n const search = Route.useSearch();\n\n const consentInfoQuery = useSuspenseQuery(\n getConsentInfoQueryOptions({\n client_id: search.client_id,\n scope: search.scope,\n }),\n );\n\n const consentMutation = useMutation({\n ...consentDecisionMutationOptions,\n onSuccess: (data) => {\n window.location.href = data.redirect_url;\n },\n });\n\n const handleAllow = () => {\n consentMutation.mutate({\n client_id: search.client_id,\n redirect_uri: search.redirect_uri,\n response_type: search.response_type,\n scope: search.scope,\n state: search.state,\n nonce: search.nonce,\n code_challenge: search.code_challenge,\n code_challenge_method: search.code_challenge_method,\n prompt: search.prompt,\n max_age: search.max_age,\n reauthenticated: search.reauthenticated,\n display: search.display,\n response_mode: search.response_mode,\n login_hint: search.login_hint,\n ui_locales: search.ui_locales,\n id_token_hint: search.id_token_hint,\n acr_values: search.acr_values,\n account_selected: search.account_selected,\n account_selection_state: search.account_selection_state,\n decision: 'allow',\n });\n };\n\n const handleDeny = () => {\n consentMutation.mutate({\n client_id: search.client_id,\n redirect_uri: search.redirect_uri,\n response_type: search.response_type,\n scope: search.scope,\n state: search.state,\n nonce: search.nonce,\n code_challenge: search.code_challenge,\n code_challenge_method: search.code_challenge_method,\n prompt: search.prompt,\n max_age: search.max_age,\n reauthenticated: search.reauthenticated,\n display: search.display,\n response_mode: search.response_mode,\n login_hint: search.login_hint,\n ui_locales: search.ui_locales,\n id_token_hint: search.id_token_hint,\n acr_values: search.acr_values,\n account_selected: search.account_selected,\n account_selection_state: search.account_selection_state,\n decision: 'deny',\n });\n };\n\n const { client, scopes, user } = consentInfoQuery.data;\n\n return (\n <AuthLayout width=\"wide\">\n <AuthPageHeader\n subtitle={t('consent.subtitle', { app: client.name })}\n title={t('consent.title')}\n />\n\n {/*\n Who is about to hand out access. The decision is meaningless without\n it, so it sits above the scopes rather than in fine print.\n */}\n <TRCard.Root padding=\"lg\" variant=\"outlined\">\n <TRCard.Content className=\"flex items-center gap-tinyrack-md\">\n <InitialAvatar email={user.email} size=\"sm\" />\n <span className=\"flex min-w-0 flex-col\">\n <TRText color=\"muted\" variant=\"caption\">\n {t('consent.loggedInAs')}\n </TRText>\n <TRText\n data-testid=\"consent-user-email\"\n truncate\n variant=\"body\"\n weight=\"medium\"\n >\n {user.email}\n </TRText>\n </span>\n </TRCard.Content>\n </TRCard.Root>\n\n {/* Requested permissions */}\n <div className=\"flex flex-col gap-tinyrack-sm\">\n <TRText as=\"h3\" variant=\"label\">\n {t('consent.permissions.title')}\n </TRText>\n <ul\n className=\"flex flex-col gap-tinyrack-xs\"\n data-testid=\"consent-scope-list\"\n >\n {scopes.map((scope: { name: string; description: string }) => (\n <li\n className=\"flex items-center gap-tinyrack-sm rounded-tinyrack-md bg-tinyrack-surface-muted px-tinyrack-md py-tinyrack-sm\"\n key={scope.name}\n >\n <ShieldCheckIcon\n aria-hidden\n className=\"size-tinyrack-lg shrink-0 text-tinyrack-info-foreground\"\n />\n <TRText variant=\"body\">\n {t(`consent.scope.${scope.name}`, {\n defaultValue: scope.description,\n })}\n </TRText>\n </li>\n ))}\n </ul>\n </div>\n\n {/*\n Sticky so the decision stays reachable when a client asks for a long\n list of scopes and the page scrolls.\n */}\n <div className=\"sticky bottom-0 flex gap-tinyrack-sm border-tinyrack-border border-t-tinyrack-default bg-tinyrack-surface/80 py-tinyrack-md backdrop-blur-sm\">\n <TRButton\n appearance=\"outline\"\n className=\"flex-1\"\n data-testid=\"consent-deny\"\n intent=\"neutral\"\n loading={consentMutation.isPending}\n loadingLabel={t('consent.deny')}\n onClick={handleDeny}\n type=\"button\"\n uiSize=\"lg\"\n >\n <XIcon aria-hidden className=\"size-tinyrack-lg\" />\n {t('consent.deny')}\n </TRButton>\n <TRButton\n className=\"flex-1\"\n data-testid=\"consent-allow\"\n intent=\"primary\"\n loading={consentMutation.isPending}\n loadingLabel={t('consent.allow')}\n onClick={handleAllow}\n type=\"button\"\n uiSize=\"lg\"\n >\n <ShieldCheckIcon aria-hidden className=\"size-tinyrack-lg\" />\n {t('consent.allow')}\n </TRButton>\n </div>\n </AuthLayout>\n );\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"consent-r_tX8DTb.js","names":["useMutation","useSuspenseQuery","TRButton","TRCard","TRText","ShieldCheckIcon","XIcon","useTranslation","AuthPageHeader","InitialAvatar","AuthLayout","consentDecisionMutationOptions","getConsentInfoQueryOptions","Route","Consent","t","search","useSearch","consentInfoQuery","client_id","scope","consentMutation","onSuccess","data","window","location","href","redirect_url","handleAllow","mutate","redirect_uri","response_type","state","nonce","code_challenge","code_challenge_method","prompt","max_age","reauthenticated","display","response_mode","login_hint","ui_locales","id_token_hint","acr_values","account_selected","account_selection_state","decision","handleDeny","client","scopes","user","app","name","email","map","description","defaultValue","isPending","component"],"sources":["../../../frontend/src/routes/consent/index.tsx?tsr-split=component"],"sourcesContent":["import { useMutation, useSuspenseQuery } from '@tanstack/react-query';\nimport {\n createFileRoute,\n type ErrorComponentProps,\n} from '@tanstack/react-router';\nimport { TRButton } from '@tinyrack/ui/components/button';\nimport { TRCard } from '@tinyrack/ui/components/card';\nimport { TRText } from '@tinyrack/ui/components/text';\nimport { ShieldCheckIcon, XIcon } from 'lucide-react';\nimport { useTranslation } from 'react-i18next';\nimport { z } from 'zod';\nimport { AuthPageHeader } from '#frontend/components/auth/auth-page-header.tsx';\nimport { InitialAvatar } from '#frontend/components/ui/initial-avatar.tsx';\nimport { RouteErrorFallback } from '#frontend/components/ui/route-error-fallback.tsx';\nimport { AuthLayout } from '#frontend/features/layout/auth-layout.tsx';\nimport {\n buildAuthorizeUrl,\n OAuthSearchSchema,\n} from '#frontend/libs/oauth-search.ts';\nimport {\n consentDecisionMutationOptions,\n getConsentInfoQueryOptions,\n} from '#frontend/queries/consent.ts';\n\nconst ConsentSearchSchema = OAuthSearchSchema.extend({\n client_id: z.string(),\n redirect_uri: z.string(),\n response_type: z.string(),\n});\n\nexport const Route = createFileRoute('/consent/')({\n component: Consent,\n errorComponent: ConsentError,\n validateSearch: ConsentSearchSchema,\n loaderDeps: ({ search }) => ({\n client_id: search.client_id,\n scope: search.scope,\n }),\n loader: async ({ context, deps }) => {\n await context.queryClient.ensureQueryData(\n getConsentInfoQueryOptions({\n client_id: deps.client_id,\n scope: deps.scope,\n }),\n );\n },\n});\n\nfunction ConsentError(props: ErrorComponentProps) {\n return (\n <RouteErrorFallback\n {...props}\n onUnauthorized={() => {\n // Re-enter the OAuth flow from the beginning so the\n // user can log in and be redirected back through\n // /oauth/authorize -> /consent/.\n const params = new URLSearchParams(window.location.search);\n const search = Object.fromEntries(params.entries());\n window.location.href = buildAuthorizeUrl(search);\n }}\n />\n );\n}\n\nfunction Consent() {\n const { t } = useTranslation();\n const search = Route.useSearch();\n\n const consentInfoQuery = useSuspenseQuery(\n getConsentInfoQueryOptions({\n client_id: search.client_id,\n scope: search.scope,\n }),\n );\n\n const consentMutation = useMutation({\n ...consentDecisionMutationOptions,\n onSuccess: (data) => {\n window.location.href = data.redirect_url;\n },\n });\n\n const handleAllow = () => {\n consentMutation.mutate({\n client_id: search.client_id,\n redirect_uri: search.redirect_uri,\n response_type: search.response_type,\n scope: search.scope,\n state: search.state,\n nonce: search.nonce,\n code_challenge: search.code_challenge,\n code_challenge_method: search.code_challenge_method,\n prompt: search.prompt,\n max_age: search.max_age,\n reauthenticated: search.reauthenticated,\n display: search.display,\n response_mode: search.response_mode,\n login_hint: search.login_hint,\n ui_locales: search.ui_locales,\n id_token_hint: search.id_token_hint,\n acr_values: search.acr_values,\n account_selected: search.account_selected,\n account_selection_state: search.account_selection_state,\n decision: 'allow',\n });\n };\n\n const handleDeny = () => {\n consentMutation.mutate({\n client_id: search.client_id,\n redirect_uri: search.redirect_uri,\n response_type: search.response_type,\n scope: search.scope,\n state: search.state,\n nonce: search.nonce,\n code_challenge: search.code_challenge,\n code_challenge_method: search.code_challenge_method,\n prompt: search.prompt,\n max_age: search.max_age,\n reauthenticated: search.reauthenticated,\n display: search.display,\n response_mode: search.response_mode,\n login_hint: search.login_hint,\n ui_locales: search.ui_locales,\n id_token_hint: search.id_token_hint,\n acr_values: search.acr_values,\n account_selected: search.account_selected,\n account_selection_state: search.account_selection_state,\n decision: 'deny',\n });\n };\n\n const { client, scopes, user } = consentInfoQuery.data;\n\n return (\n <AuthLayout width=\"wide\">\n <AuthPageHeader\n subtitle={t('consent.subtitle', { app: client.name })}\n title={t('consent.title')}\n />\n\n {/*\n Who is about to hand out access. The decision is meaningless without\n it, so it sits above the scopes rather than in fine print.\n */}\n <TRCard.Root padding=\"lg\" variant=\"outlined\">\n <TRCard.Content className=\"flex items-center gap-tinyrack-md\">\n <InitialAvatar email={user.email} size=\"sm\" />\n <span className=\"flex min-w-0 flex-col\">\n <TRText color=\"muted\" variant=\"caption\">\n {t('consent.loggedInAs')}\n </TRText>\n <TRText\n data-testid=\"consent-user-email\"\n truncate\n variant=\"body\"\n weight=\"medium\"\n >\n {user.email}\n </TRText>\n </span>\n </TRCard.Content>\n </TRCard.Root>\n\n {/* Requested permissions */}\n <div className=\"flex flex-col gap-tinyrack-sm\">\n <TRText as=\"h3\" variant=\"label\">\n {t('consent.permissions.title')}\n </TRText>\n <ul\n className=\"flex flex-col gap-tinyrack-xs\"\n data-testid=\"consent-scope-list\"\n >\n {scopes.map((scope: { name: string; description: string }) => (\n <li\n className=\"flex items-center gap-tinyrack-sm rounded-tinyrack-md bg-tinyrack-surface-muted px-tinyrack-md py-tinyrack-sm\"\n key={scope.name}\n >\n <ShieldCheckIcon\n aria-hidden\n className=\"size-tinyrack-lg shrink-0 text-tinyrack-info-foreground\"\n />\n <TRText variant=\"body\">\n {t(`consent.scope.${scope.name}`, {\n defaultValue: scope.description,\n })}\n </TRText>\n </li>\n ))}\n </ul>\n </div>\n\n {/*\n Sticky so the decision stays reachable when a client asks for a long\n list of scopes and the page scrolls.\n */}\n <div className=\"sticky bottom-0 flex gap-tinyrack-sm border-tinyrack-border border-t-tinyrack-default bg-tinyrack-surface py-tinyrack-md\">\n <TRButton\n appearance=\"outline\"\n className=\"flex-1\"\n data-testid=\"consent-deny\"\n intent=\"neutral\"\n loading={consentMutation.isPending}\n loadingLabel={t('consent.deny')}\n onClick={handleDeny}\n type=\"button\"\n uiSize=\"lg\"\n >\n <XIcon aria-hidden className=\"size-tinyrack-lg\" />\n {t('consent.deny')}\n </TRButton>\n <TRButton\n className=\"flex-1\"\n data-testid=\"consent-allow\"\n intent=\"primary\"\n loading={consentMutation.isPending}\n loadingLabel={t('consent.allow')}\n onClick={handleAllow}\n type=\"button\"\n uiSize=\"lg\"\n >\n <ShieldCheckIcon aria-hidden className=\"size-tinyrack-lg\" />\n {t('consent.allow')}\n </TRButton>\n </div>\n </AuthLayout>\n );\n}\n"],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- var e=Object.create,t=Object.defineProperty,n=Object.getOwnPropertyDescriptor,r=Object.getOwnPropertyNames,i=Object.getPrototypeOf,a=Object.prototype.hasOwnProperty,o=(e,t)=>()=>(t||(e((t={exports:{}}).exports,t),e=null),t.exports),s=(e,n)=>{let r={};for(var i in e)t(r,i,{get:e[i],enumerable:!0});return n||t(r,Symbol.toStringTag,{value:`Module`}),r},c=(e,i,o,s)=>{if(i&&typeof i==`object`||typeof i==`function`)for(var c=r(i),l=0,u=c.length,d;l<u;l++)d=c[l],!a.call(e,d)&&d!==o&&t(e,d,{get:(e=>i[e]).bind(null,d),enumerable:!(s=n(i,d))||s.enumerable});return e},l=(n,r,a)=>(a=n==null?{}:e(i(n)),c(r||!n||!n.__esModule?t(a,`default`,{value:n,enumerable:!0}):a,n)),u=o((e=>{var t=Symbol.for(`react.transitional.element`),n=Symbol.for(`react.portal`),r=Symbol.for(`react.fragment`),i=Symbol.for(`react.strict_mode`),a=Symbol.for(`react.profiler`),o=Symbol.for(`react.consumer`),s=Symbol.for(`react.context`),c=Symbol.for(`react.forward_ref`),l=Symbol.for(`react.suspense`),u=Symbol.for(`react.memo`),d=Symbol.for(`react.lazy`),f=Symbol.for(`react.activity`),p=Symbol.iterator;function m(e){return typeof e!=`object`||!e?null:(e=p&&e[p]||e[`@@iterator`],typeof e==`function`?e:null)}var h={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},g=Object.assign,_={};function v(e,t,n){this.props=e,this.context=t,this.refs=_,this.updater=n||h}v.prototype.isReactComponent={},v.prototype.setState=function(e,t){if(typeof e!=`object`&&typeof e!=`function`&&e!=null)throw Error(`takes an object of state variables to update or a function which returns an object of state variables.`);this.updater.enqueueSetState(this,e,t,`setState`)},v.prototype.forceUpdate=function(e){this.updater.enqueueForceUpdate(this,e,`forceUpdate`)};function y(){}y.prototype=v.prototype;function b(e,t,n){this.props=e,this.context=t,this.refs=_,this.updater=n||h}var x=b.prototype=new y;x.constructor=b,g(x,v.prototype),x.isPureReactComponent=!0;var S=Array.isArray;function C(){}var w={H:null,A:null,T:null,S:null},T=Object.prototype.hasOwnProperty;function E(e,n,r){var i=r.ref;return{$$typeof:t,type:e,key:n,ref:i===void 0?null:i,props:r}}function D(e,t){return E(e.type,t,e.props)}function O(e){return typeof e==`object`&&!!e&&e.$$typeof===t}function k(e){var t={"=":`=0`,":":`=2`};return`$`+e.replace(/[=:]/g,function(e){return t[e]})}var A=/\/+/g;function j(e,t){return typeof e==`object`&&e&&e.key!=null?k(``+e.key):t.toString(36)}function ee(e){switch(e.status){case`fulfilled`:return e.value;case`rejected`:throw e.reason;default:switch(typeof e.status==`string`?e.then(C,C):(e.status=`pending`,e.then(function(t){e.status===`pending`&&(e.status=`fulfilled`,e.value=t)},function(t){e.status===`pending`&&(e.status=`rejected`,e.reason=t)})),e.status){case`fulfilled`:return e.value;case`rejected`:throw e.reason}}throw e}function M(e,r,i,a,o){var s=typeof e;(s===`undefined`||s===`boolean`)&&(e=null);var c=!1;if(e===null)c=!0;else switch(s){case`bigint`:case`string`:case`number`:c=!0;break;case`object`:switch(e.$$typeof){case t:case n:c=!0;break;case d:return c=e._init,M(c(e._payload),r,i,a,o)}}if(c)return o=o(e),c=a===``?`.`+j(e,0):a,S(o)?(i=``,c!=null&&(i=c.replace(A,`$&/`)+`/`),M(o,r,i,``,function(e){return e})):o!=null&&(O(o)&&(o=D(o,i+(o.key==null||e&&e.key===o.key?``:(``+o.key).replace(A,`$&/`)+`/`)+c)),r.push(o)),1;c=0;var l=a===``?`.`:a+`:`;if(S(e))for(var u=0;u<e.length;u++)a=e[u],s=l+j(a,u),c+=M(a,r,i,s,o);else if(u=m(e),typeof u==`function`)for(e=u.call(e),u=0;!(a=e.next()).done;)a=a.value,s=l+j(a,u++),c+=M(a,r,i,s,o);else if(s===`object`){if(typeof e.then==`function`)return M(ee(e),r,i,a,o);throw r=String(e),Error(`Objects are not valid as a React child (found: `+(r===`[object Object]`?`object with keys {`+Object.keys(e).join(`, `)+`}`:r)+`). If you meant to render a collection of children, use an array instead.`)}return c}function N(e,t,n){if(e==null)return e;var r=[],i=0;return M(e,r,``,``,function(e){return t.call(n,e,i++)}),r}function te(e){if(e._status===-1){var t=e._result;t=t(),t.then(function(t){(e._status===0||e._status===-1)&&(e._status=1,e._result=t)},function(t){(e._status===0||e._status===-1)&&(e._status=2,e._result=t)}),e._status===-1&&(e._status=0,e._result=t)}if(e._status===1)return e._result.default;throw e._result}var P=typeof reportError==`function`?reportError:function(e){if(typeof window==`object`&&typeof window.ErrorEvent==`function`){var t=new window.ErrorEvent(`error`,{bubbles:!0,cancelable:!0,message:typeof e==`object`&&e&&typeof e.message==`string`?String(e.message):String(e),error:e});if(!window.dispatchEvent(t))return}else if(typeof process==`object`&&typeof process.emit==`function`){process.emit(`uncaughtException`,e);return}console.error(e)},ne={map:N,forEach:function(e,t,n){N(e,function(){t.apply(this,arguments)},n)},count:function(e){var t=0;return N(e,function(){t++}),t},toArray:function(e){return N(e,function(e){return e})||[]},only:function(e){if(!O(e))throw Error(`React.Children.only expected to receive a single React element child.`);return e}};e.Activity=f,e.Children=ne,e.Component=v,e.Fragment=r,e.Profiler=a,e.PureComponent=b,e.StrictMode=i,e.Suspense=l,e.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE=w,e.__COMPILER_RUNTIME={__proto__:null,c:function(e){return w.H.useMemoCache(e)}},e.cache=function(e){return function(){return e.apply(null,arguments)}},e.cacheSignal=function(){return null},e.cloneElement=function(e,t,n){if(e==null)throw Error(`The argument must be a React element, but you passed `+e+`.`);var r=g({},e.props),i=e.key;if(t!=null)for(a in t.key!==void 0&&(i=``+t.key),t)!T.call(t,a)||a===`key`||a===`__self`||a===`__source`||a===`ref`&&t.ref===void 0||(r[a]=t[a]);var a=arguments.length-2;if(a===1)r.children=n;else if(1<a){for(var o=Array(a),s=0;s<a;s++)o[s]=arguments[s+2];r.children=o}return E(e.type,i,r)},e.createContext=function(e){return e={$$typeof:s,_currentValue:e,_currentValue2:e,_threadCount:0,Provider:null,Consumer:null},e.Provider=e,e.Consumer={$$typeof:o,_context:e},e},e.createElement=function(e,t,n){var r,i={},a=null;if(t!=null)for(r in t.key!==void 0&&(a=``+t.key),t)T.call(t,r)&&r!==`key`&&r!==`__self`&&r!==`__source`&&(i[r]=t[r]);var o=arguments.length-2;if(o===1)i.children=n;else if(1<o){for(var s=Array(o),c=0;c<o;c++)s[c]=arguments[c+2];i.children=s}if(e&&e.defaultProps)for(r in o=e.defaultProps,o)i[r]===void 0&&(i[r]=o[r]);return E(e,a,i)},e.createRef=function(){return{current:null}},e.forwardRef=function(e){return{$$typeof:c,render:e}},e.isValidElement=O,e.lazy=function(e){return{$$typeof:d,_payload:{_status:-1,_result:e},_init:te}},e.memo=function(e,t){return{$$typeof:u,type:e,compare:t===void 0?null:t}},e.startTransition=function(e){var t=w.T,n={};w.T=n;try{var r=e(),i=w.S;i!==null&&i(n,r),typeof r==`object`&&r&&typeof r.then==`function`&&r.then(C,P)}catch(e){P(e)}finally{t!==null&&n.types!==null&&(t.types=n.types),w.T=t}},e.unstable_useCacheRefresh=function(){return w.H.useCacheRefresh()},e.use=function(e){return w.H.use(e)},e.useActionState=function(e,t,n){return w.H.useActionState(e,t,n)},e.useCallback=function(e,t){return w.H.useCallback(e,t)},e.useContext=function(e){return w.H.useContext(e)},e.useDebugValue=function(){},e.useDeferredValue=function(e,t){return w.H.useDeferredValue(e,t)},e.useEffect=function(e,t){return w.H.useEffect(e,t)},e.useEffectEvent=function(e){return w.H.useEffectEvent(e)},e.useId=function(){return w.H.useId()},e.useImperativeHandle=function(e,t,n){return w.H.useImperativeHandle(e,t,n)},e.useInsertionEffect=function(e,t){return w.H.useInsertionEffect(e,t)},e.useLayoutEffect=function(e,t){return w.H.useLayoutEffect(e,t)},e.useMemo=function(e,t){return w.H.useMemo(e,t)},e.useOptimistic=function(e,t){return w.H.useOptimistic(e,t)},e.useReducer=function(e,t,n){return w.H.useReducer(e,t,n)},e.useRef=function(e){return w.H.useRef(e)},e.useState=function(e){return w.H.useState(e)},e.useSyncExternalStore=function(e,t,n){return w.H.useSyncExternalStore(e,t,n)},e.useTransition=function(){return w.H.useTransition()},e.version=`19.2.7`})),d=o(((e,t)=>{t.exports=u()})),f=o((e=>{var t=Symbol.for(`react.transitional.element`),n=Symbol.for(`react.fragment`);function r(e,n,r){var i=null;if(r!==void 0&&(i=``+r),n.key!==void 0&&(i=``+n.key),`key`in n)for(var a in r={},n)a!==`key`&&(r[a]=n[a]);else r=n;return n=r.ref,{$$typeof:t,type:e,key:i,ref:n===void 0?null:n,props:r}}e.Fragment=n,e.jsx=r,e.jsxs=r})),p=o(((e,t)=>{t.exports=f()})),m=o((e=>{var t=d();function n(e,t){return e===t&&(e!==0||1/e==1/t)||e!==e&&t!==t}var r=typeof Object.is==`function`?Object.is:n,i=t.useState,a=t.useEffect,o=t.useLayoutEffect,s=t.useDebugValue;function c(e,t){var n=t(),r=i({inst:{value:n,getSnapshot:t}}),c=r[0].inst,u=r[1];return o(function(){c.value=n,c.getSnapshot=t,l(c)&&u({inst:c})},[e,n,t]),a(function(){return l(c)&&u({inst:c}),e(function(){l(c)&&u({inst:c})})},[e]),s(n),n}function l(e){var t=e.getSnapshot;e=e.value;try{var n=t();return!r(e,n)}catch{return!0}}function u(e,t){return t()}var f=typeof window>`u`||window.document===void 0||window.document.createElement===void 0?u:c;e.useSyncExternalStore=t.useSyncExternalStore===void 0?f:t.useSyncExternalStore})),h=o(((e,t)=>{t.exports=m()})),g=l(d(),1);function _(...e){return e.filter(Boolean).join(` `)}function v(e,t){return typeof t==`function`?n=>_(e,t(n)):_(e,t)}var y=p();function b({className:e,decorative:t=!1,label:n=`Loading`,uiSize:r=`md`,variant:i=`current`,...a}){let o=n.trim()===``?`Loading`:n,s={...a,className:_(`tr-spinner`,e),"data-ui-size":r,"data-variant":i};return t?(0,y.jsx)(`span`,{...s,"aria-hidden":`true`}):(0,y.jsx)(`span`,{...s,"aria-label":o,role:`status`})}function x(){return typeof window<`u`}function S(e){return T(e)?(e.nodeName||``).toLowerCase():`#document`}function C(e){var t;return(e==null||(t=e.ownerDocument)==null?void 0:t.defaultView)||window}function w(e){return((T(e)?e.ownerDocument:e.document)||window.document)?.documentElement}function T(e){return x()?e instanceof Node||e instanceof C(e).Node:!1}function E(e){return x()?e instanceof Element||e instanceof C(e).Element:!1}function D(e){return x()?e instanceof HTMLElement||e instanceof C(e).HTMLElement:!1}function O(e){return!x()||typeof ShadowRoot>`u`?!1:e instanceof ShadowRoot||e instanceof C(e).ShadowRoot}function k(e){let{overflow:t,overflowX:n,overflowY:r,display:i}=F(e);return/auto|scroll|overlay|hidden|clip/.test(t+r+n)&&i!==`inline`&&i!==`contents`}function A(e){return/^(table|td|th)$/.test(S(e))}function j(e){try{if(e.matches(`:popover-open`))return!0}catch{}try{return e.matches(`:modal`)}catch{return!1}}var ee=/transform|translate|scale|rotate|perspective|filter/,M=/paint|layout|strict|content/,N=e=>!!e&&e!==`none`,te;function P(e){let t=E(e)?F(e):e;return N(t.transform)||N(t.translate)||N(t.scale)||N(t.rotate)||N(t.perspective)||!re()&&(N(t.backdropFilter)||N(t.filter))||ee.test(t.willChange||``)||M.test(t.contain||``)}function ne(e){let t=I(e);for(;D(t)&&!ie(t);){if(P(t))return t;if(j(t))return null;t=I(t)}return null}function re(){return te??=typeof CSS<`u`&&CSS.supports&&CSS.supports(`-webkit-backdrop-filter`,`none`),te}function ie(e){return/^(html|body|#document)$/.test(S(e))}function F(e){return C(e).getComputedStyle(e)}function ae(e){return E(e)?{scrollLeft:e.scrollLeft,scrollTop:e.scrollTop}:{scrollLeft:e.scrollX,scrollTop:e.scrollY}}function I(e){if(S(e)===`html`)return e;let t=e.assignedSlot||e.parentNode||O(e)&&e.host||w(e);return O(t)?t.host:t}function oe(e){let t=I(e);return ie(t)?(e.ownerDocument||e).body:D(t)&&k(t)?t:oe(t)}function L(e,t,n){t===void 0&&(t=[]),n===void 0&&(n=!0);let r=oe(e),i=r===e.ownerDocument?.body,a=C(r);if(i){let e=se(a);return t.concat(a,a.visualViewport||[],k(r)?r:[],e&&n?L(e):[])}else return t.concat(r,L(r,[],n))}function se(e){return e.parent&&Object.getPrototypeOf(e.parent)?e.frameElement:null}var R={...g},ce={};function z(e,t){let n=g.useRef(ce);return n.current===ce&&(n.current=e(t)),n}var B=R.useInsertionEffect,le=B&&B!==R.useLayoutEffect?B:e=>e();function ue(e){let t=z(de).current;return t.next=e,le(t.effect),t.trampoline}function de(){let e={next:void 0,callback:fe,trampoline:(...t)=>e.callback?.(...t),effect:()=>{e.callback=e.next}};return e}function fe(){}var pe=typeof document<`u`?g.useLayoutEffect:()=>{};function V(e,t){if(e&&!t)return e;if(!e&&t)return t;if(e||t)return{...e,...t}}var H={};function U(e,t,n,r,i){if(!n&&!r&&!i&&!e)return W(t);let a=W(e);return t&&(a=G(a,t)),n&&(a=G(a,n)),r&&(a=G(a,r)),i&&(a=G(a,i)),a}function me(e){if(e.length===0)return H;if(e.length===1)return W(e[0]);let t=W(e[0]);for(let n=1;n<e.length;n+=1)t=G(t,e[n]);return t}function W(e){return K(e)?{...ve(e,H)}:he(e)}function G(e,t){return K(t)?ve(t,e):ge(e,t)}function he(e){let t={...e};for(let e in t){let n=t[e];_e(e,n)&&(t[e]=be(n))}return t}function ge(e,t){if(!t)return e;for(let n in t){let r=t[n];switch(n){case`style`:e[n]=V(e.style,r);break;case`className`:e[n]=xe(e.className,r);break;default:_e(n,r)?e[n]=ye(e[n],r):e[n]=r}}return e}function _e(e,t){let n=e.charCodeAt(0),r=e.charCodeAt(1),i=e.charCodeAt(2);return n===111&&r===110&&i>=65&&i<=90&&(typeof t==`function`||t===void 0)}function K(e){return typeof e==`function`}function ve(e,t){return K(e)?e(t):e??H}function ye(e,t){return t?e?(...n)=>{let r=n[0];if(Se(r)){let i=r;q(i);let a=t(...n);return i.baseUIHandlerPrevented||e?.(...n),a}let i=t(...n);return e?.(...n),i}:be(t):e}function be(e){return e&&((...t)=>{let n=t[0];return Se(n)&&q(n),e(...t)})}function q(e){return e.preventBaseUIHandler=()=>{e.baseUIHandlerPrevented=!0},e}function xe(e,t){return t?e?t+` `+e:t:e}function Se(e){return typeof e==`object`&&!!e&&`nativeEvent`in e}function Ce(e,t){return function(n,...r){let i=new URL(e);return i.searchParams.set(`code`,n.toString()),r.forEach(e=>i.searchParams.append(`args[]`,e)),`${t} error #${n}; visit ${i} for the full message.`}}var J=Ce(`https://base-ui.com/production-error`,`Base UI`),we=g.createContext(void 0);function Te(e=!1){let t=g.useContext(we);if(t===void 0&&!e)throw Error(J(16));return t}function Ee(e){let{focusableWhenDisabled:t,disabled:n,composite:r=!1,tabIndex:i=0,isNativeButton:a}=e,o=r&&t!==!1,s=r&&t===!1;return{props:g.useMemo(()=>{let e={onKeyDown(e){n&&t&&e.key!==`Tab`&&e.preventDefault()}};return r||(e.tabIndex=i,!a&&n&&(e.tabIndex=t?i:-1)),(a&&(t||o)||!a&&n)&&(e[`aria-disabled`]=n),a&&(!t||s)&&(e.disabled=n),e},[r,n,t,o,s,a,i])}}function De(e){return e?.ownerDocument||document}function Y(e,t,{detail:n=0}={}){e.dispatchEvent(new(C(e)).PointerEvent(`click`,{bubbles:!0,cancelable:!0,composed:!0,detail:n,shiftKey:t.shiftKey,ctrlKey:t.ctrlKey,altKey:t.altKey,metaKey:t.metaKey}))}function Oe(e={}){let{disabled:t=!1,focusableWhenDisabled:n,tabIndex:r=0,native:i=!0,composite:a}=e,o=g.useRef(null),s=Te(!0),c=a??s!==void 0,{props:l}=Ee({focusableWhenDisabled:n,disabled:t,composite:c,tabIndex:r,isNativeButton:i}),u=g.useCallback(()=>{let e=o.current;X(e)&&c&&t&&l.disabled===void 0&&e.disabled&&(e.disabled=!1)},[t,l.disabled,c]);return pe(u,[u]),{getButtonProps:g.useCallback((e={})=>{let{onClick:n,onMouseDown:r,onKeyUp:a,onKeyDown:o,onPointerDown:s,...u}=e;return U({onClick(e){if(t){e.preventDefault();return}n?.(e)},onMouseDown(e){t||r?.(e)},onKeyDown(e){if(t||(q(e),o?.(e),e.baseUIHandlerPrevented))return;let n=e.target===e.currentTarget,r=e.currentTarget,a=X(r),s=!i&&ke(r),l=n&&(i?a:!s),u=e.key===`Enter`,d=e.key===` `,f=r.getAttribute(`role`),p=f?.startsWith(`menuitem`)||f===`option`||f===`gridcell`;if(n&&c&&d){if(e.defaultPrevented&&p)return;e.preventDefault(),(!i||a)&&(e.preventBaseUIHandler(),Y(r,e));return}if(!l||i||!d&&!u){n&&s&&d&&e.preventDefault();return}e.defaultPrevented||(e.preventDefault(),u&&(e.preventBaseUIHandler(),Y(r,e)))},onKeyUp(e){if(!t){if(q(e),a?.(e),e.target===e.currentTarget&&i&&c&&X(e.currentTarget)&&e.key===` `){e.preventDefault();return}e.baseUIHandlerPrevented||e.target===e.currentTarget&&!i&&!c&&!e.defaultPrevented&&e.key===` `&&(e.preventBaseUIHandler(),Y(e.currentTarget,e))}},onPointerDown(e){if(t){e.preventDefault();return}s?.(e)}},i?{type:`button`}:{role:`button`},l,u)},[t,l,c,i]),buttonRef:ue(e=>{o.current=e,u()})}}function X(e){return D(e)&&e.tagName===`BUTTON`}function ke(e){return D(e)&&e.tagName===`A`&&!!e.href}function Z(e,t,n,r){let i=z(je).current;return Me(i,e,t,n,r)&&Pe(i,[e,t,n,r]),i.callback}function Ae(e){let t=z(je).current;return Ne(t,e)&&Pe(t,e),t.callback}function je(){return{callback:null,cleanup:null,refs:[]}}function Me(e,t,n,r,i){return e.refs[0]!==t||e.refs[1]!==n||e.refs[2]!==r||e.refs[3]!==i}function Ne(e,t){return e.refs.length!==t.length||e.refs.some((e,n)=>e!==t[n])}function Pe(e,t){if(e.refs=t,t.every(e=>e==null)){e.callback=null;return}e.callback=n=>{if(e.cleanup&&=(e.cleanup(),null),n!=null){let r=Array(t.length).fill(null);for(let e=0;e<t.length;e+=1){let i=t[e];if(i!=null)switch(typeof i){case`function`:{let t=i(n);typeof t==`function`&&(r[e]=t);break}case`object`:i.current=n;break;default:}}e.cleanup=()=>{for(let e=0;e<t.length;e+=1){let n=t[e];if(n!=null)switch(typeof n){case`function`:{let t=r[e];typeof t==`function`?t():n(null);break}case`object`:n.current=null;break;default:}}}}}}var Fe=19;function Ie(e){return Fe>=e}function Le(e){if(!g.isValidElement(e))return null;let t=e,n=t.props;return(Ie(19)?n?.ref:t.ref)??null}function Re(){}var ze=Object.freeze([]),Q=Object.freeze({});function Be(e,t){let n={};for(let r in e){let i=e[r];if(t?.hasOwnProperty(r)){let e=t[r](i);e!=null&&Object.assign(n,e);continue}i===!0?n[`data-${r.toLowerCase()}`]=``:i&&(n[`data-${r.toLowerCase()}`]=i.toString())}return n}function Ve(e,t){return typeof e==`function`?e(t):e}function He(e,t){return typeof e==`function`?e(t):e}function Ue(e,t,n={}){let r=t.render,i=We(t,n);return n.enabled===!1?null:qe(e,r,i,n.state??Q)}function We(e,t={}){let{className:n,style:r,render:i}=e,{state:a=Q,ref:o,props:s,stateAttributesMapping:c,enabled:l=!0}=t,u=l?Ve(n,a):void 0,d=l?He(r,a):void 0,f=l?Be(a,c):Q,p=l&&s?Ge(s):void 0,m=l?V(f,p)??{}:Q;return typeof document<`u`&&(l?Array.isArray(o)?m.ref=Ae([m.ref,Le(i),...o]):m.ref=Z(m.ref,Le(i),o):Z(null,null)),l?(u!==void 0&&(m.className=xe(m.className,u)),d!==void 0&&(m.style=V(m.style,d)),m):Q}function Ge(e){return Array.isArray(e)?me(e):U(void 0,e)}var Ke=Symbol.for(`react.lazy`);function qe(e,t,n,r){if(t){if(typeof t==`function`)return t(n,r);let e=U(n,t.props);e.ref=n.ref;let i=t;return i?.$$typeof===Ke&&(i=g.Children.toArray(t)[0]),g.cloneElement(i,e)}if(e&&typeof e==`string`)return Je(e,n);throw Error(J(8))}function Je(e,t){return e===`button`?(0,g.createElement)(`button`,{type:`button`,...t,key:t.key}):e===`img`?(0,g.createElement)(`img`,{alt:``,...t,key:t.key}):g.createElement(e,t)}var Ye=g.forwardRef(function(e,t){let{render:n,className:r,disabled:i=!1,focusableWhenDisabled:a=!1,nativeButton:o=!0,style:s,...c}=e,{getButtonProps:l,buttonRef:u}=Oe({disabled:i,focusableWhenDisabled:a,native:o});return Ue(`button`,e,{state:{disabled:i},ref:[t,u],props:[c,l]})}),Xe={danger:`danger`,primary:`primary`,secondary:`neutral`};function Ze({"aria-busy":e,"aria-label":t,"aria-labelledby":n,appearance:r=`solid`,children:i,className:a,disabled:o,intent:s,loading:c=!1,loadingLabel:l,nativeButton:u=!0,uiSize:d=`md`,type:f=`button`,variant:p=`secondary`,...m}){let h=s??Xe[p];return(0,y.jsxs)(Ye,{...m,"aria-busy":c?!0:e,"aria-label":c?l??t:t,"aria-labelledby":c&&l!==void 0?void 0:n,className:v(`tr-btn`,a),"data-appearance":r,"data-intent":h,"data-ui-size":d,"data-variant":p,disabled:o||c,nativeButton:u,type:u?f:void 0,children:[c?(0,y.jsx)(b,{decorative:!0,uiSize:`md`}):null,i]})}function Qe(e){return Ue(e.defaultTagName??`div`,e,e)}var $e=h(),et=(e,t,n,r)=>{let i=[n,{code:t,...r||{}}];if(e?.services?.logger?.forward)return e.services.logger.forward(i,`warn`,`react-i18next::`,!0);$(i[0])&&(i[0]=`react-i18next:: ${i[0]}`),e?.services?.logger?.warn?e.services.logger.warn(...i):console?.warn&&console.warn(...i)},tt={},nt=(e,t,n,r)=>{$(n)&&tt[n]||($(n)&&(tt[n]=new Date),et(e,t,n,r))},rt=(e,t)=>()=>{if(e.isInitialized)t();else{let n=()=>{setTimeout(()=>{e.off(`initialized`,n)},0),t()};e.on(`initialized`,n)}},it=(e,t,n)=>{e.loadNamespaces(t,rt(e,n))},at=(e,t,n,r)=>{if($(n)&&(n=[n]),e.options.preload&&e.options.preload.indexOf(t)>-1)return it(e,n,r);n.forEach(t=>{e.options.ns.indexOf(t)<0&&e.options.ns.push(t)}),e.loadLanguages(t,rt(e,r))},ot=(e,t,n={})=>!t.languages||!t.languages.length?(nt(t,`NO_LANGUAGES`,`i18n.languages were undefined or empty`,{languages:t.languages}),!0):t.hasLoadedNamespace(e,{lng:n.lng,precheck:(t,r)=>{if(n.bindI18n&&n.bindI18n.indexOf(`languageChanging`)>-1&&t.services.backendConnector.backend&&t.isLanguageChangingTo&&!r(t.isLanguageChangingTo,e))return!1}}),$=e=>typeof e==`string`,st=e=>typeof e==`object`&&!!e,ct=/&(?:amp|#38|lt|#60|gt|#62|apos|#39|quot|#34|nbsp|#160|copy|#169|reg|#174|hellip|#8230|#x2F|#47);/g,lt={"&amp;":`&`,"&#38;":`&`,"&lt;":`<`,"&#60;":`<`,"&gt;":`>`,"&#62;":`>`,"&apos;":`'`,"&#39;":`'`,"&quot;":`"`,"&#34;":`"`,"&nbsp;":` `,"&#160;":` `,"&copy;":`©`,"&#169;":`©`,"&reg;":`®`,"&#174;":`®`,"&hellip;":`…`,"&#8230;":`…`,"&#x2F;":`/`,"&#47;":`/`},ut=e=>lt[e],dt={bindI18n:`languageChanged`,bindI18nStore:``,transEmptyNodeValue:``,transSupportBasicHtmlNodes:!0,transWrapTextNodes:``,transKeepBasicHtmlNodesFor:[`br`,`strong`,`i`,`p`],useSuspense:!0,unescape:e=>e.replace(ct,ut),transDefaultProps:void 0},ft=(e={})=>{dt={...dt,...e}},pt=()=>dt,mt,ht=e=>{mt=e},gt=()=>mt,_t={type:`3rdParty`,init(e){ft(e.options.react),ht(e)}},vt=(0,g.createContext)(),yt=class{constructor(){this.usedNamespaces={}}addUsedNamespaces(e){e.forEach(e=>{this.usedNamespaces[e]||(this.usedNamespaces[e]=!0)})}getUsedNamespaces(){return Object.keys(this.usedNamespaces)}},bt={t:(e,t)=>{if($(t))return t;if(st(t)&&$(t.defaultValue))return t.defaultValue;if(typeof e==`function`)return``;if(Array.isArray(e)){let t=e[e.length-1];return typeof t==`function`?``:t}return e},ready:!1},xt=()=>()=>{},St=(e,t={})=>{let{i18n:n}=t,{i18n:r,defaultNS:i}=(0,g.useContext)(vt)||{},a=n||r||gt();a&&!a.reportNamespaces&&(a.reportNamespaces=new yt),a||nt(a,`NO_I18NEXT_INSTANCE`,`useTranslation: You will need to pass in an i18next instance by using initReactI18next`);let o=(0,g.useMemo)(()=>({...pt(),...a?.options?.react,...t}),[a,t]),{useSuspense:s,keyPrefix:c}=o,l=e||i||a?.options?.defaultNS,u=$(l)?[l]:l||[`translation`],d=(0,g.useMemo)(()=>u,u);a?.reportNamespaces?.addUsedNamespaces?.(d);let f=(0,g.useRef)(0),p=(0,g.useCallback)(e=>{if(!a)return xt;let{bindI18n:t,bindI18nStore:n}=o,r=()=>{f.current+=1,e()};return t&&a.on(t,r),n&&a.store.on(n,r),()=>{t&&t.split(` `).forEach(e=>a.off(e,r)),n&&n.split(` `).forEach(e=>a.store.off(e,r))}},[a,o]),m=(0,g.useRef)(),h=(0,g.useCallback)(()=>{if(!a)return bt;let e=!!(a.isInitialized||a.initializedStoreOnce)&&d.every(e=>ot(e,a,o)),n=t.lng||a.language,r=f.current,i=m.current;if(i&&i.ready===e&&i.lng===n&&i.keyPrefix===c&&i.revision===r)return i;let s={t:a.getFixedT(n,o.nsMode===`fallback`?d:d[0],c,{scopeNs:d}),ready:e,lng:n,keyPrefix:c,revision:r};return m.current=s,s},[a,d,c,o,t.lng]),[_,v]=(0,g.useState)(0),{t:y,ready:b}=(0,$e.useSyncExternalStore)(p,h,h);(0,g.useEffect)(()=>{if(a&&!b&&!s){let e=()=>v(e=>e+1);t.lng?at(a,t.lng,d,e):it(a,d,e)}},[a,t.lng,d,b,s,_]);let x=a||{},S=(0,g.useRef)(null),C=(0,g.useRef)(),w=e=>{let t=Object.getOwnPropertyDescriptors(e);t.__original&&delete t.__original;let n=Object.create(Object.getPrototypeOf(e),t);if(!Object.prototype.hasOwnProperty.call(n,`__original`))try{Object.defineProperty(n,"__original",{value:e,writable:!1,enumerable:!1,configurable:!1})}catch{}return n},T=(0,g.useMemo)(()=>{let e=x,t=e?.language,n=e;e&&(S.current&&S.current.__original===e&&C.current===t?n=S.current:(n=w(e),S.current=n,C.current=t));let r=!b&&!s?(...e)=>(nt(a,`USE_T_BEFORE_READY`,`useTranslation: t was called before ready. When using useSuspense: false, make sure to check the ready flag before using t.`),y(...e)):y,i=[r,n,b];return i.t=r,i.i18n=n,i.ready=b,i},[y,x,b,x.resolvedLanguage,x.language,x.languages]);if(a&&s&&!b)throw new Promise(e=>{let n=()=>e();t.lng?at(a,t.lng,d,n):it(a,d,n)});return T},Ct=class e extends Error{code;status;constructor(e,t,n){super(n),this.name=`IssuaryError`,this.code=e,this.status=t}static async fromResponse(t){let n=`UNKNOWN_ERROR`,r=t.statusText||`An unknown error occurred`;try{let e=await t.json();e.code&&(n=e.code),e.message&&(r=e.message)}catch{}return new e(n,t.status,r)}};function wt(e){let{as:t,variant:n=`body`,color:r,align:i,truncate:a,weight:o,className:s,...c}=e;return(0,g.createElement)(t??`span`,{...c,className:_(`tr-text`,s),"data-variant":n,"data-color":r,"data-align":i,"data-truncate":a?`true`:void 0,"data-weight":o})}var Tt=(...e)=>e.filter((e,t,n)=>!!e&&e.trim()!==``&&n.indexOf(e)===t).join(` `).trim(),Et=e=>e.replace(/([a-z0-9])([A-Z])/g,`$1-$2`).toLowerCase(),Dt=e=>e.replace(/^([A-Z])|[\s-_]+(\w)/g,(e,t,n)=>n?n.toUpperCase():t.toLowerCase()),Ot=e=>{let t=Dt(e);return t.charAt(0).toUpperCase()+t.slice(1)},kt={xmlns:`http://www.w3.org/2000/svg`,width:24,height:24,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,strokeWidth:2,strokeLinecap:`round`,strokeLinejoin:`round`},At=e=>{for(let t in e)if(t.startsWith(`aria-`)||t===`role`||t===`title`)return!0;return!1},jt=(0,g.createContext)({}),Mt=()=>(0,g.useContext)(jt),Nt=(0,g.forwardRef)(({color:e,size:t,strokeWidth:n,absoluteStrokeWidth:r,className:i=``,children:a,iconNode:o,...s},c)=>{let{size:l=24,strokeWidth:u=2,absoluteStrokeWidth:d=!1,color:f=`currentColor`,className:p=``}=Mt()??{},m=r??d?Number(n??u)*24/Number(t??l):n??u;return(0,g.createElement)(`svg`,{ref:c,...kt,width:t??l??kt.width,height:t??l??kt.height,stroke:e??f,strokeWidth:m,className:Tt(`lucide`,p,i),...!a&&!At(s)&&{"aria-hidden":`true`},...s},[...o.map(([e,t])=>(0,g.createElement)(e,t)),...Array.isArray(a)?a:[a]])}),Pt=(e,t)=>{let n=(0,g.forwardRef)(({className:n,...r},i)=>(0,g.createElement)(Nt,{ref:i,iconNode:t,className:Tt(`lucide-${Et(Ot(e))}`,`lucide-${e}`,n),...r}));return n.displayName=Ot(e),n};export{L as A,A as B,R as C,se as D,w as E,D as F,v as G,re as H,ie as I,d as J,h as K,T as L,C as M,P as N,S as O,E as P,k as R,z as S,ne as T,b as U,j as V,_ as W,s as X,o as Y,l as Z,De as _,_t as a,pe as b,Ue as c,Q as d,Re as f,Y as g,Oe as h,St as i,I as j,ae as k,He as l,Z as m,wt as n,Qe as o,Ie as p,p as q,Ct as r,Ze as s,Pt as t,ze as u,J as v,F as w,ue as x,U as y,O as z};
2
- //# sourceMappingURL=createLucideIcon-BPpAIXR_.js.map
1
+ var e=Object.create,t=Object.defineProperty,n=Object.getOwnPropertyDescriptor,r=Object.getOwnPropertyNames,i=Object.getPrototypeOf,a=Object.prototype.hasOwnProperty,o=(e,t)=>()=>(t||(e((t={exports:{}}).exports,t),e=null),t.exports),s=(e,n)=>{let r={};for(var i in e)t(r,i,{get:e[i],enumerable:!0});return n||t(r,Symbol.toStringTag,{value:`Module`}),r},c=(e,i,o,s)=>{if(i&&typeof i==`object`||typeof i==`function`)for(var c=r(i),l=0,u=c.length,d;l<u;l++)d=c[l],!a.call(e,d)&&d!==o&&t(e,d,{get:(e=>i[e]).bind(null,d),enumerable:!(s=n(i,d))||s.enumerable});return e},l=(n,r,a)=>(a=n==null?{}:e(i(n)),c(r||!n||!n.__esModule?t(a,`default`,{value:n,enumerable:!0}):a,n)),u=o((e=>{var t=Symbol.for(`react.transitional.element`),n=Symbol.for(`react.portal`),r=Symbol.for(`react.fragment`),i=Symbol.for(`react.strict_mode`),a=Symbol.for(`react.profiler`),o=Symbol.for(`react.consumer`),s=Symbol.for(`react.context`),c=Symbol.for(`react.forward_ref`),l=Symbol.for(`react.suspense`),u=Symbol.for(`react.memo`),d=Symbol.for(`react.lazy`),f=Symbol.for(`react.activity`),p=Symbol.iterator;function m(e){return typeof e!=`object`||!e?null:(e=p&&e[p]||e[`@@iterator`],typeof e==`function`?e:null)}var h={isMounted:function(){return!1},enqueueForceUpdate:function(){},enqueueReplaceState:function(){},enqueueSetState:function(){}},g=Object.assign,_={};function v(e,t,n){this.props=e,this.context=t,this.refs=_,this.updater=n||h}v.prototype.isReactComponent={},v.prototype.setState=function(e,t){if(typeof e!=`object`&&typeof e!=`function`&&e!=null)throw Error(`takes an object of state variables to update or a function which returns an object of state variables.`);this.updater.enqueueSetState(this,e,t,`setState`)},v.prototype.forceUpdate=function(e){this.updater.enqueueForceUpdate(this,e,`forceUpdate`)};function y(){}y.prototype=v.prototype;function b(e,t,n){this.props=e,this.context=t,this.refs=_,this.updater=n||h}var x=b.prototype=new y;x.constructor=b,g(x,v.prototype),x.isPureReactComponent=!0;var S=Array.isArray;function C(){}var w={H:null,A:null,T:null,S:null},T=Object.prototype.hasOwnProperty;function E(e,n,r){var i=r.ref;return{$$typeof:t,type:e,key:n,ref:i===void 0?null:i,props:r}}function D(e,t){return E(e.type,t,e.props)}function O(e){return typeof e==`object`&&!!e&&e.$$typeof===t}function k(e){var t={"=":`=0`,":":`=2`};return`$`+e.replace(/[=:]/g,function(e){return t[e]})}var A=/\/+/g;function j(e,t){return typeof e==`object`&&e&&e.key!=null?k(``+e.key):t.toString(36)}function ee(e){switch(e.status){case`fulfilled`:return e.value;case`rejected`:throw e.reason;default:switch(typeof e.status==`string`?e.then(C,C):(e.status=`pending`,e.then(function(t){e.status===`pending`&&(e.status=`fulfilled`,e.value=t)},function(t){e.status===`pending`&&(e.status=`rejected`,e.reason=t)})),e.status){case`fulfilled`:return e.value;case`rejected`:throw e.reason}}throw e}function M(e,r,i,a,o){var s=typeof e;(s===`undefined`||s===`boolean`)&&(e=null);var c=!1;if(e===null)c=!0;else switch(s){case`bigint`:case`string`:case`number`:c=!0;break;case`object`:switch(e.$$typeof){case t:case n:c=!0;break;case d:return c=e._init,M(c(e._payload),r,i,a,o)}}if(c)return o=o(e),c=a===``?`.`+j(e,0):a,S(o)?(i=``,c!=null&&(i=c.replace(A,`$&/`)+`/`),M(o,r,i,``,function(e){return e})):o!=null&&(O(o)&&(o=D(o,i+(o.key==null||e&&e.key===o.key?``:(``+o.key).replace(A,`$&/`)+`/`)+c)),r.push(o)),1;c=0;var l=a===``?`.`:a+`:`;if(S(e))for(var u=0;u<e.length;u++)a=e[u],s=l+j(a,u),c+=M(a,r,i,s,o);else if(u=m(e),typeof u==`function`)for(e=u.call(e),u=0;!(a=e.next()).done;)a=a.value,s=l+j(a,u++),c+=M(a,r,i,s,o);else if(s===`object`){if(typeof e.then==`function`)return M(ee(e),r,i,a,o);throw r=String(e),Error(`Objects are not valid as a React child (found: `+(r===`[object Object]`?`object with keys {`+Object.keys(e).join(`, `)+`}`:r)+`). If you meant to render a collection of children, use an array instead.`)}return c}function N(e,t,n){if(e==null)return e;var r=[],i=0;return M(e,r,``,``,function(e){return t.call(n,e,i++)}),r}function te(e){if(e._status===-1){var t=e._result;t=t(),t.then(function(t){(e._status===0||e._status===-1)&&(e._status=1,e._result=t)},function(t){(e._status===0||e._status===-1)&&(e._status=2,e._result=t)}),e._status===-1&&(e._status=0,e._result=t)}if(e._status===1)return e._result.default;throw e._result}var P=typeof reportError==`function`?reportError:function(e){if(typeof window==`object`&&typeof window.ErrorEvent==`function`){var t=new window.ErrorEvent(`error`,{bubbles:!0,cancelable:!0,message:typeof e==`object`&&e&&typeof e.message==`string`?String(e.message):String(e),error:e});if(!window.dispatchEvent(t))return}else if(typeof process==`object`&&typeof process.emit==`function`){process.emit(`uncaughtException`,e);return}console.error(e)},ne={map:N,forEach:function(e,t,n){N(e,function(){t.apply(this,arguments)},n)},count:function(e){var t=0;return N(e,function(){t++}),t},toArray:function(e){return N(e,function(e){return e})||[]},only:function(e){if(!O(e))throw Error(`React.Children.only expected to receive a single React element child.`);return e}};e.Activity=f,e.Children=ne,e.Component=v,e.Fragment=r,e.Profiler=a,e.PureComponent=b,e.StrictMode=i,e.Suspense=l,e.__CLIENT_INTERNALS_DO_NOT_USE_OR_WARN_USERS_THEY_CANNOT_UPGRADE=w,e.__COMPILER_RUNTIME={__proto__:null,c:function(e){return w.H.useMemoCache(e)}},e.cache=function(e){return function(){return e.apply(null,arguments)}},e.cacheSignal=function(){return null},e.cloneElement=function(e,t,n){if(e==null)throw Error(`The argument must be a React element, but you passed `+e+`.`);var r=g({},e.props),i=e.key;if(t!=null)for(a in t.key!==void 0&&(i=``+t.key),t)!T.call(t,a)||a===`key`||a===`__self`||a===`__source`||a===`ref`&&t.ref===void 0||(r[a]=t[a]);var a=arguments.length-2;if(a===1)r.children=n;else if(1<a){for(var o=Array(a),s=0;s<a;s++)o[s]=arguments[s+2];r.children=o}return E(e.type,i,r)},e.createContext=function(e){return e={$$typeof:s,_currentValue:e,_currentValue2:e,_threadCount:0,Provider:null,Consumer:null},e.Provider=e,e.Consumer={$$typeof:o,_context:e},e},e.createElement=function(e,t,n){var r,i={},a=null;if(t!=null)for(r in t.key!==void 0&&(a=``+t.key),t)T.call(t,r)&&r!==`key`&&r!==`__self`&&r!==`__source`&&(i[r]=t[r]);var o=arguments.length-2;if(o===1)i.children=n;else if(1<o){for(var s=Array(o),c=0;c<o;c++)s[c]=arguments[c+2];i.children=s}if(e&&e.defaultProps)for(r in o=e.defaultProps,o)i[r]===void 0&&(i[r]=o[r]);return E(e,a,i)},e.createRef=function(){return{current:null}},e.forwardRef=function(e){return{$$typeof:c,render:e}},e.isValidElement=O,e.lazy=function(e){return{$$typeof:d,_payload:{_status:-1,_result:e},_init:te}},e.memo=function(e,t){return{$$typeof:u,type:e,compare:t===void 0?null:t}},e.startTransition=function(e){var t=w.T,n={};w.T=n;try{var r=e(),i=w.S;i!==null&&i(n,r),typeof r==`object`&&r&&typeof r.then==`function`&&r.then(C,P)}catch(e){P(e)}finally{t!==null&&n.types!==null&&(t.types=n.types),w.T=t}},e.unstable_useCacheRefresh=function(){return w.H.useCacheRefresh()},e.use=function(e){return w.H.use(e)},e.useActionState=function(e,t,n){return w.H.useActionState(e,t,n)},e.useCallback=function(e,t){return w.H.useCallback(e,t)},e.useContext=function(e){return w.H.useContext(e)},e.useDebugValue=function(){},e.useDeferredValue=function(e,t){return w.H.useDeferredValue(e,t)},e.useEffect=function(e,t){return w.H.useEffect(e,t)},e.useEffectEvent=function(e){return w.H.useEffectEvent(e)},e.useId=function(){return w.H.useId()},e.useImperativeHandle=function(e,t,n){return w.H.useImperativeHandle(e,t,n)},e.useInsertionEffect=function(e,t){return w.H.useInsertionEffect(e,t)},e.useLayoutEffect=function(e,t){return w.H.useLayoutEffect(e,t)},e.useMemo=function(e,t){return w.H.useMemo(e,t)},e.useOptimistic=function(e,t){return w.H.useOptimistic(e,t)},e.useReducer=function(e,t,n){return w.H.useReducer(e,t,n)},e.useRef=function(e){return w.H.useRef(e)},e.useState=function(e){return w.H.useState(e)},e.useSyncExternalStore=function(e,t,n){return w.H.useSyncExternalStore(e,t,n)},e.useTransition=function(){return w.H.useTransition()},e.version=`19.2.7`})),d=o(((e,t)=>{t.exports=u()})),f=o((e=>{var t=Symbol.for(`react.transitional.element`),n=Symbol.for(`react.fragment`);function r(e,n,r){var i=null;if(r!==void 0&&(i=``+r),n.key!==void 0&&(i=``+n.key),`key`in n)for(var a in r={},n)a!==`key`&&(r[a]=n[a]);else r=n;return n=r.ref,{$$typeof:t,type:e,key:i,ref:n===void 0?null:n,props:r}}e.Fragment=n,e.jsx=r,e.jsxs=r})),p=o(((e,t)=>{t.exports=f()})),m=o((e=>{var t=d();function n(e,t){return e===t&&(e!==0||1/e==1/t)||e!==e&&t!==t}var r=typeof Object.is==`function`?Object.is:n,i=t.useState,a=t.useEffect,o=t.useLayoutEffect,s=t.useDebugValue;function c(e,t){var n=t(),r=i({inst:{value:n,getSnapshot:t}}),c=r[0].inst,u=r[1];return o(function(){c.value=n,c.getSnapshot=t,l(c)&&u({inst:c})},[e,n,t]),a(function(){return l(c)&&u({inst:c}),e(function(){l(c)&&u({inst:c})})},[e]),s(n),n}function l(e){var t=e.getSnapshot;e=e.value;try{var n=t();return!r(e,n)}catch{return!0}}function u(e,t){return t()}var f=typeof window>`u`||window.document===void 0||window.document.createElement===void 0?u:c;e.useSyncExternalStore=t.useSyncExternalStore===void 0?f:t.useSyncExternalStore})),h=o(((e,t)=>{t.exports=m()})),g=l(d(),1);function _(...e){return e.filter(Boolean).join(` `)}function v(e,t){return typeof t==`function`?n=>_(e,t(n)):_(e,t)}var y=p();function b({className:e,decorative:t=!1,label:n=`Loading`,uiSize:r=`md`,variant:i=`current`,...a}){let o=n.trim()===``?`Loading`:n,s={...a,className:_(`tr-spinner`,e),"data-ui-size":r,"data-variant":i};return t?(0,y.jsx)(`span`,{...s,"aria-hidden":`true`}):(0,y.jsx)(`span`,{...s,"aria-label":o,role:`status`})}function x(){return typeof window<`u`}function S(e){return T(e)?(e.nodeName||``).toLowerCase():`#document`}function C(e){var t;return(e==null||(t=e.ownerDocument)==null?void 0:t.defaultView)||window}function w(e){return((T(e)?e.ownerDocument:e.document)||window.document)?.documentElement}function T(e){return x()?e instanceof Node||e instanceof C(e).Node:!1}function E(e){return x()?e instanceof Element||e instanceof C(e).Element:!1}function D(e){return x()?e instanceof HTMLElement||e instanceof C(e).HTMLElement:!1}function O(e){return!x()||typeof ShadowRoot>`u`?!1:e instanceof ShadowRoot||e instanceof C(e).ShadowRoot}function k(e){let{overflow:t,overflowX:n,overflowY:r,display:i}=F(e);return/auto|scroll|overlay|hidden|clip/.test(t+r+n)&&i!==`inline`&&i!==`contents`}function A(e){return/^(table|td|th)$/.test(S(e))}function j(e){try{if(e.matches(`:popover-open`))return!0}catch{}try{return e.matches(`:modal`)}catch{return!1}}var ee=/transform|translate|scale|rotate|perspective|filter/,M=/paint|layout|strict|content/,N=e=>!!e&&e!==`none`,te;function P(e){let t=E(e)?F(e):e;return N(t.transform)||N(t.translate)||N(t.scale)||N(t.rotate)||N(t.perspective)||!re()&&(N(t.backdropFilter)||N(t.filter))||ee.test(t.willChange||``)||M.test(t.contain||``)}function ne(e){let t=I(e);for(;D(t)&&!ie(t);){if(P(t))return t;if(j(t))return null;t=I(t)}return null}function re(){return te??=typeof CSS<`u`&&CSS.supports&&CSS.supports(`-webkit-backdrop-filter`,`none`),te}function ie(e){return/^(html|body|#document)$/.test(S(e))}function F(e){return C(e).getComputedStyle(e)}function ae(e){return E(e)?{scrollLeft:e.scrollLeft,scrollTop:e.scrollTop}:{scrollLeft:e.scrollX,scrollTop:e.scrollY}}function I(e){if(S(e)===`html`)return e;let t=e.assignedSlot||e.parentNode||O(e)&&e.host||w(e);return O(t)?t.host:t}function oe(e){let t=I(e);return ie(t)?(e.ownerDocument||e).body:D(t)&&k(t)?t:oe(t)}function L(e,t,n){t===void 0&&(t=[]),n===void 0&&(n=!0);let r=oe(e),i=r===e.ownerDocument?.body,a=C(r);if(i){let e=se(a);return t.concat(a,a.visualViewport||[],k(r)?r:[],e&&n?L(e):[])}else return t.concat(r,L(r,[],n))}function se(e){return e.parent&&Object.getPrototypeOf(e.parent)?e.frameElement:null}var R={...g},ce={};function z(e,t){let n=g.useRef(ce);return n.current===ce&&(n.current=e(t)),n}var B=R.useInsertionEffect,le=B&&B!==R.useLayoutEffect?B:e=>e();function ue(e){let t=z(de).current;return t.next=e,le(t.effect),t.trampoline}function de(){let e={next:void 0,callback:fe,trampoline:(...t)=>e.callback?.(...t),effect:()=>{e.callback=e.next}};return e}function fe(){}var pe=typeof document<`u`?g.useLayoutEffect:()=>{};function V(e,t){if(e&&!t)return e;if(!e&&t)return t;if(e||t)return{...e,...t}}var H={};function U(e,t,n,r,i){if(!n&&!r&&!i&&!e)return W(t);let a=W(e);return t&&(a=G(a,t)),n&&(a=G(a,n)),r&&(a=G(a,r)),i&&(a=G(a,i)),a}function me(e){if(e.length===0)return H;if(e.length===1)return W(e[0]);let t=W(e[0]);for(let n=1;n<e.length;n+=1)t=G(t,e[n]);return t}function W(e){return K(e)?{...ve(e,H)}:he(e)}function G(e,t){return K(t)?ve(t,e):ge(e,t)}function he(e){let t={...e};for(let e in t){let n=t[e];_e(e,n)&&(t[e]=be(n))}return t}function ge(e,t){if(!t)return e;for(let n in t){let r=t[n];switch(n){case`style`:e[n]=V(e.style,r);break;case`className`:e[n]=xe(e.className,r);break;default:_e(n,r)?e[n]=ye(e[n],r):e[n]=r}}return e}function _e(e,t){let n=e.charCodeAt(0),r=e.charCodeAt(1),i=e.charCodeAt(2);return n===111&&r===110&&i>=65&&i<=90&&(typeof t==`function`||t===void 0)}function K(e){return typeof e==`function`}function ve(e,t){return K(e)?e(t):e??H}function ye(e,t){return t?e?(...n)=>{let r=n[0];if(Se(r)){let i=r;q(i);let a=t(...n);return i.baseUIHandlerPrevented||e?.(...n),a}let i=t(...n);return e?.(...n),i}:be(t):e}function be(e){return e&&((...t)=>{let n=t[0];return Se(n)&&q(n),e(...t)})}function q(e){return e.preventBaseUIHandler=()=>{e.baseUIHandlerPrevented=!0},e}function xe(e,t){return t?e?t+` `+e:t:e}function Se(e){return typeof e==`object`&&!!e&&`nativeEvent`in e}function Ce(e,t){return function(n,...r){let i=new URL(e);return i.searchParams.set(`code`,n.toString()),r.forEach(e=>i.searchParams.append(`args[]`,e)),`${t} error #${n}; visit ${i} for the full message.`}}var J=Ce(`https://base-ui.com/production-error`,`Base UI`),we=g.createContext(void 0);function Te(e=!1){let t=g.useContext(we);if(t===void 0&&!e)throw Error(J(16));return t}function Ee(e){let{focusableWhenDisabled:t,disabled:n,composite:r=!1,tabIndex:i=0,isNativeButton:a}=e,o=r&&t!==!1,s=r&&t===!1;return{props:g.useMemo(()=>{let e={onKeyDown(e){n&&t&&e.key!==`Tab`&&e.preventDefault()}};return r||(e.tabIndex=i,!a&&n&&(e.tabIndex=t?i:-1)),(a&&(t||o)||!a&&n)&&(e[`aria-disabled`]=n),a&&(!t||s)&&(e.disabled=n),e},[r,n,t,o,s,a,i])}}function De(e){return e?.ownerDocument||document}function Y(e,t,{detail:n=0}={}){e.dispatchEvent(new(C(e)).PointerEvent(`click`,{bubbles:!0,cancelable:!0,composed:!0,detail:n,shiftKey:t.shiftKey,ctrlKey:t.ctrlKey,altKey:t.altKey,metaKey:t.metaKey}))}function Oe(e={}){let{disabled:t=!1,focusableWhenDisabled:n,tabIndex:r=0,native:i=!0,composite:a}=e,o=g.useRef(null),s=Te(!0),c=a??s!==void 0,{props:l}=Ee({focusableWhenDisabled:n,disabled:t,composite:c,tabIndex:r,isNativeButton:i}),u=g.useCallback(()=>{let e=o.current;X(e)&&c&&t&&l.disabled===void 0&&e.disabled&&(e.disabled=!1)},[t,l.disabled,c]);return pe(u,[u]),{getButtonProps:g.useCallback((e={})=>{let{onClick:n,onMouseDown:r,onKeyUp:a,onKeyDown:o,onPointerDown:s,...u}=e;return U({onClick(e){if(t){e.preventDefault();return}n?.(e)},onMouseDown(e){t||r?.(e)},onKeyDown(e){if(t||(q(e),o?.(e),e.baseUIHandlerPrevented))return;let n=e.target===e.currentTarget,r=e.currentTarget,a=X(r),s=!i&&ke(r),l=n&&(i?a:!s),u=e.key===`Enter`,d=e.key===` `,f=r.getAttribute(`role`),p=f?.startsWith(`menuitem`)||f===`option`||f===`gridcell`;if(n&&c&&d){if(e.defaultPrevented&&p)return;e.preventDefault(),(!i||a)&&(e.preventBaseUIHandler(),Y(r,e));return}if(!l||i||!d&&!u){n&&s&&d&&e.preventDefault();return}e.defaultPrevented||(e.preventDefault(),u&&(e.preventBaseUIHandler(),Y(r,e)))},onKeyUp(e){if(!t){if(q(e),a?.(e),e.target===e.currentTarget&&i&&c&&X(e.currentTarget)&&e.key===` `){e.preventDefault();return}e.baseUIHandlerPrevented||e.target===e.currentTarget&&!i&&!c&&!e.defaultPrevented&&e.key===` `&&(e.preventBaseUIHandler(),Y(e.currentTarget,e))}},onPointerDown(e){if(t){e.preventDefault();return}s?.(e)}},i?{type:`button`}:{role:`button`},l,u)},[t,l,c,i]),buttonRef:ue(e=>{o.current=e,u()})}}function X(e){return D(e)&&e.tagName===`BUTTON`}function ke(e){return D(e)&&e.tagName===`A`&&!!e.href}function Z(e,t,n,r){let i=z(je).current;return Me(i,e,t,n,r)&&Pe(i,[e,t,n,r]),i.callback}function Ae(e){let t=z(je).current;return Ne(t,e)&&Pe(t,e),t.callback}function je(){return{callback:null,cleanup:null,refs:[]}}function Me(e,t,n,r,i){return e.refs[0]!==t||e.refs[1]!==n||e.refs[2]!==r||e.refs[3]!==i}function Ne(e,t){return e.refs.length!==t.length||e.refs.some((e,n)=>e!==t[n])}function Pe(e,t){if(e.refs=t,t.every(e=>e==null)){e.callback=null;return}e.callback=n=>{if(e.cleanup&&=(e.cleanup(),null),n!=null){let r=Array(t.length).fill(null);for(let e=0;e<t.length;e+=1){let i=t[e];if(i!=null)switch(typeof i){case`function`:{let t=i(n);typeof t==`function`&&(r[e]=t);break}case`object`:i.current=n;break;default:}}e.cleanup=()=>{for(let e=0;e<t.length;e+=1){let n=t[e];if(n!=null)switch(typeof n){case`function`:{let t=r[e];typeof t==`function`?t():n(null);break}case`object`:n.current=null;break;default:}}}}}}var Fe=19;function Ie(e){return Fe>=e}function Le(e){if(!g.isValidElement(e))return null;let t=e,n=t.props;return(Ie(19)?n?.ref:t.ref)??null}function Re(){}var ze=Object.freeze([]),Q=Object.freeze({});function Be(e,t){let n={};for(let r in e){let i=e[r];if(t?.hasOwnProperty(r)){let e=t[r](i);e!=null&&Object.assign(n,e);continue}i===!0?n[`data-${r.toLowerCase()}`]=``:i&&(n[`data-${r.toLowerCase()}`]=i.toString())}return n}function Ve(e,t){return typeof e==`function`?e(t):e}function He(e,t){return typeof e==`function`?e(t):e}function Ue(e,t,n={}){let r=t.render,i=We(t,n);return n.enabled===!1?null:qe(e,r,i,n.state??Q)}function We(e,t={}){let{className:n,style:r,render:i}=e,{state:a=Q,ref:o,props:s,stateAttributesMapping:c,enabled:l=!0}=t,u=l?Ve(n,a):void 0,d=l?He(r,a):void 0,f=l?Be(a,c):Q,p=l&&s?Ge(s):void 0,m=l?V(f,p)??{}:Q;return typeof document<`u`&&(l?Array.isArray(o)?m.ref=Ae([m.ref,Le(i),...o]):m.ref=Z(m.ref,Le(i),o):Z(null,null)),l?(u!==void 0&&(m.className=xe(m.className,u)),d!==void 0&&(m.style=V(m.style,d)),m):Q}function Ge(e){return Array.isArray(e)?me(e):U(void 0,e)}var Ke=Symbol.for(`react.lazy`);function qe(e,t,n,r){if(t){if(typeof t==`function`)return t(n,r);let e=U(n,t.props);e.ref=n.ref;let i=t;return i?.$$typeof===Ke&&(i=g.Children.toArray(t)[0]),g.cloneElement(i,e)}if(e&&typeof e==`string`)return Je(e,n);throw Error(J(8))}function Je(e,t){return e===`button`?(0,g.createElement)(`button`,{type:`button`,...t,key:t.key}):e===`img`?(0,g.createElement)(`img`,{alt:``,...t,key:t.key}):g.createElement(e,t)}var Ye=g.forwardRef(function(e,t){let{render:n,className:r,disabled:i=!1,focusableWhenDisabled:a=!1,nativeButton:o=!0,style:s,...c}=e,{getButtonProps:l,buttonRef:u}=Oe({disabled:i,focusableWhenDisabled:a,native:o});return Ue(`button`,e,{state:{disabled:i},ref:[t,u],props:[c,l]})}),Xe={danger:`danger`,primary:`primary`,secondary:`neutral`};function Ze({"aria-busy":e,"aria-label":t,"aria-labelledby":n,appearance:r=`solid`,children:i,className:a,disabled:o,intent:s,loading:c=!1,loadingLabel:l,nativeButton:u=!0,uiSize:d=`md`,type:f=`button`,variant:p=`secondary`,...m}){let h=s??Xe[p];return(0,y.jsxs)(Ye,{...m,"aria-busy":c?!0:e,"aria-label":c?l??t:t,"aria-labelledby":c&&l!==void 0?void 0:n,className:v(`tr-btn`,a),"data-appearance":r,"data-intent":h,"data-ui-size":d,"data-variant":p,disabled:o||c,nativeButton:u,type:u?f:void 0,children:[c?(0,y.jsx)(b,{decorative:!0,uiSize:`md`}):null,i]})}function Qe(e){return Ue(e.defaultTagName??`div`,e,e)}var $e=h(),et=(e,t,n,r)=>{let i=[n,{code:t,...r||{}}];if(e?.services?.logger?.forward)return e.services.logger.forward(i,`warn`,`react-i18next::`,!0);$(i[0])&&(i[0]=`react-i18next:: ${i[0]}`),e?.services?.logger?.warn?e.services.logger.warn(...i):console?.warn&&console.warn(...i)},tt={},nt=(e,t,n,r)=>{$(n)&&tt[n]||($(n)&&(tt[n]=new Date),et(e,t,n,r))},rt=(e,t)=>()=>{if(e.isInitialized)t();else{let n=()=>{setTimeout(()=>{e.off(`initialized`,n)},0),t()};e.on(`initialized`,n)}},it=(e,t,n)=>{e.loadNamespaces(t,rt(e,n))},at=(e,t,n,r)=>{if($(n)&&(n=[n]),e.options.preload&&e.options.preload.indexOf(t)>-1)return it(e,n,r);n.forEach(t=>{e.options.ns.indexOf(t)<0&&e.options.ns.push(t)}),e.loadLanguages(t,rt(e,r))},ot=(e,t,n={})=>!t.languages||!t.languages.length?(nt(t,`NO_LANGUAGES`,`i18n.languages were undefined or empty`,{languages:t.languages}),!0):t.hasLoadedNamespace(e,{lng:n.lng,precheck:(t,r)=>{if(n.bindI18n&&n.bindI18n.indexOf(`languageChanging`)>-1&&t.services.backendConnector.backend&&t.isLanguageChangingTo&&!r(t.isLanguageChangingTo,e))return!1}}),$=e=>typeof e==`string`,st=e=>typeof e==`object`&&!!e,ct=/&(?:amp|#38|lt|#60|gt|#62|apos|#39|quot|#34|nbsp|#160|copy|#169|reg|#174|hellip|#8230|#x2F|#47);/g,lt={"&amp;":`&`,"&#38;":`&`,"&lt;":`<`,"&#60;":`<`,"&gt;":`>`,"&#62;":`>`,"&apos;":`'`,"&#39;":`'`,"&quot;":`"`,"&#34;":`"`,"&nbsp;":` `,"&#160;":` `,"&copy;":`©`,"&#169;":`©`,"&reg;":`®`,"&#174;":`®`,"&hellip;":`…`,"&#8230;":`…`,"&#x2F;":`/`,"&#47;":`/`},ut=e=>lt[e],dt={bindI18n:`languageChanged`,bindI18nStore:``,transEmptyNodeValue:``,transSupportBasicHtmlNodes:!0,transWrapTextNodes:``,transKeepBasicHtmlNodesFor:[`br`,`strong`,`i`,`p`],useSuspense:!0,unescape:e=>e.replace(ct,ut),transDefaultProps:void 0},ft=(e={})=>{dt={...dt,...e}},pt=()=>dt,mt,ht=e=>{mt=e},gt=()=>mt,_t={type:`3rdParty`,init(e){ft(e.options.react),ht(e)}},vt=(0,g.createContext)(),yt=class{constructor(){this.usedNamespaces={}}addUsedNamespaces(e){e.forEach(e=>{this.usedNamespaces[e]||(this.usedNamespaces[e]=!0)})}getUsedNamespaces(){return Object.keys(this.usedNamespaces)}},bt={t:(e,t)=>{if($(t))return t;if(st(t)&&$(t.defaultValue))return t.defaultValue;if(typeof e==`function`)return``;if(Array.isArray(e)){let t=e[e.length-1];return typeof t==`function`?``:t}return e},ready:!1},xt=()=>()=>{},St=(e,t={})=>{let{i18n:n}=t,{i18n:r,defaultNS:i}=(0,g.useContext)(vt)||{},a=n||r||gt();a&&!a.reportNamespaces&&(a.reportNamespaces=new yt),a||nt(a,`NO_I18NEXT_INSTANCE`,`useTranslation: You will need to pass in an i18next instance by using initReactI18next`);let o=(0,g.useMemo)(()=>({...pt(),...a?.options?.react,...t}),[a,t]),{useSuspense:s,keyPrefix:c}=o,l=e||i||a?.options?.defaultNS,u=$(l)?[l]:l||[`translation`],d=(0,g.useMemo)(()=>u,u);a?.reportNamespaces?.addUsedNamespaces?.(d);let f=(0,g.useRef)(0),p=(0,g.useCallback)(e=>{if(!a)return xt;let{bindI18n:t,bindI18nStore:n}=o,r=()=>{f.current+=1,e()};return t&&a.on(t,r),n&&a.store.on(n,r),()=>{t&&t.split(` `).forEach(e=>a.off(e,r)),n&&n.split(` `).forEach(e=>a.store.off(e,r))}},[a,o]),m=(0,g.useRef)(),h=(0,g.useCallback)(()=>{if(!a)return bt;let e=!!(a.isInitialized||a.initializedStoreOnce)&&d.every(e=>ot(e,a,o)),n=t.lng||a.language,r=f.current,i=m.current;if(i&&i.ready===e&&i.lng===n&&i.keyPrefix===c&&i.revision===r)return i;let s={t:a.getFixedT(n,o.nsMode===`fallback`?d:d[0],c,{scopeNs:d}),ready:e,lng:n,keyPrefix:c,revision:r};return m.current=s,s},[a,d,c,o,t.lng]),[_,v]=(0,g.useState)(0),{t:y,ready:b}=(0,$e.useSyncExternalStore)(p,h,h);(0,g.useEffect)(()=>{if(a&&!b&&!s){let e=()=>v(e=>e+1);t.lng?at(a,t.lng,d,e):it(a,d,e)}},[a,t.lng,d,b,s,_]);let x=a||{},S=(0,g.useRef)(null),C=(0,g.useRef)(),w=e=>{let t=Object.getOwnPropertyDescriptors(e);t.__original&&delete t.__original;let n=Object.create(Object.getPrototypeOf(e),t);if(!Object.prototype.hasOwnProperty.call(n,`__original`))try{Object.defineProperty(n,"__original",{value:e,writable:!1,enumerable:!1,configurable:!1})}catch{}return n},T=(0,g.useMemo)(()=>{let e=x,t=e?.language,n=e;e&&(S.current&&S.current.__original===e&&C.current===t?n=S.current:(n=w(e),S.current=n,C.current=t));let r=!b&&!s?(...e)=>(nt(a,`USE_T_BEFORE_READY`,`useTranslation: t was called before ready. When using useSuspense: false, make sure to check the ready flag before using t.`),y(...e)):y,i=[r,n,b];return i.t=r,i.i18n=n,i.ready=b,i},[y,x,b,x.resolvedLanguage,x.language,x.languages]);if(a&&s&&!b)throw new Promise(e=>{let n=()=>e();t.lng?at(a,t.lng,d,n):it(a,d,n)});return T},Ct=class e extends Error{code;status;constructor(e,t,n){super(n),this.name=`IssuaryError`,this.code=e,this.status=t}static async fromResponse(t){let n=`UNKNOWN_ERROR`,r=t.statusText||`An unknown error occurred`;try{let e=await t.json();e.code&&(n=e.code),e.message&&(r=e.message)}catch{}return new e(n,t.status,r)}};function wt(e){let{as:t,variant:n=`body`,color:r,align:i,truncate:a,weight:o,className:s,...c}=e;return(0,g.createElement)(t??`span`,{...c,className:_(`tr-text`,s),"data-variant":n,"data-color":r,"data-align":i,"data-truncate":a?`true`:void 0,"data-weight":o})}var Tt=(...e)=>e.filter((e,t,n)=>!!e&&e.trim()!==``&&n.indexOf(e)===t).join(` `).trim(),Et=e=>e.replace(/([a-z0-9])([A-Z])/g,`$1-$2`).toLowerCase(),Dt=e=>e.replace(/^([A-Z])|[\s-_]+(\w)/g,(e,t,n)=>n?n.toUpperCase():t.toLowerCase()),Ot=e=>{let t=Dt(e);return t.charAt(0).toUpperCase()+t.slice(1)},kt={xmlns:`http://www.w3.org/2000/svg`,width:24,height:24,viewBox:`0 0 24 24`,fill:`none`,stroke:`currentColor`,strokeWidth:2,strokeLinecap:`round`,strokeLinejoin:`round`},At=e=>{for(let t in e)if(t.startsWith(`aria-`)||t===`role`||t===`title`)return!0;return!1},jt=(0,g.createContext)({}),Mt=()=>(0,g.useContext)(jt),Nt=(0,g.forwardRef)(({color:e,size:t,strokeWidth:n,absoluteStrokeWidth:r,className:i=``,children:a,iconNode:o,...s},c)=>{let{size:l=24,strokeWidth:u=2,absoluteStrokeWidth:d=!1,color:f=`currentColor`,className:p=``}=Mt()??{},m=r??d?Number(n??u)*24/Number(t??l):n??u;return(0,g.createElement)(`svg`,{ref:c,...kt,width:t??l??kt.width,height:t??l??kt.height,stroke:e??f,strokeWidth:m,className:Tt(`lucide`,p,i),...!a&&!At(s)&&{"aria-hidden":`true`},...s},[...o.map(([e,t])=>(0,g.createElement)(e,t)),...Array.isArray(a)?a:[a]])}),Pt=(e,t)=>{let n=(0,g.forwardRef)(({className:n,...r},i)=>(0,g.createElement)(Nt,{ref:i,iconNode:t,className:Tt(`lucide-${Et(Ot(e))}`,`lucide-${e}`,n),...r}));return n.displayName=Ot(e),n};export{s as $,se as A,T as B,pe as C,F as D,R as E,C as F,re as G,O as H,P as I,v as J,b as K,E as L,ae as M,L as N,ne as O,I as P,o as Q,D as R,U as S,z as T,A as U,k as V,j as W,p as X,h as Y,d as Z,De as _,_t as a,Te as b,Ue as c,Q as d,l as et,Re as f,Y as g,Oe as h,St as i,S as j,w as k,He as l,Z as m,wt as n,Qe as o,Ie as p,_ as q,Ct as r,Ze as s,Pt as t,ze as u,Ee as v,ue as w,J as x,we as y,ie as z};
2
+ //# sourceMappingURL=createLucideIcon-D-yizrWN.js.map