@tinyrack/issuary-server 0.20.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 (2365) hide show
  1. package/dist/emails/components/email-layout.d.ts +8 -0
  2. package/dist/emails/components/email-layout.d.ts.map +1 -0
  3. package/dist/emails/components/email-layout.js +6 -0
  4. package/dist/emails/components/email-layout.js.map +1 -0
  5. package/dist/emails/i18n/en.json +26 -0
  6. package/dist/emails/i18n/index.d.ts +3 -0
  7. package/dist/emails/i18n/index.d.ts.map +1 -0
  8. package/dist/emails/i18n/index.js +12 -0
  9. package/dist/emails/i18n/index.js.map +1 -0
  10. package/dist/emails/i18n/ja.json +26 -0
  11. package/dist/emails/i18n/ko.json +26 -0
  12. package/dist/emails/render.d.ts +12 -0
  13. package/dist/emails/render.d.ts.map +1 -0
  14. package/dist/emails/render.js +22 -0
  15. package/dist/emails/render.js.map +1 -0
  16. package/dist/emails/templates/password-reset.d.ts +10 -0
  17. package/dist/emails/templates/password-reset.d.ts.map +1 -0
  18. package/dist/emails/templates/password-reset.js +10 -0
  19. package/dist/emails/templates/password-reset.js.map +1 -0
  20. package/dist/emails/templates/verification.d.ts +10 -0
  21. package/dist/emails/templates/verification.d.ts.map +1 -0
  22. package/dist/emails/templates/verification.js +10 -0
  23. package/dist/emails/templates/verification.js.map +1 -0
  24. package/dist/entities/background-job.entity.d.ts +111 -0
  25. package/dist/entities/background-job.entity.d.ts.map +1 -0
  26. package/dist/entities/background-job.entity.js +53 -0
  27. package/dist/entities/background-job.entity.js.map +1 -0
  28. package/dist/entities/base.entity.d.ts +23 -0
  29. package/dist/entities/base.entity.d.ts.map +1 -0
  30. package/dist/entities/base.entity.js +17 -0
  31. package/dist/entities/base.entity.js.map +1 -0
  32. package/dist/entities/bootstrap-state.entity.d.ts +40 -0
  33. package/dist/entities/bootstrap-state.entity.d.ts.map +1 -0
  34. package/dist/entities/bootstrap-state.entity.js +13 -0
  35. package/dist/entities/bootstrap-state.entity.js.map +1 -0
  36. package/dist/entities/email-verification.entity.d.ts +96 -0
  37. package/dist/entities/email-verification.entity.d.ts.map +1 -0
  38. package/dist/entities/email-verification.entity.js +42 -0
  39. package/dist/entities/email-verification.entity.js.map +1 -0
  40. package/dist/entities/jwt-key.entity.d.ts +256 -0
  41. package/dist/entities/jwt-key.entity.d.ts.map +1 -0
  42. package/dist/entities/jwt-key.entity.js +125 -0
  43. package/dist/entities/jwt-key.entity.js.map +1 -0
  44. package/dist/entities/oauth-client.entity.d.ts +1778 -0
  45. package/dist/entities/oauth-client.entity.d.ts.map +1 -0
  46. package/dist/entities/oauth-client.entity.js +82 -0
  47. package/dist/entities/oauth-client.entity.js.map +1 -0
  48. package/dist/entities/oauth-code.entity.d.ts +1799 -0
  49. package/dist/entities/oauth-code.entity.d.ts.map +1 -0
  50. package/dist/entities/oauth-code.entity.js +79 -0
  51. package/dist/entities/oauth-code.entity.js.map +1 -0
  52. package/dist/entities/oauth-device-code.entity.d.ts +1779 -0
  53. package/dist/entities/oauth-device-code.entity.d.ts.map +1 -0
  54. package/dist/entities/oauth-device-code.entity.js +73 -0
  55. package/dist/entities/oauth-device-code.entity.js.map +1 -0
  56. package/dist/entities/password-reset.entity.d.ts +96 -0
  57. package/dist/entities/password-reset.entity.d.ts.map +1 -0
  58. package/dist/entities/password-reset.entity.js +39 -0
  59. package/dist/entities/password-reset.entity.js.map +1 -0
  60. package/dist/entities/pending-oauth-registration.entity.d.ts +116 -0
  61. package/dist/entities/pending-oauth-registration.entity.d.ts.map +1 -0
  62. package/dist/entities/pending-oauth-registration.entity.js +67 -0
  63. package/dist/entities/pending-oauth-registration.entity.js.map +1 -0
  64. package/dist/entities/revoked-token.entity.d.ts +1796 -0
  65. package/dist/entities/revoked-token.entity.d.ts.map +1 -0
  66. package/dist/entities/revoked-token.entity.js +69 -0
  67. package/dist/entities/revoked-token.entity.js.map +1 -0
  68. package/dist/entities/scheduler-job.entity.d.ts +134 -0
  69. package/dist/entities/scheduler-job.entity.d.ts.map +1 -0
  70. package/dist/entities/scheduler-job.entity.js +56 -0
  71. package/dist/entities/scheduler-job.entity.js.map +1 -0
  72. package/dist/entities/terms-content.entity.d.ts +834 -0
  73. package/dist/entities/terms-content.entity.d.ts.map +1 -0
  74. package/dist/entities/terms-content.entity.js +46 -0
  75. package/dist/entities/terms-content.entity.js.map +1 -0
  76. package/dist/entities/terms.entity.d.ts +827 -0
  77. package/dist/entities/terms.entity.d.ts.map +1 -0
  78. package/dist/entities/terms.entity.js +42 -0
  79. package/dist/entities/terms.entity.js.map +1 -0
  80. package/dist/entities/user-consent.entity.d.ts +1792 -0
  81. package/dist/entities/user-consent.entity.d.ts.map +1 -0
  82. package/dist/entities/user-consent.entity.js +66 -0
  83. package/dist/entities/user-consent.entity.js.map +1 -0
  84. package/dist/entities/user-oauth.entity.d.ts +81 -0
  85. package/dist/entities/user-oauth.entity.d.ts.map +1 -0
  86. package/dist/entities/user-oauth.entity.js +46 -0
  87. package/dist/entities/user-oauth.entity.js.map +1 -0
  88. package/dist/entities/user-passkey.entity.d.ts +151 -0
  89. package/dist/entities/user-passkey.entity.d.ts.map +1 -0
  90. package/dist/entities/user-passkey.entity.js +64 -0
  91. package/dist/entities/user-passkey.entity.js.map +1 -0
  92. package/dist/entities/user-terms-consent.entity.d.ts +834 -0
  93. package/dist/entities/user-terms-consent.entity.d.ts.map +1 -0
  94. package/dist/entities/user-terms-consent.entity.js +62 -0
  95. package/dist/entities/user-terms-consent.entity.js.map +1 -0
  96. package/dist/entities/user-totp-recovery-code.entity.d.ts +545 -0
  97. package/dist/entities/user-totp-recovery-code.entity.d.ts.map +1 -0
  98. package/dist/entities/user-totp-recovery-code.entity.js +34 -0
  99. package/dist/entities/user-totp-recovery-code.entity.js.map +1 -0
  100. package/dist/entities/user-totp.entity.d.ts +545 -0
  101. package/dist/entities/user-totp.entity.d.ts.map +1 -0
  102. package/dist/entities/user-totp.entity.js +38 -0
  103. package/dist/entities/user-totp.entity.js.map +1 -0
  104. package/dist/entities/user.entity.d.ts +551 -0
  105. package/dist/entities/user.entity.d.ts.map +1 -0
  106. package/dist/entities/user.entity.js +70 -0
  107. package/dist/entities/user.entity.js.map +1 -0
  108. package/dist/entrypoints/app.d.ts +1802 -0
  109. package/dist/entrypoints/app.d.ts.map +1 -0
  110. package/dist/entrypoints/app.js +164 -0
  111. package/dist/entrypoints/app.js.map +1 -0
  112. package/dist/entrypoints/config/index.d.ts +2 -0
  113. package/dist/entrypoints/config/index.d.ts.map +1 -0
  114. package/dist/entrypoints/config/index.js +2 -0
  115. package/dist/entrypoints/config/index.js.map +1 -0
  116. package/dist/entrypoints/database/postgres/cli.d.ts +4 -0
  117. package/dist/entrypoints/database/postgres/cli.d.ts.map +1 -0
  118. package/dist/entrypoints/database/postgres/cli.js +20 -0
  119. package/dist/entrypoints/database/postgres/cli.js.map +1 -0
  120. package/dist/entrypoints/database/postgres/compiled-functions.d.ts +865 -0
  121. package/dist/entrypoints/database/postgres/compiled-functions.d.ts.map +1 -0
  122. package/dist/entrypoints/database/postgres/compiled-functions.js +10817 -0
  123. package/dist/entrypoints/database/postgres/compiled-functions.js.map +1 -0
  124. package/dist/entrypoints/database/postgres/postgres.d.ts +14 -0
  125. package/dist/entrypoints/database/postgres/postgres.d.ts.map +1 -0
  126. package/dist/entrypoints/database/postgres/postgres.js +36 -0
  127. package/dist/entrypoints/database/postgres/postgres.js.map +1 -0
  128. package/dist/entrypoints/database/sqlite/cli.d.ts +4 -0
  129. package/dist/entrypoints/database/sqlite/cli.d.ts.map +1 -0
  130. package/dist/entrypoints/database/sqlite/cli.js +14 -0
  131. package/dist/entrypoints/database/sqlite/cli.js.map +1 -0
  132. package/dist/entrypoints/database/sqlite/compiled-functions.d.ts +865 -0
  133. package/dist/entrypoints/database/sqlite/compiled-functions.d.ts.map +1 -0
  134. package/dist/entrypoints/database/sqlite/compiled-functions.js +10817 -0
  135. package/dist/entrypoints/database/sqlite/compiled-functions.js.map +1 -0
  136. package/dist/entrypoints/database/sqlite/sqlite.d.ts +10 -0
  137. package/dist/entrypoints/database/sqlite/sqlite.d.ts.map +1 -0
  138. package/dist/entrypoints/database/sqlite/sqlite.js +36 -0
  139. package/dist/entrypoints/database/sqlite/sqlite.js.map +1 -0
  140. package/dist/entrypoints/frontend/index.d.ts +4 -0
  141. package/dist/entrypoints/frontend/index.d.ts.map +1 -0
  142. package/dist/entrypoints/frontend/index.js +2 -0
  143. package/dist/entrypoints/frontend/index.js.map +1 -0
  144. package/dist/entrypoints/frontend/proxy.d.ts +2 -0
  145. package/dist/entrypoints/frontend/proxy.d.ts.map +1 -0
  146. package/dist/entrypoints/frontend/proxy.js +2 -0
  147. package/dist/entrypoints/frontend/proxy.js.map +1 -0
  148. package/dist/entrypoints/frontend/static.d.ts +2 -0
  149. package/dist/entrypoints/frontend/static.d.ts.map +1 -0
  150. package/dist/entrypoints/frontend/static.js +2 -0
  151. package/dist/entrypoints/frontend/static.js.map +1 -0
  152. package/dist/entrypoints/identity-providers/apple.d.ts +15 -0
  153. package/dist/entrypoints/identity-providers/apple.d.ts.map +1 -0
  154. package/dist/entrypoints/identity-providers/apple.js +24 -0
  155. package/dist/entrypoints/identity-providers/apple.js.map +1 -0
  156. package/dist/entrypoints/identity-providers/generic-oauth.d.ts +27 -0
  157. package/dist/entrypoints/identity-providers/generic-oauth.d.ts.map +1 -0
  158. package/dist/entrypoints/identity-providers/generic-oauth.js +22 -0
  159. package/dist/entrypoints/identity-providers/generic-oauth.js.map +1 -0
  160. package/dist/entrypoints/identity-providers/github.d.ts +13 -0
  161. package/dist/entrypoints/identity-providers/github.d.ts.map +1 -0
  162. package/dist/entrypoints/identity-providers/github.js +24 -0
  163. package/dist/entrypoints/identity-providers/github.js.map +1 -0
  164. package/dist/entrypoints/identity-providers/google.d.ts +13 -0
  165. package/dist/entrypoints/identity-providers/google.d.ts.map +1 -0
  166. package/dist/entrypoints/identity-providers/google.js +24 -0
  167. package/dist/entrypoints/identity-providers/google.js.map +1 -0
  168. package/dist/entrypoints/index.d.ts +3 -0
  169. package/dist/entrypoints/index.d.ts.map +1 -0
  170. package/dist/entrypoints/index.js +3 -0
  171. package/dist/entrypoints/index.js.map +1 -0
  172. package/dist/entrypoints/mail/nodemailer.d.ts +11 -0
  173. package/dist/entrypoints/mail/nodemailer.d.ts.map +1 -0
  174. package/dist/entrypoints/mail/nodemailer.js +30 -0
  175. package/dist/entrypoints/mail/nodemailer.js.map +1 -0
  176. package/dist/entrypoints/scheduler/cron.d.ts +3 -0
  177. package/dist/entrypoints/scheduler/cron.d.ts.map +1 -0
  178. package/dist/entrypoints/scheduler/cron.js +34 -0
  179. package/dist/entrypoints/scheduler/cron.js.map +1 -0
  180. package/dist/entrypoints/scheduler/croner.d.ts +6 -0
  181. package/dist/entrypoints/scheduler/croner.d.ts.map +1 -0
  182. package/dist/entrypoints/scheduler/croner.js +42 -0
  183. package/dist/entrypoints/scheduler/croner.js.map +1 -0
  184. package/dist/entrypoints/scheduler/database.d.ts +38 -0
  185. package/dist/entrypoints/scheduler/database.d.ts.map +1 -0
  186. package/dist/entrypoints/scheduler/database.js +444 -0
  187. package/dist/entrypoints/scheduler/database.js.map +1 -0
  188. package/dist/entrypoints/scheduler/distributed-runner.d.ts +134 -0
  189. package/dist/entrypoints/scheduler/distributed-runner.d.ts.map +1 -0
  190. package/dist/entrypoints/scheduler/distributed-runner.js +327 -0
  191. package/dist/entrypoints/scheduler/distributed-runner.js.map +1 -0
  192. package/dist/entrypoints/services.d.ts +3 -0
  193. package/dist/entrypoints/services.d.ts.map +1 -0
  194. package/dist/entrypoints/services.js +2 -0
  195. package/dist/entrypoints/services.js.map +1 -0
  196. package/dist/lib/app-env.d.ts +17 -0
  197. package/dist/lib/app-env.d.ts.map +1 -0
  198. package/dist/lib/app-env.js +2 -0
  199. package/dist/lib/app-env.js.map +1 -0
  200. package/dist/lib/base64url.d.ts +33 -0
  201. package/dist/lib/base64url.d.ts.map +1 -0
  202. package/dist/lib/base64url.js +93 -0
  203. package/dist/lib/base64url.js.map +1 -0
  204. package/dist/lib/config/account-deletion.d.ts +11 -0
  205. package/dist/lib/config/account-deletion.d.ts.map +1 -0
  206. package/dist/lib/config/account-deletion.js +16 -0
  207. package/dist/lib/config/account-deletion.js.map +1 -0
  208. package/dist/lib/config/admin.d.ts +9 -0
  209. package/dist/lib/config/admin.d.ts.map +1 -0
  210. package/dist/lib/config/admin.js +13 -0
  211. package/dist/lib/config/admin.js.map +1 -0
  212. package/dist/lib/config/auth.d.ts +194 -0
  213. package/dist/lib/config/auth.d.ts.map +1 -0
  214. package/dist/lib/config/auth.js +216 -0
  215. package/dist/lib/config/auth.js.map +1 -0
  216. package/dist/lib/config/branding.d.ts +14 -0
  217. package/dist/lib/config/branding.d.ts.map +1 -0
  218. package/dist/lib/config/branding.js +37 -0
  219. package/dist/lib/config/branding.js.map +1 -0
  220. package/dist/lib/config/cleanup.d.ts +59 -0
  221. package/dist/lib/config/cleanup.d.ts.map +1 -0
  222. package/dist/lib/config/cleanup.js +119 -0
  223. package/dist/lib/config/cleanup.js.map +1 -0
  224. package/dist/lib/config/client.d.ts +74 -0
  225. package/dist/lib/config/client.d.ts.map +1 -0
  226. package/dist/lib/config/client.js +195 -0
  227. package/dist/lib/config/client.js.map +1 -0
  228. package/dist/lib/config/database.d.ts +8 -0
  229. package/dist/lib/config/database.d.ts.map +1 -0
  230. package/dist/lib/config/database.js +8 -0
  231. package/dist/lib/config/database.js.map +1 -0
  232. package/dist/lib/config/email.d.ts +17 -0
  233. package/dist/lib/config/email.d.ts.map +1 -0
  234. package/dist/lib/config/email.js +7 -0
  235. package/dist/lib/config/email.js.map +1 -0
  236. package/dist/lib/config/frontend.d.ts +12 -0
  237. package/dist/lib/config/frontend.d.ts.map +1 -0
  238. package/dist/lib/config/frontend.js +7 -0
  239. package/dist/lib/config/frontend.js.map +1 -0
  240. package/dist/lib/config/i18n.d.ts +31 -0
  241. package/dist/lib/config/i18n.d.ts.map +1 -0
  242. package/dist/lib/config/i18n.js +23 -0
  243. package/dist/lib/config/i18n.js.map +1 -0
  244. package/dist/lib/config/identity-providers.d.ts +70 -0
  245. package/dist/lib/config/identity-providers.d.ts.map +1 -0
  246. package/dist/lib/config/identity-providers.js +88 -0
  247. package/dist/lib/config/identity-providers.js.map +1 -0
  248. package/dist/lib/config/index.d.ts +43 -0
  249. package/dist/lib/config/index.d.ts.map +1 -0
  250. package/dist/lib/config/index.js +22 -0
  251. package/dist/lib/config/index.js.map +1 -0
  252. package/dist/lib/config/logging.d.ts +52 -0
  253. package/dist/lib/config/logging.d.ts.map +1 -0
  254. package/dist/lib/config/logging.js +41 -0
  255. package/dist/lib/config/logging.js.map +1 -0
  256. package/dist/lib/config/openapi.d.ts +15 -0
  257. package/dist/lib/config/openapi.d.ts.map +1 -0
  258. package/dist/lib/config/openapi.js +28 -0
  259. package/dist/lib/config/openapi.js.map +1 -0
  260. package/dist/lib/config/registration.d.ts +15 -0
  261. package/dist/lib/config/registration.d.ts.map +1 -0
  262. package/dist/lib/config/registration.js +24 -0
  263. package/dist/lib/config/registration.js.map +1 -0
  264. package/dist/lib/config/resolved.d.ts +249 -0
  265. package/dist/lib/config/resolved.d.ts.map +1 -0
  266. package/dist/lib/config/resolved.js +47 -0
  267. package/dist/lib/config/resolved.js.map +1 -0
  268. package/dist/lib/config/scheduler.d.ts +52 -0
  269. package/dist/lib/config/scheduler.d.ts.map +1 -0
  270. package/dist/lib/config/scheduler.js +20 -0
  271. package/dist/lib/config/scheduler.js.map +1 -0
  272. package/dist/lib/config/security.d.ts +11 -0
  273. package/dist/lib/config/security.d.ts.map +1 -0
  274. package/dist/lib/config/security.js +65 -0
  275. package/dist/lib/config/security.js.map +1 -0
  276. package/dist/lib/config/server.d.ts +13 -0
  277. package/dist/lib/config/server.d.ts.map +1 -0
  278. package/dist/lib/config/server.js +57 -0
  279. package/dist/lib/config/server.js.map +1 -0
  280. package/dist/lib/config/terms.d.ts +47 -0
  281. package/dist/lib/config/terms.d.ts.map +1 -0
  282. package/dist/lib/config/terms.js +71 -0
  283. package/dist/lib/config/terms.js.map +1 -0
  284. package/dist/lib/config/tokens.d.ts +32 -0
  285. package/dist/lib/config/tokens.d.ts.map +1 -0
  286. package/dist/lib/config/tokens.js +47 -0
  287. package/dist/lib/config/tokens.js.map +1 -0
  288. package/dist/lib/config/url-policy.d.ts +4 -0
  289. package/dist/lib/config/url-policy.d.ts.map +1 -0
  290. package/dist/lib/config/url-policy.js +38 -0
  291. package/dist/lib/config/url-policy.js.map +1 -0
  292. package/dist/lib/config/user.d.ts +22 -0
  293. package/dist/lib/config/user.d.ts.map +1 -0
  294. package/dist/lib/config/user.js +22 -0
  295. package/dist/lib/config/user.js.map +1 -0
  296. package/dist/lib/crypto.d.ts +106 -0
  297. package/dist/lib/crypto.d.ts.map +1 -0
  298. package/dist/lib/crypto.js +263 -0
  299. package/dist/lib/crypto.js.map +1 -0
  300. package/dist/lib/database/entities.d.ts +10 -0
  301. package/dist/lib/database/entities.d.ts.map +1 -0
  302. package/dist/lib/database/entities.js +51 -0
  303. package/dist/lib/database/entities.js.map +1 -0
  304. package/dist/lib/duration.d.ts +44 -0
  305. package/dist/lib/duration.d.ts.map +1 -0
  306. package/dist/lib/duration.js +103 -0
  307. package/dist/lib/duration.js.map +1 -0
  308. package/dist/lib/email-pattern.d.ts +16 -0
  309. package/dist/lib/email-pattern.d.ts.map +1 -0
  310. package/dist/lib/email-pattern.js +41 -0
  311. package/dist/lib/email-pattern.js.map +1 -0
  312. package/dist/lib/escape-html.d.ts +7 -0
  313. package/dist/lib/escape-html.d.ts.map +1 -0
  314. package/dist/lib/escape-html.js +14 -0
  315. package/dist/lib/escape-html.js.map +1 -0
  316. package/dist/lib/frontend/proxy.d.ts +24 -0
  317. package/dist/lib/frontend/proxy.d.ts.map +1 -0
  318. package/dist/lib/frontend/proxy.js +38 -0
  319. package/dist/lib/frontend/proxy.js.map +1 -0
  320. package/dist/lib/frontend/static.d.ts +21 -0
  321. package/dist/lib/frontend/static.d.ts.map +1 -0
  322. package/dist/lib/frontend/static.js +108 -0
  323. package/dist/lib/frontend/static.js.map +1 -0
  324. package/dist/lib/interpolate-html.d.ts +34 -0
  325. package/dist/lib/interpolate-html.d.ts.map +1 -0
  326. package/dist/lib/interpolate-html.js +61 -0
  327. package/dist/lib/interpolate-html.js.map +1 -0
  328. package/dist/lib/ip-utils.d.ts +61 -0
  329. package/dist/lib/ip-utils.d.ts.map +1 -0
  330. package/dist/lib/ip-utils.js +213 -0
  331. package/dist/lib/ip-utils.js.map +1 -0
  332. package/dist/lib/locale.d.ts +57 -0
  333. package/dist/lib/locale.d.ts.map +1 -0
  334. package/dist/lib/locale.js +25 -0
  335. package/dist/lib/locale.js.map +1 -0
  336. package/dist/lib/logger.d.ts +14 -0
  337. package/dist/lib/logger.d.ts.map +1 -0
  338. package/dist/lib/logger.js +41 -0
  339. package/dist/lib/logger.js.map +1 -0
  340. package/dist/lib/openapi.d.ts +35 -0
  341. package/dist/lib/openapi.d.ts.map +1 -0
  342. package/dist/lib/openapi.js +33 -0
  343. package/dist/lib/openapi.js.map +1 -0
  344. package/dist/lib/password-policy.d.ts +39 -0
  345. package/dist/lib/password-policy.d.ts.map +1 -0
  346. package/dist/lib/password-policy.js +51 -0
  347. package/dist/lib/password-policy.js.map +1 -0
  348. package/dist/lib/pkce.d.ts +26 -0
  349. package/dist/lib/pkce.d.ts.map +1 -0
  350. package/dist/lib/pkce.js +59 -0
  351. package/dist/lib/pkce.js.map +1 -0
  352. package/dist/lib/scopes.d.ts +10 -0
  353. package/dist/lib/scopes.d.ts.map +1 -0
  354. package/dist/lib/scopes.js +38 -0
  355. package/dist/lib/scopes.js.map +1 -0
  356. package/dist/lib/swagger-tags.d.ts +16 -0
  357. package/dist/lib/swagger-tags.d.ts.map +1 -0
  358. package/dist/lib/swagger-tags.js +16 -0
  359. package/dist/lib/swagger-tags.js.map +1 -0
  360. package/dist/middleware/auth.d.ts +67 -0
  361. package/dist/middleware/auth.d.ts.map +1 -0
  362. package/dist/middleware/auth.js +149 -0
  363. package/dist/middleware/auth.js.map +1 -0
  364. package/dist/middleware/csrf.d.ts +2 -0
  365. package/dist/middleware/csrf.d.ts.map +1 -0
  366. package/dist/middleware/csrf.js +51 -0
  367. package/dist/middleware/csrf.js.map +1 -0
  368. package/dist/middleware/logger.d.ts +18 -0
  369. package/dist/middleware/logger.d.ts.map +1 -0
  370. package/dist/middleware/logger.js +38 -0
  371. package/dist/middleware/logger.js.map +1 -0
  372. package/dist/middleware/mikro-orm.d.ts +3 -0
  373. package/dist/middleware/mikro-orm.d.ts.map +1 -0
  374. package/dist/middleware/mikro-orm.js +11 -0
  375. package/dist/middleware/mikro-orm.js.map +1 -0
  376. package/dist/middleware/services.d.ts +8 -0
  377. package/dist/middleware/services.d.ts.map +1 -0
  378. package/dist/middleware/services.js +8 -0
  379. package/dist/middleware/services.js.map +1 -0
  380. package/dist/middleware/session.d.ts +107 -0
  381. package/dist/middleware/session.d.ts.map +1 -0
  382. package/dist/middleware/session.js +185 -0
  383. package/dist/middleware/session.js.map +1 -0
  384. package/dist/middleware/trusted-proxy-guard.d.ts +7 -0
  385. package/dist/middleware/trusted-proxy-guard.d.ts.map +1 -0
  386. package/dist/middleware/trusted-proxy-guard.js +34 -0
  387. package/dist/middleware/trusted-proxy-guard.js.map +1 -0
  388. package/dist/migrations/postgres/Migration20260509171036_initial.d.ts +5 -0
  389. package/dist/migrations/postgres/Migration20260509171036_initial.d.ts.map +1 -0
  390. package/dist/migrations/postgres/Migration20260509171036_initial.js +246 -0
  391. package/dist/migrations/postgres/Migration20260509171036_initial.js.map +1 -0
  392. package/dist/migrations/postgres/Migration20260512120000_add_scheduler_jobs.d.ts +5 -0
  393. package/dist/migrations/postgres/Migration20260512120000_add_scheduler_jobs.d.ts.map +1 -0
  394. package/dist/migrations/postgres/Migration20260512120000_add_scheduler_jobs.js +15 -0
  395. package/dist/migrations/postgres/Migration20260512120000_add_scheduler_jobs.js.map +1 -0
  396. package/dist/migrations/postgres/Migration20260619075007.d.ts +6 -0
  397. package/dist/migrations/postgres/Migration20260619075007.d.ts.map +1 -0
  398. package/dist/migrations/postgres/Migration20260619075007.js +86 -0
  399. package/dist/migrations/postgres/Migration20260619075007.js.map +1 -0
  400. package/dist/migrations/postgres/Migration20260619191600_unique_oauth_client_client_id.d.ts +6 -0
  401. package/dist/migrations/postgres/Migration20260619191600_unique_oauth_client_client_id.d.ts.map +1 -0
  402. package/dist/migrations/postgres/Migration20260619191600_unique_oauth_client_client_id.js +12 -0
  403. package/dist/migrations/postgres/Migration20260619191600_unique_oauth_client_client_id.js.map +1 -0
  404. package/dist/migrations/postgres/Migration20260620025358_add_oauth_client_skip_consent.d.ts +6 -0
  405. package/dist/migrations/postgres/Migration20260620025358_add_oauth_client_skip_consent.d.ts.map +1 -0
  406. package/dist/migrations/postgres/Migration20260620025358_add_oauth_client_skip_consent.js +11 -0
  407. package/dist/migrations/postgres/Migration20260620025358_add_oauth_client_skip_consent.js.map +1 -0
  408. package/dist/migrations/postgres/Migration20260624190500_add_oauth_device_denied_at.d.ts +6 -0
  409. package/dist/migrations/postgres/Migration20260624190500_add_oauth_device_denied_at.d.ts.map +1 -0
  410. package/dist/migrations/postgres/Migration20260624190500_add_oauth_device_denied_at.js +11 -0
  411. package/dist/migrations/postgres/Migration20260624190500_add_oauth_device_denied_at.js.map +1 -0
  412. package/dist/migrations/postgres/Migration20260624223000_add_oauth_device_poll_state.d.ts +6 -0
  413. package/dist/migrations/postgres/Migration20260624223000_add_oauth_device_poll_state.d.ts.map +1 -0
  414. package/dist/migrations/postgres/Migration20260624223000_add_oauth_device_poll_state.js +14 -0
  415. package/dist/migrations/postgres/Migration20260624223000_add_oauth_device_poll_state.js.map +1 -0
  416. package/dist/migrations/postgres/Migration20260626103000_allow_revoked_token_without_user.d.ts +6 -0
  417. package/dist/migrations/postgres/Migration20260626103000_allow_revoked_token_without_user.d.ts.map +1 -0
  418. package/dist/migrations/postgres/Migration20260626103000_allow_revoked_token_without_user.js +10 -0
  419. package/dist/migrations/postgres/Migration20260626103000_allow_revoked_token_without_user.js.map +1 -0
  420. package/dist/migrations/postgres/index.d.ts +3 -0
  421. package/dist/migrations/postgres/index.d.ts.map +1 -0
  422. package/dist/migrations/postgres/index.js +19 -0
  423. package/dist/migrations/postgres/index.js.map +1 -0
  424. package/dist/migrations/sqlite/Migration20260509171226_initial.d.ts +5 -0
  425. package/dist/migrations/sqlite/Migration20260509171226_initial.d.ts.map +1 -0
  426. package/dist/migrations/sqlite/Migration20260509171226_initial.js +62 -0
  427. package/dist/migrations/sqlite/Migration20260509171226_initial.js.map +1 -0
  428. package/dist/migrations/sqlite/Migration20260512120000_add_scheduler_jobs.d.ts +5 -0
  429. package/dist/migrations/sqlite/Migration20260512120000_add_scheduler_jobs.d.ts.map +1 -0
  430. package/dist/migrations/sqlite/Migration20260512120000_add_scheduler_jobs.js +13 -0
  431. package/dist/migrations/sqlite/Migration20260512120000_add_scheduler_jobs.js.map +1 -0
  432. package/dist/migrations/sqlite/Migration20260619075330.d.ts +6 -0
  433. package/dist/migrations/sqlite/Migration20260619075330.d.ts.map +1 -0
  434. package/dist/migrations/sqlite/Migration20260619075330.js +57 -0
  435. package/dist/migrations/sqlite/Migration20260619075330.js.map +1 -0
  436. package/dist/migrations/sqlite/Migration20260619191600_unique_oauth_client_client_id.d.ts +6 -0
  437. package/dist/migrations/sqlite/Migration20260619191600_unique_oauth_client_client_id.d.ts.map +1 -0
  438. package/dist/migrations/sqlite/Migration20260619191600_unique_oauth_client_client_id.js +12 -0
  439. package/dist/migrations/sqlite/Migration20260619191600_unique_oauth_client_client_id.js.map +1 -0
  440. package/dist/migrations/sqlite/Migration20260620025358_add_oauth_client_skip_consent.d.ts +6 -0
  441. package/dist/migrations/sqlite/Migration20260620025358_add_oauth_client_skip_consent.d.ts.map +1 -0
  442. package/dist/migrations/sqlite/Migration20260620025358_add_oauth_client_skip_consent.js +10 -0
  443. package/dist/migrations/sqlite/Migration20260620025358_add_oauth_client_skip_consent.js.map +1 -0
  444. package/dist/migrations/sqlite/Migration20260624190500_add_oauth_device_denied_at.d.ts +6 -0
  445. package/dist/migrations/sqlite/Migration20260624190500_add_oauth_device_denied_at.d.ts.map +1 -0
  446. package/dist/migrations/sqlite/Migration20260624190500_add_oauth_device_denied_at.js +10 -0
  447. package/dist/migrations/sqlite/Migration20260624190500_add_oauth_device_denied_at.js.map +1 -0
  448. package/dist/migrations/sqlite/Migration20260624223000_add_oauth_device_poll_state.d.ts +6 -0
  449. package/dist/migrations/sqlite/Migration20260624223000_add_oauth_device_poll_state.d.ts.map +1 -0
  450. package/dist/migrations/sqlite/Migration20260624223000_add_oauth_device_poll_state.js +12 -0
  451. package/dist/migrations/sqlite/Migration20260624223000_add_oauth_device_poll_state.js.map +1 -0
  452. package/dist/migrations/sqlite/Migration20260626103000_allow_revoked_token_without_user.d.ts +6 -0
  453. package/dist/migrations/sqlite/Migration20260626103000_allow_revoked_token_without_user.d.ts.map +1 -0
  454. package/dist/migrations/sqlite/Migration20260626103000_allow_revoked_token_without_user.js +28 -0
  455. package/dist/migrations/sqlite/Migration20260626103000_allow_revoked_token_without_user.js.map +1 -0
  456. package/dist/migrations/sqlite/index.d.ts +3 -0
  457. package/dist/migrations/sqlite/index.d.ts.map +1 -0
  458. package/dist/migrations/sqlite/index.js +19 -0
  459. package/dist/migrations/sqlite/index.js.map +1 -0
  460. package/dist/repositories/background-job.repository.d.ts +5 -0
  461. package/dist/repositories/background-job.repository.d.ts.map +1 -0
  462. package/dist/repositories/background-job.repository.js +4 -0
  463. package/dist/repositories/background-job.repository.js.map +1 -0
  464. package/dist/repositories/email-verification.repository.d.ts +18 -0
  465. package/dist/repositories/email-verification.repository.d.ts.map +1 -0
  466. package/dist/repositories/email-verification.repository.js +47 -0
  467. package/dist/repositories/email-verification.repository.js.map +1 -0
  468. package/dist/repositories/jwt-key.repository.d.ts +49 -0
  469. package/dist/repositories/jwt-key.repository.d.ts.map +1 -0
  470. package/dist/repositories/jwt-key.repository.js +72 -0
  471. package/dist/repositories/jwt-key.repository.js.map +1 -0
  472. package/dist/repositories/oauth-client.repository.d.ts +5 -0
  473. package/dist/repositories/oauth-client.repository.d.ts.map +1 -0
  474. package/dist/repositories/oauth-client.repository.js +4 -0
  475. package/dist/repositories/oauth-client.repository.js.map +1 -0
  476. package/dist/repositories/oauth-code.repository.d.ts +24 -0
  477. package/dist/repositories/oauth-code.repository.d.ts.map +1 -0
  478. package/dist/repositories/oauth-code.repository.js +47 -0
  479. package/dist/repositories/oauth-code.repository.js.map +1 -0
  480. package/dist/repositories/oauth-device-code.repository.d.ts +29 -0
  481. package/dist/repositories/oauth-device-code.repository.d.ts.map +1 -0
  482. package/dist/repositories/oauth-device-code.repository.js +110 -0
  483. package/dist/repositories/oauth-device-code.repository.js.map +1 -0
  484. package/dist/repositories/password-reset.repository.d.ts +19 -0
  485. package/dist/repositories/password-reset.repository.d.ts.map +1 -0
  486. package/dist/repositories/password-reset.repository.js +53 -0
  487. package/dist/repositories/password-reset.repository.js.map +1 -0
  488. package/dist/repositories/pending-oauth-registration.repository.d.ts +38 -0
  489. package/dist/repositories/pending-oauth-registration.repository.d.ts.map +1 -0
  490. package/dist/repositories/pending-oauth-registration.repository.js +50 -0
  491. package/dist/repositories/pending-oauth-registration.repository.js.map +1 -0
  492. package/dist/repositories/revoked-token.repository.d.ts +52 -0
  493. package/dist/repositories/revoked-token.repository.d.ts.map +1 -0
  494. package/dist/repositories/revoked-token.repository.js +86 -0
  495. package/dist/repositories/revoked-token.repository.js.map +1 -0
  496. package/dist/repositories/scheduler-job.repository.d.ts +5 -0
  497. package/dist/repositories/scheduler-job.repository.d.ts.map +1 -0
  498. package/dist/repositories/scheduler-job.repository.js +4 -0
  499. package/dist/repositories/scheduler-job.repository.js.map +1 -0
  500. package/dist/repositories/terms-content.repository.d.ts +5 -0
  501. package/dist/repositories/terms-content.repository.d.ts.map +1 -0
  502. package/dist/repositories/terms-content.repository.js +4 -0
  503. package/dist/repositories/terms-content.repository.js.map +1 -0
  504. package/dist/repositories/terms.repository.d.ts +9 -0
  505. package/dist/repositories/terms.repository.d.ts.map +1 -0
  506. package/dist/repositories/terms.repository.js +12 -0
  507. package/dist/repositories/terms.repository.js.map +1 -0
  508. package/dist/repositories/user-consent.repository.d.ts +22 -0
  509. package/dist/repositories/user-consent.repository.d.ts.map +1 -0
  510. package/dist/repositories/user-consent.repository.js +51 -0
  511. package/dist/repositories/user-consent.repository.js.map +1 -0
  512. package/dist/repositories/user-oauth.repository.d.ts +68 -0
  513. package/dist/repositories/user-oauth.repository.d.ts.map +1 -0
  514. package/dist/repositories/user-oauth.repository.js +94 -0
  515. package/dist/repositories/user-oauth.repository.js.map +1 -0
  516. package/dist/repositories/user-passkey.repository.d.ts +193 -0
  517. package/dist/repositories/user-passkey.repository.d.ts.map +1 -0
  518. package/dist/repositories/user-passkey.repository.js +61 -0
  519. package/dist/repositories/user-passkey.repository.js.map +1 -0
  520. package/dist/repositories/user-terms-consent.repository.d.ts +38 -0
  521. package/dist/repositories/user-terms-consent.repository.d.ts.map +1 -0
  522. package/dist/repositories/user-terms-consent.repository.js +71 -0
  523. package/dist/repositories/user-terms-consent.repository.js.map +1 -0
  524. package/dist/repositories/user-totp-recovery-code.repository.d.ts +388 -0
  525. package/dist/repositories/user-totp-recovery-code.repository.d.ts.map +1 -0
  526. package/dist/repositories/user-totp-recovery-code.repository.js +41 -0
  527. package/dist/repositories/user-totp-recovery-code.repository.js.map +1 -0
  528. package/dist/repositories/user-totp.repository.d.ts +582 -0
  529. package/dist/repositories/user-totp.repository.d.ts.map +1 -0
  530. package/dist/repositories/user-totp.repository.js +56 -0
  531. package/dist/repositories/user-totp.repository.js.map +1 -0
  532. package/dist/repositories/user.repository.d.ts +34 -0
  533. package/dist/repositories/user.repository.d.ts.map +1 -0
  534. package/dist/repositories/user.repository.js +74 -0
  535. package/dist/repositories/user.repository.js.map +1 -0
  536. package/dist/routes/.well-known/index.d.ts +39 -0
  537. package/dist/routes/.well-known/index.d.ts.map +1 -0
  538. package/dist/routes/.well-known/index.js +4 -0
  539. package/dist/routes/.well-known/index.js.map +1 -0
  540. package/dist/routes/.well-known/openid-configuration/get.d.ts +46 -0
  541. package/dist/routes/.well-known/openid-configuration/get.d.ts.map +1 -0
  542. package/dist/routes/.well-known/openid-configuration/get.js +19 -0
  543. package/dist/routes/.well-known/openid-configuration/get.js.map +1 -0
  544. package/dist/routes/api/admin/index.d.ts +185 -0
  545. package/dist/routes/api/admin/index.d.ts.map +1 -0
  546. package/dist/routes/api/admin/index.js +13 -0
  547. package/dist/routes/api/admin/index.js.map +1 -0
  548. package/dist/routes/api/admin/me/get.d.ts +26 -0
  549. package/dist/routes/api/admin/me/get.d.ts.map +1 -0
  550. package/dist/routes/api/admin/me/get.js +29 -0
  551. package/dist/routes/api/admin/me/get.js.map +1 -0
  552. package/dist/routes/api/admin/users/index.d.ts +162 -0
  553. package/dist/routes/api/admin/users/index.d.ts.map +1 -0
  554. package/dist/routes/api/admin/users/index.js +166 -0
  555. package/dist/routes/api/admin/users/index.js.map +1 -0
  556. package/dist/routes/api/auth/2fa/methods/get.d.ts +14 -0
  557. package/dist/routes/api/auth/2fa/methods/get.d.ts.map +1 -0
  558. package/dist/routes/api/auth/2fa/methods/get.js +50 -0
  559. package/dist/routes/api/auth/2fa/methods/get.js.map +1 -0
  560. package/dist/routes/api/auth/accounts/get.d.ts +28 -0
  561. package/dist/routes/api/auth/accounts/get.d.ts.map +1 -0
  562. package/dist/routes/api/auth/accounts/get.js +49 -0
  563. package/dist/routes/api/auth/accounts/get.js.map +1 -0
  564. package/dist/routes/api/auth/accounts/remove.post.d.ts +30 -0
  565. package/dist/routes/api/auth/accounts/remove.post.d.ts.map +1 -0
  566. package/dist/routes/api/auth/accounts/remove.post.js +32 -0
  567. package/dist/routes/api/auth/accounts/remove.post.js.map +1 -0
  568. package/dist/routes/api/auth/accounts/select.post.d.ts +31 -0
  569. package/dist/routes/api/auth/accounts/select.post.d.ts.map +1 -0
  570. package/dist/routes/api/auth/accounts/select.post.js +26 -0
  571. package/dist/routes/api/auth/accounts/select.post.js.map +1 -0
  572. package/dist/routes/api/auth/email/resend/post.d.ts +22 -0
  573. package/dist/routes/api/auth/email/resend/post.d.ts.map +1 -0
  574. package/dist/routes/api/auth/email/resend/post.js +64 -0
  575. package/dist/routes/api/auth/email/resend/post.js.map +1 -0
  576. package/dist/routes/api/auth/email/verify/post.d.ts +30 -0
  577. package/dist/routes/api/auth/email/verify/post.d.ts.map +1 -0
  578. package/dist/routes/api/auth/email/verify/post.js +55 -0
  579. package/dist/routes/api/auth/email/verify/post.js.map +1 -0
  580. package/dist/routes/api/auth/index.d.ts +372 -0
  581. package/dist/routes/api/auth/index.d.ts.map +1 -0
  582. package/dist/routes/api/auth/index.js +33 -0
  583. package/dist/routes/api/auth/index.js.map +1 -0
  584. package/dist/routes/api/auth/login/post.d.ts +31 -0
  585. package/dist/routes/api/auth/login/post.d.ts.map +1 -0
  586. package/dist/routes/api/auth/login/post.js +75 -0
  587. package/dist/routes/api/auth/login/post.js.map +1 -0
  588. package/dist/routes/api/auth/logout/post.d.ts +14 -0
  589. package/dist/routes/api/auth/logout/post.d.ts.map +1 -0
  590. package/dist/routes/api/auth/logout/post.js +21 -0
  591. package/dist/routes/api/auth/logout/post.js.map +1 -0
  592. package/dist/routes/api/auth/passkey/options/post.d.ts +31 -0
  593. package/dist/routes/api/auth/passkey/options/post.d.ts.map +1 -0
  594. package/dist/routes/api/auth/passkey/options/post.js +43 -0
  595. package/dist/routes/api/auth/passkey/options/post.js.map +1 -0
  596. package/dist/routes/api/auth/passkey/verify/post.d.ts +42 -0
  597. package/dist/routes/api/auth/passkey/verify/post.d.ts.map +1 -0
  598. package/dist/routes/api/auth/passkey/verify/post.js +75 -0
  599. package/dist/routes/api/auth/passkey/verify/post.js.map +1 -0
  600. package/dist/routes/api/auth/password/forgot/post.d.ts +22 -0
  601. package/dist/routes/api/auth/password/forgot/post.d.ts.map +1 -0
  602. package/dist/routes/api/auth/password/forgot/post.js +72 -0
  603. package/dist/routes/api/auth/password/forgot/post.js.map +1 -0
  604. package/dist/routes/api/auth/password/reset/post.d.ts +19 -0
  605. package/dist/routes/api/auth/password/reset/post.d.ts.map +1 -0
  606. package/dist/routes/api/auth/password/reset/post.js +62 -0
  607. package/dist/routes/api/auth/password/reset/post.js.map +1 -0
  608. package/dist/routes/api/auth/register/post.d.ts +40 -0
  609. package/dist/routes/api/auth/register/post.d.ts.map +1 -0
  610. package/dist/routes/api/auth/register/post.js +95 -0
  611. package/dist/routes/api/auth/register/post.js.map +1 -0
  612. package/dist/routes/api/auth/totp/recovery/verify/post.d.ts +37 -0
  613. package/dist/routes/api/auth/totp/recovery/verify/post.d.ts.map +1 -0
  614. package/dist/routes/api/auth/totp/recovery/verify/post.js +68 -0
  615. package/dist/routes/api/auth/totp/recovery/verify/post.js.map +1 -0
  616. package/dist/routes/api/auth/totp/verify/post.d.ts +30 -0
  617. package/dist/routes/api/auth/totp/verify/post.d.ts.map +1 -0
  618. package/dist/routes/api/auth/totp/verify/post.js +59 -0
  619. package/dist/routes/api/auth/totp/verify/post.js.map +1 -0
  620. package/dist/routes/api/config/get.d.ts +76 -0
  621. package/dist/routes/api/config/get.d.ts.map +1 -0
  622. package/dist/routes/api/config/get.js +84 -0
  623. package/dist/routes/api/config/get.js.map +1 -0
  624. package/dist/routes/api/config/index.d.ts +76 -0
  625. package/dist/routes/api/config/index.d.ts.map +1 -0
  626. package/dist/routes/api/config/index.js +4 -0
  627. package/dist/routes/api/config/index.js.map +1 -0
  628. package/dist/routes/api/consent/get.d.ts +37 -0
  629. package/dist/routes/api/consent/get.d.ts.map +1 -0
  630. package/dist/routes/api/consent/get.js +73 -0
  631. package/dist/routes/api/consent/get.js.map +1 -0
  632. package/dist/routes/api/consent/index.d.ts +65 -0
  633. package/dist/routes/api/consent/index.d.ts.map +1 -0
  634. package/dist/routes/api/consent/index.js +7 -0
  635. package/dist/routes/api/consent/index.js.map +1 -0
  636. package/dist/routes/api/consent/post.d.ts +44 -0
  637. package/dist/routes/api/consent/post.d.ts.map +1 -0
  638. package/dist/routes/api/consent/post.js +286 -0
  639. package/dist/routes/api/consent/post.js.map +1 -0
  640. package/dist/routes/api/docs/get.d.ts +17 -0
  641. package/dist/routes/api/docs/get.d.ts.map +1 -0
  642. package/dist/routes/api/docs/get.js +19 -0
  643. package/dist/routes/api/docs/get.js.map +1 -0
  644. package/dist/routes/api/docs/index.d.ts +12 -0
  645. package/dist/routes/api/docs/index.d.ts.map +1 -0
  646. package/dist/routes/api/docs/index.js +4 -0
  647. package/dist/routes/api/docs/index.js.map +1 -0
  648. package/dist/routes/api/health/get.d.ts +36 -0
  649. package/dist/routes/api/health/get.d.ts.map +1 -0
  650. package/dist/routes/api/health/get.js +64 -0
  651. package/dist/routes/api/health/get.js.map +1 -0
  652. package/dist/routes/api/health/index.d.ts +66 -0
  653. package/dist/routes/api/health/index.d.ts.map +1 -0
  654. package/dist/routes/api/health/index.js +9 -0
  655. package/dist/routes/api/health/index.js.map +1 -0
  656. package/dist/routes/api/health/live/get.d.ts +20 -0
  657. package/dist/routes/api/health/live/get.d.ts.map +1 -0
  658. package/dist/routes/api/health/live/get.js +28 -0
  659. package/dist/routes/api/health/live/get.js.map +1 -0
  660. package/dist/routes/api/health/ready/get.d.ts +35 -0
  661. package/dist/routes/api/health/ready/get.d.ts.map +1 -0
  662. package/dist/routes/api/health/ready/get.js +60 -0
  663. package/dist/routes/api/health/ready/get.js.map +1 -0
  664. package/dist/routes/api/index.d.ts +1286 -0
  665. package/dist/routes/api/index.d.ts.map +1 -0
  666. package/dist/routes/api/index.js +21 -0
  667. package/dist/routes/api/index.js.map +1 -0
  668. package/dist/routes/api/oauth/_provider/authorize/get.d.ts +21 -0
  669. package/dist/routes/api/oauth/_provider/authorize/get.d.ts.map +1 -0
  670. package/dist/routes/api/oauth/_provider/authorize/get.js +72 -0
  671. package/dist/routes/api/oauth/_provider/authorize/get.js.map +1 -0
  672. package/dist/routes/api/oauth/_provider/callback/get.d.ts +42 -0
  673. package/dist/routes/api/oauth/_provider/callback/get.d.ts.map +1 -0
  674. package/dist/routes/api/oauth/_provider/callback/get.js +146 -0
  675. package/dist/routes/api/oauth/_provider/callback/get.js.map +1 -0
  676. package/dist/routes/api/oauth/_provider/callback/post.d.ts +42 -0
  677. package/dist/routes/api/oauth/_provider/callback/post.d.ts.map +1 -0
  678. package/dist/routes/api/oauth/_provider/callback/post.js +178 -0
  679. package/dist/routes/api/oauth/_provider/callback/post.js.map +1 -0
  680. package/dist/routes/api/oauth/_provider/delete.d.ts +18 -0
  681. package/dist/routes/api/oauth/_provider/delete.d.ts.map +1 -0
  682. package/dist/routes/api/oauth/_provider/delete.js +62 -0
  683. package/dist/routes/api/oauth/_provider/delete.js.map +1 -0
  684. package/dist/routes/api/oauth/authorization-context/get.d.ts +38 -0
  685. package/dist/routes/api/oauth/authorization-context/get.d.ts.map +1 -0
  686. package/dist/routes/api/oauth/authorization-context/get.js +70 -0
  687. package/dist/routes/api/oauth/authorization-context/get.js.map +1 -0
  688. package/dist/routes/api/oauth/index.d.ts +142 -0
  689. package/dist/routes/api/oauth/index.d.ts.map +1 -0
  690. package/dist/routes/api/oauth/index.js +13 -0
  691. package/dist/routes/api/oauth/index.js.map +1 -0
  692. package/dist/routes/api/terms/consent/post.d.ts +29 -0
  693. package/dist/routes/api/terms/consent/post.d.ts.map +1 -0
  694. package/dist/routes/api/terms/consent/post.js +111 -0
  695. package/dist/routes/api/terms/consent/post.js.map +1 -0
  696. package/dist/routes/api/terms/get.d.ts +40 -0
  697. package/dist/routes/api/terms/get.d.ts.map +1 -0
  698. package/dist/routes/api/terms/get.js +53 -0
  699. package/dist/routes/api/terms/get.js.map +1 -0
  700. package/dist/routes/api/terms/index.d.ts +55 -0
  701. package/dist/routes/api/terms/index.d.ts.map +1 -0
  702. package/dist/routes/api/terms/index.js +7 -0
  703. package/dist/routes/api/terms/index.js.map +1 -0
  704. package/dist/routes/api/user/delete.d.ts +21 -0
  705. package/dist/routes/api/user/delete.d.ts.map +1 -0
  706. package/dist/routes/api/user/delete.js +89 -0
  707. package/dist/routes/api/user/delete.js.map +1 -0
  708. package/dist/routes/api/user/index.d.ts +337 -0
  709. package/dist/routes/api/user/index.d.ts.map +1 -0
  710. package/dist/routes/api/user/index.js +35 -0
  711. package/dist/routes/api/user/index.js.map +1 -0
  712. package/dist/routes/api/user/oauth-accounts/get.d.ts +23 -0
  713. package/dist/routes/api/user/oauth-accounts/get.d.ts.map +1 -0
  714. package/dist/routes/api/user/oauth-accounts/get.js +58 -0
  715. package/dist/routes/api/user/oauth-accounts/get.js.map +1 -0
  716. package/dist/routes/api/user/passkeys/_id/delete.d.ts +18 -0
  717. package/dist/routes/api/user/passkeys/_id/delete.d.ts.map +1 -0
  718. package/dist/routes/api/user/passkeys/_id/delete.js +87 -0
  719. package/dist/routes/api/user/passkeys/_id/delete.js.map +1 -0
  720. package/dist/routes/api/user/passkeys/_id/patch.d.ts +22 -0
  721. package/dist/routes/api/user/passkeys/_id/patch.d.ts.map +1 -0
  722. package/dist/routes/api/user/passkeys/_id/patch.js +64 -0
  723. package/dist/routes/api/user/passkeys/_id/patch.js.map +1 -0
  724. package/dist/routes/api/user/passkeys/get.d.ts +21 -0
  725. package/dist/routes/api/user/passkeys/get.d.ts.map +1 -0
  726. package/dist/routes/api/user/passkeys/get.js +52 -0
  727. package/dist/routes/api/user/passkeys/get.js.map +1 -0
  728. package/dist/routes/api/user/passkeys/register/options/post.d.ts +55 -0
  729. package/dist/routes/api/user/passkeys/register/options/post.d.ts.map +1 -0
  730. package/dist/routes/api/user/passkeys/register/options/post.js +74 -0
  731. package/dist/routes/api/user/passkeys/register/options/post.js.map +1 -0
  732. package/dist/routes/api/user/passkeys/register/verify/post.d.ts +51 -0
  733. package/dist/routes/api/user/passkeys/register/verify/post.d.ts.map +1 -0
  734. package/dist/routes/api/user/passkeys/register/verify/post.js +95 -0
  735. package/dist/routes/api/user/passkeys/register/verify/post.js.map +1 -0
  736. package/dist/routes/api/user/password/delete.d.ts +23 -0
  737. package/dist/routes/api/user/password/delete.d.ts.map +1 -0
  738. package/dist/routes/api/user/password/delete.js +78 -0
  739. package/dist/routes/api/user/password/delete.js.map +1 -0
  740. package/dist/routes/api/user/password/post.d.ts +23 -0
  741. package/dist/routes/api/user/password/post.d.ts.map +1 -0
  742. package/dist/routes/api/user/password/post.js +81 -0
  743. package/dist/routes/api/user/password/post.js.map +1 -0
  744. package/dist/routes/api/user/password/put.d.ts +24 -0
  745. package/dist/routes/api/user/password/put.d.ts.map +1 -0
  746. package/dist/routes/api/user/password/put.js +74 -0
  747. package/dist/routes/api/user/password/put.js.map +1 -0
  748. package/dist/routes/api/user/session/get.d.ts +33 -0
  749. package/dist/routes/api/user/session/get.d.ts.map +1 -0
  750. package/dist/routes/api/user/session/get.js +36 -0
  751. package/dist/routes/api/user/session/get.js.map +1 -0
  752. package/dist/routes/api/user/totp/confirm/post.d.ts +33 -0
  753. package/dist/routes/api/user/totp/confirm/post.d.ts.map +1 -0
  754. package/dist/routes/api/user/totp/confirm/post.js +73 -0
  755. package/dist/routes/api/user/totp/confirm/post.js.map +1 -0
  756. package/dist/routes/api/user/totp/delete.d.ts +23 -0
  757. package/dist/routes/api/user/totp/delete.d.ts.map +1 -0
  758. package/dist/routes/api/user/totp/delete.js +74 -0
  759. package/dist/routes/api/user/totp/delete.js.map +1 -0
  760. package/dist/routes/api/user/totp/recovery/regenerate/post.d.ts +18 -0
  761. package/dist/routes/api/user/totp/recovery/regenerate/post.d.ts.map +1 -0
  762. package/dist/routes/api/user/totp/recovery/regenerate/post.js +54 -0
  763. package/dist/routes/api/user/totp/recovery/regenerate/post.js.map +1 -0
  764. package/dist/routes/api/user/totp/setup/post.d.ts +22 -0
  765. package/dist/routes/api/user/totp/setup/post.d.ts.map +1 -0
  766. package/dist/routes/api/user/totp/setup/post.js +82 -0
  767. package/dist/routes/api/user/totp/setup/post.js.map +1 -0
  768. package/dist/routes/api/user/totp/verify/post.d.ts +23 -0
  769. package/dist/routes/api/user/totp/verify/post.d.ts.map +1 -0
  770. package/dist/routes/api/user/totp/verify/post.js +71 -0
  771. package/dist/routes/api/user/totp/verify/post.js.map +1 -0
  772. package/dist/routes/index.d.ts +1591 -0
  773. package/dist/routes/index.d.ts.map +1 -0
  774. package/dist/routes/index.js +9 -0
  775. package/dist/routes/index.js.map +1 -0
  776. package/dist/routes/oauth/.well-known/jwks/get.d.ts +24 -0
  777. package/dist/routes/oauth/.well-known/jwks/get.d.ts.map +1 -0
  778. package/dist/routes/oauth/.well-known/jwks/get.js +41 -0
  779. package/dist/routes/oauth/.well-known/jwks/get.js.map +1 -0
  780. package/dist/routes/oauth/.well-known/openid-configuration/get.d.ts +68 -0
  781. package/dist/routes/oauth/.well-known/openid-configuration/get.d.ts.map +1 -0
  782. package/dist/routes/oauth/.well-known/openid-configuration/get.js +193 -0
  783. package/dist/routes/oauth/.well-known/openid-configuration/get.js.map +1 -0
  784. package/dist/routes/oauth/authorize/get.d.ts +34 -0
  785. package/dist/routes/oauth/authorize/get.d.ts.map +1 -0
  786. package/dist/routes/oauth/authorize/get.js +179 -0
  787. package/dist/routes/oauth/authorize/get.js.map +1 -0
  788. package/dist/routes/oauth/client-auth.d.ts +10 -0
  789. package/dist/routes/oauth/client-auth.d.ts.map +1 -0
  790. package/dist/routes/oauth/client-auth.js +57 -0
  791. package/dist/routes/oauth/client-auth.js.map +1 -0
  792. package/dist/routes/oauth/cors.d.ts +9 -0
  793. package/dist/routes/oauth/cors.d.ts.map +1 -0
  794. package/dist/routes/oauth/cors.js +55 -0
  795. package/dist/routes/oauth/cors.js.map +1 -0
  796. package/dist/routes/oauth/device/get-post.d.ts +29 -0
  797. package/dist/routes/oauth/device/get-post.d.ts.map +1 -0
  798. package/dist/routes/oauth/device/get-post.js +73 -0
  799. package/dist/routes/oauth/device/get-post.js.map +1 -0
  800. package/dist/routes/oauth/device-authorization/post.d.ts +25 -0
  801. package/dist/routes/oauth/device-authorization/post.d.ts.map +1 -0
  802. package/dist/routes/oauth/device-authorization/post.js +89 -0
  803. package/dist/routes/oauth/device-authorization/post.js.map +1 -0
  804. package/dist/routes/oauth/end-session/get.d.ts +34 -0
  805. package/dist/routes/oauth/end-session/get.d.ts.map +1 -0
  806. package/dist/routes/oauth/end-session/get.js +83 -0
  807. package/dist/routes/oauth/end-session/get.js.map +1 -0
  808. package/dist/routes/oauth/index.d.ts +272 -0
  809. package/dist/routes/oauth/index.d.ts.map +1 -0
  810. package/dist/routes/oauth/index.js +25 -0
  811. package/dist/routes/oauth/index.js.map +1 -0
  812. package/dist/routes/oauth/introspect/post.d.ts +29 -0
  813. package/dist/routes/oauth/introspect/post.d.ts.map +1 -0
  814. package/dist/routes/oauth/introspect/post.js +104 -0
  815. package/dist/routes/oauth/introspect/post.js.map +1 -0
  816. package/dist/routes/oauth/revoke/post.d.ts +22 -0
  817. package/dist/routes/oauth/revoke/post.d.ts.map +1 -0
  818. package/dist/routes/oauth/revoke/post.js +104 -0
  819. package/dist/routes/oauth/revoke/post.js.map +1 -0
  820. package/dist/routes/oauth/token/post.d.ts +31 -0
  821. package/dist/routes/oauth/token/post.d.ts.map +1 -0
  822. package/dist/routes/oauth/token/post.js +171 -0
  823. package/dist/routes/oauth/token/post.js.map +1 -0
  824. package/dist/routes/oauth/userinfo/get.d.ts +35 -0
  825. package/dist/routes/oauth/userinfo/get.d.ts.map +1 -0
  826. package/dist/routes/oauth/userinfo/get.js +94 -0
  827. package/dist/routes/oauth/userinfo/get.js.map +1 -0
  828. package/dist/schemas/error.d.ts +2354 -0
  829. package/dist/schemas/error.d.ts.map +1 -0
  830. package/dist/schemas/error.js +174 -0
  831. package/dist/schemas/error.js.map +1 -0
  832. package/dist/schemas/field.d.ts +92 -0
  833. package/dist/schemas/field.d.ts.map +1 -0
  834. package/dist/schemas/field.js +183 -0
  835. package/dist/schemas/field.js.map +1 -0
  836. package/dist/schemas/header.d.ts +7 -0
  837. package/dist/schemas/header.d.ts.map +1 -0
  838. package/dist/schemas/header.js +11 -0
  839. package/dist/schemas/header.js.map +1 -0
  840. package/dist/schemas/oauth.d.ts +26 -0
  841. package/dist/schemas/oauth.d.ts.map +1 -0
  842. package/dist/schemas/oauth.js +51 -0
  843. package/dist/schemas/oauth.js.map +1 -0
  844. package/dist/schemas/provider.d.ts +7 -0
  845. package/dist/schemas/provider.d.ts.map +1 -0
  846. package/dist/schemas/provider.js +31 -0
  847. package/dist/schemas/provider.js.map +1 -0
  848. package/dist/schemas/response.d.ts +678 -0
  849. package/dist/schemas/response.d.ts.map +1 -0
  850. package/dist/schemas/response.js +642 -0
  851. package/dist/schemas/response.js.map +1 -0
  852. package/dist/schemas/terms.d.ts +93 -0
  853. package/dist/schemas/terms.d.ts.map +1 -0
  854. package/dist/schemas/terms.js +109 -0
  855. package/dist/schemas/terms.js.map +1 -0
  856. package/dist/seeders/config.seeder.d.ts +23 -0
  857. package/dist/seeders/config.seeder.d.ts.map +1 -0
  858. package/dist/seeders/config.seeder.js +258 -0
  859. package/dist/seeders/config.seeder.js.map +1 -0
  860. package/dist/services/account-selection.service.d.ts +52 -0
  861. package/dist/services/account-selection.service.d.ts.map +1 -0
  862. package/dist/services/account-selection.service.js +120 -0
  863. package/dist/services/account-selection.service.js.map +1 -0
  864. package/dist/services/cleanup.service.d.ts +166 -0
  865. package/dist/services/cleanup.service.d.ts.map +1 -0
  866. package/dist/services/cleanup.service.js +605 -0
  867. package/dist/services/cleanup.service.js.map +1 -0
  868. package/dist/services/container.d.ts +229 -0
  869. package/dist/services/container.d.ts.map +1 -0
  870. package/dist/services/container.js +82 -0
  871. package/dist/services/container.js.map +1 -0
  872. package/dist/services/email.service.d.ts +69 -0
  873. package/dist/services/email.service.d.ts.map +1 -0
  874. package/dist/services/email.service.js +164 -0
  875. package/dist/services/email.service.js.map +1 -0
  876. package/dist/services/jwt.service.d.ts +331 -0
  877. package/dist/services/jwt.service.d.ts.map +1 -0
  878. package/dist/services/jwt.service.js +571 -0
  879. package/dist/services/jwt.service.js.map +1 -0
  880. package/dist/services/mikro.service.d.ts +49 -0
  881. package/dist/services/mikro.service.d.ts.map +1 -0
  882. package/dist/services/mikro.service.js +77 -0
  883. package/dist/services/mikro.service.js.map +1 -0
  884. package/dist/services/oauth-authorize.service.d.ts +144 -0
  885. package/dist/services/oauth-authorize.service.d.ts.map +1 -0
  886. package/dist/services/oauth-authorize.service.js +808 -0
  887. package/dist/services/oauth-authorize.service.js.map +1 -0
  888. package/dist/services/oauth-client.service.d.ts +44 -0
  889. package/dist/services/oauth-client.service.d.ts.map +1 -0
  890. package/dist/services/oauth-client.service.js +128 -0
  891. package/dist/services/oauth-client.service.js.map +1 -0
  892. package/dist/services/oauth-connect.service.d.ts +180 -0
  893. package/dist/services/oauth-connect.service.d.ts.map +1 -0
  894. package/dist/services/oauth-connect.service.js +730 -0
  895. package/dist/services/oauth-connect.service.js.map +1 -0
  896. package/dist/services/oauth-token.service.d.ts +180 -0
  897. package/dist/services/oauth-token.service.d.ts.map +1 -0
  898. package/dist/services/oauth-token.service.js +565 -0
  899. package/dist/services/oauth-token.service.js.map +1 -0
  900. package/dist/services/passkey.service.d.ts +73 -0
  901. package/dist/services/passkey.service.d.ts.map +1 -0
  902. package/dist/services/passkey.service.js +207 -0
  903. package/dist/services/passkey.service.js.map +1 -0
  904. package/dist/services/password-auth.service.d.ts +24 -0
  905. package/dist/services/password-auth.service.d.ts.map +1 -0
  906. package/dist/services/password-auth.service.js +87 -0
  907. package/dist/services/password-auth.service.js.map +1 -0
  908. package/dist/services/password-reset.service.d.ts +31 -0
  909. package/dist/services/password-reset.service.d.ts.map +1 -0
  910. package/dist/services/password-reset.service.js +54 -0
  911. package/dist/services/password-reset.service.js.map +1 -0
  912. package/dist/services/scheduler.service.d.ts +20 -0
  913. package/dist/services/scheduler.service.d.ts.map +1 -0
  914. package/dist/services/scheduler.service.js +85 -0
  915. package/dist/services/scheduler.service.js.map +1 -0
  916. package/dist/services/security.service.d.ts +17 -0
  917. package/dist/services/security.service.d.ts.map +1 -0
  918. package/dist/services/security.service.js +84 -0
  919. package/dist/services/security.service.js.map +1 -0
  920. package/dist/services/terms.service.d.ts +131 -0
  921. package/dist/services/terms.service.d.ts.map +1 -0
  922. package/dist/services/terms.service.js +210 -0
  923. package/dist/services/terms.service.js.map +1 -0
  924. package/dist/services/totp.service.d.ts +86 -0
  925. package/dist/services/totp.service.d.ts.map +1 -0
  926. package/dist/services/totp.service.js +244 -0
  927. package/dist/services/totp.service.js.map +1 -0
  928. package/dist/services/user-consent.service.d.ts +35 -0
  929. package/dist/services/user-consent.service.d.ts.map +1 -0
  930. package/dist/services/user-consent.service.js +45 -0
  931. package/dist/services/user-consent.service.js.map +1 -0
  932. package/dist/services/user.service.d.ts +87 -0
  933. package/dist/services/user.service.d.ts.map +1 -0
  934. package/dist/services/user.service.js +280 -0
  935. package/dist/services/user.service.js.map +1 -0
  936. package/package.json +249 -0
  937. package/public/assets/2fa-B5vLgDXQ.js +2 -0
  938. package/public/assets/2fa-B5vLgDXQ.js.map +1 -0
  939. package/public/assets/2fa-BqsM_D-X.js +2 -0
  940. package/public/assets/2fa-BqsM_D-X.js.map +1 -0
  941. package/public/assets/2fa-C5vUVgr_.js +2 -0
  942. package/public/assets/2fa-C5vUVgr_.js.map +1 -0
  943. package/public/assets/2fa-CCOTIHDZ.js +2 -0
  944. package/public/assets/2fa-CCOTIHDZ.js.map +1 -0
  945. package/public/assets/DialogHandle-BmtK2pRn.js +2 -0
  946. package/public/assets/DialogHandle-BmtK2pRn.js.map +1 -0
  947. package/public/assets/FieldItemContext-BeNfhOsU.js +2 -0
  948. package/public/assets/FieldItemContext-BeNfhOsU.js.map +1 -0
  949. package/public/assets/admin-BPijkLw-.js +2 -0
  950. package/public/assets/admin-BPijkLw-.js.map +1 -0
  951. package/public/assets/admin-users-DvPbw1Vq.js +2 -0
  952. package/public/assets/admin-users-DvPbw1Vq.js.map +1 -0
  953. package/public/assets/alert-leqyvHOp.js +2 -0
  954. package/public/assets/alert-leqyvHOp.js.map +1 -0
  955. package/public/assets/auth-choice-row-BCGjuedo.js +2 -0
  956. package/public/assets/auth-choice-row-BCGjuedo.js.map +1 -0
  957. package/public/assets/auth-field-DD8kvl--.js +2 -0
  958. package/public/assets/auth-field-DD8kvl--.js.map +1 -0
  959. package/public/assets/auth-footer-Cz5ivsDc.js +2 -0
  960. package/public/assets/auth-footer-Cz5ivsDc.js.map +1 -0
  961. package/public/assets/auth-layout-VtpryDof.js +2 -0
  962. package/public/assets/auth-layout-VtpryDof.js.map +1 -0
  963. package/public/assets/auth-page-header-CIn2E4zI.js +2 -0
  964. package/public/assets/auth-page-header-CIn2E4zI.js.map +1 -0
  965. package/public/assets/authorization-context-banner-SOuBHWIb.js +2 -0
  966. package/public/assets/authorization-context-banner-SOuBHWIb.js.map +1 -0
  967. package/public/assets/avatar-BEQjf2x6.js +2 -0
  968. package/public/assets/avatar-BEQjf2x6.js.map +1 -0
  969. package/public/assets/badge-CsOfUji0.js +2 -0
  970. package/public/assets/badge-CsOfUji0.js.map +1 -0
  971. package/public/assets/checkbox-gdHnSFQ-.js +2 -0
  972. package/public/assets/checkbox-gdHnSFQ-.js.map +1 -0
  973. package/public/assets/chevron-right-CN0jUyV0.js +2 -0
  974. package/public/assets/chevron-right-CN0jUyV0.js.map +1 -0
  975. package/public/assets/circle-check-6QTLhwM_.js +2 -0
  976. package/public/assets/circle-check-6QTLhwM_.js.map +1 -0
  977. package/public/assets/config-DTQCUlfZ.js +2 -0
  978. package/public/assets/config-DTQCUlfZ.js.map +1 -0
  979. package/public/assets/consent-BqqFDdsr.js +2 -0
  980. package/public/assets/consent-BqqFDdsr.js.map +1 -0
  981. package/public/assets/consent-CfRbz2R7.js +2 -0
  982. package/public/assets/consent-CfRbz2R7.js.map +1 -0
  983. package/public/assets/createLucideIcon-BPpAIXR_.js +2 -0
  984. package/public/assets/createLucideIcon-BPpAIXR_.js.map +1 -0
  985. package/public/assets/email-C5vUVgr_.js +2 -0
  986. package/public/assets/email-C5vUVgr_.js.map +1 -0
  987. package/public/assets/email-CKKakxPJ.js +2 -0
  988. package/public/assets/email-CKKakxPJ.js.map +1 -0
  989. package/public/assets/error-BMXxpgfR.js +2 -0
  990. package/public/assets/error-BMXxpgfR.js.map +1 -0
  991. package/public/assets/field-Cn4H1CUj.js +3 -0
  992. package/public/assets/field-Cn4H1CUj.js.map +1 -0
  993. package/public/assets/fingerprint-pattern-DP62Vk8x.js +2 -0
  994. package/public/assets/fingerprint-pattern-DP62Vk8x.js.map +1 -0
  995. package/public/assets/forgot-C5vUVgr_.js +2 -0
  996. package/public/assets/forgot-C5vUVgr_.js.map +1 -0
  997. package/public/assets/forgot-rO9sByfV.js +2 -0
  998. package/public/assets/forgot-rO9sByfV.js.map +1 -0
  999. package/public/assets/ibm-plex-mono-cyrillic-400-normal-BSMlKf0J.woff2 +0 -0
  1000. package/public/assets/ibm-plex-mono-cyrillic-400-normal-CEL4l2ZJ.woff +0 -0
  1001. package/public/assets/ibm-plex-mono-cyrillic-ext-400-normal-DMdlQ8Kv.woff +0 -0
  1002. package/public/assets/ibm-plex-mono-cyrillic-ext-400-normal-xuaO2J-f.woff2 +0 -0
  1003. package/public/assets/ibm-plex-mono-latin-400-normal-CvHOgSBP.woff +0 -0
  1004. package/public/assets/ibm-plex-mono-latin-400-normal-DMJ8VG8y.woff2 +0 -0
  1005. package/public/assets/ibm-plex-mono-latin-ext-400-normal-BmRBH3aV.woff2 +0 -0
  1006. package/public/assets/ibm-plex-mono-latin-ext-400-normal-D3D2R8hC.woff +0 -0
  1007. package/public/assets/ibm-plex-mono-vietnamese-400-normal-BulugwFq.woff2 +0 -0
  1008. package/public/assets/ibm-plex-mono-vietnamese-400-normal-DDuiU_S-.woff +0 -0
  1009. package/public/assets/ibm-plex-sans-cyrillic-ext-wght-normal-d45eAU9y.woff2 +0 -0
  1010. package/public/assets/ibm-plex-sans-cyrillic-wght-normal-BAAhND-U.woff2 +0 -0
  1011. package/public/assets/ibm-plex-sans-greek-wght-normal-CmyJS8uq.woff2 +0 -0
  1012. package/public/assets/ibm-plex-sans-jp-10-400-normal-BLMYXIZq.woff2 +0 -0
  1013. package/public/assets/ibm-plex-sans-jp-10-400-normal-DJrewyrW.woff +0 -0
  1014. package/public/assets/ibm-plex-sans-jp-10-600-normal-B5S02aip.woff2 +0 -0
  1015. package/public/assets/ibm-plex-sans-jp-10-600-normal-DP69BzJV.woff +0 -0
  1016. package/public/assets/ibm-plex-sans-jp-10-700-normal-9JfFFKCo.woff +0 -0
  1017. package/public/assets/ibm-plex-sans-jp-10-700-normal-Blnt0RhT.woff2 +0 -0
  1018. package/public/assets/ibm-plex-sans-jp-100-400-normal-4_aXP0Hy.woff2 +0 -0
  1019. package/public/assets/ibm-plex-sans-jp-100-400-normal-DsMZ2scz.woff +0 -0
  1020. package/public/assets/ibm-plex-sans-jp-100-600-normal-Bolb9iqL.woff2 +0 -0
  1021. package/public/assets/ibm-plex-sans-jp-100-600-normal-nIl-leH5.woff +0 -0
  1022. package/public/assets/ibm-plex-sans-jp-100-700-normal-Bkd0xED8.woff +0 -0
  1023. package/public/assets/ibm-plex-sans-jp-100-700-normal-CvaNbDMd.woff2 +0 -0
  1024. package/public/assets/ibm-plex-sans-jp-101-400-normal-DoWmZlZj.woff +0 -0
  1025. package/public/assets/ibm-plex-sans-jp-101-400-normal-y2nxydha.woff2 +0 -0
  1026. package/public/assets/ibm-plex-sans-jp-101-600-normal-BKchJvlk.woff2 +0 -0
  1027. package/public/assets/ibm-plex-sans-jp-101-600-normal-BrpHYkNm.woff +0 -0
  1028. package/public/assets/ibm-plex-sans-jp-101-700-normal-CVueR0Vp.woff2 +0 -0
  1029. package/public/assets/ibm-plex-sans-jp-101-700-normal-DJ1MIwHY.woff +0 -0
  1030. package/public/assets/ibm-plex-sans-jp-102-400-normal-BQfFShQ1.woff2 +0 -0
  1031. package/public/assets/ibm-plex-sans-jp-102-400-normal-Ca0txE7W.woff +0 -0
  1032. package/public/assets/ibm-plex-sans-jp-102-600-normal-B1Puw4D2.woff2 +0 -0
  1033. package/public/assets/ibm-plex-sans-jp-102-600-normal-CUZjz5v8.woff +0 -0
  1034. package/public/assets/ibm-plex-sans-jp-102-700-normal-BkK1TRsE.woff2 +0 -0
  1035. package/public/assets/ibm-plex-sans-jp-102-700-normal-ZVcO00Fl.woff +0 -0
  1036. package/public/assets/ibm-plex-sans-jp-103-400-normal-DHwmA74W.woff +0 -0
  1037. package/public/assets/ibm-plex-sans-jp-103-400-normal-DNs9Omj-.woff2 +0 -0
  1038. package/public/assets/ibm-plex-sans-jp-103-600-normal-BW8Frffd.woff +0 -0
  1039. package/public/assets/ibm-plex-sans-jp-103-600-normal-tN_-CKym.woff2 +0 -0
  1040. package/public/assets/ibm-plex-sans-jp-103-700-normal-CXAkQppa.woff2 +0 -0
  1041. package/public/assets/ibm-plex-sans-jp-103-700-normal-DNgJaILb.woff +0 -0
  1042. package/public/assets/ibm-plex-sans-jp-104-400-normal-BmhZQdzl.woff +0 -0
  1043. package/public/assets/ibm-plex-sans-jp-104-400-normal-CuKiid_t.woff2 +0 -0
  1044. package/public/assets/ibm-plex-sans-jp-104-600-normal-2KjU-YTd.woff2 +0 -0
  1045. package/public/assets/ibm-plex-sans-jp-104-600-normal-Duw986jf.woff +0 -0
  1046. package/public/assets/ibm-plex-sans-jp-104-700-normal-CYzW5SnO.woff2 +0 -0
  1047. package/public/assets/ibm-plex-sans-jp-104-700-normal-Vn6i4czv.woff +0 -0
  1048. package/public/assets/ibm-plex-sans-jp-105-400-normal-BBf-_m9N.woff +0 -0
  1049. package/public/assets/ibm-plex-sans-jp-105-400-normal-CHWaGU9J.woff2 +0 -0
  1050. package/public/assets/ibm-plex-sans-jp-105-600-normal-CmUdXGK4.woff +0 -0
  1051. package/public/assets/ibm-plex-sans-jp-105-600-normal-Eel3dN7e.woff2 +0 -0
  1052. package/public/assets/ibm-plex-sans-jp-105-700-normal-Cv9j40LU.woff2 +0 -0
  1053. package/public/assets/ibm-plex-sans-jp-105-700-normal-DWwtLgxy.woff +0 -0
  1054. package/public/assets/ibm-plex-sans-jp-106-400-normal-CGlLvzZs.woff2 +0 -0
  1055. package/public/assets/ibm-plex-sans-jp-106-400-normal-foxE5hHG.woff +0 -0
  1056. package/public/assets/ibm-plex-sans-jp-106-600-normal-B1bzLzbH.woff2 +0 -0
  1057. package/public/assets/ibm-plex-sans-jp-106-600-normal-tHp1RYGF.woff +0 -0
  1058. package/public/assets/ibm-plex-sans-jp-106-700-normal-BtC5W1lQ.woff2 +0 -0
  1059. package/public/assets/ibm-plex-sans-jp-106-700-normal-DuUOTgvs.woff +0 -0
  1060. package/public/assets/ibm-plex-sans-jp-107-400-normal-2yW6cSNP.woff2 +0 -0
  1061. package/public/assets/ibm-plex-sans-jp-107-400-normal-Dh4QR9Sa.woff +0 -0
  1062. package/public/assets/ibm-plex-sans-jp-107-600-normal-3L-o-gNc.woff +0 -0
  1063. package/public/assets/ibm-plex-sans-jp-107-600-normal-JAonwJOj.woff2 +0 -0
  1064. package/public/assets/ibm-plex-sans-jp-107-700-normal-BPH5rI6C.woff +0 -0
  1065. package/public/assets/ibm-plex-sans-jp-107-700-normal-Cr7-iFW7.woff2 +0 -0
  1066. package/public/assets/ibm-plex-sans-jp-108-400-normal-BKXuaz7L.woff2 +0 -0
  1067. package/public/assets/ibm-plex-sans-jp-108-400-normal-CMeK7Yoj.woff +0 -0
  1068. package/public/assets/ibm-plex-sans-jp-108-600-normal-9ormcCnp.woff +0 -0
  1069. package/public/assets/ibm-plex-sans-jp-108-600-normal-CIZc2z7F.woff2 +0 -0
  1070. package/public/assets/ibm-plex-sans-jp-108-700-normal-BQqq_N37.woff +0 -0
  1071. package/public/assets/ibm-plex-sans-jp-108-700-normal-DKrl9gDv.woff2 +0 -0
  1072. package/public/assets/ibm-plex-sans-jp-109-400-normal-BYkYsUMr.woff +0 -0
  1073. package/public/assets/ibm-plex-sans-jp-109-400-normal-DLZ5N3wZ.woff2 +0 -0
  1074. package/public/assets/ibm-plex-sans-jp-109-600-normal-DgvmKVfh.woff +0 -0
  1075. package/public/assets/ibm-plex-sans-jp-109-600-normal-J_8d2uPX.woff2 +0 -0
  1076. package/public/assets/ibm-plex-sans-jp-109-700-normal-BKzoJI_l.woff +0 -0
  1077. package/public/assets/ibm-plex-sans-jp-109-700-normal-CgGmrF-h.woff2 +0 -0
  1078. package/public/assets/ibm-plex-sans-jp-11-400-normal-C0WskPfy.woff2 +0 -0
  1079. package/public/assets/ibm-plex-sans-jp-11-400-normal-D4F8GONb.woff +0 -0
  1080. package/public/assets/ibm-plex-sans-jp-11-600-normal-HVxl9urI.woff2 +0 -0
  1081. package/public/assets/ibm-plex-sans-jp-11-600-normal-U3d7dgox.woff +0 -0
  1082. package/public/assets/ibm-plex-sans-jp-11-700-normal-B_TMqNrG.woff +0 -0
  1083. package/public/assets/ibm-plex-sans-jp-11-700-normal-DUhgBhd7.woff2 +0 -0
  1084. package/public/assets/ibm-plex-sans-jp-110-400-normal-BiGMHdAV.woff2 +0 -0
  1085. package/public/assets/ibm-plex-sans-jp-110-400-normal-CWciHSky.woff +0 -0
  1086. package/public/assets/ibm-plex-sans-jp-110-600-normal-BXI508QN.woff2 +0 -0
  1087. package/public/assets/ibm-plex-sans-jp-110-600-normal-C3nYbUvy.woff +0 -0
  1088. package/public/assets/ibm-plex-sans-jp-110-700-normal-A9EL87rF.woff2 +0 -0
  1089. package/public/assets/ibm-plex-sans-jp-110-700-normal-DjakDWxK.woff +0 -0
  1090. package/public/assets/ibm-plex-sans-jp-111-400-normal-36IKJEvJ.woff +0 -0
  1091. package/public/assets/ibm-plex-sans-jp-111-400-normal-DwkaZ2wL.woff2 +0 -0
  1092. package/public/assets/ibm-plex-sans-jp-111-600-normal-B0FD3VdV.woff +0 -0
  1093. package/public/assets/ibm-plex-sans-jp-111-600-normal-DjZCOVOv.woff2 +0 -0
  1094. package/public/assets/ibm-plex-sans-jp-111-700-normal-B2j03kCB.woff2 +0 -0
  1095. package/public/assets/ibm-plex-sans-jp-111-700-normal-Dv5sal4h.woff +0 -0
  1096. package/public/assets/ibm-plex-sans-jp-112-400-normal-DD55zx92.woff +0 -0
  1097. package/public/assets/ibm-plex-sans-jp-112-400-normal-DpWOC24h.woff2 +0 -0
  1098. package/public/assets/ibm-plex-sans-jp-112-600-normal-BkM4GSUi.woff2 +0 -0
  1099. package/public/assets/ibm-plex-sans-jp-112-600-normal-C2q6NvAJ.woff +0 -0
  1100. package/public/assets/ibm-plex-sans-jp-112-700-normal-Ci_Zf1oH.woff +0 -0
  1101. package/public/assets/ibm-plex-sans-jp-112-700-normal-Fyn9YqrR.woff2 +0 -0
  1102. package/public/assets/ibm-plex-sans-jp-113-400-normal-C-SwPUxy.woff2 +0 -0
  1103. package/public/assets/ibm-plex-sans-jp-113-400-normal-ngLrg9Ph.woff +0 -0
  1104. package/public/assets/ibm-plex-sans-jp-113-600-normal-FVXa1K7W.woff2 +0 -0
  1105. package/public/assets/ibm-plex-sans-jp-113-600-normal-pSsmDa5a.woff +0 -0
  1106. package/public/assets/ibm-plex-sans-jp-113-700-normal-CmNR_-6d.woff2 +0 -0
  1107. package/public/assets/ibm-plex-sans-jp-113-700-normal-kzCap4I7.woff +0 -0
  1108. package/public/assets/ibm-plex-sans-jp-114-400-normal-D64L80iO.woff2 +0 -0
  1109. package/public/assets/ibm-plex-sans-jp-114-400-normal-DkNQ39Bm.woff +0 -0
  1110. package/public/assets/ibm-plex-sans-jp-114-600-normal-CfAYQkvR.woff +0 -0
  1111. package/public/assets/ibm-plex-sans-jp-114-600-normal-DradD0b_.woff2 +0 -0
  1112. package/public/assets/ibm-plex-sans-jp-114-700-normal-CXZm0WJV.woff +0 -0
  1113. package/public/assets/ibm-plex-sans-jp-114-700-normal-DSXuAVj8.woff2 +0 -0
  1114. package/public/assets/ibm-plex-sans-jp-115-400-normal-BA3oFlL7.woff +0 -0
  1115. package/public/assets/ibm-plex-sans-jp-115-400-normal-DGp_yQCO.woff2 +0 -0
  1116. package/public/assets/ibm-plex-sans-jp-115-600-normal-5l6N5_Bf.woff +0 -0
  1117. package/public/assets/ibm-plex-sans-jp-115-600-normal-Bf5qTwLg.woff2 +0 -0
  1118. package/public/assets/ibm-plex-sans-jp-115-700-normal-CCrS9Tpv.woff +0 -0
  1119. package/public/assets/ibm-plex-sans-jp-115-700-normal-DhiQdU1x.woff2 +0 -0
  1120. package/public/assets/ibm-plex-sans-jp-116-400-normal-BidJdmrW.woff +0 -0
  1121. package/public/assets/ibm-plex-sans-jp-116-400-normal-DcXtXIIt.woff2 +0 -0
  1122. package/public/assets/ibm-plex-sans-jp-116-600-normal-Bwb7m1tn.woff2 +0 -0
  1123. package/public/assets/ibm-plex-sans-jp-116-600-normal-DShPLUNp.woff +0 -0
  1124. package/public/assets/ibm-plex-sans-jp-116-700-normal-C1DXoU6t.woff2 +0 -0
  1125. package/public/assets/ibm-plex-sans-jp-116-700-normal-C2BwbuD6.woff +0 -0
  1126. package/public/assets/ibm-plex-sans-jp-117-400-normal-Bq_d-uLr.woff +0 -0
  1127. package/public/assets/ibm-plex-sans-jp-117-400-normal-hyG31T85.woff2 +0 -0
  1128. package/public/assets/ibm-plex-sans-jp-117-600-normal-CEeS0kan.woff +0 -0
  1129. package/public/assets/ibm-plex-sans-jp-117-600-normal-DJWr9iDJ.woff2 +0 -0
  1130. package/public/assets/ibm-plex-sans-jp-117-700-normal-C1ei5J70.woff2 +0 -0
  1131. package/public/assets/ibm-plex-sans-jp-117-700-normal-zPjtn9S1.woff +0 -0
  1132. package/public/assets/ibm-plex-sans-jp-118-400-normal-DFkHFeXA.woff2 +0 -0
  1133. package/public/assets/ibm-plex-sans-jp-118-400-normal-TSsLEGdp.woff +0 -0
  1134. package/public/assets/ibm-plex-sans-jp-118-600-normal-Cvx3jb5D.woff +0 -0
  1135. package/public/assets/ibm-plex-sans-jp-118-600-normal-o_AOMkHJ.woff2 +0 -0
  1136. package/public/assets/ibm-plex-sans-jp-118-700-normal-BRNin0K2.woff2 +0 -0
  1137. package/public/assets/ibm-plex-sans-jp-118-700-normal-DGkqcNAf.woff +0 -0
  1138. package/public/assets/ibm-plex-sans-jp-119-400-normal-BUYaH2_l.woff2 +0 -0
  1139. package/public/assets/ibm-plex-sans-jp-119-400-normal-aBgyJQOx.woff +0 -0
  1140. package/public/assets/ibm-plex-sans-jp-119-600-normal-55p1b1wa.woff +0 -0
  1141. package/public/assets/ibm-plex-sans-jp-119-600-normal-BTu0jZJ-.woff2 +0 -0
  1142. package/public/assets/ibm-plex-sans-jp-119-700-normal-3JOc_eI7.woff +0 -0
  1143. package/public/assets/ibm-plex-sans-jp-119-700-normal-BjmfPyZf.woff2 +0 -0
  1144. package/public/assets/ibm-plex-sans-jp-12-400-normal-BmG4MYox.woff +0 -0
  1145. package/public/assets/ibm-plex-sans-jp-12-400-normal-quRUVnCJ.woff2 +0 -0
  1146. package/public/assets/ibm-plex-sans-jp-12-600-normal-B-m8VoGm.woff2 +0 -0
  1147. package/public/assets/ibm-plex-sans-jp-12-600-normal-CxDfRaaH.woff +0 -0
  1148. package/public/assets/ibm-plex-sans-jp-12-700-normal-C3oRnDW6.woff2 +0 -0
  1149. package/public/assets/ibm-plex-sans-jp-12-700-normal-Dv1Y6qdB.woff +0 -0
  1150. package/public/assets/ibm-plex-sans-jp-13-400-normal-DBDHqw4h.woff2 +0 -0
  1151. package/public/assets/ibm-plex-sans-jp-13-400-normal-QmPj_vZd.woff +0 -0
  1152. package/public/assets/ibm-plex-sans-jp-13-600-normal-CedQxG0H.woff +0 -0
  1153. package/public/assets/ibm-plex-sans-jp-13-600-normal-CgJUuraA.woff2 +0 -0
  1154. package/public/assets/ibm-plex-sans-jp-13-700-normal-DNIRDidW.woff2 +0 -0
  1155. package/public/assets/ibm-plex-sans-jp-13-700-normal-DolJGsV8.woff +0 -0
  1156. package/public/assets/ibm-plex-sans-jp-14-400-normal-CP-jldkl.woff +0 -0
  1157. package/public/assets/ibm-plex-sans-jp-14-400-normal-DPGCrf4O.woff2 +0 -0
  1158. package/public/assets/ibm-plex-sans-jp-14-600-normal-36G4flWw.woff +0 -0
  1159. package/public/assets/ibm-plex-sans-jp-14-600-normal-aLRf_2tU.woff2 +0 -0
  1160. package/public/assets/ibm-plex-sans-jp-14-700-normal-CzLCWhzW.woff2 +0 -0
  1161. package/public/assets/ibm-plex-sans-jp-14-700-normal-IrHxc9AN.woff +0 -0
  1162. package/public/assets/ibm-plex-sans-jp-15-400-normal-D_ILNbWZ.woff2 +0 -0
  1163. package/public/assets/ibm-plex-sans-jp-15-400-normal-DhL4usAp.woff +0 -0
  1164. package/public/assets/ibm-plex-sans-jp-15-600-normal-CCiDkvZ0.woff +0 -0
  1165. package/public/assets/ibm-plex-sans-jp-15-600-normal-Cm8uzUfS.woff2 +0 -0
  1166. package/public/assets/ibm-plex-sans-jp-15-700-normal-CH_tD5KV.woff2 +0 -0
  1167. package/public/assets/ibm-plex-sans-jp-15-700-normal-qiD6EjpF.woff +0 -0
  1168. package/public/assets/ibm-plex-sans-jp-16-400-normal-CPpcNs7A.woff +0 -0
  1169. package/public/assets/ibm-plex-sans-jp-16-400-normal-DJJG1Tuz.woff2 +0 -0
  1170. package/public/assets/ibm-plex-sans-jp-16-600-normal-DN27F9tO.woff +0 -0
  1171. package/public/assets/ibm-plex-sans-jp-16-600-normal-DZNod9fx.woff2 +0 -0
  1172. package/public/assets/ibm-plex-sans-jp-16-700-normal-5x97iT4C.woff2 +0 -0
  1173. package/public/assets/ibm-plex-sans-jp-16-700-normal-Cjf1zCyl.woff +0 -0
  1174. package/public/assets/ibm-plex-sans-jp-17-400-normal-Cz201O_t.woff2 +0 -0
  1175. package/public/assets/ibm-plex-sans-jp-17-400-normal-Xd0EQnSI.woff +0 -0
  1176. package/public/assets/ibm-plex-sans-jp-17-600-normal-Dlo-tSr-.woff +0 -0
  1177. package/public/assets/ibm-plex-sans-jp-17-600-normal-GFEV0OtD.woff2 +0 -0
  1178. package/public/assets/ibm-plex-sans-jp-17-700-normal-CxMAaJ8J.woff +0 -0
  1179. package/public/assets/ibm-plex-sans-jp-17-700-normal-pN8BDQje.woff2 +0 -0
  1180. package/public/assets/ibm-plex-sans-jp-18-400-normal-BiRcNUnW.woff2 +0 -0
  1181. package/public/assets/ibm-plex-sans-jp-18-400-normal-DcRwXlcA.woff +0 -0
  1182. package/public/assets/ibm-plex-sans-jp-18-600-normal-DjoWpWpr.woff2 +0 -0
  1183. package/public/assets/ibm-plex-sans-jp-18-600-normal-ZWO03fli.woff +0 -0
  1184. package/public/assets/ibm-plex-sans-jp-18-700-normal-BRP-puz3.woff2 +0 -0
  1185. package/public/assets/ibm-plex-sans-jp-18-700-normal-C9acO00v.woff +0 -0
  1186. package/public/assets/ibm-plex-sans-jp-19-400-normal-BGI-mgYq.woff2 +0 -0
  1187. package/public/assets/ibm-plex-sans-jp-19-400-normal-CAilAALt.woff +0 -0
  1188. package/public/assets/ibm-plex-sans-jp-19-600-normal-DjYSyktj.woff2 +0 -0
  1189. package/public/assets/ibm-plex-sans-jp-19-600-normal-ce3oirTN.woff +0 -0
  1190. package/public/assets/ibm-plex-sans-jp-19-700-normal-D-Zw0iJQ.woff2 +0 -0
  1191. package/public/assets/ibm-plex-sans-jp-19-700-normal-DDYMc675.woff +0 -0
  1192. package/public/assets/ibm-plex-sans-jp-20-400-normal-2E5UN6VC.woff +0 -0
  1193. package/public/assets/ibm-plex-sans-jp-20-400-normal-BQfFM2B0.woff2 +0 -0
  1194. package/public/assets/ibm-plex-sans-jp-20-600-normal-CYRAtz-I.woff2 +0 -0
  1195. package/public/assets/ibm-plex-sans-jp-20-600-normal-DwptQupD.woff +0 -0
  1196. package/public/assets/ibm-plex-sans-jp-20-700-normal-80GIv_X2.woff +0 -0
  1197. package/public/assets/ibm-plex-sans-jp-20-700-normal-Ca_HRr3E.woff2 +0 -0
  1198. package/public/assets/ibm-plex-sans-jp-21-400-normal-BFnRtDEF.woff +0 -0
  1199. package/public/assets/ibm-plex-sans-jp-21-400-normal-Zr4ScQUF.woff2 +0 -0
  1200. package/public/assets/ibm-plex-sans-jp-21-600-normal-BA-omFPG.woff2 +0 -0
  1201. package/public/assets/ibm-plex-sans-jp-21-600-normal-CVckMbS4.woff +0 -0
  1202. package/public/assets/ibm-plex-sans-jp-21-700-normal-BPImLHVa.woff +0 -0
  1203. package/public/assets/ibm-plex-sans-jp-21-700-normal-CytBm2Nt.woff2 +0 -0
  1204. package/public/assets/ibm-plex-sans-jp-22-400-normal-IznGQDkP.woff2 +0 -0
  1205. package/public/assets/ibm-plex-sans-jp-22-400-normal-qTFopCxn.woff +0 -0
  1206. package/public/assets/ibm-plex-sans-jp-22-600-normal-BWt9cZAr.woff2 +0 -0
  1207. package/public/assets/ibm-plex-sans-jp-22-600-normal-DuqSwCFh.woff +0 -0
  1208. package/public/assets/ibm-plex-sans-jp-22-700-normal--3UpG_YA.woff2 +0 -0
  1209. package/public/assets/ibm-plex-sans-jp-22-700-normal-DnloFB68.woff +0 -0
  1210. package/public/assets/ibm-plex-sans-jp-23-400-normal-Bdkhc9Iw.woff2 +0 -0
  1211. package/public/assets/ibm-plex-sans-jp-23-400-normal-BtixcB0-.woff +0 -0
  1212. package/public/assets/ibm-plex-sans-jp-23-600-normal-Dq8e8WbN.woff +0 -0
  1213. package/public/assets/ibm-plex-sans-jp-23-600-normal-O2srJ8a2.woff2 +0 -0
  1214. package/public/assets/ibm-plex-sans-jp-23-700-normal-C-Wvz07b.woff2 +0 -0
  1215. package/public/assets/ibm-plex-sans-jp-23-700-normal-QWySKNit.woff +0 -0
  1216. package/public/assets/ibm-plex-sans-jp-24-400-normal-B3OOo0lL.woff +0 -0
  1217. package/public/assets/ibm-plex-sans-jp-24-400-normal-McxyvMnV.woff2 +0 -0
  1218. package/public/assets/ibm-plex-sans-jp-24-600-normal-A46asPGd.woff +0 -0
  1219. package/public/assets/ibm-plex-sans-jp-24-600-normal-CTyo1FsZ.woff2 +0 -0
  1220. package/public/assets/ibm-plex-sans-jp-24-700-normal-Ira2Rc5z.woff2 +0 -0
  1221. package/public/assets/ibm-plex-sans-jp-24-700-normal-dhK6LPCU.woff +0 -0
  1222. package/public/assets/ibm-plex-sans-jp-25-400-normal-BFxbWz5n.woff +0 -0
  1223. package/public/assets/ibm-plex-sans-jp-25-400-normal-DFuJhyl7.woff2 +0 -0
  1224. package/public/assets/ibm-plex-sans-jp-25-600-normal-B2RU3Dvp.woff +0 -0
  1225. package/public/assets/ibm-plex-sans-jp-25-600-normal-DJ9_bhYp.woff2 +0 -0
  1226. package/public/assets/ibm-plex-sans-jp-25-700-normal-6YS9BiKL.woff +0 -0
  1227. package/public/assets/ibm-plex-sans-jp-25-700-normal-CpbQwqpL.woff2 +0 -0
  1228. package/public/assets/ibm-plex-sans-jp-26-400-normal-DNzE_dbG.woff2 +0 -0
  1229. package/public/assets/ibm-plex-sans-jp-26-400-normal-D_cpF5EA.woff +0 -0
  1230. package/public/assets/ibm-plex-sans-jp-26-600-normal-ByYIbTSk.woff +0 -0
  1231. package/public/assets/ibm-plex-sans-jp-26-600-normal-Dblu0l-8.woff2 +0 -0
  1232. package/public/assets/ibm-plex-sans-jp-26-700-normal-B-a8fp43.woff2 +0 -0
  1233. package/public/assets/ibm-plex-sans-jp-26-700-normal-oM62RKsO.woff +0 -0
  1234. package/public/assets/ibm-plex-sans-jp-27-400-normal-CG_CPqz1.woff +0 -0
  1235. package/public/assets/ibm-plex-sans-jp-27-400-normal-c2jdwsOE.woff2 +0 -0
  1236. package/public/assets/ibm-plex-sans-jp-27-600-normal-3axrvVxa.woff +0 -0
  1237. package/public/assets/ibm-plex-sans-jp-27-600-normal-CffTHcnn.woff2 +0 -0
  1238. package/public/assets/ibm-plex-sans-jp-27-700-normal-CFbifBY3.woff +0 -0
  1239. package/public/assets/ibm-plex-sans-jp-27-700-normal-MrPgyLwW.woff2 +0 -0
  1240. package/public/assets/ibm-plex-sans-jp-28-400-normal-C5RxoJ3V.woff +0 -0
  1241. package/public/assets/ibm-plex-sans-jp-28-400-normal-DXIBRRx0.woff2 +0 -0
  1242. package/public/assets/ibm-plex-sans-jp-28-600-normal-BHA5xHG-.woff2 +0 -0
  1243. package/public/assets/ibm-plex-sans-jp-28-600-normal-t8w8Pigz.woff +0 -0
  1244. package/public/assets/ibm-plex-sans-jp-28-700-normal-CfJC1veY.woff2 +0 -0
  1245. package/public/assets/ibm-plex-sans-jp-28-700-normal-DuTXC6M7.woff +0 -0
  1246. package/public/assets/ibm-plex-sans-jp-29-400-normal-4EOJmPpr.woff +0 -0
  1247. package/public/assets/ibm-plex-sans-jp-29-400-normal-DPDbHGRJ.woff2 +0 -0
  1248. package/public/assets/ibm-plex-sans-jp-29-600-normal-Ca71NnU-.woff +0 -0
  1249. package/public/assets/ibm-plex-sans-jp-29-600-normal-jeFY9Hf_.woff2 +0 -0
  1250. package/public/assets/ibm-plex-sans-jp-29-700-normal-C11KYH68.woff2 +0 -0
  1251. package/public/assets/ibm-plex-sans-jp-29-700-normal-CzNKW3WB.woff +0 -0
  1252. package/public/assets/ibm-plex-sans-jp-3-400-normal-BpFIRrIG.woff +0 -0
  1253. package/public/assets/ibm-plex-sans-jp-3-400-normal-CSnRHPqi.woff2 +0 -0
  1254. package/public/assets/ibm-plex-sans-jp-3-600-normal-C7pAJQf3.woff +0 -0
  1255. package/public/assets/ibm-plex-sans-jp-3-600-normal-SFbjSSXG.woff2 +0 -0
  1256. package/public/assets/ibm-plex-sans-jp-3-700-normal-57H5kXpk.woff +0 -0
  1257. package/public/assets/ibm-plex-sans-jp-3-700-normal-BrLJmDFd.woff2 +0 -0
  1258. package/public/assets/ibm-plex-sans-jp-30-400-normal-CE7Y9E5I.woff2 +0 -0
  1259. package/public/assets/ibm-plex-sans-jp-30-400-normal-CkxUuY_J.woff +0 -0
  1260. package/public/assets/ibm-plex-sans-jp-30-600-normal-B2Z1u9V0.woff +0 -0
  1261. package/public/assets/ibm-plex-sans-jp-30-600-normal-BNiX9WYe.woff2 +0 -0
  1262. package/public/assets/ibm-plex-sans-jp-30-700-normal-BEFP-jPj.woff2 +0 -0
  1263. package/public/assets/ibm-plex-sans-jp-30-700-normal-BarKnue-.woff +0 -0
  1264. package/public/assets/ibm-plex-sans-jp-31-400-normal-CaOERqUu.woff2 +0 -0
  1265. package/public/assets/ibm-plex-sans-jp-31-400-normal-DQ8k7O-z.woff +0 -0
  1266. package/public/assets/ibm-plex-sans-jp-31-600-normal-ChsH3Xz1.woff +0 -0
  1267. package/public/assets/ibm-plex-sans-jp-31-600-normal-DfrgvMVe.woff2 +0 -0
  1268. package/public/assets/ibm-plex-sans-jp-31-700-normal-9QmoGV7n.woff2 +0 -0
  1269. package/public/assets/ibm-plex-sans-jp-31-700-normal-uPx24aJ3.woff +0 -0
  1270. package/public/assets/ibm-plex-sans-jp-32-400-normal-DCgv6PbD.woff +0 -0
  1271. package/public/assets/ibm-plex-sans-jp-32-400-normal-oBOpBx6K.woff2 +0 -0
  1272. package/public/assets/ibm-plex-sans-jp-32-600-normal-BVvFPwh-.woff +0 -0
  1273. package/public/assets/ibm-plex-sans-jp-32-600-normal-C6iWVt4P.woff2 +0 -0
  1274. package/public/assets/ibm-plex-sans-jp-32-700-normal-BrzljjIv.woff +0 -0
  1275. package/public/assets/ibm-plex-sans-jp-32-700-normal-Ck00YIbi.woff2 +0 -0
  1276. package/public/assets/ibm-plex-sans-jp-33-400-normal-7syfOPuJ.woff +0 -0
  1277. package/public/assets/ibm-plex-sans-jp-33-400-normal-CRgD0sTN.woff2 +0 -0
  1278. package/public/assets/ibm-plex-sans-jp-33-600-normal-6C8BpThh.woff +0 -0
  1279. package/public/assets/ibm-plex-sans-jp-33-600-normal-Di883cZY.woff2 +0 -0
  1280. package/public/assets/ibm-plex-sans-jp-33-700-normal-BocR-vpi.woff +0 -0
  1281. package/public/assets/ibm-plex-sans-jp-33-700-normal-CQH8I4uz.woff2 +0 -0
  1282. package/public/assets/ibm-plex-sans-jp-34-400-normal-CW90qVjA.woff +0 -0
  1283. package/public/assets/ibm-plex-sans-jp-34-400-normal-DteAo9_1.woff2 +0 -0
  1284. package/public/assets/ibm-plex-sans-jp-34-600-normal-BBai0ku9.woff +0 -0
  1285. package/public/assets/ibm-plex-sans-jp-34-600-normal-BUBreiOx.woff2 +0 -0
  1286. package/public/assets/ibm-plex-sans-jp-34-700-normal-BQMQzFvO.woff2 +0 -0
  1287. package/public/assets/ibm-plex-sans-jp-34-700-normal-BYKYx0HK.woff +0 -0
  1288. package/public/assets/ibm-plex-sans-jp-35-400-normal-_GHhCQ5l.woff2 +0 -0
  1289. package/public/assets/ibm-plex-sans-jp-35-400-normal-oyHCgG2o.woff +0 -0
  1290. package/public/assets/ibm-plex-sans-jp-35-600-normal-B3Re-brg.woff +0 -0
  1291. package/public/assets/ibm-plex-sans-jp-35-600-normal-DSSj8dPk.woff2 +0 -0
  1292. package/public/assets/ibm-plex-sans-jp-35-700-normal-BoDC0KzR.woff2 +0 -0
  1293. package/public/assets/ibm-plex-sans-jp-35-700-normal-CvQah7db.woff +0 -0
  1294. package/public/assets/ibm-plex-sans-jp-36-400-normal-BizbVEtQ.woff2 +0 -0
  1295. package/public/assets/ibm-plex-sans-jp-36-400-normal-D7gQSpeq.woff +0 -0
  1296. package/public/assets/ibm-plex-sans-jp-36-600-normal-BiBUOoTN.woff +0 -0
  1297. package/public/assets/ibm-plex-sans-jp-36-600-normal-CVgRkKvZ.woff2 +0 -0
  1298. package/public/assets/ibm-plex-sans-jp-36-700-normal-Cx600hZn.woff +0 -0
  1299. package/public/assets/ibm-plex-sans-jp-36-700-normal-Dxydenfw.woff2 +0 -0
  1300. package/public/assets/ibm-plex-sans-jp-37-400-normal-B-iV2FCz.woff +0 -0
  1301. package/public/assets/ibm-plex-sans-jp-37-400-normal-CrxhJitf.woff2 +0 -0
  1302. package/public/assets/ibm-plex-sans-jp-37-600-normal-56davMJK.woff +0 -0
  1303. package/public/assets/ibm-plex-sans-jp-37-600-normal-BMpyr2ZA.woff2 +0 -0
  1304. package/public/assets/ibm-plex-sans-jp-37-700-normal-Cr4qQ6-_.woff2 +0 -0
  1305. package/public/assets/ibm-plex-sans-jp-37-700-normal-D6fQD8s2.woff +0 -0
  1306. package/public/assets/ibm-plex-sans-jp-38-400-normal-D1Vp2bgS.woff2 +0 -0
  1307. package/public/assets/ibm-plex-sans-jp-38-400-normal-DH9qOlQO.woff +0 -0
  1308. package/public/assets/ibm-plex-sans-jp-38-600-normal-BtzFMeyM.woff +0 -0
  1309. package/public/assets/ibm-plex-sans-jp-38-600-normal-DgBl-sfZ.woff2 +0 -0
  1310. package/public/assets/ibm-plex-sans-jp-38-700-normal-BnkgwyNC.woff2 +0 -0
  1311. package/public/assets/ibm-plex-sans-jp-38-700-normal-DrLlCQdP.woff +0 -0
  1312. package/public/assets/ibm-plex-sans-jp-39-400-normal-D5wsbWuV.woff2 +0 -0
  1313. package/public/assets/ibm-plex-sans-jp-39-400-normal-Dk7rkHeG.woff +0 -0
  1314. package/public/assets/ibm-plex-sans-jp-39-600-normal-CGMVkPUQ.woff +0 -0
  1315. package/public/assets/ibm-plex-sans-jp-39-600-normal-D_kp1-X0.woff2 +0 -0
  1316. package/public/assets/ibm-plex-sans-jp-39-700-normal-ADsZ937l.woff2 +0 -0
  1317. package/public/assets/ibm-plex-sans-jp-39-700-normal-tkFC4Fme.woff +0 -0
  1318. package/public/assets/ibm-plex-sans-jp-4-400-normal-mGIBpTDA.woff +0 -0
  1319. package/public/assets/ibm-plex-sans-jp-4-600-normal-ItZEXAoj.woff +0 -0
  1320. package/public/assets/ibm-plex-sans-jp-4-700-normal-B2Sn8ODt.woff +0 -0
  1321. package/public/assets/ibm-plex-sans-jp-40-400-normal-DRF-ZkFr.woff2 +0 -0
  1322. package/public/assets/ibm-plex-sans-jp-40-400-normal-Dye9yGvg.woff +0 -0
  1323. package/public/assets/ibm-plex-sans-jp-40-600-normal-DD0bpqGF.woff2 +0 -0
  1324. package/public/assets/ibm-plex-sans-jp-40-600-normal-DSxToWDI.woff +0 -0
  1325. package/public/assets/ibm-plex-sans-jp-40-700-normal-D9qdrR16.woff +0 -0
  1326. package/public/assets/ibm-plex-sans-jp-40-700-normal-DJ9uBiDw.woff2 +0 -0
  1327. package/public/assets/ibm-plex-sans-jp-41-400-normal-BqAaxgfH.woff2 +0 -0
  1328. package/public/assets/ibm-plex-sans-jp-41-400-normal-CsmxKILz.woff +0 -0
  1329. package/public/assets/ibm-plex-sans-jp-41-600-normal-BQOZ4bZi.woff2 +0 -0
  1330. package/public/assets/ibm-plex-sans-jp-41-600-normal-Jx8Bp44x.woff +0 -0
  1331. package/public/assets/ibm-plex-sans-jp-41-700-normal-BGJMzr3_.woff2 +0 -0
  1332. package/public/assets/ibm-plex-sans-jp-41-700-normal-UuW3VIUX.woff +0 -0
  1333. package/public/assets/ibm-plex-sans-jp-42-400-normal-Bwv1VfH1.woff +0 -0
  1334. package/public/assets/ibm-plex-sans-jp-42-400-normal-Dl6WfOX3.woff2 +0 -0
  1335. package/public/assets/ibm-plex-sans-jp-42-600-normal-Bpb5tt9_.woff +0 -0
  1336. package/public/assets/ibm-plex-sans-jp-42-600-normal-DIFsJkow.woff2 +0 -0
  1337. package/public/assets/ibm-plex-sans-jp-42-700-normal-BSSeJztI.woff +0 -0
  1338. package/public/assets/ibm-plex-sans-jp-42-700-normal-DSVZ1AdV.woff2 +0 -0
  1339. package/public/assets/ibm-plex-sans-jp-43-400-normal-BWVo0zWK.woff2 +0 -0
  1340. package/public/assets/ibm-plex-sans-jp-43-400-normal-d-ngL4VK.woff +0 -0
  1341. package/public/assets/ibm-plex-sans-jp-43-600-normal-BQhDNXpW.woff2 +0 -0
  1342. package/public/assets/ibm-plex-sans-jp-43-600-normal-BcvVxmDS.woff +0 -0
  1343. package/public/assets/ibm-plex-sans-jp-43-700-normal-BzUW0Dn4.woff +0 -0
  1344. package/public/assets/ibm-plex-sans-jp-43-700-normal-DKxEyxqG.woff2 +0 -0
  1345. package/public/assets/ibm-plex-sans-jp-44-400-normal-C6WuUhoa.woff2 +0 -0
  1346. package/public/assets/ibm-plex-sans-jp-44-400-normal-Dpw9oVkY.woff +0 -0
  1347. package/public/assets/ibm-plex-sans-jp-44-600-normal-BAOsDDVH.woff2 +0 -0
  1348. package/public/assets/ibm-plex-sans-jp-44-600-normal-Bt-5iAy-.woff +0 -0
  1349. package/public/assets/ibm-plex-sans-jp-44-700-normal-CKy2WdQj.woff2 +0 -0
  1350. package/public/assets/ibm-plex-sans-jp-44-700-normal-DWwfiF2R.woff +0 -0
  1351. package/public/assets/ibm-plex-sans-jp-45-400-normal-B9Y_v3iL.woff2 +0 -0
  1352. package/public/assets/ibm-plex-sans-jp-45-400-normal-Cw08yPg4.woff +0 -0
  1353. package/public/assets/ibm-plex-sans-jp-45-600-normal-C3VBxVTw.woff2 +0 -0
  1354. package/public/assets/ibm-plex-sans-jp-45-600-normal-CPG32_M5.woff +0 -0
  1355. package/public/assets/ibm-plex-sans-jp-45-700-normal-B2EBYgsw.woff2 +0 -0
  1356. package/public/assets/ibm-plex-sans-jp-45-700-normal-CBBnYnrG.woff +0 -0
  1357. package/public/assets/ibm-plex-sans-jp-46-400-normal-Bo2fKdUV.woff2 +0 -0
  1358. package/public/assets/ibm-plex-sans-jp-46-400-normal-Dya4Xg3C.woff +0 -0
  1359. package/public/assets/ibm-plex-sans-jp-46-600-normal-BZxPnU9z.woff +0 -0
  1360. package/public/assets/ibm-plex-sans-jp-46-600-normal-BwyRFFoW.woff2 +0 -0
  1361. package/public/assets/ibm-plex-sans-jp-46-700-normal-BWHZA6Va.woff +0 -0
  1362. package/public/assets/ibm-plex-sans-jp-46-700-normal-DGQdaffJ.woff2 +0 -0
  1363. package/public/assets/ibm-plex-sans-jp-47-400-normal-BaRCXue3.woff2 +0 -0
  1364. package/public/assets/ibm-plex-sans-jp-47-400-normal-DWeXBY63.woff +0 -0
  1365. package/public/assets/ibm-plex-sans-jp-47-600-normal-BJMJyZ3V.woff2 +0 -0
  1366. package/public/assets/ibm-plex-sans-jp-47-600-normal-CyutRTf1.woff +0 -0
  1367. package/public/assets/ibm-plex-sans-jp-47-700-normal-N6twIXlf.woff +0 -0
  1368. package/public/assets/ibm-plex-sans-jp-47-700-normal-_dAzPdKJ.woff2 +0 -0
  1369. package/public/assets/ibm-plex-sans-jp-48-400-normal-JS-IrZBF.woff +0 -0
  1370. package/public/assets/ibm-plex-sans-jp-48-400-normal-ezIou-vd.woff2 +0 -0
  1371. package/public/assets/ibm-plex-sans-jp-48-600-normal-BKUm06v8.woff +0 -0
  1372. package/public/assets/ibm-plex-sans-jp-48-600-normal-SLeRHHzg.woff2 +0 -0
  1373. package/public/assets/ibm-plex-sans-jp-48-700-normal-B5gMlKVs.woff2 +0 -0
  1374. package/public/assets/ibm-plex-sans-jp-48-700-normal-DQ5H61GM.woff +0 -0
  1375. package/public/assets/ibm-plex-sans-jp-49-400-normal-BGMyUOoF.woff2 +0 -0
  1376. package/public/assets/ibm-plex-sans-jp-49-400-normal-CpOmgEj1.woff +0 -0
  1377. package/public/assets/ibm-plex-sans-jp-49-600-normal-DASryXO5.woff2 +0 -0
  1378. package/public/assets/ibm-plex-sans-jp-49-600-normal-DyDLcZM_.woff +0 -0
  1379. package/public/assets/ibm-plex-sans-jp-49-700-normal-C2pGRKdb.woff2 +0 -0
  1380. package/public/assets/ibm-plex-sans-jp-49-700-normal-dsyop0xt.woff +0 -0
  1381. package/public/assets/ibm-plex-sans-jp-5-400-normal-CUIc6NHY.woff2 +0 -0
  1382. package/public/assets/ibm-plex-sans-jp-5-400-normal-D2dVMMqj.woff +0 -0
  1383. package/public/assets/ibm-plex-sans-jp-5-600-normal-7tGyeWfE.woff2 +0 -0
  1384. package/public/assets/ibm-plex-sans-jp-5-600-normal-LSwIbfT4.woff +0 -0
  1385. package/public/assets/ibm-plex-sans-jp-5-700-normal-4pOvaKVD.woff2 +0 -0
  1386. package/public/assets/ibm-plex-sans-jp-5-700-normal-BdZNxX81.woff +0 -0
  1387. package/public/assets/ibm-plex-sans-jp-50-400-normal-DDJncqjC.woff +0 -0
  1388. package/public/assets/ibm-plex-sans-jp-50-400-normal-DU9yuSzL.woff2 +0 -0
  1389. package/public/assets/ibm-plex-sans-jp-50-600-normal-KlXN5ii8.woff +0 -0
  1390. package/public/assets/ibm-plex-sans-jp-50-600-normal-bZ0wMfTu.woff2 +0 -0
  1391. package/public/assets/ibm-plex-sans-jp-50-700-normal-C3Bon6kP.woff +0 -0
  1392. package/public/assets/ibm-plex-sans-jp-50-700-normal-CKBR3dTc.woff2 +0 -0
  1393. package/public/assets/ibm-plex-sans-jp-52-400-normal-B6ntzhez.woff +0 -0
  1394. package/public/assets/ibm-plex-sans-jp-52-400-normal-DxvfHPiZ.woff2 +0 -0
  1395. package/public/assets/ibm-plex-sans-jp-52-600-normal-CxAqcrGJ.woff +0 -0
  1396. package/public/assets/ibm-plex-sans-jp-52-600-normal-ofakrDYw.woff2 +0 -0
  1397. package/public/assets/ibm-plex-sans-jp-52-700-normal-Bfs6gmfs.woff +0 -0
  1398. package/public/assets/ibm-plex-sans-jp-52-700-normal-D9sJhzsn.woff2 +0 -0
  1399. package/public/assets/ibm-plex-sans-jp-53-400-normal-BNzLW3gK.woff2 +0 -0
  1400. package/public/assets/ibm-plex-sans-jp-53-400-normal-arm4ZLbG.woff +0 -0
  1401. package/public/assets/ibm-plex-sans-jp-53-600-normal-BYo95wdR.woff2 +0 -0
  1402. package/public/assets/ibm-plex-sans-jp-53-600-normal-CTWAZiwT.woff +0 -0
  1403. package/public/assets/ibm-plex-sans-jp-53-700-normal-7icOh9fn.woff2 +0 -0
  1404. package/public/assets/ibm-plex-sans-jp-53-700-normal-CXC3RG0Y.woff +0 -0
  1405. package/public/assets/ibm-plex-sans-jp-55-400-normal-CXMVQbir.woff +0 -0
  1406. package/public/assets/ibm-plex-sans-jp-55-400-normal-CgSa9olG.woff2 +0 -0
  1407. package/public/assets/ibm-plex-sans-jp-55-600-normal-5IjjJd2s.woff2 +0 -0
  1408. package/public/assets/ibm-plex-sans-jp-55-600-normal-Dp8k-UQr.woff +0 -0
  1409. package/public/assets/ibm-plex-sans-jp-55-700-normal-eDLHHM6r.woff +0 -0
  1410. package/public/assets/ibm-plex-sans-jp-55-700-normal-ecLDx596.woff2 +0 -0
  1411. package/public/assets/ibm-plex-sans-jp-56-400-normal-BImwtP9C.woff2 +0 -0
  1412. package/public/assets/ibm-plex-sans-jp-56-400-normal-BikO35BJ.woff +0 -0
  1413. package/public/assets/ibm-plex-sans-jp-56-600-normal-DsSHHMYs.woff2 +0 -0
  1414. package/public/assets/ibm-plex-sans-jp-56-600-normal-fFxOmumy.woff +0 -0
  1415. package/public/assets/ibm-plex-sans-jp-56-700-normal-Dg77fDuG.woff2 +0 -0
  1416. package/public/assets/ibm-plex-sans-jp-56-700-normal-DiUSRVIQ.woff +0 -0
  1417. package/public/assets/ibm-plex-sans-jp-58-400-normal-Iyqdz6U_.woff +0 -0
  1418. package/public/assets/ibm-plex-sans-jp-58-400-normal-jeWDsIkS.woff2 +0 -0
  1419. package/public/assets/ibm-plex-sans-jp-58-600-normal-Bma8ReWy.woff2 +0 -0
  1420. package/public/assets/ibm-plex-sans-jp-58-600-normal-D3LkCFqf.woff +0 -0
  1421. package/public/assets/ibm-plex-sans-jp-58-700-normal-BgsgXhin.woff +0 -0
  1422. package/public/assets/ibm-plex-sans-jp-58-700-normal-DQNvf_Pi.woff2 +0 -0
  1423. package/public/assets/ibm-plex-sans-jp-59-400-normal-CkeNzekL.woff +0 -0
  1424. package/public/assets/ibm-plex-sans-jp-59-400-normal-D7J9HacT.woff2 +0 -0
  1425. package/public/assets/ibm-plex-sans-jp-59-600-normal-B0Hs_yqp.woff +0 -0
  1426. package/public/assets/ibm-plex-sans-jp-59-600-normal-y8o2u47q.woff2 +0 -0
  1427. package/public/assets/ibm-plex-sans-jp-59-700-normal-BEPxXZmH.woff2 +0 -0
  1428. package/public/assets/ibm-plex-sans-jp-59-700-normal-CqOqqrqQ.woff +0 -0
  1429. package/public/assets/ibm-plex-sans-jp-6-400-normal-CK1rBi2w.woff2 +0 -0
  1430. package/public/assets/ibm-plex-sans-jp-6-400-normal-DQz22aVW.woff +0 -0
  1431. package/public/assets/ibm-plex-sans-jp-6-600-normal-Bgp388lR.woff2 +0 -0
  1432. package/public/assets/ibm-plex-sans-jp-6-600-normal-DZtAE4NN.woff +0 -0
  1433. package/public/assets/ibm-plex-sans-jp-6-700-normal-BFaRWvXD.woff +0 -0
  1434. package/public/assets/ibm-plex-sans-jp-6-700-normal-UVZzLgo1.woff2 +0 -0
  1435. package/public/assets/ibm-plex-sans-jp-60-400-normal-Bc0pWfYQ.woff2 +0 -0
  1436. package/public/assets/ibm-plex-sans-jp-60-400-normal-DU4X4cgu.woff +0 -0
  1437. package/public/assets/ibm-plex-sans-jp-60-600-normal-D22FGjEf.woff +0 -0
  1438. package/public/assets/ibm-plex-sans-jp-60-600-normal-DGaJXlcP.woff2 +0 -0
  1439. package/public/assets/ibm-plex-sans-jp-60-700-normal-B4sph3s0.woff2 +0 -0
  1440. package/public/assets/ibm-plex-sans-jp-60-700-normal-DBfqpTpp.woff +0 -0
  1441. package/public/assets/ibm-plex-sans-jp-61-400-normal-BTqxO8KS.woff2 +0 -0
  1442. package/public/assets/ibm-plex-sans-jp-61-400-normal-BZ_Lvmfb.woff +0 -0
  1443. package/public/assets/ibm-plex-sans-jp-61-600-normal-BkIPCguy.woff +0 -0
  1444. package/public/assets/ibm-plex-sans-jp-61-600-normal-D_Q2U_HY.woff2 +0 -0
  1445. package/public/assets/ibm-plex-sans-jp-61-700-normal-BkfJ-_O-.woff +0 -0
  1446. package/public/assets/ibm-plex-sans-jp-61-700-normal-CwN3DFq1.woff2 +0 -0
  1447. package/public/assets/ibm-plex-sans-jp-62-400-normal-CRZQtL4e.woff +0 -0
  1448. package/public/assets/ibm-plex-sans-jp-62-400-normal-DSLFRuBi.woff2 +0 -0
  1449. package/public/assets/ibm-plex-sans-jp-62-600-normal-CAFV2WS-.woff2 +0 -0
  1450. package/public/assets/ibm-plex-sans-jp-62-600-normal-DRBwH2wC.woff +0 -0
  1451. package/public/assets/ibm-plex-sans-jp-62-700-normal-D9oj9FbO.woff +0 -0
  1452. package/public/assets/ibm-plex-sans-jp-62-700-normal-gTii6YIK.woff2 +0 -0
  1453. package/public/assets/ibm-plex-sans-jp-63-400-normal-BCOcqFvH.woff +0 -0
  1454. package/public/assets/ibm-plex-sans-jp-63-400-normal-NWeXooWt.woff2 +0 -0
  1455. package/public/assets/ibm-plex-sans-jp-63-600-normal-Dwsde-Vo.woff2 +0 -0
  1456. package/public/assets/ibm-plex-sans-jp-63-600-normal-rFqEK_Cq.woff +0 -0
  1457. package/public/assets/ibm-plex-sans-jp-63-700-normal-B4li38vl.woff +0 -0
  1458. package/public/assets/ibm-plex-sans-jp-63-700-normal-DYsI6Aeh.woff2 +0 -0
  1459. package/public/assets/ibm-plex-sans-jp-64-400-normal-DjS9hHaA.woff +0 -0
  1460. package/public/assets/ibm-plex-sans-jp-64-400-normal-DplHNRWf.woff2 +0 -0
  1461. package/public/assets/ibm-plex-sans-jp-64-600-normal-8FGNeBVO.woff +0 -0
  1462. package/public/assets/ibm-plex-sans-jp-64-600-normal-BE-tQzc4.woff2 +0 -0
  1463. package/public/assets/ibm-plex-sans-jp-64-700-normal-X_3qL3eD.woff +0 -0
  1464. package/public/assets/ibm-plex-sans-jp-64-700-normal-_sOvmSPU.woff2 +0 -0
  1465. package/public/assets/ibm-plex-sans-jp-65-400-normal-BIWHDE_t.woff2 +0 -0
  1466. package/public/assets/ibm-plex-sans-jp-65-400-normal-DNiOFlC5.woff +0 -0
  1467. package/public/assets/ibm-plex-sans-jp-65-600-normal-8ErTTni6.woff2 +0 -0
  1468. package/public/assets/ibm-plex-sans-jp-65-600-normal-Ckksq6Um.woff +0 -0
  1469. package/public/assets/ibm-plex-sans-jp-65-700-normal-9c1B3ugf.woff +0 -0
  1470. package/public/assets/ibm-plex-sans-jp-65-700-normal-C2SAUond.woff2 +0 -0
  1471. package/public/assets/ibm-plex-sans-jp-66-400-normal-BfKrnenI.woff +0 -0
  1472. package/public/assets/ibm-plex-sans-jp-66-400-normal-CNxVmlv6.woff2 +0 -0
  1473. package/public/assets/ibm-plex-sans-jp-66-600-normal-hyHZDzzP.woff2 +0 -0
  1474. package/public/assets/ibm-plex-sans-jp-66-600-normal-nq1zdTbH.woff +0 -0
  1475. package/public/assets/ibm-plex-sans-jp-66-700-normal-Ctdcjw58.woff +0 -0
  1476. package/public/assets/ibm-plex-sans-jp-66-700-normal-D_FuIz1A.woff2 +0 -0
  1477. package/public/assets/ibm-plex-sans-jp-67-400-normal-D3j6dBx3.woff +0 -0
  1478. package/public/assets/ibm-plex-sans-jp-67-400-normal-lzlrdx0G.woff2 +0 -0
  1479. package/public/assets/ibm-plex-sans-jp-67-600-normal-6KKBCWxa.woff2 +0 -0
  1480. package/public/assets/ibm-plex-sans-jp-67-600-normal-DgWoOUUg.woff +0 -0
  1481. package/public/assets/ibm-plex-sans-jp-67-700-normal-B3QY7F5h.woff2 +0 -0
  1482. package/public/assets/ibm-plex-sans-jp-67-700-normal-Bk31nBaz.woff +0 -0
  1483. package/public/assets/ibm-plex-sans-jp-68-400-normal-BpRgjvkz.woff +0 -0
  1484. package/public/assets/ibm-plex-sans-jp-68-400-normal-CfTKk1Ti.woff2 +0 -0
  1485. package/public/assets/ibm-plex-sans-jp-68-600-normal-BlYm4TE_.woff2 +0 -0
  1486. package/public/assets/ibm-plex-sans-jp-68-600-normal-DiY9dfka.woff +0 -0
  1487. package/public/assets/ibm-plex-sans-jp-68-700-normal-C6ZrhK66.woff +0 -0
  1488. package/public/assets/ibm-plex-sans-jp-68-700-normal-Cb_onqwe.woff2 +0 -0
  1489. package/public/assets/ibm-plex-sans-jp-69-400-normal-ClpMq853.woff2 +0 -0
  1490. package/public/assets/ibm-plex-sans-jp-69-400-normal-DIRwnaAC.woff +0 -0
  1491. package/public/assets/ibm-plex-sans-jp-69-600-normal-Bsq_ALiN.woff2 +0 -0
  1492. package/public/assets/ibm-plex-sans-jp-69-600-normal-D5M2jRxh.woff +0 -0
  1493. package/public/assets/ibm-plex-sans-jp-69-700-normal-D25giLXx.woff +0 -0
  1494. package/public/assets/ibm-plex-sans-jp-69-700-normal-DJ24ly1p.woff2 +0 -0
  1495. package/public/assets/ibm-plex-sans-jp-7-400-normal-BlNTLUxk.woff +0 -0
  1496. package/public/assets/ibm-plex-sans-jp-7-400-normal-Ce6XQT-X.woff2 +0 -0
  1497. package/public/assets/ibm-plex-sans-jp-7-600-normal-BIimYJ8p.woff2 +0 -0
  1498. package/public/assets/ibm-plex-sans-jp-7-600-normal-u7RE7Vcl.woff +0 -0
  1499. package/public/assets/ibm-plex-sans-jp-7-700-normal-BxRQ3DPg.woff +0 -0
  1500. package/public/assets/ibm-plex-sans-jp-7-700-normal-DK5zmmDo.woff2 +0 -0
  1501. package/public/assets/ibm-plex-sans-jp-70-400-normal-BQZWkZap.woff2 +0 -0
  1502. package/public/assets/ibm-plex-sans-jp-70-400-normal-BvYVJLC-.woff +0 -0
  1503. package/public/assets/ibm-plex-sans-jp-70-600-normal-COjhVT5P.woff +0 -0
  1504. package/public/assets/ibm-plex-sans-jp-70-600-normal-D_nkzVDi.woff2 +0 -0
  1505. package/public/assets/ibm-plex-sans-jp-70-700-normal-BJsNk892.woff +0 -0
  1506. package/public/assets/ibm-plex-sans-jp-70-700-normal-D0rsZ7c1.woff2 +0 -0
  1507. package/public/assets/ibm-plex-sans-jp-71-400-normal-BF8CoFgI.woff +0 -0
  1508. package/public/assets/ibm-plex-sans-jp-71-400-normal-HbsCI6VV.woff2 +0 -0
  1509. package/public/assets/ibm-plex-sans-jp-71-600-normal-CfPjA3xh.woff +0 -0
  1510. package/public/assets/ibm-plex-sans-jp-71-600-normal-ChBeHVSC.woff2 +0 -0
  1511. package/public/assets/ibm-plex-sans-jp-71-700-normal-B88Gnili.woff +0 -0
  1512. package/public/assets/ibm-plex-sans-jp-71-700-normal-D9HVw03N.woff2 +0 -0
  1513. package/public/assets/ibm-plex-sans-jp-72-400-normal-BKinYB31.woff +0 -0
  1514. package/public/assets/ibm-plex-sans-jp-72-400-normal-D3NTG_Qr.woff2 +0 -0
  1515. package/public/assets/ibm-plex-sans-jp-72-600-normal-BpU6wBwH.woff +0 -0
  1516. package/public/assets/ibm-plex-sans-jp-72-600-normal-rfJ4c39Q.woff2 +0 -0
  1517. package/public/assets/ibm-plex-sans-jp-72-700-normal-DClz9Dhe.woff +0 -0
  1518. package/public/assets/ibm-plex-sans-jp-72-700-normal-DnfTuI4o.woff2 +0 -0
  1519. package/public/assets/ibm-plex-sans-jp-73-400-normal-B9cHSeQ5.woff2 +0 -0
  1520. package/public/assets/ibm-plex-sans-jp-73-400-normal-HVPdCDZ0.woff +0 -0
  1521. package/public/assets/ibm-plex-sans-jp-73-600-normal-BL0EAwDJ.woff +0 -0
  1522. package/public/assets/ibm-plex-sans-jp-73-600-normal-CoMSI1sj.woff2 +0 -0
  1523. package/public/assets/ibm-plex-sans-jp-73-700-normal-5BseSrpV.woff +0 -0
  1524. package/public/assets/ibm-plex-sans-jp-73-700-normal-DW-mflD2.woff2 +0 -0
  1525. package/public/assets/ibm-plex-sans-jp-74-400-normal-BM6YwLsn.woff2 +0 -0
  1526. package/public/assets/ibm-plex-sans-jp-74-400-normal-BTWjvuog.woff +0 -0
  1527. package/public/assets/ibm-plex-sans-jp-74-600-normal-CxFvTzoC.woff2 +0 -0
  1528. package/public/assets/ibm-plex-sans-jp-74-600-normal-D51sy90d.woff +0 -0
  1529. package/public/assets/ibm-plex-sans-jp-74-700-normal-Bp0aGueO.woff2 +0 -0
  1530. package/public/assets/ibm-plex-sans-jp-74-700-normal-CQdRArtb.woff +0 -0
  1531. package/public/assets/ibm-plex-sans-jp-75-400-normal-DX0jfUHx.woff +0 -0
  1532. package/public/assets/ibm-plex-sans-jp-75-400-normal-DrNdqo4y.woff2 +0 -0
  1533. package/public/assets/ibm-plex-sans-jp-75-600-normal-DvAVPJPm.woff +0 -0
  1534. package/public/assets/ibm-plex-sans-jp-75-600-normal-DzUkgy6d.woff2 +0 -0
  1535. package/public/assets/ibm-plex-sans-jp-75-700-normal-BUGpoCPv.woff2 +0 -0
  1536. package/public/assets/ibm-plex-sans-jp-75-700-normal-CbVTJJOJ.woff +0 -0
  1537. package/public/assets/ibm-plex-sans-jp-76-400-normal-BtXAriso.woff2 +0 -0
  1538. package/public/assets/ibm-plex-sans-jp-76-400-normal-DvZrEIB3.woff +0 -0
  1539. package/public/assets/ibm-plex-sans-jp-76-600-normal-Bkns-GmL.woff +0 -0
  1540. package/public/assets/ibm-plex-sans-jp-76-600-normal-XH04BMqX.woff2 +0 -0
  1541. package/public/assets/ibm-plex-sans-jp-76-700-normal-BfaxMcpg.woff2 +0 -0
  1542. package/public/assets/ibm-plex-sans-jp-76-700-normal-DC5DjlVx.woff +0 -0
  1543. package/public/assets/ibm-plex-sans-jp-77-400-normal-C8x5jxqc.woff2 +0 -0
  1544. package/public/assets/ibm-plex-sans-jp-77-400-normal-DIwXWqjG.woff +0 -0
  1545. package/public/assets/ibm-plex-sans-jp-77-600-normal-Dst0n_2I.woff2 +0 -0
  1546. package/public/assets/ibm-plex-sans-jp-77-600-normal-TveJi30r.woff +0 -0
  1547. package/public/assets/ibm-plex-sans-jp-77-700-normal-BXcw4A5K.woff2 +0 -0
  1548. package/public/assets/ibm-plex-sans-jp-77-700-normal-C5mt5pwb.woff +0 -0
  1549. package/public/assets/ibm-plex-sans-jp-78-400-normal-DUw4O9kJ.woff2 +0 -0
  1550. package/public/assets/ibm-plex-sans-jp-78-400-normal-DdAHar7U.woff +0 -0
  1551. package/public/assets/ibm-plex-sans-jp-78-600-normal-CdDbCMo5.woff2 +0 -0
  1552. package/public/assets/ibm-plex-sans-jp-78-600-normal-WSGX5G5j.woff +0 -0
  1553. package/public/assets/ibm-plex-sans-jp-78-700-normal-BX4TFa2_.woff2 +0 -0
  1554. package/public/assets/ibm-plex-sans-jp-78-700-normal-DQFNc6DE.woff +0 -0
  1555. package/public/assets/ibm-plex-sans-jp-79-400-normal-CHV4cTl6.woff2 +0 -0
  1556. package/public/assets/ibm-plex-sans-jp-79-400-normal-DKXEv0-8.woff +0 -0
  1557. package/public/assets/ibm-plex-sans-jp-79-600-normal-BwemUgt7.woff2 +0 -0
  1558. package/public/assets/ibm-plex-sans-jp-79-600-normal-jqoE6MSf.woff +0 -0
  1559. package/public/assets/ibm-plex-sans-jp-79-700-normal-C7dv3Yp1.woff +0 -0
  1560. package/public/assets/ibm-plex-sans-jp-79-700-normal-Dc8--5xr.woff2 +0 -0
  1561. package/public/assets/ibm-plex-sans-jp-8-400-normal-SmEnIkYa.woff +0 -0
  1562. package/public/assets/ibm-plex-sans-jp-8-400-normal-tFiGs3IA.woff2 +0 -0
  1563. package/public/assets/ibm-plex-sans-jp-8-600-normal-BXRUM-0I.woff2 +0 -0
  1564. package/public/assets/ibm-plex-sans-jp-8-600-normal-G3AQr80e.woff +0 -0
  1565. package/public/assets/ibm-plex-sans-jp-8-700-normal-BJ-eyJFM.woff2 +0 -0
  1566. package/public/assets/ibm-plex-sans-jp-8-700-normal-D8XNQCXr.woff +0 -0
  1567. package/public/assets/ibm-plex-sans-jp-80-400-normal-B1EBYabM.woff +0 -0
  1568. package/public/assets/ibm-plex-sans-jp-80-400-normal-boMeGYwE.woff2 +0 -0
  1569. package/public/assets/ibm-plex-sans-jp-80-600-normal-5_89urOt.woff +0 -0
  1570. package/public/assets/ibm-plex-sans-jp-80-600-normal-Cn0IXtFE.woff2 +0 -0
  1571. package/public/assets/ibm-plex-sans-jp-80-700-normal-BOd0bDGO.woff +0 -0
  1572. package/public/assets/ibm-plex-sans-jp-80-700-normal-C26YuVxL.woff2 +0 -0
  1573. package/public/assets/ibm-plex-sans-jp-81-400-normal-BRtTCfUk.woff +0 -0
  1574. package/public/assets/ibm-plex-sans-jp-81-400-normal-D32P0Vtu.woff2 +0 -0
  1575. package/public/assets/ibm-plex-sans-jp-81-600-normal-BrNo5bPi.woff2 +0 -0
  1576. package/public/assets/ibm-plex-sans-jp-81-600-normal-ic2OowiW.woff +0 -0
  1577. package/public/assets/ibm-plex-sans-jp-81-700-normal-CVYiHbL6.woff +0 -0
  1578. package/public/assets/ibm-plex-sans-jp-81-700-normal-u-vEkTpG.woff2 +0 -0
  1579. package/public/assets/ibm-plex-sans-jp-82-400-normal-BQWp4BEz.woff +0 -0
  1580. package/public/assets/ibm-plex-sans-jp-82-400-normal-DDpDjsGx.woff2 +0 -0
  1581. package/public/assets/ibm-plex-sans-jp-82-600-normal-DajH-4xp.woff2 +0 -0
  1582. package/public/assets/ibm-plex-sans-jp-82-600-normal-icuQ__PU.woff +0 -0
  1583. package/public/assets/ibm-plex-sans-jp-82-700-normal-ClV-zSDt.woff +0 -0
  1584. package/public/assets/ibm-plex-sans-jp-82-700-normal-CnyrRvpH.woff2 +0 -0
  1585. package/public/assets/ibm-plex-sans-jp-83-400-normal-Bw_rXMEi.woff2 +0 -0
  1586. package/public/assets/ibm-plex-sans-jp-83-400-normal-yc2U6i4H.woff +0 -0
  1587. package/public/assets/ibm-plex-sans-jp-83-600-normal-C2uell5V.woff +0 -0
  1588. package/public/assets/ibm-plex-sans-jp-83-600-normal-DsLbRz3E.woff2 +0 -0
  1589. package/public/assets/ibm-plex-sans-jp-83-700-normal-2GacE3N5.woff +0 -0
  1590. package/public/assets/ibm-plex-sans-jp-83-700-normal-EpYP79Ha.woff2 +0 -0
  1591. package/public/assets/ibm-plex-sans-jp-84-400-normal-C14BeeRx.woff2 +0 -0
  1592. package/public/assets/ibm-plex-sans-jp-84-400-normal-C_JCm1wG.woff +0 -0
  1593. package/public/assets/ibm-plex-sans-jp-84-600-normal-CCq3cWfr.woff2 +0 -0
  1594. package/public/assets/ibm-plex-sans-jp-84-600-normal-CNKfBGzf.woff +0 -0
  1595. package/public/assets/ibm-plex-sans-jp-84-700-normal-DvPwdAi9.woff +0 -0
  1596. package/public/assets/ibm-plex-sans-jp-84-700-normal-bReT13VI.woff2 +0 -0
  1597. package/public/assets/ibm-plex-sans-jp-85-400-normal-CxNRCaXC.woff +0 -0
  1598. package/public/assets/ibm-plex-sans-jp-85-400-normal-DIfXns4-.woff2 +0 -0
  1599. package/public/assets/ibm-plex-sans-jp-85-600-normal-8jj6aRvF.woff2 +0 -0
  1600. package/public/assets/ibm-plex-sans-jp-85-600-normal-DlyOX1Qf.woff +0 -0
  1601. package/public/assets/ibm-plex-sans-jp-85-700-normal-D8sN10Nm.woff +0 -0
  1602. package/public/assets/ibm-plex-sans-jp-85-700-normal-og8bjehs.woff2 +0 -0
  1603. package/public/assets/ibm-plex-sans-jp-86-400-normal-Bb5ShdOk.woff +0 -0
  1604. package/public/assets/ibm-plex-sans-jp-86-400-normal-Dwyie3Iv.woff2 +0 -0
  1605. package/public/assets/ibm-plex-sans-jp-86-600-normal-CdiZE1rm.woff2 +0 -0
  1606. package/public/assets/ibm-plex-sans-jp-86-600-normal-sZuKvaH0.woff +0 -0
  1607. package/public/assets/ibm-plex-sans-jp-86-700-normal-BTXGcZ1f.woff2 +0 -0
  1608. package/public/assets/ibm-plex-sans-jp-86-700-normal-BfB1Adps.woff +0 -0
  1609. package/public/assets/ibm-plex-sans-jp-87-400-normal-9iA5aW6B.woff2 +0 -0
  1610. package/public/assets/ibm-plex-sans-jp-87-400-normal-BlQLoLxo.woff +0 -0
  1611. package/public/assets/ibm-plex-sans-jp-87-600-normal-CuP_sqvk.woff +0 -0
  1612. package/public/assets/ibm-plex-sans-jp-87-600-normal-DJDdt009.woff2 +0 -0
  1613. package/public/assets/ibm-plex-sans-jp-87-700-normal-T5FoFJ7Z.woff +0 -0
  1614. package/public/assets/ibm-plex-sans-jp-87-700-normal-ZAIr8xfv.woff2 +0 -0
  1615. package/public/assets/ibm-plex-sans-jp-88-400-normal-47Y8c3gi.woff +0 -0
  1616. package/public/assets/ibm-plex-sans-jp-88-400-normal-Ce6Hc4-O.woff2 +0 -0
  1617. package/public/assets/ibm-plex-sans-jp-88-600-normal-C0xzysV4.woff +0 -0
  1618. package/public/assets/ibm-plex-sans-jp-88-600-normal-R7ba6CXY.woff2 +0 -0
  1619. package/public/assets/ibm-plex-sans-jp-88-700-normal-BhgGw4mN.woff +0 -0
  1620. package/public/assets/ibm-plex-sans-jp-88-700-normal-DqgQgYzO.woff2 +0 -0
  1621. package/public/assets/ibm-plex-sans-jp-89-400-normal-BQ1quosg.woff +0 -0
  1622. package/public/assets/ibm-plex-sans-jp-89-400-normal-DWWwgYkQ.woff2 +0 -0
  1623. package/public/assets/ibm-plex-sans-jp-89-600-normal-C2tA-5LU.woff +0 -0
  1624. package/public/assets/ibm-plex-sans-jp-89-600-normal-DhA0Dlsd.woff2 +0 -0
  1625. package/public/assets/ibm-plex-sans-jp-89-700-normal-BhPAGixe.woff2 +0 -0
  1626. package/public/assets/ibm-plex-sans-jp-89-700-normal-Q4Ct26U-.woff +0 -0
  1627. package/public/assets/ibm-plex-sans-jp-9-400-normal--2P0gMaE.woff2 +0 -0
  1628. package/public/assets/ibm-plex-sans-jp-9-400-normal-DOuCM5BV.woff +0 -0
  1629. package/public/assets/ibm-plex-sans-jp-9-600-normal-BWVUGdkT.woff2 +0 -0
  1630. package/public/assets/ibm-plex-sans-jp-9-600-normal-DKQ7A1j0.woff +0 -0
  1631. package/public/assets/ibm-plex-sans-jp-9-700-normal-CeF5ynVi.woff +0 -0
  1632. package/public/assets/ibm-plex-sans-jp-9-700-normal-U3Fi3Xkr.woff2 +0 -0
  1633. package/public/assets/ibm-plex-sans-jp-90-400-normal-CfqeE6EG.woff +0 -0
  1634. package/public/assets/ibm-plex-sans-jp-90-400-normal-D_k1n-D_.woff2 +0 -0
  1635. package/public/assets/ibm-plex-sans-jp-90-600-normal-Bwsph-Eg.woff +0 -0
  1636. package/public/assets/ibm-plex-sans-jp-90-600-normal-DhhMI-5X.woff2 +0 -0
  1637. package/public/assets/ibm-plex-sans-jp-90-700-normal-B0dGlL2-.woff +0 -0
  1638. package/public/assets/ibm-plex-sans-jp-90-700-normal-C8Hbz-dX.woff2 +0 -0
  1639. package/public/assets/ibm-plex-sans-jp-91-400-normal-Ciy4dQcd.woff +0 -0
  1640. package/public/assets/ibm-plex-sans-jp-91-400-normal-Dqn0gBBY.woff2 +0 -0
  1641. package/public/assets/ibm-plex-sans-jp-91-600-normal-CMZZHiYs.woff2 +0 -0
  1642. package/public/assets/ibm-plex-sans-jp-91-600-normal-D3h_qbuq.woff +0 -0
  1643. package/public/assets/ibm-plex-sans-jp-91-700-normal-B1DETJv2.woff2 +0 -0
  1644. package/public/assets/ibm-plex-sans-jp-91-700-normal-M5nVKp2A.woff +0 -0
  1645. package/public/assets/ibm-plex-sans-jp-92-400-normal-BfkGgwSg.woff2 +0 -0
  1646. package/public/assets/ibm-plex-sans-jp-92-400-normal-DoNv6QKI.woff +0 -0
  1647. package/public/assets/ibm-plex-sans-jp-92-600-normal-9-dsEf5V.woff2 +0 -0
  1648. package/public/assets/ibm-plex-sans-jp-92-600-normal-cJ6s0u50.woff +0 -0
  1649. package/public/assets/ibm-plex-sans-jp-92-700-normal-ByHPz9kn.woff +0 -0
  1650. package/public/assets/ibm-plex-sans-jp-92-700-normal-D6FBL1WO.woff2 +0 -0
  1651. package/public/assets/ibm-plex-sans-jp-93-400-normal-B6WlHkvJ.woff +0 -0
  1652. package/public/assets/ibm-plex-sans-jp-93-400-normal-CXc_m19k.woff2 +0 -0
  1653. package/public/assets/ibm-plex-sans-jp-93-600-normal-BSK1xVrb.woff2 +0 -0
  1654. package/public/assets/ibm-plex-sans-jp-93-600-normal-OQ8utWzT.woff +0 -0
  1655. package/public/assets/ibm-plex-sans-jp-93-700-normal-B6i_9_xV.woff2 +0 -0
  1656. package/public/assets/ibm-plex-sans-jp-93-700-normal-C0PiAt94.woff +0 -0
  1657. package/public/assets/ibm-plex-sans-jp-94-400-normal-B4bajS3c.woff2 +0 -0
  1658. package/public/assets/ibm-plex-sans-jp-94-400-normal-FBGzvyjM.woff +0 -0
  1659. package/public/assets/ibm-plex-sans-jp-94-600-normal-Cl_ZMZu8.woff2 +0 -0
  1660. package/public/assets/ibm-plex-sans-jp-94-600-normal-pqZtpQem.woff +0 -0
  1661. package/public/assets/ibm-plex-sans-jp-94-700-normal-BhojjqGx.woff2 +0 -0
  1662. package/public/assets/ibm-plex-sans-jp-94-700-normal-DWNWPMXr.woff +0 -0
  1663. package/public/assets/ibm-plex-sans-jp-95-400-normal-BaY9CSq2.woff +0 -0
  1664. package/public/assets/ibm-plex-sans-jp-95-400-normal-DPH1GVj3.woff2 +0 -0
  1665. package/public/assets/ibm-plex-sans-jp-95-600-normal-BcydLyYe.woff +0 -0
  1666. package/public/assets/ibm-plex-sans-jp-95-600-normal-DqzXikSS.woff2 +0 -0
  1667. package/public/assets/ibm-plex-sans-jp-95-700-normal-0cKlfajM.woff +0 -0
  1668. package/public/assets/ibm-plex-sans-jp-95-700-normal-BNFDc8MW.woff2 +0 -0
  1669. package/public/assets/ibm-plex-sans-jp-96-400-normal-CXuQ_R0S.woff +0 -0
  1670. package/public/assets/ibm-plex-sans-jp-96-400-normal-OCME7gOK.woff2 +0 -0
  1671. package/public/assets/ibm-plex-sans-jp-96-600-normal-BgkVLddD.woff +0 -0
  1672. package/public/assets/ibm-plex-sans-jp-96-600-normal-GzZNxGhs.woff2 +0 -0
  1673. package/public/assets/ibm-plex-sans-jp-96-700-normal-Qh65nqz2.woff +0 -0
  1674. package/public/assets/ibm-plex-sans-jp-96-700-normal-a40eS-gV.woff2 +0 -0
  1675. package/public/assets/ibm-plex-sans-jp-97-400-normal-4k_rP24C.woff2 +0 -0
  1676. package/public/assets/ibm-plex-sans-jp-97-400-normal-CP6Nx25U.woff +0 -0
  1677. package/public/assets/ibm-plex-sans-jp-97-600-normal-CIqUzk_a.woff2 +0 -0
  1678. package/public/assets/ibm-plex-sans-jp-97-600-normal-DCSYk_Yh.woff +0 -0
  1679. package/public/assets/ibm-plex-sans-jp-97-700-normal-DnbCIk-O.woff +0 -0
  1680. package/public/assets/ibm-plex-sans-jp-97-700-normal-zgPUJYJw.woff2 +0 -0
  1681. package/public/assets/ibm-plex-sans-jp-98-400-normal-B515X6p6.woff2 +0 -0
  1682. package/public/assets/ibm-plex-sans-jp-98-400-normal-Cf7sm02w.woff +0 -0
  1683. package/public/assets/ibm-plex-sans-jp-98-600-normal-DugMp3FI.woff +0 -0
  1684. package/public/assets/ibm-plex-sans-jp-98-600-normal-pBxafNws.woff2 +0 -0
  1685. package/public/assets/ibm-plex-sans-jp-98-700-normal-7KdM18gu.woff +0 -0
  1686. package/public/assets/ibm-plex-sans-jp-98-700-normal-CMi4ZY-h.woff2 +0 -0
  1687. package/public/assets/ibm-plex-sans-jp-99-400-normal-BcrT9Fgn.woff +0 -0
  1688. package/public/assets/ibm-plex-sans-jp-99-400-normal-DmQyl23y.woff2 +0 -0
  1689. package/public/assets/ibm-plex-sans-jp-99-600-normal-CeMMRcA6.woff +0 -0
  1690. package/public/assets/ibm-plex-sans-jp-99-600-normal-DnK7T1fc.woff2 +0 -0
  1691. package/public/assets/ibm-plex-sans-jp-99-700-normal-CINNKEoN.woff +0 -0
  1692. package/public/assets/ibm-plex-sans-jp-99-700-normal-sDTGjBrk.woff2 +0 -0
  1693. package/public/assets/ibm-plex-sans-jp-cyrillic-400-normal-B9g1Ctqd.woff2 +0 -0
  1694. package/public/assets/ibm-plex-sans-jp-cyrillic-400-normal-DJG00D-p.woff +0 -0
  1695. package/public/assets/ibm-plex-sans-jp-cyrillic-600-normal-B4enfOPB.woff +0 -0
  1696. package/public/assets/ibm-plex-sans-jp-cyrillic-600-normal-DCQl7zAm.woff2 +0 -0
  1697. package/public/assets/ibm-plex-sans-jp-cyrillic-700-normal-CqLTajqw.woff2 +0 -0
  1698. package/public/assets/ibm-plex-sans-jp-cyrillic-700-normal-hKVirjqK.woff +0 -0
  1699. package/public/assets/ibm-plex-sans-jp-latin-400-normal-CDdMl-oX.woff2 +0 -0
  1700. package/public/assets/ibm-plex-sans-jp-latin-400-normal-D5LEXcjN.woff +0 -0
  1701. package/public/assets/ibm-plex-sans-jp-latin-600-normal-DmCaZeJ-.woff2 +0 -0
  1702. package/public/assets/ibm-plex-sans-jp-latin-600-normal-Ds_Fb90o.woff +0 -0
  1703. package/public/assets/ibm-plex-sans-jp-latin-700-normal-8D2N3nxA.woff +0 -0
  1704. package/public/assets/ibm-plex-sans-jp-latin-700-normal-BTYOjzj6.woff2 +0 -0
  1705. package/public/assets/ibm-plex-sans-kr-0-400-normal-COdVePwF.woff2 +0 -0
  1706. package/public/assets/ibm-plex-sans-kr-0-400-normal-DEF_oZFa.woff +0 -0
  1707. package/public/assets/ibm-plex-sans-kr-0-600-normal-DLXpb0hq.woff +0 -0
  1708. package/public/assets/ibm-plex-sans-kr-0-600-normal-DuzcAQdo.woff2 +0 -0
  1709. package/public/assets/ibm-plex-sans-kr-0-700-normal-BKXIEbM-.woff +0 -0
  1710. package/public/assets/ibm-plex-sans-kr-0-700-normal-C-cy4WQL.woff2 +0 -0
  1711. package/public/assets/ibm-plex-sans-kr-10-400-normal-BOnpTeYv.woff2 +0 -0
  1712. package/public/assets/ibm-plex-sans-kr-10-400-normal-CRn7_mZz.woff +0 -0
  1713. package/public/assets/ibm-plex-sans-kr-10-600-normal-BAjKvcG-.woff2 +0 -0
  1714. package/public/assets/ibm-plex-sans-kr-10-600-normal-DIq7Gv9V.woff +0 -0
  1715. package/public/assets/ibm-plex-sans-kr-10-700-normal-CO8B564V.woff +0 -0
  1716. package/public/assets/ibm-plex-sans-kr-10-700-normal-CYiGY1Yb.woff2 +0 -0
  1717. package/public/assets/ibm-plex-sans-kr-100-400-normal-3DeNbFry.woff2 +0 -0
  1718. package/public/assets/ibm-plex-sans-kr-100-400-normal-BQdwTqgb.woff +0 -0
  1719. package/public/assets/ibm-plex-sans-kr-100-600-normal-CcI0wmDd.woff2 +0 -0
  1720. package/public/assets/ibm-plex-sans-kr-100-600-normal-ZYmKSXu1.woff +0 -0
  1721. package/public/assets/ibm-plex-sans-kr-100-700-normal-BzrrxQTg.woff2 +0 -0
  1722. package/public/assets/ibm-plex-sans-kr-100-700-normal-CMsSAe0_.woff +0 -0
  1723. package/public/assets/ibm-plex-sans-kr-101-400-normal-CwhtzdGH.woff2 +0 -0
  1724. package/public/assets/ibm-plex-sans-kr-101-400-normal-DQN8MKOE.woff +0 -0
  1725. package/public/assets/ibm-plex-sans-kr-101-600-normal-Cf7HWvBM.woff2 +0 -0
  1726. package/public/assets/ibm-plex-sans-kr-101-600-normal-DOUVV8ig.woff +0 -0
  1727. package/public/assets/ibm-plex-sans-kr-101-700-normal-CByVAW_A.woff2 +0 -0
  1728. package/public/assets/ibm-plex-sans-kr-101-700-normal-VIPXB5Il.woff +0 -0
  1729. package/public/assets/ibm-plex-sans-kr-102-400-normal-BC0mCFX2.woff2 +0 -0
  1730. package/public/assets/ibm-plex-sans-kr-102-400-normal-DHfan8x-.woff +0 -0
  1731. package/public/assets/ibm-plex-sans-kr-102-600-normal-BIIL4Btv.woff +0 -0
  1732. package/public/assets/ibm-plex-sans-kr-102-600-normal-CN8RaHGd.woff2 +0 -0
  1733. package/public/assets/ibm-plex-sans-kr-102-700-normal-BMMLfFhV.woff2 +0 -0
  1734. package/public/assets/ibm-plex-sans-kr-102-700-normal-DmfLM_GL.woff +0 -0
  1735. package/public/assets/ibm-plex-sans-kr-103-400-normal-BQNnzD7b.woff +0 -0
  1736. package/public/assets/ibm-plex-sans-kr-103-400-normal-CYHfi_5o.woff2 +0 -0
  1737. package/public/assets/ibm-plex-sans-kr-103-600-normal-8oNp3a_g.woff2 +0 -0
  1738. package/public/assets/ibm-plex-sans-kr-103-600-normal-BKXxr4Vf.woff +0 -0
  1739. package/public/assets/ibm-plex-sans-kr-103-700-normal-BcdoKDVA.woff +0 -0
  1740. package/public/assets/ibm-plex-sans-kr-103-700-normal-Dxy_7wWe.woff2 +0 -0
  1741. package/public/assets/ibm-plex-sans-kr-104-400-normal-BrHR60F5.woff2 +0 -0
  1742. package/public/assets/ibm-plex-sans-kr-104-400-normal-kn3L8mkz.woff +0 -0
  1743. package/public/assets/ibm-plex-sans-kr-104-600-normal-DHHBh9NH.woff2 +0 -0
  1744. package/public/assets/ibm-plex-sans-kr-104-600-normal-DbfrFOKo.woff +0 -0
  1745. package/public/assets/ibm-plex-sans-kr-104-700-normal-BBQprcoA.woff +0 -0
  1746. package/public/assets/ibm-plex-sans-kr-104-700-normal-DIYBHFGo.woff2 +0 -0
  1747. package/public/assets/ibm-plex-sans-kr-105-400-normal-BY6JiZG_.woff2 +0 -0
  1748. package/public/assets/ibm-plex-sans-kr-105-400-normal-D20hKn8x.woff +0 -0
  1749. package/public/assets/ibm-plex-sans-kr-105-600-normal-Bdo6QjXy.woff2 +0 -0
  1750. package/public/assets/ibm-plex-sans-kr-105-600-normal-DU6215sy.woff +0 -0
  1751. package/public/assets/ibm-plex-sans-kr-105-700-normal-CNeD7cKc.woff +0 -0
  1752. package/public/assets/ibm-plex-sans-kr-105-700-normal-D4WgQZhf.woff2 +0 -0
  1753. package/public/assets/ibm-plex-sans-kr-106-400-normal-CKM4EqLH.woff2 +0 -0
  1754. package/public/assets/ibm-plex-sans-kr-106-400-normal-DRimGseV.woff +0 -0
  1755. package/public/assets/ibm-plex-sans-kr-106-600-normal-CIkK4pwL.woff +0 -0
  1756. package/public/assets/ibm-plex-sans-kr-106-600-normal-o84Tuavw.woff2 +0 -0
  1757. package/public/assets/ibm-plex-sans-kr-106-700-normal-DKK03KYp.woff2 +0 -0
  1758. package/public/assets/ibm-plex-sans-kr-106-700-normal-Sq9FhKgR.woff +0 -0
  1759. package/public/assets/ibm-plex-sans-kr-107-400-normal-9_m442uC.woff +0 -0
  1760. package/public/assets/ibm-plex-sans-kr-107-400-normal-DFBsPAhk.woff2 +0 -0
  1761. package/public/assets/ibm-plex-sans-kr-107-600-normal-Bj6Oga3u.woff2 +0 -0
  1762. package/public/assets/ibm-plex-sans-kr-107-600-normal-IB6GFZTf.woff +0 -0
  1763. package/public/assets/ibm-plex-sans-kr-107-700-normal-BPp3kOId.woff2 +0 -0
  1764. package/public/assets/ibm-plex-sans-kr-107-700-normal-CXE0S75n.woff +0 -0
  1765. package/public/assets/ibm-plex-sans-kr-108-400-normal-D7nsD7Wm.woff +0 -0
  1766. package/public/assets/ibm-plex-sans-kr-108-400-normal-DbmD_Owd.woff2 +0 -0
  1767. package/public/assets/ibm-plex-sans-kr-108-600-normal-C5FnASlc.woff +0 -0
  1768. package/public/assets/ibm-plex-sans-kr-108-600-normal-Cz9v4gjx.woff2 +0 -0
  1769. package/public/assets/ibm-plex-sans-kr-108-700-normal-BeBTa0LV.woff2 +0 -0
  1770. package/public/assets/ibm-plex-sans-kr-108-700-normal-DblVcY4a.woff +0 -0
  1771. package/public/assets/ibm-plex-sans-kr-109-400-normal-Ch-uxywT.woff +0 -0
  1772. package/public/assets/ibm-plex-sans-kr-109-400-normal-ChZ2CLi-.woff2 +0 -0
  1773. package/public/assets/ibm-plex-sans-kr-109-600-normal-BkGpNJKI.woff2 +0 -0
  1774. package/public/assets/ibm-plex-sans-kr-109-600-normal-CG9-PeCF.woff +0 -0
  1775. package/public/assets/ibm-plex-sans-kr-109-700-normal-CZW29fAQ.woff +0 -0
  1776. package/public/assets/ibm-plex-sans-kr-109-700-normal-CkMuXuOj.woff2 +0 -0
  1777. package/public/assets/ibm-plex-sans-kr-11-400-normal-CN_UQa3U.woff +0 -0
  1778. package/public/assets/ibm-plex-sans-kr-11-400-normal-DY57wkwV.woff2 +0 -0
  1779. package/public/assets/ibm-plex-sans-kr-11-600-normal-BUarw7E5.woff +0 -0
  1780. package/public/assets/ibm-plex-sans-kr-11-600-normal-Ds-mjTNk.woff2 +0 -0
  1781. package/public/assets/ibm-plex-sans-kr-11-700-normal-BntN_kys.woff2 +0 -0
  1782. package/public/assets/ibm-plex-sans-kr-11-700-normal-DoPFrHSK.woff +0 -0
  1783. package/public/assets/ibm-plex-sans-kr-110-400-normal-D259vsJ_.woff +0 -0
  1784. package/public/assets/ibm-plex-sans-kr-110-400-normal-DvUF8GMi.woff2 +0 -0
  1785. package/public/assets/ibm-plex-sans-kr-110-600-normal-CisRgCMg.woff2 +0 -0
  1786. package/public/assets/ibm-plex-sans-kr-110-600-normal-ReaqIn5m.woff +0 -0
  1787. package/public/assets/ibm-plex-sans-kr-110-700-normal-BIiZFSUQ.woff2 +0 -0
  1788. package/public/assets/ibm-plex-sans-kr-110-700-normal-BylngM58.woff +0 -0
  1789. package/public/assets/ibm-plex-sans-kr-111-400-normal-BqppHOeA.woff +0 -0
  1790. package/public/assets/ibm-plex-sans-kr-111-400-normal-DaCXFUcH.woff2 +0 -0
  1791. package/public/assets/ibm-plex-sans-kr-111-600-normal-2DkYfPPb.woff +0 -0
  1792. package/public/assets/ibm-plex-sans-kr-111-600-normal-DN6cN55_.woff2 +0 -0
  1793. package/public/assets/ibm-plex-sans-kr-111-700-normal-DjiLTpOV.woff +0 -0
  1794. package/public/assets/ibm-plex-sans-kr-111-700-normal-zUtSBhiX.woff2 +0 -0
  1795. package/public/assets/ibm-plex-sans-kr-112-400-normal-B8TcbMdb.woff +0 -0
  1796. package/public/assets/ibm-plex-sans-kr-112-400-normal-BJLUyYDo.woff2 +0 -0
  1797. package/public/assets/ibm-plex-sans-kr-112-600-normal-lS3UdozO.woff +0 -0
  1798. package/public/assets/ibm-plex-sans-kr-112-600-normal-nFX-cMXi.woff2 +0 -0
  1799. package/public/assets/ibm-plex-sans-kr-112-700-normal-DYzxzB3U.woff +0 -0
  1800. package/public/assets/ibm-plex-sans-kr-112-700-normal-NT-G-2lC.woff2 +0 -0
  1801. package/public/assets/ibm-plex-sans-kr-113-400-normal-CEDRAc_f.woff2 +0 -0
  1802. package/public/assets/ibm-plex-sans-kr-113-400-normal-DlThbTsi.woff +0 -0
  1803. package/public/assets/ibm-plex-sans-kr-113-600-normal-C_RUWM8I.woff +0 -0
  1804. package/public/assets/ibm-plex-sans-kr-113-600-normal-Dhfyy0ky.woff2 +0 -0
  1805. package/public/assets/ibm-plex-sans-kr-113-700-normal-CdI89zbS.woff2 +0 -0
  1806. package/public/assets/ibm-plex-sans-kr-113-700-normal-DRor3NKv.woff +0 -0
  1807. package/public/assets/ibm-plex-sans-kr-114-400-normal-5bMSGSar.woff +0 -0
  1808. package/public/assets/ibm-plex-sans-kr-114-400-normal-Bpqw4_PX.woff2 +0 -0
  1809. package/public/assets/ibm-plex-sans-kr-114-600-normal-BKj6RBZ7.woff +0 -0
  1810. package/public/assets/ibm-plex-sans-kr-114-600-normal-CjRp-Iz4.woff2 +0 -0
  1811. package/public/assets/ibm-plex-sans-kr-114-700-normal-BXC27J9C.woff +0 -0
  1812. package/public/assets/ibm-plex-sans-kr-114-700-normal-JtZooioR.woff2 +0 -0
  1813. package/public/assets/ibm-plex-sans-kr-115-400-normal-6-qa9Uj4.woff2 +0 -0
  1814. package/public/assets/ibm-plex-sans-kr-115-400-normal-CM7tVCiU.woff +0 -0
  1815. package/public/assets/ibm-plex-sans-kr-115-600-normal-CokKDsRY.woff2 +0 -0
  1816. package/public/assets/ibm-plex-sans-kr-115-600-normal-c6nUiZEv.woff +0 -0
  1817. package/public/assets/ibm-plex-sans-kr-115-700-normal-BCRYVYbj.woff +0 -0
  1818. package/public/assets/ibm-plex-sans-kr-115-700-normal-C4o110v7.woff2 +0 -0
  1819. package/public/assets/ibm-plex-sans-kr-116-400-normal-BCjvaIwI.woff +0 -0
  1820. package/public/assets/ibm-plex-sans-kr-116-400-normal-CPQAppG5.woff2 +0 -0
  1821. package/public/assets/ibm-plex-sans-kr-116-600-normal-2NuQXMn5.woff +0 -0
  1822. package/public/assets/ibm-plex-sans-kr-116-600-normal-pwYieqoq.woff2 +0 -0
  1823. package/public/assets/ibm-plex-sans-kr-116-700-normal-DTiOP-RD.woff +0 -0
  1824. package/public/assets/ibm-plex-sans-kr-116-700-normal-J2K8ygE7.woff2 +0 -0
  1825. package/public/assets/ibm-plex-sans-kr-117-400-normal-Bqi1rgUh.woff2 +0 -0
  1826. package/public/assets/ibm-plex-sans-kr-117-400-normal-CAkrqKEd.woff +0 -0
  1827. package/public/assets/ibm-plex-sans-kr-117-600-normal-BUVowAmE.woff +0 -0
  1828. package/public/assets/ibm-plex-sans-kr-117-600-normal-CVV1AoIy.woff2 +0 -0
  1829. package/public/assets/ibm-plex-sans-kr-117-700-normal-B_WqVFu8.woff2 +0 -0
  1830. package/public/assets/ibm-plex-sans-kr-117-700-normal-C-GRhBDF.woff +0 -0
  1831. package/public/assets/ibm-plex-sans-kr-118-400-normal-BvkVX0xm.woff +0 -0
  1832. package/public/assets/ibm-plex-sans-kr-118-400-normal-CPvF_U24.woff2 +0 -0
  1833. package/public/assets/ibm-plex-sans-kr-118-600-normal-BKNr8HaE.woff +0 -0
  1834. package/public/assets/ibm-plex-sans-kr-118-600-normal-SYUuQfwq.woff2 +0 -0
  1835. package/public/assets/ibm-plex-sans-kr-118-700-normal-6t-D5P6M.woff +0 -0
  1836. package/public/assets/ibm-plex-sans-kr-118-700-normal-Cwb_HiV8.woff2 +0 -0
  1837. package/public/assets/ibm-plex-sans-kr-119-400-normal-BVAYXEqw.woff +0 -0
  1838. package/public/assets/ibm-plex-sans-kr-119-400-normal-CF0EWuft.woff2 +0 -0
  1839. package/public/assets/ibm-plex-sans-kr-119-600-normal-CSej5QVJ.woff +0 -0
  1840. package/public/assets/ibm-plex-sans-kr-119-600-normal-CWNURXbv.woff2 +0 -0
  1841. package/public/assets/ibm-plex-sans-kr-119-700-normal-DqmD0X2I.woff +0 -0
  1842. package/public/assets/ibm-plex-sans-kr-119-700-normal-DvZpuW9q.woff2 +0 -0
  1843. package/public/assets/ibm-plex-sans-kr-12-400-normal-AF35YmmH.woff2 +0 -0
  1844. package/public/assets/ibm-plex-sans-kr-12-400-normal-J5xWG5gS.woff +0 -0
  1845. package/public/assets/ibm-plex-sans-kr-12-600-normal-Ba8rnT7_.woff2 +0 -0
  1846. package/public/assets/ibm-plex-sans-kr-12-600-normal-Cdi7mG90.woff +0 -0
  1847. package/public/assets/ibm-plex-sans-kr-12-700-normal-4ZbirUQU.woff2 +0 -0
  1848. package/public/assets/ibm-plex-sans-kr-12-700-normal-Coj3Y2Vv.woff +0 -0
  1849. package/public/assets/ibm-plex-sans-kr-13-400-normal-CpXdOOTc.woff2 +0 -0
  1850. package/public/assets/ibm-plex-sans-kr-13-400-normal-eM8eMXyQ.woff +0 -0
  1851. package/public/assets/ibm-plex-sans-kr-13-600-normal-DXBEl0OU.woff +0 -0
  1852. package/public/assets/ibm-plex-sans-kr-13-600-normal-ON8tPSnT.woff2 +0 -0
  1853. package/public/assets/ibm-plex-sans-kr-13-700-normal-Bbz7lyAG.woff2 +0 -0
  1854. package/public/assets/ibm-plex-sans-kr-13-700-normal-DfbGPVVb.woff +0 -0
  1855. package/public/assets/ibm-plex-sans-kr-14-400-normal-C-oyfrUa.woff2 +0 -0
  1856. package/public/assets/ibm-plex-sans-kr-14-400-normal-DPe2AXol.woff +0 -0
  1857. package/public/assets/ibm-plex-sans-kr-14-600-normal-BEKBLOkr.woff2 +0 -0
  1858. package/public/assets/ibm-plex-sans-kr-14-600-normal-BZRywIXe.woff +0 -0
  1859. package/public/assets/ibm-plex-sans-kr-14-700-normal-DChZSEXi.woff2 +0 -0
  1860. package/public/assets/ibm-plex-sans-kr-14-700-normal-JLAmA7_6.woff +0 -0
  1861. package/public/assets/ibm-plex-sans-kr-15-400-normal-CBiEIaz5.woff2 +0 -0
  1862. package/public/assets/ibm-plex-sans-kr-15-400-normal-D-mZ9inR.woff +0 -0
  1863. package/public/assets/ibm-plex-sans-kr-15-600-normal-CAapLUyl.woff2 +0 -0
  1864. package/public/assets/ibm-plex-sans-kr-15-600-normal-Dl-orC8M.woff +0 -0
  1865. package/public/assets/ibm-plex-sans-kr-15-700-normal-JEDfv4vZ.woff2 +0 -0
  1866. package/public/assets/ibm-plex-sans-kr-15-700-normal-xL2psWlD.woff +0 -0
  1867. package/public/assets/ibm-plex-sans-kr-16-400-normal-CKSk9toV.woff2 +0 -0
  1868. package/public/assets/ibm-plex-sans-kr-16-400-normal-DNGmaJIL.woff +0 -0
  1869. package/public/assets/ibm-plex-sans-kr-16-600-normal-DDZagcz1.woff +0 -0
  1870. package/public/assets/ibm-plex-sans-kr-16-600-normal-DloGa7SL.woff2 +0 -0
  1871. package/public/assets/ibm-plex-sans-kr-16-700-normal-Bv7EAOP1.woff +0 -0
  1872. package/public/assets/ibm-plex-sans-kr-16-700-normal-CCA2fInu.woff2 +0 -0
  1873. package/public/assets/ibm-plex-sans-kr-17-400-normal-BDhrvRnL.woff2 +0 -0
  1874. package/public/assets/ibm-plex-sans-kr-17-400-normal-BOjgDpon.woff +0 -0
  1875. package/public/assets/ibm-plex-sans-kr-17-600-normal-BeTmwP_K.woff2 +0 -0
  1876. package/public/assets/ibm-plex-sans-kr-17-600-normal-uD_8VqjX.woff +0 -0
  1877. package/public/assets/ibm-plex-sans-kr-17-700-normal-C-NBohiT.woff2 +0 -0
  1878. package/public/assets/ibm-plex-sans-kr-17-700-normal-sVUIRMKd.woff +0 -0
  1879. package/public/assets/ibm-plex-sans-kr-18-400-normal-BTtbRNyU.woff +0 -0
  1880. package/public/assets/ibm-plex-sans-kr-18-400-normal-Bs1zlN0G.woff2 +0 -0
  1881. package/public/assets/ibm-plex-sans-kr-18-600-normal-3CkcYQgr.woff2 +0 -0
  1882. package/public/assets/ibm-plex-sans-kr-18-600-normal-C0tjZHt0.woff +0 -0
  1883. package/public/assets/ibm-plex-sans-kr-18-700-normal-DjrHhANL.woff +0 -0
  1884. package/public/assets/ibm-plex-sans-kr-18-700-normal-UPAurMge.woff2 +0 -0
  1885. package/public/assets/ibm-plex-sans-kr-19-400-normal-CCVU2G9b.woff2 +0 -0
  1886. package/public/assets/ibm-plex-sans-kr-19-400-normal-dcW_ilWW.woff +0 -0
  1887. package/public/assets/ibm-plex-sans-kr-19-600-normal-DcS6irVl.woff2 +0 -0
  1888. package/public/assets/ibm-plex-sans-kr-19-600-normal-w0hsbhoe.woff +0 -0
  1889. package/public/assets/ibm-plex-sans-kr-19-700-normal-CazBSycC.woff2 +0 -0
  1890. package/public/assets/ibm-plex-sans-kr-19-700-normal-CvRuq6Vw.woff +0 -0
  1891. package/public/assets/ibm-plex-sans-kr-2-400-normal-CnxhIj-f.woff2 +0 -0
  1892. package/public/assets/ibm-plex-sans-kr-2-400-normal-ZCEqhetZ.woff +0 -0
  1893. package/public/assets/ibm-plex-sans-kr-2-600-normal-BBWiOGe2.woff +0 -0
  1894. package/public/assets/ibm-plex-sans-kr-2-600-normal-i3phtpOA.woff2 +0 -0
  1895. package/public/assets/ibm-plex-sans-kr-2-700-normal-DO0ByKpJ.woff2 +0 -0
  1896. package/public/assets/ibm-plex-sans-kr-2-700-normal-Dei1Gj2q.woff +0 -0
  1897. package/public/assets/ibm-plex-sans-kr-20-400-normal-2BRpmgCV.woff2 +0 -0
  1898. package/public/assets/ibm-plex-sans-kr-20-400-normal-B2cWSh78.woff +0 -0
  1899. package/public/assets/ibm-plex-sans-kr-20-600-normal-CKeHRgKb.woff +0 -0
  1900. package/public/assets/ibm-plex-sans-kr-20-600-normal-CXFU6tjk.woff2 +0 -0
  1901. package/public/assets/ibm-plex-sans-kr-20-700-normal-CTtpPuSd.woff2 +0 -0
  1902. package/public/assets/ibm-plex-sans-kr-20-700-normal-N5V03xjS.woff +0 -0
  1903. package/public/assets/ibm-plex-sans-kr-21-400-normal-Cv3FeIij.woff2 +0 -0
  1904. package/public/assets/ibm-plex-sans-kr-21-400-normal-Dml5TFym.woff +0 -0
  1905. package/public/assets/ibm-plex-sans-kr-21-600-normal-CJHvMuEH.woff2 +0 -0
  1906. package/public/assets/ibm-plex-sans-kr-21-600-normal-ChXV0eBj.woff +0 -0
  1907. package/public/assets/ibm-plex-sans-kr-21-700-normal-BR1fDv7I.woff +0 -0
  1908. package/public/assets/ibm-plex-sans-kr-21-700-normal-kWux5vbT.woff2 +0 -0
  1909. package/public/assets/ibm-plex-sans-kr-22-400-normal-3CnvMMD7.woff2 +0 -0
  1910. package/public/assets/ibm-plex-sans-kr-22-400-normal-TNl1bUeL.woff +0 -0
  1911. package/public/assets/ibm-plex-sans-kr-22-600-normal-B4PQFGba.woff2 +0 -0
  1912. package/public/assets/ibm-plex-sans-kr-22-600-normal-bBSJai_o.woff +0 -0
  1913. package/public/assets/ibm-plex-sans-kr-22-700-normal-BAbSphgc.woff2 +0 -0
  1914. package/public/assets/ibm-plex-sans-kr-22-700-normal-HHyMEHBJ.woff +0 -0
  1915. package/public/assets/ibm-plex-sans-kr-23-400-normal-CUhld-kf.woff2 +0 -0
  1916. package/public/assets/ibm-plex-sans-kr-23-400-normal-DTBYTMn7.woff +0 -0
  1917. package/public/assets/ibm-plex-sans-kr-23-600-normal-CR-CWSvQ.woff2 +0 -0
  1918. package/public/assets/ibm-plex-sans-kr-23-600-normal-Cq5mpPr_.woff +0 -0
  1919. package/public/assets/ibm-plex-sans-kr-23-700-normal-D-oyN10X.woff +0 -0
  1920. package/public/assets/ibm-plex-sans-kr-23-700-normal-DQNF9HpE.woff2 +0 -0
  1921. package/public/assets/ibm-plex-sans-kr-24-400-normal-BCEQWDh5.woff2 +0 -0
  1922. package/public/assets/ibm-plex-sans-kr-24-400-normal-DDVUYQLq.woff +0 -0
  1923. package/public/assets/ibm-plex-sans-kr-24-600-normal-DL0LF1av.woff +0 -0
  1924. package/public/assets/ibm-plex-sans-kr-24-600-normal-DyaIQrhK.woff2 +0 -0
  1925. package/public/assets/ibm-plex-sans-kr-24-700-normal-B0AxqRZO.woff2 +0 -0
  1926. package/public/assets/ibm-plex-sans-kr-24-700-normal-Inz-d5-8.woff +0 -0
  1927. package/public/assets/ibm-plex-sans-kr-25-400-normal-C5hUXC4y.woff2 +0 -0
  1928. package/public/assets/ibm-plex-sans-kr-25-400-normal-CSCHltyB.woff +0 -0
  1929. package/public/assets/ibm-plex-sans-kr-25-600-normal-ClJ2q6nT.woff +0 -0
  1930. package/public/assets/ibm-plex-sans-kr-25-600-normal-CpgWTSx7.woff2 +0 -0
  1931. package/public/assets/ibm-plex-sans-kr-25-700-normal-BSArHqh9.woff2 +0 -0
  1932. package/public/assets/ibm-plex-sans-kr-25-700-normal-BVRIUm2S.woff +0 -0
  1933. package/public/assets/ibm-plex-sans-kr-26-400-normal-BDNWBg-b.woff +0 -0
  1934. package/public/assets/ibm-plex-sans-kr-26-400-normal-BnV7FV79.woff2 +0 -0
  1935. package/public/assets/ibm-plex-sans-kr-26-600-normal-BQpAkNz5.woff2 +0 -0
  1936. package/public/assets/ibm-plex-sans-kr-26-600-normal-bxA4bluv.woff +0 -0
  1937. package/public/assets/ibm-plex-sans-kr-26-700-normal-95lB4fwA.woff +0 -0
  1938. package/public/assets/ibm-plex-sans-kr-26-700-normal-VgtqRBM7.woff2 +0 -0
  1939. package/public/assets/ibm-plex-sans-kr-27-400-normal-B5ZhKYLO.woff2 +0 -0
  1940. package/public/assets/ibm-plex-sans-kr-27-400-normal-Dy5-YEOY.woff +0 -0
  1941. package/public/assets/ibm-plex-sans-kr-27-600-normal-C07c5If1.woff +0 -0
  1942. package/public/assets/ibm-plex-sans-kr-27-600-normal-C6bVD75P.woff2 +0 -0
  1943. package/public/assets/ibm-plex-sans-kr-27-700-normal-_7qWVHie.woff2 +0 -0
  1944. package/public/assets/ibm-plex-sans-kr-27-700-normal-h3oxUHXv.woff +0 -0
  1945. package/public/assets/ibm-plex-sans-kr-28-400-normal-Bwghrgjh.woff2 +0 -0
  1946. package/public/assets/ibm-plex-sans-kr-28-400-normal-DNnelfuN.woff +0 -0
  1947. package/public/assets/ibm-plex-sans-kr-28-600-normal-BBQsSgWd.woff2 +0 -0
  1948. package/public/assets/ibm-plex-sans-kr-28-600-normal-BeDPvyp8.woff +0 -0
  1949. package/public/assets/ibm-plex-sans-kr-28-700-normal-Cjg_wNSB.woff +0 -0
  1950. package/public/assets/ibm-plex-sans-kr-28-700-normal-DY_bvrHQ.woff2 +0 -0
  1951. package/public/assets/ibm-plex-sans-kr-29-400-normal-Dj7VksMf.woff +0 -0
  1952. package/public/assets/ibm-plex-sans-kr-29-400-normal-gP3qcvie.woff2 +0 -0
  1953. package/public/assets/ibm-plex-sans-kr-29-600-normal-B0Nsm10J.woff +0 -0
  1954. package/public/assets/ibm-plex-sans-kr-29-600-normal-Dn9kzegM.woff2 +0 -0
  1955. package/public/assets/ibm-plex-sans-kr-29-700-normal-BaagHPlF.woff2 +0 -0
  1956. package/public/assets/ibm-plex-sans-kr-29-700-normal-sM5sErEE.woff +0 -0
  1957. package/public/assets/ibm-plex-sans-kr-3-400-normal-01r-uCGK.woff +0 -0
  1958. package/public/assets/ibm-plex-sans-kr-3-400-normal-MpgNCYqt.woff2 +0 -0
  1959. package/public/assets/ibm-plex-sans-kr-3-600-normal-CuyoBBEp.woff2 +0 -0
  1960. package/public/assets/ibm-plex-sans-kr-3-600-normal-OOnXi3dj.woff +0 -0
  1961. package/public/assets/ibm-plex-sans-kr-3-700-normal-GjYjPFRF.woff +0 -0
  1962. package/public/assets/ibm-plex-sans-kr-3-700-normal-Vr7CPe4d.woff2 +0 -0
  1963. package/public/assets/ibm-plex-sans-kr-30-400-normal-4H84KBjL.woff +0 -0
  1964. package/public/assets/ibm-plex-sans-kr-30-400-normal-D9W6fT0U.woff2 +0 -0
  1965. package/public/assets/ibm-plex-sans-kr-30-600-normal-CHYuKtvD.woff +0 -0
  1966. package/public/assets/ibm-plex-sans-kr-30-600-normal-DAX8ENIb.woff2 +0 -0
  1967. package/public/assets/ibm-plex-sans-kr-30-700-normal-DvDs5GHe.woff2 +0 -0
  1968. package/public/assets/ibm-plex-sans-kr-30-700-normal-kGpxnFlG.woff +0 -0
  1969. package/public/assets/ibm-plex-sans-kr-31-400-normal-BnpH2dyr.woff +0 -0
  1970. package/public/assets/ibm-plex-sans-kr-31-400-normal-DhPplA2S.woff2 +0 -0
  1971. package/public/assets/ibm-plex-sans-kr-31-600-normal-BDIwmQD2.woff +0 -0
  1972. package/public/assets/ibm-plex-sans-kr-31-600-normal-DWFfqfVJ.woff2 +0 -0
  1973. package/public/assets/ibm-plex-sans-kr-31-700-normal-BEM3LLr5.woff +0 -0
  1974. package/public/assets/ibm-plex-sans-kr-31-700-normal-BH_9UzMR.woff2 +0 -0
  1975. package/public/assets/ibm-plex-sans-kr-32-400-normal-BkNndOiq.woff2 +0 -0
  1976. package/public/assets/ibm-plex-sans-kr-32-400-normal-GRBsq_TQ.woff +0 -0
  1977. package/public/assets/ibm-plex-sans-kr-32-600-normal-Dc31ixSD.woff2 +0 -0
  1978. package/public/assets/ibm-plex-sans-kr-32-600-normal-qBGKeeZh.woff +0 -0
  1979. package/public/assets/ibm-plex-sans-kr-32-700-normal-CKh4-8lS.woff +0 -0
  1980. package/public/assets/ibm-plex-sans-kr-32-700-normal-SEF2IUu4.woff2 +0 -0
  1981. package/public/assets/ibm-plex-sans-kr-33-400-normal-BEJcB5Pj.woff +0 -0
  1982. package/public/assets/ibm-plex-sans-kr-33-400-normal-DOnua0XC.woff2 +0 -0
  1983. package/public/assets/ibm-plex-sans-kr-33-600-normal-Dk43PWfK.woff +0 -0
  1984. package/public/assets/ibm-plex-sans-kr-33-600-normal-_9rnVtrt.woff2 +0 -0
  1985. package/public/assets/ibm-plex-sans-kr-33-700-normal-BkaB_Reu.woff +0 -0
  1986. package/public/assets/ibm-plex-sans-kr-33-700-normal-DbnutdYp.woff2 +0 -0
  1987. package/public/assets/ibm-plex-sans-kr-34-400-normal-BFI-kcuc.woff +0 -0
  1988. package/public/assets/ibm-plex-sans-kr-34-400-normal-b_F-aCuz.woff2 +0 -0
  1989. package/public/assets/ibm-plex-sans-kr-34-600-normal-BwgNjnnm.woff2 +0 -0
  1990. package/public/assets/ibm-plex-sans-kr-34-600-normal-Dkhx4lxu.woff +0 -0
  1991. package/public/assets/ibm-plex-sans-kr-34-700-normal-UpohLQJI.woff2 +0 -0
  1992. package/public/assets/ibm-plex-sans-kr-34-700-normal-Yul5WPNb.woff +0 -0
  1993. package/public/assets/ibm-plex-sans-kr-35-400-normal-CHpiv9C7.woff2 +0 -0
  1994. package/public/assets/ibm-plex-sans-kr-35-400-normal-D8XpW-jV.woff +0 -0
  1995. package/public/assets/ibm-plex-sans-kr-35-600-normal-CD4ArYzM.woff2 +0 -0
  1996. package/public/assets/ibm-plex-sans-kr-35-600-normal-M066d6gr.woff +0 -0
  1997. package/public/assets/ibm-plex-sans-kr-35-700-normal-DV4atPPn.woff2 +0 -0
  1998. package/public/assets/ibm-plex-sans-kr-35-700-normal-hjVn7kub.woff +0 -0
  1999. package/public/assets/ibm-plex-sans-kr-36-400-normal-BT6SwwtR.woff2 +0 -0
  2000. package/public/assets/ibm-plex-sans-kr-36-400-normal-Cd-eoA5H.woff +0 -0
  2001. package/public/assets/ibm-plex-sans-kr-36-600-normal-DsGroCqE.woff +0 -0
  2002. package/public/assets/ibm-plex-sans-kr-36-600-normal-kFFPHZH9.woff2 +0 -0
  2003. package/public/assets/ibm-plex-sans-kr-36-700-normal-CO6mIiJi.woff +0 -0
  2004. package/public/assets/ibm-plex-sans-kr-36-700-normal-DfKrXTUN.woff2 +0 -0
  2005. package/public/assets/ibm-plex-sans-kr-37-400-normal-BiWBJPQ7.woff2 +0 -0
  2006. package/public/assets/ibm-plex-sans-kr-37-400-normal-Bj7jp-Iz.woff +0 -0
  2007. package/public/assets/ibm-plex-sans-kr-37-600-normal-CnPg-4RZ.woff2 +0 -0
  2008. package/public/assets/ibm-plex-sans-kr-37-600-normal-Cvgtdz7H.woff +0 -0
  2009. package/public/assets/ibm-plex-sans-kr-37-700-normal-BtF0jwlF.woff +0 -0
  2010. package/public/assets/ibm-plex-sans-kr-37-700-normal-C4IDZ9L-.woff2 +0 -0
  2011. package/public/assets/ibm-plex-sans-kr-38-400-normal-B4UIE9Zj.woff +0 -0
  2012. package/public/assets/ibm-plex-sans-kr-38-400-normal-CLr3K58D.woff2 +0 -0
  2013. package/public/assets/ibm-plex-sans-kr-38-600-normal-Dln3mVPi.woff +0 -0
  2014. package/public/assets/ibm-plex-sans-kr-38-600-normal-Uy8tuoQH.woff2 +0 -0
  2015. package/public/assets/ibm-plex-sans-kr-38-700-normal-DClAUGO7.woff +0 -0
  2016. package/public/assets/ibm-plex-sans-kr-38-700-normal-DHBmduQt.woff2 +0 -0
  2017. package/public/assets/ibm-plex-sans-kr-39-400-normal-BzR2eDWi.woff2 +0 -0
  2018. package/public/assets/ibm-plex-sans-kr-39-400-normal-WTG9_11D.woff +0 -0
  2019. package/public/assets/ibm-plex-sans-kr-39-600-normal-DHmemGdc.woff +0 -0
  2020. package/public/assets/ibm-plex-sans-kr-39-600-normal-DxNgVy70.woff2 +0 -0
  2021. package/public/assets/ibm-plex-sans-kr-39-700-normal-B7V6NyLX.woff +0 -0
  2022. package/public/assets/ibm-plex-sans-kr-39-700-normal-CijZ21_m.woff2 +0 -0
  2023. package/public/assets/ibm-plex-sans-kr-4-400-normal-1GfpLFeR.woff +0 -0
  2024. package/public/assets/ibm-plex-sans-kr-4-400-normal-BSOJFi3M.woff2 +0 -0
  2025. package/public/assets/ibm-plex-sans-kr-4-600-normal-BGAcZoa5.woff +0 -0
  2026. package/public/assets/ibm-plex-sans-kr-4-600-normal-DP-OzMv8.woff2 +0 -0
  2027. package/public/assets/ibm-plex-sans-kr-4-700-normal-BTl2LovL.woff +0 -0
  2028. package/public/assets/ibm-plex-sans-kr-4-700-normal-PLU2uOG6.woff2 +0 -0
  2029. package/public/assets/ibm-plex-sans-kr-40-400-normal-BJCaISym.woff +0 -0
  2030. package/public/assets/ibm-plex-sans-kr-40-400-normal-DxlOKNb6.woff2 +0 -0
  2031. package/public/assets/ibm-plex-sans-kr-40-600-normal-D79iYZbh.woff +0 -0
  2032. package/public/assets/ibm-plex-sans-kr-40-600-normal-DyMFY3yG.woff2 +0 -0
  2033. package/public/assets/ibm-plex-sans-kr-40-700-normal-BOSqPgLZ.woff2 +0 -0
  2034. package/public/assets/ibm-plex-sans-kr-40-700-normal-Bs7eQneK.woff +0 -0
  2035. package/public/assets/ibm-plex-sans-kr-41-400-normal-Ce6_8B6O.woff +0 -0
  2036. package/public/assets/ibm-plex-sans-kr-41-400-normal-THO3jy3s.woff2 +0 -0
  2037. package/public/assets/ibm-plex-sans-kr-41-600-normal-Ck2K5Ulf.woff2 +0 -0
  2038. package/public/assets/ibm-plex-sans-kr-41-600-normal-Df3Wep6L.woff +0 -0
  2039. package/public/assets/ibm-plex-sans-kr-41-700-normal-B-9pR0B0.woff2 +0 -0
  2040. package/public/assets/ibm-plex-sans-kr-41-700-normal-vrmrQol7.woff +0 -0
  2041. package/public/assets/ibm-plex-sans-kr-42-400-normal-Cgyyi6Mk.woff2 +0 -0
  2042. package/public/assets/ibm-plex-sans-kr-42-400-normal-mWRC9cE4.woff +0 -0
  2043. package/public/assets/ibm-plex-sans-kr-42-600-normal-BIw3yp_o.woff +0 -0
  2044. package/public/assets/ibm-plex-sans-kr-42-600-normal-CgHlrSUg.woff2 +0 -0
  2045. package/public/assets/ibm-plex-sans-kr-42-700-normal-CE4g_Vnr.woff2 +0 -0
  2046. package/public/assets/ibm-plex-sans-kr-42-700-normal-OHitFFYG.woff +0 -0
  2047. package/public/assets/ibm-plex-sans-kr-43-400-normal-DofKP3XM.woff2 +0 -0
  2048. package/public/assets/ibm-plex-sans-kr-43-400-normal-rklqUmDh.woff +0 -0
  2049. package/public/assets/ibm-plex-sans-kr-43-600-normal-BPJjrS1c.woff2 +0 -0
  2050. package/public/assets/ibm-plex-sans-kr-43-600-normal-Dl6BB-Lj.woff +0 -0
  2051. package/public/assets/ibm-plex-sans-kr-43-700-normal-B4zrRhmq.woff2 +0 -0
  2052. package/public/assets/ibm-plex-sans-kr-43-700-normal-Vq2Xt21W.woff +0 -0
  2053. package/public/assets/ibm-plex-sans-kr-44-400-normal-BPQ_BGOm.woff +0 -0
  2054. package/public/assets/ibm-plex-sans-kr-44-400-normal-BvoXxhh-.woff2 +0 -0
  2055. package/public/assets/ibm-plex-sans-kr-44-600-normal-B1scqjS5.woff2 +0 -0
  2056. package/public/assets/ibm-plex-sans-kr-44-600-normal-B1vhjtxY.woff +0 -0
  2057. package/public/assets/ibm-plex-sans-kr-44-700-normal-CdiYya7N.woff +0 -0
  2058. package/public/assets/ibm-plex-sans-kr-44-700-normal-CizxTCTp.woff2 +0 -0
  2059. package/public/assets/ibm-plex-sans-kr-45-400-normal-BN1x-JCl.woff +0 -0
  2060. package/public/assets/ibm-plex-sans-kr-45-400-normal-DMKz6H_F.woff2 +0 -0
  2061. package/public/assets/ibm-plex-sans-kr-45-600-normal-D74kcLg1.woff +0 -0
  2062. package/public/assets/ibm-plex-sans-kr-45-600-normal-DNXvxDIf.woff2 +0 -0
  2063. package/public/assets/ibm-plex-sans-kr-45-700-normal-BdAAndOM.woff2 +0 -0
  2064. package/public/assets/ibm-plex-sans-kr-45-700-normal-DeYHlTSC.woff +0 -0
  2065. package/public/assets/ibm-plex-sans-kr-46-400-normal-K8yMYku4.woff +0 -0
  2066. package/public/assets/ibm-plex-sans-kr-46-400-normal-Z0YZvJMA.woff2 +0 -0
  2067. package/public/assets/ibm-plex-sans-kr-46-600-normal-CfEBl86K.woff2 +0 -0
  2068. package/public/assets/ibm-plex-sans-kr-46-600-normal-Yu7W5Ur_.woff +0 -0
  2069. package/public/assets/ibm-plex-sans-kr-46-700-normal-C2i6qX8o.woff2 +0 -0
  2070. package/public/assets/ibm-plex-sans-kr-46-700-normal-Ck28wpb6.woff +0 -0
  2071. package/public/assets/ibm-plex-sans-kr-47-400-normal-BHD-6hCF.woff +0 -0
  2072. package/public/assets/ibm-plex-sans-kr-47-400-normal-DapCxPvn.woff2 +0 -0
  2073. package/public/assets/ibm-plex-sans-kr-47-600-normal-CxMB4f1K.woff +0 -0
  2074. package/public/assets/ibm-plex-sans-kr-47-600-normal-tmv6xC_z.woff2 +0 -0
  2075. package/public/assets/ibm-plex-sans-kr-47-700-normal-ByTiuiZy.woff +0 -0
  2076. package/public/assets/ibm-plex-sans-kr-47-700-normal-C_LnNwcx.woff2 +0 -0
  2077. package/public/assets/ibm-plex-sans-kr-48-400-normal-5VJWa5C8.woff +0 -0
  2078. package/public/assets/ibm-plex-sans-kr-48-400-normal-CBCdCJJN.woff2 +0 -0
  2079. package/public/assets/ibm-plex-sans-kr-48-600-normal-DAbbVYEi.woff +0 -0
  2080. package/public/assets/ibm-plex-sans-kr-48-600-normal-QEQJ2vNg.woff2 +0 -0
  2081. package/public/assets/ibm-plex-sans-kr-48-700-normal-D9NnIF6F.woff2 +0 -0
  2082. package/public/assets/ibm-plex-sans-kr-48-700-normal-gCAr-9Ui.woff +0 -0
  2083. package/public/assets/ibm-plex-sans-kr-49-400-normal-BENNdZwd.woff2 +0 -0
  2084. package/public/assets/ibm-plex-sans-kr-49-400-normal-DrUErJVA.woff +0 -0
  2085. package/public/assets/ibm-plex-sans-kr-49-600-normal-B9kwAyIi.woff2 +0 -0
  2086. package/public/assets/ibm-plex-sans-kr-49-600-normal-DHvPm2NF.woff +0 -0
  2087. package/public/assets/ibm-plex-sans-kr-49-700-normal-C7LprN_f.woff2 +0 -0
  2088. package/public/assets/ibm-plex-sans-kr-49-700-normal-C80RxHso.woff +0 -0
  2089. package/public/assets/ibm-plex-sans-kr-5-400-normal-B1Nb7Dqt.woff +0 -0
  2090. package/public/assets/ibm-plex-sans-kr-5-400-normal-BBWPbJ8R.woff2 +0 -0
  2091. package/public/assets/ibm-plex-sans-kr-5-600-normal-BV1Q-ya9.woff2 +0 -0
  2092. package/public/assets/ibm-plex-sans-kr-5-600-normal-vSSmYEgt.woff +0 -0
  2093. package/public/assets/ibm-plex-sans-kr-5-700-normal-88k3u19j.woff2 +0 -0
  2094. package/public/assets/ibm-plex-sans-kr-5-700-normal-Bm4AIB4W.woff +0 -0
  2095. package/public/assets/ibm-plex-sans-kr-50-400-normal-DSyr09Pi.woff +0 -0
  2096. package/public/assets/ibm-plex-sans-kr-50-400-normal-wVEmJJbn.woff2 +0 -0
  2097. package/public/assets/ibm-plex-sans-kr-50-600-normal-CNwgbPME.woff2 +0 -0
  2098. package/public/assets/ibm-plex-sans-kr-50-600-normal-DwlyYo3O.woff +0 -0
  2099. package/public/assets/ibm-plex-sans-kr-50-700-normal-BpuC-Ja2.woff2 +0 -0
  2100. package/public/assets/ibm-plex-sans-kr-50-700-normal-DJ4qrNjm.woff +0 -0
  2101. package/public/assets/ibm-plex-sans-kr-51-400-normal-CI8zKOiq.woff2 +0 -0
  2102. package/public/assets/ibm-plex-sans-kr-51-400-normal-Nb_ATV55.woff +0 -0
  2103. package/public/assets/ibm-plex-sans-kr-51-600-normal-D1q9iZG9.woff2 +0 -0
  2104. package/public/assets/ibm-plex-sans-kr-51-600-normal-DCKOx3do.woff +0 -0
  2105. package/public/assets/ibm-plex-sans-kr-51-700-normal-CDxcnlps.woff2 +0 -0
  2106. package/public/assets/ibm-plex-sans-kr-51-700-normal-CrbVhrAy.woff +0 -0
  2107. package/public/assets/ibm-plex-sans-kr-52-400-normal-DgbfUacv.woff +0 -0
  2108. package/public/assets/ibm-plex-sans-kr-52-400-normal-Dqrwgacb.woff2 +0 -0
  2109. package/public/assets/ibm-plex-sans-kr-52-600-normal-DpEHO2lx.woff +0 -0
  2110. package/public/assets/ibm-plex-sans-kr-52-600-normal-HtoGXJPD.woff2 +0 -0
  2111. package/public/assets/ibm-plex-sans-kr-52-700-normal-6UeGb2y_.woff +0 -0
  2112. package/public/assets/ibm-plex-sans-kr-52-700-normal-Cj2MbqkN.woff2 +0 -0
  2113. package/public/assets/ibm-plex-sans-kr-53-400-normal-BPlmQmyN.woff +0 -0
  2114. package/public/assets/ibm-plex-sans-kr-53-400-normal-uFBOSatZ.woff2 +0 -0
  2115. package/public/assets/ibm-plex-sans-kr-53-600-normal-3e73VLox.woff2 +0 -0
  2116. package/public/assets/ibm-plex-sans-kr-53-600-normal-CHFWjDbo.woff +0 -0
  2117. package/public/assets/ibm-plex-sans-kr-53-700-normal-BtF7lJZ6.woff2 +0 -0
  2118. package/public/assets/ibm-plex-sans-kr-53-700-normal-D1_BFs6r.woff +0 -0
  2119. package/public/assets/ibm-plex-sans-kr-54-400-normal-B_JBM8HP.woff2 +0 -0
  2120. package/public/assets/ibm-plex-sans-kr-54-400-normal-DShvO3nx.woff +0 -0
  2121. package/public/assets/ibm-plex-sans-kr-54-600-normal-CIir-_6C.woff2 +0 -0
  2122. package/public/assets/ibm-plex-sans-kr-54-600-normal-HSAnxCQg.woff +0 -0
  2123. package/public/assets/ibm-plex-sans-kr-54-700-normal-DOcpS_k9.woff2 +0 -0
  2124. package/public/assets/ibm-plex-sans-kr-54-700-normal-DR_NIHG9.woff +0 -0
  2125. package/public/assets/ibm-plex-sans-kr-55-400-normal-BIBVbLNo.woff2 +0 -0
  2126. package/public/assets/ibm-plex-sans-kr-55-400-normal-DACpgdpL.woff +0 -0
  2127. package/public/assets/ibm-plex-sans-kr-55-600-normal-ByArDHHI.woff2 +0 -0
  2128. package/public/assets/ibm-plex-sans-kr-55-600-normal-CNKcN-Ig.woff +0 -0
  2129. package/public/assets/ibm-plex-sans-kr-55-700-normal-9BGvVFJG.woff +0 -0
  2130. package/public/assets/ibm-plex-sans-kr-55-700-normal-DCUUt7cX.woff2 +0 -0
  2131. package/public/assets/ibm-plex-sans-kr-56-400-normal-D6a133Nk.woff +0 -0
  2132. package/public/assets/ibm-plex-sans-kr-56-400-normal-E_0UP4jm.woff2 +0 -0
  2133. package/public/assets/ibm-plex-sans-kr-56-600-normal-DScuu4Uu.woff2 +0 -0
  2134. package/public/assets/ibm-plex-sans-kr-56-600-normal-hzikha37.woff +0 -0
  2135. package/public/assets/ibm-plex-sans-kr-56-700-normal-BCQXFjgs.woff +0 -0
  2136. package/public/assets/ibm-plex-sans-kr-56-700-normal-CfjdYZM4.woff2 +0 -0
  2137. package/public/assets/ibm-plex-sans-kr-57-400-normal-CBQftTJt.woff +0 -0
  2138. package/public/assets/ibm-plex-sans-kr-57-400-normal-F8LL-J5_.woff2 +0 -0
  2139. package/public/assets/ibm-plex-sans-kr-57-600-normal-BR6Du0PQ.woff +0 -0
  2140. package/public/assets/ibm-plex-sans-kr-57-600-normal-CQ1redVd.woff2 +0 -0
  2141. package/public/assets/ibm-plex-sans-kr-57-700-normal-DQEJ1-LS.woff2 +0 -0
  2142. package/public/assets/ibm-plex-sans-kr-57-700-normal-FH-ttKed.woff +0 -0
  2143. package/public/assets/ibm-plex-sans-kr-58-400-normal-DqIzdKrV.woff +0 -0
  2144. package/public/assets/ibm-plex-sans-kr-58-400-normal-i71EDyfV.woff2 +0 -0
  2145. package/public/assets/ibm-plex-sans-kr-58-600-normal-Bpgq8MX2.woff +0 -0
  2146. package/public/assets/ibm-plex-sans-kr-58-600-normal-Bqgrv0lo.woff2 +0 -0
  2147. package/public/assets/ibm-plex-sans-kr-58-700-normal-Bj2HnGEw.woff +0 -0
  2148. package/public/assets/ibm-plex-sans-kr-58-700-normal-DYsLBu1T.woff2 +0 -0
  2149. package/public/assets/ibm-plex-sans-kr-59-400-normal-B-8F2Uet.woff +0 -0
  2150. package/public/assets/ibm-plex-sans-kr-59-400-normal-BHAiqXEM.woff2 +0 -0
  2151. package/public/assets/ibm-plex-sans-kr-59-600-normal-B-CGe3sL.woff2 +0 -0
  2152. package/public/assets/ibm-plex-sans-kr-59-600-normal-BuQf4YmM.woff +0 -0
  2153. package/public/assets/ibm-plex-sans-kr-59-700-normal-BZ9z_FHx.woff +0 -0
  2154. package/public/assets/ibm-plex-sans-kr-59-700-normal-CWSgjf9c.woff2 +0 -0
  2155. package/public/assets/ibm-plex-sans-kr-6-400-normal-AY_mybA2.woff +0 -0
  2156. package/public/assets/ibm-plex-sans-kr-6-400-normal-CTPxjOYB.woff2 +0 -0
  2157. package/public/assets/ibm-plex-sans-kr-6-600-normal-CdfPYwdk.woff2 +0 -0
  2158. package/public/assets/ibm-plex-sans-kr-6-600-normal-oGadQOpD.woff +0 -0
  2159. package/public/assets/ibm-plex-sans-kr-6-700-normal-DLe2ZT_Q.woff2 +0 -0
  2160. package/public/assets/ibm-plex-sans-kr-6-700-normal-bXRUCZKE.woff +0 -0
  2161. package/public/assets/ibm-plex-sans-kr-60-400-normal-CEDE9rS0.woff +0 -0
  2162. package/public/assets/ibm-plex-sans-kr-60-400-normal-z5dDoQx9.woff2 +0 -0
  2163. package/public/assets/ibm-plex-sans-kr-60-600-normal-Bl94dFYa.woff2 +0 -0
  2164. package/public/assets/ibm-plex-sans-kr-60-600-normal-OLqttnKu.woff +0 -0
  2165. package/public/assets/ibm-plex-sans-kr-60-700-normal-CYME5EXY.woff2 +0 -0
  2166. package/public/assets/ibm-plex-sans-kr-60-700-normal-I1XysYDt.woff +0 -0
  2167. package/public/assets/ibm-plex-sans-kr-61-400-normal-Ci1tC2DE.woff +0 -0
  2168. package/public/assets/ibm-plex-sans-kr-61-400-normal-DnyFjM_B.woff2 +0 -0
  2169. package/public/assets/ibm-plex-sans-kr-61-600-normal-BZxjTCO5.woff +0 -0
  2170. package/public/assets/ibm-plex-sans-kr-61-600-normal-ChG7s6jj.woff2 +0 -0
  2171. package/public/assets/ibm-plex-sans-kr-61-700-normal-Bi5bgOa-.woff +0 -0
  2172. package/public/assets/ibm-plex-sans-kr-61-700-normal-CCHPFSSV.woff2 +0 -0
  2173. package/public/assets/ibm-plex-sans-kr-62-400-normal-BIF8JT4K.woff2 +0 -0
  2174. package/public/assets/ibm-plex-sans-kr-62-400-normal-BMQQOADr.woff +0 -0
  2175. package/public/assets/ibm-plex-sans-kr-62-600-normal-BwPZY4No.woff +0 -0
  2176. package/public/assets/ibm-plex-sans-kr-62-600-normal-CCy9m1Yi.woff2 +0 -0
  2177. package/public/assets/ibm-plex-sans-kr-62-700-normal-CUKZrRn4.woff +0 -0
  2178. package/public/assets/ibm-plex-sans-kr-62-700-normal-PUE26tsV.woff2 +0 -0
  2179. package/public/assets/ibm-plex-sans-kr-63-400-normal-Bi-DePsy.woff +0 -0
  2180. package/public/assets/ibm-plex-sans-kr-63-400-normal-DbEg4X6i.woff2 +0 -0
  2181. package/public/assets/ibm-plex-sans-kr-63-600-normal-B_hznMYb.woff2 +0 -0
  2182. package/public/assets/ibm-plex-sans-kr-63-600-normal-DXp5U46T.woff +0 -0
  2183. package/public/assets/ibm-plex-sans-kr-63-700-normal-CdRKaRR8.woff +0 -0
  2184. package/public/assets/ibm-plex-sans-kr-63-700-normal-d_p4qgBI.woff2 +0 -0
  2185. package/public/assets/ibm-plex-sans-kr-64-400-normal-BoOvEFVR.woff2 +0 -0
  2186. package/public/assets/ibm-plex-sans-kr-64-400-normal-DhttFBeF.woff +0 -0
  2187. package/public/assets/ibm-plex-sans-kr-64-600-normal-DdDi5wpQ.woff2 +0 -0
  2188. package/public/assets/ibm-plex-sans-kr-64-600-normal-DnHS-nmP.woff +0 -0
  2189. package/public/assets/ibm-plex-sans-kr-64-700-normal-DvcYr3Tg.woff2 +0 -0
  2190. package/public/assets/ibm-plex-sans-kr-64-700-normal-Z-oKOpcu.woff +0 -0
  2191. package/public/assets/ibm-plex-sans-kr-65-600-normal-CuB_ApqX.woff2 +0 -0
  2192. package/public/assets/ibm-plex-sans-kr-65-700-normal-OQGIHpUr.woff2 +0 -0
  2193. package/public/assets/ibm-plex-sans-kr-7-400-normal-CDkAi-IU.woff2 +0 -0
  2194. package/public/assets/ibm-plex-sans-kr-7-400-normal-VZ_YUdPy.woff +0 -0
  2195. package/public/assets/ibm-plex-sans-kr-7-600-normal-CeGVp1rD.woff +0 -0
  2196. package/public/assets/ibm-plex-sans-kr-7-600-normal-Dh7JSXz4.woff2 +0 -0
  2197. package/public/assets/ibm-plex-sans-kr-7-700-normal-C-GGubNS.woff +0 -0
  2198. package/public/assets/ibm-plex-sans-kr-7-700-normal-DkDnzNv2.woff2 +0 -0
  2199. package/public/assets/ibm-plex-sans-kr-8-400-normal-BmMhoS32.woff2 +0 -0
  2200. package/public/assets/ibm-plex-sans-kr-8-400-normal-Ci0W5IWz.woff +0 -0
  2201. package/public/assets/ibm-plex-sans-kr-8-600-normal-B0rxBWNc.woff2 +0 -0
  2202. package/public/assets/ibm-plex-sans-kr-8-600-normal-BJjl00Le.woff +0 -0
  2203. package/public/assets/ibm-plex-sans-kr-8-700-normal-5jYiHHRz.woff2 +0 -0
  2204. package/public/assets/ibm-plex-sans-kr-8-700-normal-BEKQdV0c.woff +0 -0
  2205. package/public/assets/ibm-plex-sans-kr-9-400-normal-CeBwsqAD.woff +0 -0
  2206. package/public/assets/ibm-plex-sans-kr-9-400-normal-DJinq116.woff2 +0 -0
  2207. package/public/assets/ibm-plex-sans-kr-9-600-normal-DWoOSbq5.woff +0 -0
  2208. package/public/assets/ibm-plex-sans-kr-9-600-normal-DraA-1Zl.woff2 +0 -0
  2209. package/public/assets/ibm-plex-sans-kr-9-700-normal-BkZ1vv2G.woff +0 -0
  2210. package/public/assets/ibm-plex-sans-kr-9-700-normal-CymJjnAS.woff2 +0 -0
  2211. package/public/assets/ibm-plex-sans-kr-93-400-normal-5J6UR9CM.woff2 +0 -0
  2212. package/public/assets/ibm-plex-sans-kr-93-400-normal-Cdi-IBra.woff +0 -0
  2213. package/public/assets/ibm-plex-sans-kr-93-600-normal-4KzAAJzD.woff +0 -0
  2214. package/public/assets/ibm-plex-sans-kr-93-600-normal-C3ObUrek.woff2 +0 -0
  2215. package/public/assets/ibm-plex-sans-kr-93-700-normal-BEo_xrjH.woff +0 -0
  2216. package/public/assets/ibm-plex-sans-kr-93-700-normal-DYlKYBEL.woff2 +0 -0
  2217. package/public/assets/ibm-plex-sans-kr-94-400-normal-CLS33fqM.woff +0 -0
  2218. package/public/assets/ibm-plex-sans-kr-94-400-normal-CsJn1kPf.woff2 +0 -0
  2219. package/public/assets/ibm-plex-sans-kr-94-600-normal-BqkCATJS.woff2 +0 -0
  2220. package/public/assets/ibm-plex-sans-kr-94-600-normal-DGs8D_d9.woff +0 -0
  2221. package/public/assets/ibm-plex-sans-kr-94-700-normal-BcAowvjY.woff2 +0 -0
  2222. package/public/assets/ibm-plex-sans-kr-94-700-normal-Rande0GP.woff +0 -0
  2223. package/public/assets/ibm-plex-sans-kr-96-400-normal-DqxPcneT.woff2 +0 -0
  2224. package/public/assets/ibm-plex-sans-kr-96-400-normal-m9r3xH18.woff +0 -0
  2225. package/public/assets/ibm-plex-sans-kr-96-600-normal-E6j9XpvP.woff +0 -0
  2226. package/public/assets/ibm-plex-sans-kr-96-600-normal-qnNrW3Df.woff2 +0 -0
  2227. package/public/assets/ibm-plex-sans-kr-96-700-normal-D_kcIWRN.woff +0 -0
  2228. package/public/assets/ibm-plex-sans-kr-96-700-normal-DafuQoH3.woff2 +0 -0
  2229. package/public/assets/ibm-plex-sans-kr-97-400-normal-DOlHHts_.woff2 +0 -0
  2230. package/public/assets/ibm-plex-sans-kr-97-400-normal-TWLDWHgL.woff +0 -0
  2231. package/public/assets/ibm-plex-sans-kr-97-600-normal-CHxkMEAU.woff2 +0 -0
  2232. package/public/assets/ibm-plex-sans-kr-97-600-normal-CXVo40nf.woff +0 -0
  2233. package/public/assets/ibm-plex-sans-kr-97-700-normal-BdFpzIjS.woff2 +0 -0
  2234. package/public/assets/ibm-plex-sans-kr-97-700-normal-C5vPlSUB.woff +0 -0
  2235. package/public/assets/ibm-plex-sans-kr-98-400-normal-CyxDRXqs.woff2 +0 -0
  2236. package/public/assets/ibm-plex-sans-kr-98-400-normal-D-_zohjb.woff +0 -0
  2237. package/public/assets/ibm-plex-sans-kr-98-600-normal-CizO16Ew.woff +0 -0
  2238. package/public/assets/ibm-plex-sans-kr-98-600-normal-D-SBD5Hk.woff2 +0 -0
  2239. package/public/assets/ibm-plex-sans-kr-98-700-normal-BArUuixv.woff2 +0 -0
  2240. package/public/assets/ibm-plex-sans-kr-98-700-normal-O_rp84MR.woff +0 -0
  2241. package/public/assets/ibm-plex-sans-kr-99-400-normal-COuj214s.woff2 +0 -0
  2242. package/public/assets/ibm-plex-sans-kr-99-600-normal-j_ccRvHi.woff2 +0 -0
  2243. package/public/assets/ibm-plex-sans-kr-99-700-normal-BGCe6SPX.woff2 +0 -0
  2244. package/public/assets/ibm-plex-sans-kr-latin-400-normal-7kwLL-e3.woff +0 -0
  2245. package/public/assets/ibm-plex-sans-kr-latin-400-normal-Bc7vhvxM.woff2 +0 -0
  2246. package/public/assets/ibm-plex-sans-kr-latin-600-normal-n-2PV5Ut.woff2 +0 -0
  2247. package/public/assets/ibm-plex-sans-kr-latin-600-normal-yks4z4wu.woff +0 -0
  2248. package/public/assets/ibm-plex-sans-kr-latin-700-normal-Bj41MRxQ.woff +0 -0
  2249. package/public/assets/ibm-plex-sans-kr-latin-700-normal-CIbXnLaA.woff2 +0 -0
  2250. package/public/assets/ibm-plex-sans-latin-ext-wght-normal-CIII54If.woff2 +0 -0
  2251. package/public/assets/ibm-plex-sans-latin-wght-normal-IvpUvPa2.woff2 +0 -0
  2252. package/public/assets/ibm-plex-sans-vietnamese-wght-normal-Dg1JeJN0.woff2 +0 -0
  2253. package/public/assets/index-CS23Ozt6.js +11 -0
  2254. package/public/assets/index-CS23Ozt6.js.map +1 -0
  2255. package/public/assets/index-DZyHRhbQ.css +2 -0
  2256. package/public/assets/initial-avatar-CtuDUz_W.js +2 -0
  2257. package/public/assets/initial-avatar-CtuDUz_W.js.map +1 -0
  2258. package/public/assets/input-CzQki7k6.js +2 -0
  2259. package/public/assets/input-CzQki7k6.js.map +1 -0
  2260. package/public/assets/key-round-CdvHb8vT.js +2 -0
  2261. package/public/assets/key-round-CdvHb8vT.js.map +1 -0
  2262. package/public/assets/labeled-separator-CV7nb0XW.js +2 -0
  2263. package/public/assets/labeled-separator-CV7nb0XW.js.map +1 -0
  2264. package/public/assets/link-C-WdTj3F.js +2 -0
  2265. package/public/assets/link-C-WdTj3F.js.map +1 -0
  2266. package/public/assets/lock-7NRyvXBS.js +2 -0
  2267. package/public/assets/lock-7NRyvXBS.js.map +1 -0
  2268. package/public/assets/login-C5vUVgr_.js +2 -0
  2269. package/public/assets/login-C5vUVgr_.js.map +1 -0
  2270. package/public/assets/login-nukebli4.js +2 -0
  2271. package/public/assets/login-nukebli4.js.map +1 -0
  2272. package/public/assets/logout-B5T52P8u.js +2 -0
  2273. package/public/assets/logout-B5T52P8u.js.map +1 -0
  2274. package/public/assets/mail-D0B_1Dzd.js +2 -0
  2275. package/public/assets/mail-D0B_1Dzd.js.map +1 -0
  2276. package/public/assets/modal-BDQFucjz.js +2 -0
  2277. package/public/assets/modal-BDQFucjz.js.map +1 -0
  2278. package/public/assets/mutationOptions-DyYFUbyn.js +2 -0
  2279. package/public/assets/mutationOptions-DyYFUbyn.js.map +1 -0
  2280. package/public/assets/passkey-BE9JvJOP.js +2 -0
  2281. package/public/assets/passkey-BE9JvJOP.js.map +1 -0
  2282. package/public/assets/passkey-C5vUVgr_.js +2 -0
  2283. package/public/assets/passkey-C5vUVgr_.js.map +1 -0
  2284. package/public/assets/passkey-CynCz1Dt.js +2 -0
  2285. package/public/assets/passkey-CynCz1Dt.js.map +1 -0
  2286. package/public/assets/passkey-J1qnYp9A.js +2 -0
  2287. package/public/assets/passkey-J1qnYp9A.js.map +1 -0
  2288. package/public/assets/passkey-error-ZqqPQUta.js +2 -0
  2289. package/public/assets/passkey-error-ZqqPQUta.js.map +1 -0
  2290. package/public/assets/password-C5vUVgr_.js +2 -0
  2291. package/public/assets/password-C5vUVgr_.js.map +1 -0
  2292. package/public/assets/password-RkUttbhD.js +2 -0
  2293. package/public/assets/password-RkUttbhD.js.map +1 -0
  2294. package/public/assets/password-reset-sU5KkBKi.js +2 -0
  2295. package/public/assets/password-reset-sU5KkBKi.js.map +1 -0
  2296. package/public/assets/password-strength-BeSOu_Ga.js +2 -0
  2297. package/public/assets/password-strength-BeSOu_Ga.js.map +1 -0
  2298. package/public/assets/pin-input-Cc-VkrQ3.js +2 -0
  2299. package/public/assets/pin-input-Cc-VkrQ3.js.map +1 -0
  2300. package/public/assets/plus-DSBBSrgj.js +2 -0
  2301. package/public/assets/plus-DSBBSrgj.js.map +1 -0
  2302. package/public/assets/profile-B5NaJfeS.js +2 -0
  2303. package/public/assets/profile-B5NaJfeS.js.map +1 -0
  2304. package/public/assets/profile-BcjsVYOx.js +2 -0
  2305. package/public/assets/profile-BcjsVYOx.js.map +1 -0
  2306. package/public/assets/promise-OpBtq8tG.js +2 -0
  2307. package/public/assets/promise-OpBtq8tG.js.map +1 -0
  2308. package/public/assets/provider-logos-u1YURWQr.js +2 -0
  2309. package/public/assets/provider-logos-u1YURWQr.js.map +1 -0
  2310. package/public/assets/recovery-PnUATiUi.js +2 -0
  2311. package/public/assets/recovery-PnUATiUi.js.map +1 -0
  2312. package/public/assets/register-C5vUVgr_.js +2 -0
  2313. package/public/assets/register-C5vUVgr_.js.map +1 -0
  2314. package/public/assets/register-DQXhru0_.js +2 -0
  2315. package/public/assets/register-DQXhru0_.js.map +1 -0
  2316. package/public/assets/reset-C5vUVgr_.js +2 -0
  2317. package/public/assets/reset-C5vUVgr_.js.map +1 -0
  2318. package/public/assets/reset-CQgIa3yf.js +2 -0
  2319. package/public/assets/reset-CQgIa3yf.js.map +1 -0
  2320. package/public/assets/routes-CAIeH5mq.js +2 -0
  2321. package/public/assets/routes-CAIeH5mq.js.map +1 -0
  2322. package/public/assets/select-C5vUVgr_.js +2 -0
  2323. package/public/assets/select-C5vUVgr_.js.map +1 -0
  2324. package/public/assets/select-DqZynXSt.js +2 -0
  2325. package/public/assets/select-DqZynXSt.js.map +1 -0
  2326. package/public/assets/separator-B0Bvh1he.js +2 -0
  2327. package/public/assets/separator-B0Bvh1he.js.map +1 -0
  2328. package/public/assets/shell-header-bar-CjG5qvPg.js +2 -0
  2329. package/public/assets/shell-header-bar-CjG5qvPg.js.map +1 -0
  2330. package/public/assets/shield-check-D_p8H0ni.js +2 -0
  2331. package/public/assets/shield-check-D_p8H0ni.js.map +1 -0
  2332. package/public/assets/standard-schema-e8gtSzGE.js +2 -0
  2333. package/public/assets/standard-schema-e8gtSzGE.js.map +1 -0
  2334. package/public/assets/terms-B5NaJfeS.js +2 -0
  2335. package/public/assets/terms-B5NaJfeS.js.map +1 -0
  2336. package/public/assets/terms-BHDAgn-H.js +2 -0
  2337. package/public/assets/terms-BHDAgn-H.js.map +1 -0
  2338. package/public/assets/terms-checkbox-list-6jteUTIZ.js +2 -0
  2339. package/public/assets/terms-checkbox-list-6jteUTIZ.js.map +1 -0
  2340. package/public/assets/totp-BNZ904Zm.js +2 -0
  2341. package/public/assets/totp-BNZ904Zm.js.map +1 -0
  2342. package/public/assets/totp-CJtfVNEq.js +2 -0
  2343. package/public/assets/totp-CJtfVNEq.js.map +1 -0
  2344. package/public/assets/totp-ECvOUcFx.js +2 -0
  2345. package/public/assets/totp-ECvOUcFx.js.map +1 -0
  2346. package/public/assets/trash-2-DZdKBLvC.js +2 -0
  2347. package/public/assets/trash-2-DZdKBLvC.js.map +1 -0
  2348. package/public/assets/triangle-alert-CqNn0kPs.js +2 -0
  2349. package/public/assets/triangle-alert-CqNn0kPs.js.map +1 -0
  2350. package/public/assets/use-totp-setup-BbS3XcZA.js +3 -0
  2351. package/public/assets/use-totp-setup-BbS3XcZA.js.map +1 -0
  2352. package/public/assets/useAriaLabelledBy-ByuMi3Ry.js +2 -0
  2353. package/public/assets/useAriaLabelledBy-ByuMi3Ry.js.map +1 -0
  2354. package/public/assets/useMutation-BWZ0G4Td.js +2 -0
  2355. package/public/assets/useMutation-BWZ0G4Td.js.map +1 -0
  2356. package/public/assets/useQuery-Ckxjmvtl.js +2 -0
  2357. package/public/assets/useQuery-Ckxjmvtl.js.map +1 -0
  2358. package/public/assets/users-CmFxrCQT.js +2 -0
  2359. package/public/assets/users-CmFxrCQT.js.map +1 -0
  2360. package/public/assets/valueToPercent-LgbY_prH.js +2 -0
  2361. package/public/assets/valueToPercent-LgbY_prH.js.map +1 -0
  2362. package/public/assets/zod-C87S6Tec.js +66 -0
  2363. package/public/assets/zod-C87S6Tec.js.map +1 -0
  2364. package/public/index.html +31 -0
  2365. package/public/vite.svg +1 -0
@@ -0,0 +1,2 @@
1
+ import{q as e}from"./createLucideIcon-BPpAIXR_.js";import{t}from"./avatar-BEQjf2x6.js";var n=e(),r={sm:{"--tr-avatar-size":`2rem`,"--tr-avatar-font-size":`var(--tinyrack-text-sm)`},md:{"--tr-avatar-size":`3rem`,"--tr-avatar-font-size":`var(--tinyrack-text-xl)`},lg:{"--tr-avatar-size":`4rem`,"--tr-avatar-font-size":`var(--tinyrack-text-2xl)`}};function i({email:e,size:i=`md`}){let a=e.charAt(0).toUpperCase();return(0,n.jsx)(t.Root,{className:`shrink-0 font-tinyrack-bold`,shape:`circle`,style:{...r[i],"--tr-avatar-background":`var(--tinyrack-primary)`,"--tr-avatar-color":`var(--tinyrack-on-primary)`,"--tr-avatar-border":`transparent`},children:(0,n.jsx)(t.Fallback,{children:a})})}export{i as t};
2
+ //# sourceMappingURL=initial-avatar-CtuDUz_W.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"initial-avatar-CtuDUz_W.js","names":[],"sources":["../../../frontend/src/components/ui/initial-avatar.tsx"],"sourcesContent":["import { TRAvatar } from '@tinyrack/ui/components/avatar';\nimport type { CSSProperties } from 'react';\n\ntype InitialAvatarProps = {\n email: string;\n size?: 'sm' | 'md' | 'lg';\n};\n\n/**\n * Brand-colored initial avatar built on the design system's `TRAvatar`.\n * Size, font size and the primary color pair are applied through the\n * component's own `--tr-avatar-*` custom properties so it composes the\n * design system rather than re-implementing an avatar.\n */\nconst sizeVars: Record<\n NonNullable<InitialAvatarProps['size']>,\n CSSProperties\n> = {\n sm: {\n '--tr-avatar-size': '2rem',\n '--tr-avatar-font-size': 'var(--tinyrack-text-sm)',\n } as CSSProperties,\n md: {\n '--tr-avatar-size': '3rem',\n '--tr-avatar-font-size': 'var(--tinyrack-text-xl)',\n } as CSSProperties,\n lg: {\n '--tr-avatar-size': '4rem',\n '--tr-avatar-font-size': 'var(--tinyrack-text-2xl)',\n } as CSSProperties,\n};\n\nexport function InitialAvatar({ email, size = 'md' }: InitialAvatarProps) {\n const initial = email.charAt(0).toUpperCase();\n\n return (\n <TRAvatar.Root\n className=\"shrink-0 font-tinyrack-bold\"\n shape=\"circle\"\n style={\n {\n ...sizeVars[size],\n '--tr-avatar-background': 'var(--tinyrack-primary)',\n '--tr-avatar-color': 'var(--tinyrack-on-primary)',\n '--tr-avatar-border': 'transparent',\n } as CSSProperties\n }\n >\n <TRAvatar.Fallback>{initial}</TRAvatar.Fallback>\n </TRAvatar.Root>\n );\n}\n"],"mappings":"iGAcM,EAGF,CACF,GAAI,CACF,mBAAoB,OACpB,wBAAyB,yBAC3B,EACA,GAAI,CACF,mBAAoB,OACpB,wBAAyB,yBAC3B,EACA,GAAI,CACF,mBAAoB,OACpB,wBAAyB,0BAC3B,CACF,EAEA,SAAgB,EAAc,CAAE,QAAO,OAAO,MAA4B,CACxE,IAAM,EAAU,EAAM,OAAO,CAAC,CAAC,CAAC,YAAY,EAE5C,OACE,EAAA,EAAA,IAAA,CAAC,EAAS,KAAV,CACE,UAAU,8BACV,MAAM,SACN,MACE,CACE,GAAG,EAAS,GACZ,yBAA0B,0BAC1B,oBAAqB,6BACrB,qBAAsB,aACxB,YAGF,EAAA,EAAA,IAAA,CAAC,EAAS,SAAV,CAAA,SAAoB,CAA2B,CAAA,CAClC,CAAA,CAEnB"}
@@ -0,0 +1,2 @@
1
+ import{G as e,J as t,W as n,Z as r,q as i}from"./createLucideIcon-BPpAIXR_.js";import{xn as a}from"./config-DTQCUlfZ.js";import{n as o}from"./field-Cn4H1CUj.js";var s=i(),c=r(t(),1),l=(0,c.createContext)(!1);function u(){return(0,c.useContext)(l)}var d=c.forwardRef(function(e,t){return(0,s.jsx)(o,{ref:t,...e})});function f({className:t,uiSize:n=`md`,appearance:r=`solid`,...i}){a();let o=u();return(0,s.jsx)(d,{...i,className:e(o?`tr-input tr-input-group-input`:`tr-input`,t),"data-appearance":r,"data-ui-size":n})}function p({className:e,type:t=`button`,...r}){return(0,s.jsx)(`button`,{...r,className:n(`tr-input-group-action`,e),type:t})}function m({className:e,side:t=`start`,...r}){return(0,s.jsx)(`span`,{...r,className:n(`tr-input-group-adornment`,e),"data-side":t})}function h({children:e,className:t,uiSize:r=`md`,...i}){return a(),(0,s.jsx)(`div`,{...i,className:n(`tr-input-group`,t),"data-ui-size":r,children:(0,s.jsx)(l,{value:!0,children:e})})}var g=Object.assign(f,{Group:h,Adornment:m,Action:p});export{g as t};
2
+ //# sourceMappingURL=input-CzQki7k6.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"input-CzQki7k6.js","names":["Field.Control","TRInput"],"sources":["../../../../node_modules/.pnpm/@tinyrack+ui@0.25.0_@types+react@19.2.17_react-dom@19.2.7_react@19.2.7__react@19.2.7_shiki@4.3.1_tailwindcss@4.3.2/node_modules/@tinyrack/ui/dist/components/input/input-group-context.js","../../../../node_modules/.pnpm/@base-ui+react@1.7.0_@types+react@19.2.17_react-dom@19.2.7_react@19.2.7__react@19.2.7/node_modules/@base-ui/react/input/Input.mjs","../../../../node_modules/.pnpm/@tinyrack+ui@0.25.0_@types+react@19.2.17_react-dom@19.2.7_react@19.2.7__react@19.2.7_shiki@4.3.1_tailwindcss@4.3.2/node_modules/@tinyrack/ui/dist/components/input/input.js","../../../../node_modules/.pnpm/@tinyrack+ui@0.25.0_@types+react@19.2.17_react-dom@19.2.7_react@19.2.7__react@19.2.7_shiki@4.3.1_tailwindcss@4.3.2/node_modules/@tinyrack/ui/dist/components/input/input-action.js","../../../../node_modules/.pnpm/@tinyrack+ui@0.25.0_@types+react@19.2.17_react-dom@19.2.7_react@19.2.7__react@19.2.7_shiki@4.3.1_tailwindcss@4.3.2/node_modules/@tinyrack/ui/dist/components/input/input-adornment.js","../../../../node_modules/.pnpm/@tinyrack+ui@0.25.0_@types+react@19.2.17_react-dom@19.2.7_react@19.2.7__react@19.2.7_shiki@4.3.1_tailwindcss@4.3.2/node_modules/@tinyrack/ui/dist/components/input/input-group.js","../../../../node_modules/.pnpm/@tinyrack+ui@0.25.0_@types+react@19.2.17_react-dom@19.2.7_react@19.2.7__react@19.2.7_shiki@4.3.1_tailwindcss@4.3.2/node_modules/@tinyrack/ui/dist/components/input/index.js"],"sourcesContent":["\"use client\";\nimport { createContext, useContext } from \"react\";\n//#region src/components/input/input-group-context.ts\n/**\n* Lets an `Input` discover that it is rendered inside a `Group` so it can take\n* the group's control styling itself. Without it a caller would have to write\n* the internal `tr-input-group-input` class by hand, which is the thing the\n* group is meant to spare them.\n*/\nconst TRInputGroupContext = createContext(false);\nfunction useIsInsideTRInputGroup() {\n\treturn useContext(TRInputGroupContext);\n}\n//#endregion\nexport { TRInputGroupContext, useIsInsideTRInputGroup };\n\n//# sourceMappingURL=input-group-context.js.map","'use client';\n\nimport * as React from 'react';\nimport { Field } from \"../field/index.mjs\";\n\n/**\n * A native input element that automatically works with [Field](https://base-ui.com/react/components/field).\n * Renders an `<input>` element.\n *\n * Documentation: [Base UI Input](https://base-ui.com/react/components/input)\n */\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport const Input = /*#__PURE__*/React.forwardRef(function Input(props, forwardedRef) {\n return /*#__PURE__*/_jsx(Field.Control, {\n ref: forwardedRef,\n ...props\n });\n});\nif (process.env.NODE_ENV !== \"production\") Input.displayName = \"Input\";","\"use client\";\nimport { useTinyrackFocusModality } from \"../../providers/focus-modality/focus-modality-provider.js\";\nimport { mergeComponentClassName } from \"../../internal/component-class-name.js\";\nimport { useIsInsideTRInputGroup } from \"./input-group-context.js\";\nimport { jsx } from \"react/jsx-runtime\";\nimport { Input } from \"@base-ui/react/input\";\n//#region src/components/input/input.tsx\nfunction TRInput({ className, uiSize = \"md\", appearance = \"solid\", ...props }) {\n\tuseTinyrackFocusModality();\n\tconst insideGroup = useIsInsideTRInputGroup();\n\treturn /* @__PURE__ */ jsx(Input, {\n\t\t...props,\n\t\tclassName: mergeComponentClassName(insideGroup ? \"tr-input tr-input-group-input\" : \"tr-input\", className),\n\t\t\"data-appearance\": appearance,\n\t\t\"data-ui-size\": uiSize\n\t});\n}\n//#endregion\nexport { TRInput };\n\n//# sourceMappingURL=input.js.map","import { mergeClassNames } from \"../../internal/component-class-name.js\";\nimport { jsx } from \"react/jsx-runtime\";\n//#region src/components/input/input-action.tsx\n/**\n* A control at the edge of a `Group` — reveal a password, clear the value, run\n* a search.\n*\n* Defaults to `type=\"button\"` so it cannot accidentally submit the surrounding\n* form. It is a real button and stays in the tab order, so give it an\n* accessible name.\n*/\nfunction TRInputAction({ className, type = \"button\", ...props }) {\n\treturn /* @__PURE__ */ jsx(\"button\", {\n\t\t...props,\n\t\tclassName: mergeClassNames(\"tr-input-group-action\", className),\n\t\ttype\n\t});\n}\n//#endregion\nexport { TRInputAction };\n\n//# sourceMappingURL=input-action.js.map","import { mergeClassNames } from \"../../internal/component-class-name.js\";\nimport { jsx } from \"react/jsx-runtime\";\n//#region src/components/input/input-adornment.tsx\n/**\n* Static content inside a `Group` — a leading icon, a unit, a prefix.\n*\n* Not interactive: it does not take pointer events, so clicking it still\n* focuses the input. Use `Action` for something the user can press, and mark\n* decorative icons `aria-hidden` so the field keeps a single accessible name.\n*/\nfunction TRInputAdornment({ className, side = \"start\", ...props }) {\n\treturn /* @__PURE__ */ jsx(\"span\", {\n\t\t...props,\n\t\tclassName: mergeClassNames(\"tr-input-group-adornment\", className),\n\t\t\"data-side\": side\n\t});\n}\n//#endregion\nexport { TRInputAdornment };\n\n//# sourceMappingURL=input-adornment.js.map","\"use client\";\nimport { useTinyrackFocusModality } from \"../../providers/focus-modality/focus-modality-provider.js\";\nimport { mergeClassNames } from \"../../internal/component-class-name.js\";\nimport { TRInputGroupContext } from \"./input-group-context.js\";\nimport { jsx } from \"react/jsx-runtime\";\n//#region src/components/input/input-group.tsx\n/**\n* Frames an input together with adornments and actions so they read as one\n* control: the border, background, and focus ring belong to the group, and the\n* input inside it goes flat.\n*\n* The group owns the control height, so size it here rather than on the input.\n*/\nfunction TRInputGroup({ children, className, uiSize = \"md\", ...props }) {\n\tuseTinyrackFocusModality();\n\treturn /* @__PURE__ */ jsx(\"div\", {\n\t\t...props,\n\t\tclassName: mergeClassNames(\"tr-input-group\", className),\n\t\t\"data-ui-size\": uiSize,\n\t\tchildren: /* @__PURE__ */ jsx(TRInputGroupContext, {\n\t\t\tvalue: true,\n\t\t\tchildren\n\t\t})\n\t});\n}\n//#endregion\nexport { TRInputGroup };\n\n//# sourceMappingURL=input-group.js.map","import { TRInput as TRInput$1 } from \"./input.js\";\nimport { TRInputAction } from \"./input-action.js\";\nimport { TRInputAdornment } from \"./input-adornment.js\";\nimport { TRInputGroup } from \"./input-group.js\";\n//#region src/components/input/index.tsx\n/**\n* `TRInput` stays directly renderable for the common single-control case and\n* carries the group parts as a namespace, so adding an adornment never means\n* changing the element you already render.\n*/\nconst TRInput = Object.assign(TRInput$1, {\n\tGroup: TRInputGroup,\n\tAdornment: TRInputAdornment,\n\tAction: TRInputAction\n});\n//#endregion\nexport { TRInput, TRInputAction, TRInputAdornment, TRInputGroup };\n\n//# sourceMappingURL=index.js.map"],"x_google_ignoreList":[0,1,2,3,4,5,6],"mappings":"sLASA,GAAA,EAAA,EAAA,cAAA,CAAA,EAAA,EACA,SAAA,GAAA,0BAEA,CCAA,IAAa,EAAqB,EAAM,WAAW,SAAe,EAAO,EAAc,CACrF,OAAoB,EAAA,EAAA,IAAA,CAAKA,EAAe,CACtC,IAAK,EACL,GAAG,CACL,CAAC,CACH,CAAC,ECVD,SAASC,EAAQ,CAAE,YAAW,SAAS,KAAM,aAAa,QAAS,GAAG,GAAS,CAC9E,EAAyB,EACzB,IAAM,EAAc,EAAwB,EAC5C,OAAuB,EAAA,EAAA,IAAA,CAAI,EAAO,CACjC,GAAG,EACH,UAAW,EAAwB,EAAc,gCAAkC,WAAY,CAAS,EACxG,kBAAmB,EACnB,eAAgB,CACjB,CAAC,CACF,CCLA,SAAS,EAAc,CAAE,YAAW,OAAO,SAAU,GAAG,GAAS,CAChE,OAAuB,EAAA,EAAA,IAAA,CAAI,SAAU,CACpC,GAAG,EACH,UAAW,EAAgB,wBAAyB,CAAS,EAC7D,MACD,CAAC,CACF,CCPA,SAAS,EAAiB,CAAE,YAAW,OAAO,QAAS,GAAG,GAAS,CAClE,OAAuB,EAAA,EAAA,IAAA,CAAI,OAAQ,CAClC,GAAG,EACH,UAAW,EAAgB,2BAA4B,CAAS,EAChE,YAAa,CACd,CAAC,CACF,CCHA,SAAS,EAAa,CAAE,WAAU,YAAW,SAAS,KAAM,GAAG,GAAS,CAEvE,OADA,EAAyB,GACF,EAAA,EAAA,IAAA,CAAI,MAAO,CACjC,GAAG,EACH,UAAW,EAAgB,iBAAkB,CAAS,EACtD,eAAgB,EAChB,UAA0B,EAAA,EAAA,IAAA,CAAI,EAAqB,CAClD,MAAO,GACP,UACD,CAAC,CACF,CAAC,CACF,CCdA,IAAM,EAAU,OAAO,OAAO,EAAW,CACxC,MAAO,EACP,UAAW,EACX,OAAQ,CACT,CAAC"}
@@ -0,0 +1,2 @@
1
+ import{t as e}from"./createLucideIcon-BPpAIXR_.js";var t=e(`key-round`,[[`path`,{d:`M2.586 17.414A2 2 0 0 0 2 18.828V21a1 1 0 0 0 1 1h3a1 1 0 0 0 1-1v-1a1 1 0 0 1 1-1h1a1 1 0 0 0 1-1v-1a1 1 0 0 1 1-1h.172a2 2 0 0 0 1.414-.586l.814-.814a6.5 6.5 0 1 0-4-4z`,key:`1s6t7t`}],[`circle`,{cx:`16.5`,cy:`7.5`,r:`.5`,fill:`currentColor`,key:`w0ekpg`}]]);export{t};
2
+ //# sourceMappingURL=key-round-CdvHb8vT.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"key-round-CdvHb8vT.js","names":[],"sources":["../../../../node_modules/.pnpm/lucide-react@1.25.0_react@19.2.7/node_modules/lucide-react/dist/esm/icons/key-round.mjs"],"sourcesContent":["/**\n * @license lucide-react v1.25.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.mjs';\n\nconst __iconNode = [\n [\n \"path\",\n {\n d: \"M2.586 17.414A2 2 0 0 0 2 18.828V21a1 1 0 0 0 1 1h3a1 1 0 0 0 1-1v-1a1 1 0 0 1 1-1h1a1 1 0 0 0 1-1v-1a1 1 0 0 1 1-1h.172a2 2 0 0 0 1.414-.586l.814-.814a6.5 6.5 0 1 0-4-4z\",\n key: \"1s6t7t\"\n }\n ],\n [\"circle\", { cx: \"16.5\", cy: \"7.5\", r: \".5\", fill: \"currentColor\", key: \"w0ekpg\" }]\n];\nconst KeyRound = createLucideIcon(\"key-round\", __iconNode);\n\nexport { __iconNode, KeyRound as default };\n//# sourceMappingURL=key-round.mjs.map\n"],"x_google_ignoreList":[0],"mappings":"mDAmBA,IAAM,EAAW,EAAiB,YAAa,CAT7C,CACE,OACA,CACE,EAAG,6KACH,IAAK,QACP,CACF,EACA,CAAC,SAAU,CAAE,GAAI,OAAQ,GAAI,MAAO,EAAG,KAAM,KAAM,eAAgB,IAAK,QAAS,CAAC,CAErC,CAAU"}
@@ -0,0 +1,2 @@
1
+ import{n as e,q as t}from"./createLucideIcon-BPpAIXR_.js";import{t as n}from"./separator-B0Bvh1he.js";var r=t();function i({label:t,className:i=``}){return t?(0,r.jsxs)(`div`,{className:`flex items-center gap-tinyrack-md ${i}`,children:[(0,r.jsx)(`div`,{className:`min-w-0 flex-1`,children:(0,r.jsx)(n,{orientation:`horizontal`})}),(0,r.jsx)(e,{color:`muted`,variant:`caption`,children:t}),(0,r.jsx)(`div`,{className:`min-w-0 flex-1`,children:(0,r.jsx)(n,{orientation:`horizontal`})})]}):(0,r.jsx)(n,{className:i,orientation:`horizontal`})}export{i as t};
2
+ //# sourceMappingURL=labeled-separator-CV7nb0XW.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"labeled-separator-CV7nb0XW.js","names":[],"sources":["../../../frontend/src/components/ui/labeled-separator.tsx"],"sourcesContent":["import { TRSeparator } from '@tinyrack/ui/components/separator';\nimport { TRText } from '@tinyrack/ui/components/text';\n\ntype LabeledSeparatorProps = {\n /** Omit for a plain rule. */\n label?: string;\n className?: string;\n};\n\n/**\n * A rule that can carry a centred label (\"or\", \"Terms\").\n *\n * Two separators flank the label so the line reads as continuous. Replaces\n * the old `Divider` plus two hand-rolled copies of the same markup in the\n * register and terms screens.\n */\nexport function LabeledSeparator({\n label,\n className = '',\n}: LabeledSeparatorProps) {\n if (!label) {\n return <TRSeparator className={className} orientation=\"horizontal\" />;\n }\n\n return (\n <div className={`flex items-center gap-tinyrack-md ${className}`}>\n {/*\n The rules are wrapped rather than flexed directly: TRSeparator sets its\n own `inline-size`, which a width utility on the element does not\n override, so each rule would demand the full container width and the\n row would overflow as soon as the label is more than a word or two.\n */}\n <div className=\"min-w-0 flex-1\">\n <TRSeparator orientation=\"horizontal\" />\n </div>\n <TRText color=\"muted\" variant=\"caption\">\n {label}\n </TRText>\n <div className=\"min-w-0 flex-1\">\n <TRSeparator orientation=\"horizontal\" />\n </div>\n </div>\n );\n}\n"],"mappings":"gHAgBA,SAAgB,EAAiB,CAC/B,QACA,YAAY,IACY,CAKxB,OAJK,GAKH,EAAA,EAAA,KAAA,CAAC,MAAD,CAAK,UAAW,qCAAqC,aAArD,EAOE,EAAA,EAAA,IAAA,CAAC,MAAD,CAAK,UAAU,2BACb,EAAA,EAAA,IAAA,CAAC,EAAD,CAAa,YAAY,YAAc,CAAA,CACpC,CAAA,GACL,EAAA,EAAA,IAAA,CAAC,EAAD,CAAQ,MAAM,QAAQ,QAAQ,mBAC3B,CACK,CAAA,GACR,EAAA,EAAA,IAAA,CAAC,MAAD,CAAK,UAAU,2BACb,EAAA,EAAA,IAAA,CAAC,EAAD,CAAa,YAAY,YAAc,CAAA,CACpC,CAAA,CACF,KApBE,EAAA,EAAA,IAAA,CAAC,EAAD,CAAwB,YAAW,YAAY,YAAc,CAAA,CAsBxE"}
@@ -0,0 +1,2 @@
1
+ import{J as e,W as t,Z as n,o as r}from"./createLucideIcon-BPpAIXR_.js";var i=n(e(),1);function a({className:e,disabled:n=!1,href:a,onClick:o,onKeyDown:s,ref:c,render:l,underline:u=`hover`,variant:d=`default`,...f}){let p=n&&(0,i.isValidElement)(l)?(0,i.cloneElement)(l,{href:void 0}):l;return r({defaultTagName:`a`,props:{...f,"aria-disabled":n||void 0,className:t(`tr-link`,e),"data-disabled":n?``:void 0,"data-underline":u,"data-variant":d,href:n?void 0:a,onClick(e){if(n){e.preventDefault(),e.stopPropagation();return}o?.(e)},onKeyDown(e){if(n&&(e.key===`Enter`||e.key===` `)){e.preventDefault(),e.stopPropagation();return}s?.(e)},tabIndex:n?-1:f.tabIndex},ref:c,render:p})}export{a as t};
2
+ //# sourceMappingURL=link-C-WdTj3F.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"link-C-WdTj3F.js","names":[],"sources":["../../../../node_modules/.pnpm/@tinyrack+ui@0.25.0_@types+react@19.2.17_react-dom@19.2.7_react@19.2.7__react@19.2.7_shiki@4.3.1_tailwindcss@4.3.2/node_modules/@tinyrack/ui/dist/components/link/link.js"],"sourcesContent":["\"use client\";\nimport { mergeClassNames } from \"../../internal/component-class-name.js\";\nimport { cloneElement, isValidElement } from \"react\";\nimport { useRender } from \"@base-ui/react/use-render\";\n//#region src/components/link/link.tsx\nfunction TRLink({ className, disabled = false, href, onClick, onKeyDown, ref, render, underline = \"hover\", variant = \"default\", ...props }) {\n\tconst resolvedRender = disabled && isValidElement(render) ? cloneElement(render, { href: void 0 }) : render;\n\treturn useRender({\n\t\tdefaultTagName: \"a\",\n\t\tprops: {\n\t\t\t...props,\n\t\t\t\"aria-disabled\": disabled || void 0,\n\t\t\tclassName: mergeClassNames(\"tr-link\", className),\n\t\t\t\"data-disabled\": disabled ? \"\" : void 0,\n\t\t\t\"data-underline\": underline,\n\t\t\t\"data-variant\": variant,\n\t\t\thref: disabled ? void 0 : href,\n\t\t\tonClick(event) {\n\t\t\t\tif (disabled) {\n\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\tevent.stopPropagation();\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tonClick?.(event);\n\t\t\t},\n\t\t\tonKeyDown(event) {\n\t\t\t\tif (disabled && (event.key === \"Enter\" || event.key === \" \")) {\n\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\tevent.stopPropagation();\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tonKeyDown?.(event);\n\t\t\t},\n\t\t\ttabIndex: disabled ? -1 : props.tabIndex\n\t\t},\n\t\tref,\n\t\trender: resolvedRender\n\t});\n}\n//#endregion\nexport { TRLink };\n\n//# sourceMappingURL=link.js.map"],"x_google_ignoreList":[0],"mappings":"uFAKA,SAAS,EAAO,CAAE,YAAW,WAAW,GAAO,OAAM,UAAS,YAAW,MAAK,SAAQ,YAAY,QAAS,UAAU,UAAW,GAAG,GAAS,CAC3I,IAAM,EAAiB,IAAA,EAAA,EAAA,eAAA,CAA2B,CAAM,GAAA,EAAA,EAAA,aAAA,CAAiB,EAAQ,CAAE,KAAM,IAAK,EAAE,CAAC,EAAI,EACrG,OAAO,EAAU,CAChB,eAAgB,IAChB,MAAO,CACN,GAAG,EACH,gBAAiB,GAAY,IAAK,GAClC,UAAW,EAAgB,UAAW,CAAS,EAC/C,gBAAiB,EAAW,GAAK,IAAK,GACtC,iBAAkB,EAClB,eAAgB,EAChB,KAAM,EAAW,IAAK,GAAI,EAC1B,QAAQ,EAAO,CACd,GAAI,EAAU,CACb,EAAM,eAAe,EACrB,EAAM,gBAAgB,EACtB,MACD,CACA,IAAU,CAAK,CAChB,EACA,UAAU,EAAO,CAChB,GAAI,IAAa,EAAM,MAAQ,SAAW,EAAM,MAAQ,KAAM,CAC7D,EAAM,eAAe,EACrB,EAAM,gBAAgB,EACtB,MACD,CACA,IAAY,CAAK,CAClB,EACA,SAAU,EAAW,GAAK,EAAM,QACjC,EACA,MACA,OAAQ,CACT,CAAC,CACF"}
@@ -0,0 +1,2 @@
1
+ import{t as e}from"./createLucideIcon-BPpAIXR_.js";var t=e(`lock`,[[`rect`,{width:`18`,height:`11`,x:`3`,y:`11`,rx:`2`,ry:`2`,key:`1w4ew1`}],[`path`,{d:`M7 11V7a5 5 0 0 1 10 0v4`,key:`fwvmzm`}]]);export{t};
2
+ //# sourceMappingURL=lock-7NRyvXBS.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"lock-7NRyvXBS.js","names":[],"sources":["../../../../node_modules/.pnpm/lucide-react@1.25.0_react@19.2.7/node_modules/lucide-react/dist/esm/icons/lock.mjs"],"sourcesContent":["/**\n * @license lucide-react v1.25.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.mjs';\n\nconst __iconNode = [\n [\"rect\", { width: \"18\", height: \"11\", x: \"3\", y: \"11\", rx: \"2\", ry: \"2\", key: \"1w4ew1\" }],\n [\"path\", { d: \"M7 11V7a5 5 0 0 1 10 0v4\", key: \"fwvmzm\" }]\n];\nconst Lock = createLucideIcon(\"lock\", __iconNode);\n\nexport { __iconNode, Lock as default };\n//# sourceMappingURL=lock.mjs.map\n"],"x_google_ignoreList":[0],"mappings":"mDAaA,IAAM,EAAO,EAAiB,OAAQ,CAHpC,CAAC,OAAQ,CAAE,MAAO,KAAM,OAAQ,KAAM,EAAG,IAAK,EAAG,KAAM,GAAI,IAAK,GAAI,IAAK,IAAK,QAAS,CAAC,EACxF,CAAC,OAAQ,CAAE,EAAG,2BAA4B,IAAK,QAAS,CAAC,CAErB,CAAU"}
@@ -0,0 +1,2 @@
1
+ import{I as e}from"./index-CS23Ozt6.js";var t=e;export{t as errorComponent};
2
+ //# sourceMappingURL=login-C5vUVgr_.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"login-C5vUVgr_.js","names":["RouteErrorFallback","SplitErrorComponent","errorComponent"],"sources":["../../../frontend/src/routes/login/index.tsx?tsr-split=errorComponent"],"sourcesContent":["import {\n useMutation,\n useQueryClient,\n useSuspenseQuery,\n} from '@tanstack/react-query';\nimport { createFileRoute, redirect, useRouter } from '@tanstack/react-router';\nimport { CircleAlertIcon, FingerprintIcon, MailIcon } from 'lucide-react';\nimport { useState } from 'react';\nimport { useTranslation } from 'react-i18next';\nimport { z } from 'zod';\nimport { AuthMethodTile } from '#frontend/components/auth/auth-method-tile.tsx';\nimport { AuthPageHeader } from '#frontend/components/auth/auth-page-header.tsx';\nimport { AuthorizationContextBanner } from '#frontend/components/auth/authorization-context-banner.tsx';\nimport { Alert } from '#frontend/components/ui/alert.tsx';\nimport { RouteErrorFallback } from '#frontend/components/ui/route-error-fallback.tsx';\nimport { AuthLayout } from '#frontend/features/layout/auth-layout.tsx';\nimport {\n buildAuthenticatedAuthorizeUrl,\n extractOAuthParams,\n hasAuthorizationContext,\n isOAuthFlow,\n OAuthSearchSchema,\n} from '#frontend/libs/oauth-search.ts';\nimport { classifyPasskeyError } from '#frontend/libs/passkey-error.ts';\nimport { tick } from '#frontend/libs/promise.ts';\nimport { getAuthorizationContextQueryOptions } from '#frontend/queries/authorization-context.ts';\nimport {\n type AppConfigs,\n appConfigQueryOptions,\n} from '#frontend/queries/config.ts';\nimport { authenticateWithPasskeyMutationOptions } from '#frontend/queries/passkey.ts';\nimport {\n type AuthResponse,\n getSessionQueryOptions,\n} from '#frontend/queries/session.ts';\n\nconst SearchSchema = OAuthSearchSchema.extend({\n oauth_error: z.string().optional(),\n oauth_error_description: z.string().optional(),\n});\n\nconst OAUTH_ERROR_I18N_MAP: Record<string, string> = {\n access_denied: 'oauth.error.accessDenied',\n temporarily_unavailable: 'oauth.error.temporarilyUnavailable',\n server_error: 'oauth.error.serverError',\n registration_email_not_allowed: 'oauth.error.registrationEmailNotAllowed',\n};\n\nexport const Route = createFileRoute('/login/')({\n component: Login,\n errorComponent: RouteErrorFallback,\n validateSearch: SearchSchema,\n loaderDeps: ({ search }) => ({\n search,\n }),\n loader: async ({ context, deps }) => {\n const config = await context.queryClient.ensureQueryData(\n appConfigQueryOptions,\n );\n\n if (shouldRedirectToPassword(config, deps.search)) {\n throw redirect({\n to: '/login/password',\n search: extractOAuthParams(deps.search),\n replace: true,\n });\n }\n\n if (hasAuthorizationContext(deps.search)) {\n await context.queryClient.ensureQueryData(\n getAuthorizationContextQueryOptions(deps.search),\n );\n }\n },\n});\n\nfunction shouldRedirectToPassword(\n config: AppConfigs,\n search: z.infer<typeof SearchSchema>,\n): boolean {\n if (search.oauth_error) {\n return false;\n }\n\n return (\n config.auth.password.enabled &&\n !config.auth.passkey.enabled &&\n config.identity_providers.length === 0\n );\n}\n\nfunction Login() {\n const { t, i18n } = useTranslation();\n const router = useRouter();\n const queryClient = useQueryClient();\n const search = Route.useSearch();\n\n const lang = search.lang ?? i18n.language;\n const { data: configData } = useSuspenseQuery(appConfigQueryOptions);\n\n // Get implicit notice from config for OAuth signup\n const implicitNotice =\n configData.registration.signup_notice?.[lang] ??\n configData.registration.signup_notice?.[configData.i18n.fallback_language];\n const oauthProviders = configData.identity_providers;\n\n const oauthError = search.oauth_error;\n const oauthErrorMessage = oauthError\n ? t(OAUTH_ERROR_I18N_MAP[oauthError] ?? 'oauth.error.failed')\n : undefined;\n\n const isPasswordAuthEnabled = configData.auth.password.enabled;\n const isPasskeyEnabled = configData.auth.passkey.enabled;\n const [passkeyError, setPasskeyError] = useState<string | null>(null);\n\n const handlePasskeySuccess = async (data: AuthResponse) => {\n if (data.user) {\n queryClient.setQueryData(getSessionQueryOptions.queryKey, data);\n await tick();\n\n if (isOAuthFlow(search)) {\n window.location.href = buildAuthenticatedAuthorizeUrl(search);\n } else {\n router.navigate({ to: '/profile' });\n }\n }\n queryClient.invalidateQueries({\n queryKey: getSessionQueryOptions.queryKey,\n });\n };\n\n const passkeyLoginMutation = useMutation({\n ...authenticateWithPasskeyMutationOptions,\n onSuccess: (data) => {\n setPasskeyError(null);\n handlePasskeySuccess(data);\n },\n onError: (error) => {\n const reason = classifyPasskeyError(error);\n if (reason === 'unsupported') {\n setPasskeyError(t('login.passkey.error.unsupported'));\n return;\n }\n\n setPasskeyError(t('login.passkey.error.failed'));\n },\n onSettled: () => {\n queryClient.invalidateQueries({\n queryKey: getSessionQueryOptions.queryKey,\n });\n },\n });\n\n const buildOAuthUrl = (providerId: string) => {\n let oauthUrl = `/api/oauth/${providerId}/authorize?mode=login`;\n\n if (isOAuthFlow(search)) {\n const authUrl = new URL(buildAuthenticatedAuthorizeUrl(search));\n const returnUrl = `${authUrl.pathname}${authUrl.search}${authUrl.hash}`;\n oauthUrl += `&return_url=${encodeURIComponent(returnUrl)}`;\n }\n\n return oauthUrl;\n };\n\n const buildPasswordLoginHref = () => {\n const params = new URLSearchParams();\n for (const [key, value] of Object.entries(extractOAuthParams(search))) {\n if (value !== undefined) {\n const stringValue = String(value);\n params.set(\n key,\n key === 'account_selected'\n ? decodeURIComponent(stringValue).replaceAll('\"', '')\n : stringValue,\n );\n }\n }\n const query = params.toString();\n return query ? `/login/password?${query}` : '/login/password';\n };\n\n return (\n <AuthLayout>\n {/*\n Branding title and subtitle are rendered once, by the brand panel in\n the layout. Repeating them here would give the page two copies of the\n product name and two heading nodes with the same text.\n */}\n <AuthPageHeader\n subtitle={t('login.selectMethod.subtitle') || undefined}\n title={t('login.title')}\n />\n\n <AuthorizationContextBanner search={search} />\n\n {oauthErrorMessage && (\n <Alert icon={CircleAlertIcon} type=\"error\">\n {oauthErrorMessage}\n </Alert>\n )}\n\n {passkeyError && (\n <Alert icon={CircleAlertIcon} type=\"error\">\n {passkeyError}\n </Alert>\n )}\n\n <div className=\"flex flex-col gap-tinyrack-sm\">\n {oauthProviders.map((provider) => (\n <AuthMethodTile\n icon={provider.icon_url}\n key={provider.id}\n label={provider.display_name}\n providerType={provider.type}\n // Leaves the SPA for the provider, so a plain anchor rather than a\n // router link. No children here — the tile supplies them, and an\n // element passed to `render` would override them.\n render={<a href={buildOAuthUrl(provider.id)} />}\n />\n ))}\n\n {isPasswordAuthEnabled && (\n <AuthMethodTile\n icon={<MailIcon aria-hidden className=\"size-tinyrack-xl\" />}\n label={t('login.method.password')}\n render={<a href={buildPasswordLoginHref()} />}\n />\n )}\n\n {isPasskeyEnabled && (\n <AuthMethodTile\n disabled={passkeyLoginMutation.isPending}\n icon={<FingerprintIcon aria-hidden className=\"size-tinyrack-xl\" />}\n isLoading={passkeyLoginMutation.isPending}\n label={t('login.method.passkey')}\n onClick={() => {\n setPasskeyError(null);\n passkeyLoginMutation.mutate();\n }}\n />\n )}\n </div>\n\n {implicitNotice && (\n <div\n className=\"prose prose-sm text-center text-tinyrack-text-muted text-tinyrack-xs! **:text-tinyrack-xs!\"\n dangerouslySetInnerHTML={{ __html: implicitNotice }}\n />\n )}\n </AuthLayout>\n );\n}\n"],"mappings":"wCAcsF,IAAAC,EAA7ED"}
@@ -0,0 +1,2 @@
1
+ import{J as e,Z as t,i as n,n as r,q as i,s as a}from"./createLucideIcon-BPpAIXR_.js";import{On as o,Sr as s,t as c}from"./config-DTQCUlfZ.js";import{t as l}from"./useMutation-BWZ0G4Td.js";import{tt as u}from"./shell-header-bar-CjG5qvPg.js";import{t as d}from"./fingerprint-pattern-DP62Vk8x.js";import{t as f}from"./authorization-context-banner-SOuBHWIb.js";import{a as p,n as m,r as h,t as g}from"./provider-logos-u1YURWQr.js";import{t as _}from"./mail-D0B_1Dzd.js";import{F as v,N as y,R as b,S as x,b as S,j as C,z as w}from"./index-CS23Ozt6.js";import{t as T}from"./auth-page-header-CIn2E4zI.js";import{t as E}from"./alert-leqyvHOp.js";import{t as D}from"./auth-layout-VtpryDof.js";import{t as O}from"./promise-OpBtq8tG.js";import{t as k}from"./passkey-error-ZqqPQUta.js";import{t as A}from"./passkey-J1qnYp9A.js";var j=t(e()),M=i(),N={google:(0,M.jsx)(h,{className:`size-tinyrack-xl`}),github:(0,M.jsx)(m,{className:`size-tinyrack-xl`}),apple:(0,M.jsx)(g,{className:`size-tinyrack-xl`})};function P({icon:e,label:t,providerType:n,render:i,onClick:o,isLoading:s,disabled:c}){let l;l=n&&n!==`generic_oauth`?N[n]:typeof e==`string`?(0,M.jsx)(`img`,{alt:``,className:`size-tinyrack-xl`,src:e}):e||(0,M.jsx)(p,{"aria-hidden":!0,className:`size-tinyrack-xl`});let u=(0,M.jsxs)(M.Fragment,{children:[(0,M.jsx)(`span`,{className:`flex size-tinyrack-xl shrink-0 items-center justify-center`,children:l}),(0,M.jsx)(r,{truncate:!0,variant:`body`,children:t})]}),d=`w-full justify-start gap-tinyrack-md transition-colors duration-tinyrack-fast ease-tinyrack-standard`;return i?(0,M.jsx)(w,{appearance:`outline`,className:`cursor-pointer ${d}`,intent:`neutral`,render:i,uiSize:`lg`,children:u}):(0,M.jsx)(a,{appearance:`outline`,className:d,disabled:c,intent:`neutral`,loading:s,onClick:o,type:`button`,uiSize:`lg`,children:u})}var F={access_denied:`oauth.error.accessDenied`,temporarily_unavailable:`oauth.error.temporarilyUnavailable`,server_error:`oauth.error.serverError`,registration_email_not_allowed:`oauth.error.registrationEmailNotAllowed`};function I(){let{t:e,i18n:t}=n(),r=o(),i=s(),a=S.useSearch(),p=a.lang??t.language,{data:m}=u(c),h=m.registration.signup_notice?.[p]??m.registration.signup_notice?.[m.i18n.fallback_language],g=m.identity_providers,w=a.oauth_error,N=w?e(F[w]??`oauth.error.failed`):void 0,I=m.auth.password.enabled,L=m.auth.passkey.enabled,[R,z]=(0,j.useState)(null),B=async e=>{e.user&&(i.setQueryData(x.queryKey,e),await O(),v(a)?window.location.href=C(a):r.navigate({to:`/profile`})),i.invalidateQueries({queryKey:x.queryKey})},V=l({...A,onSuccess:e=>{z(null),B(e)},onError:t=>{if(k(t)===`unsupported`){z(e(`login.passkey.error.unsupported`));return}z(e(`login.passkey.error.failed`))},onSettled:()=>{i.invalidateQueries({queryKey:x.queryKey})}}),H=e=>{let t=`/api/oauth/${e}/authorize?mode=login`;if(v(a)){let e=new URL(C(a)),n=`${e.pathname}${e.search}${e.hash}`;t+=`&return_url=${encodeURIComponent(n)}`}return t};return(0,M.jsxs)(D,{children:[(0,M.jsx)(T,{subtitle:e(`login.selectMethod.subtitle`)||void 0,title:e(`login.title`)}),(0,M.jsx)(f,{search:a}),N&&(0,M.jsx)(E,{icon:b,type:`error`,children:N}),R&&(0,M.jsx)(E,{icon:b,type:`error`,children:R}),(0,M.jsxs)(`div`,{className:`flex flex-col gap-tinyrack-sm`,children:[g.map(e=>(0,M.jsx)(P,{icon:e.icon_url,label:e.display_name,providerType:e.type,render:(0,M.jsx)(`a`,{href:H(e.id)})},e.id)),I&&(0,M.jsx)(P,{icon:(0,M.jsx)(_,{"aria-hidden":!0,className:`size-tinyrack-xl`}),label:e(`login.method.password`),render:(0,M.jsx)(`a`,{href:(()=>{let e=new URLSearchParams;for(let[t,n]of Object.entries(y(a)))if(n!==void 0){let r=String(n);e.set(t,t===`account_selected`?decodeURIComponent(r).replaceAll(`"`,``):r)}let t=e.toString();return t?`/login/password?${t}`:`/login/password`})()})}),L&&(0,M.jsx)(P,{disabled:V.isPending,icon:(0,M.jsx)(d,{"aria-hidden":!0,className:`size-tinyrack-xl`}),isLoading:V.isPending,label:e(`login.method.passkey`),onClick:()=>{z(null),V.mutate()}})]}),h&&(0,M.jsx)(`div`,{className:`prose prose-sm text-center text-tinyrack-text-muted text-tinyrack-xs! **:text-tinyrack-xs!`,dangerouslySetInnerHTML:{__html:h}})]})}export{I as component};
2
+ //# sourceMappingURL=login-nukebli4.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"login-nukebli4.js","names":["useMutation","useQueryClient","useSuspenseQuery","useRouter","CircleAlertIcon","FingerprintIcon","MailIcon","useState","useTranslation","AuthMethodTile","AuthPageHeader","AuthorizationContextBanner","Alert","AuthLayout","buildAuthenticatedAuthorizeUrl","extractOAuthParams","isOAuthFlow","classifyPasskeyError","tick","appConfigQueryOptions","authenticateWithPasskeyMutationOptions","getSessionQueryOptions","OAUTH_ERROR_I18N_MAP","Record","access_denied","temporarily_unavailable","server_error","registration_email_not_allowed","Route","Login","t","i18n","router","queryClient","search","useSearch","lang","language","data","configData","implicitNotice","registration","signup_notice","fallback_language","oauthProviders","identity_providers","oauthError","oauth_error","oauthErrorMessage","undefined","isPasswordAuthEnabled","auth","password","enabled","isPasskeyEnabled","passkey","passkeyError","setPasskeyError","handlePasskeySuccess","AuthResponse","user","setQueryData","queryKey","window","location","href","navigate","to","invalidateQueries","passkeyLoginMutation","onSuccess","onError","error","reason","onSettled","buildOAuthUrl","providerId","oauthUrl","authUrl","URL","returnUrl","pathname","hash","encodeURIComponent","buildPasswordLoginHref","params","URLSearchParams","key","value","Object","entries","stringValue","String","set","decodeURIComponent","replaceAll","query","toString","map","provider","icon_url","id","display_name","type","isPending","mutate","__html","component"],"sources":["../../../frontend/src/components/auth/auth-method-tile.tsx","../../../frontend/src/routes/login/index.tsx?tsr-split=component"],"sourcesContent":["import { TRButton } from '@tinyrack/ui/components/button';\nimport { TRLinkButton } from '@tinyrack/ui/components/link-button';\nimport { TRText } from '@tinyrack/ui/components/text';\nimport { LinkIcon } from 'lucide-react';\nimport type { ReactElement, ReactNode } from 'react';\nimport {\n AppleLogo,\n GithubLogo,\n GoogleLogo,\n} from '#frontend/components/auth/provider-logos.tsx';\nimport type { OAuthProviderType } from '#frontend/queries/config.ts';\n\ntype AuthMethodTileBaseProps = {\n /** A provider icon URL, or a ready-made element. */\n icon?: string | ReactNode;\n label: string;\n providerType?: OAuthProviderType;\n};\n\ntype AuthMethodTileProps = AuthMethodTileBaseProps &\n (\n | {\n /** Navigating method (OAuth, or the email form). Must be a real anchor. */\n render: ReactElement;\n onClick?: never;\n isLoading?: never;\n disabled?: never;\n }\n | {\n render?: never;\n /** In-page method (passkey), which runs a ceremony instead of navigating. */\n onClick: () => void;\n isLoading?: boolean;\n disabled?: boolean;\n }\n );\n\nconst PROVIDER_LOGOS: Record<\n Exclude<OAuthProviderType, 'generic_oauth'>,\n ReactNode\n> = {\n google: <GoogleLogo className=\"size-tinyrack-xl\" />,\n github: <GithubLogo className=\"size-tinyrack-xl\" />,\n apple: <AppleLogo className=\"size-tinyrack-xl\" />,\n};\n\n/**\n * One sign-in method on the method chooser.\n *\n * Full-width rows at every breakpoint. The previous three-across grid gave\n * each tile a third of the card, so provider names wrapped onto two lines and\n * the icons and labels never lined up between tiles.\n */\nexport function AuthMethodTile({\n icon,\n label,\n providerType,\n render,\n onClick,\n isLoading,\n disabled,\n}: AuthMethodTileProps) {\n let leading: ReactNode;\n if (providerType && providerType !== 'generic_oauth') {\n leading = PROVIDER_LOGOS[providerType];\n } else if (typeof icon === 'string') {\n leading = <img alt=\"\" className=\"size-tinyrack-xl\" src={icon} />;\n } else if (icon) {\n leading = icon;\n } else {\n leading = <LinkIcon aria-hidden className=\"size-tinyrack-xl\" />;\n }\n\n const content = (\n <>\n <span className=\"flex size-tinyrack-xl shrink-0 items-center justify-center\">\n {leading}\n </span>\n <TRText truncate variant=\"body\">\n {label}\n </TRText>\n </>\n );\n\n const className =\n 'w-full justify-start gap-tinyrack-md transition-colors duration-tinyrack-fast ease-tinyrack-standard';\n\n if (render) {\n return (\n <TRLinkButton\n appearance=\"outline\"\n className={`cursor-pointer ${className}`}\n intent=\"neutral\"\n render={render}\n uiSize=\"lg\"\n >\n {content}\n </TRLinkButton>\n );\n }\n\n return (\n <TRButton\n appearance=\"outline\"\n className={className}\n disabled={disabled}\n intent=\"neutral\"\n loading={isLoading}\n onClick={onClick}\n type=\"button\"\n uiSize=\"lg\"\n >\n {content}\n </TRButton>\n );\n}\n","import {\n useMutation,\n useQueryClient,\n useSuspenseQuery,\n} from '@tanstack/react-query';\nimport { createFileRoute, redirect, useRouter } from '@tanstack/react-router';\nimport { CircleAlertIcon, FingerprintIcon, MailIcon } from 'lucide-react';\nimport { useState } from 'react';\nimport { useTranslation } from 'react-i18next';\nimport { z } from 'zod';\nimport { AuthMethodTile } from '#frontend/components/auth/auth-method-tile.tsx';\nimport { AuthPageHeader } from '#frontend/components/auth/auth-page-header.tsx';\nimport { AuthorizationContextBanner } from '#frontend/components/auth/authorization-context-banner.tsx';\nimport { Alert } from '#frontend/components/ui/alert.tsx';\nimport { RouteErrorFallback } from '#frontend/components/ui/route-error-fallback.tsx';\nimport { AuthLayout } from '#frontend/features/layout/auth-layout.tsx';\nimport {\n buildAuthenticatedAuthorizeUrl,\n extractOAuthParams,\n hasAuthorizationContext,\n isOAuthFlow,\n OAuthSearchSchema,\n} from '#frontend/libs/oauth-search.ts';\nimport { classifyPasskeyError } from '#frontend/libs/passkey-error.ts';\nimport { tick } from '#frontend/libs/promise.ts';\nimport { getAuthorizationContextQueryOptions } from '#frontend/queries/authorization-context.ts';\nimport {\n type AppConfigs,\n appConfigQueryOptions,\n} from '#frontend/queries/config.ts';\nimport { authenticateWithPasskeyMutationOptions } from '#frontend/queries/passkey.ts';\nimport {\n type AuthResponse,\n getSessionQueryOptions,\n} from '#frontend/queries/session.ts';\n\nconst SearchSchema = OAuthSearchSchema.extend({\n oauth_error: z.string().optional(),\n oauth_error_description: z.string().optional(),\n});\n\nconst OAUTH_ERROR_I18N_MAP: Record<string, string> = {\n access_denied: 'oauth.error.accessDenied',\n temporarily_unavailable: 'oauth.error.temporarilyUnavailable',\n server_error: 'oauth.error.serverError',\n registration_email_not_allowed: 'oauth.error.registrationEmailNotAllowed',\n};\n\nexport const Route = createFileRoute('/login/')({\n component: Login,\n errorComponent: RouteErrorFallback,\n validateSearch: SearchSchema,\n loaderDeps: ({ search }) => ({\n search,\n }),\n loader: async ({ context, deps }) => {\n const config = await context.queryClient.ensureQueryData(\n appConfigQueryOptions,\n );\n\n if (shouldRedirectToPassword(config, deps.search)) {\n throw redirect({\n to: '/login/password',\n search: extractOAuthParams(deps.search),\n replace: true,\n });\n }\n\n if (hasAuthorizationContext(deps.search)) {\n await context.queryClient.ensureQueryData(\n getAuthorizationContextQueryOptions(deps.search),\n );\n }\n },\n});\n\nfunction shouldRedirectToPassword(\n config: AppConfigs,\n search: z.infer<typeof SearchSchema>,\n): boolean {\n if (search.oauth_error) {\n return false;\n }\n\n return (\n config.auth.password.enabled &&\n !config.auth.passkey.enabled &&\n config.identity_providers.length === 0\n );\n}\n\nfunction Login() {\n const { t, i18n } = useTranslation();\n const router = useRouter();\n const queryClient = useQueryClient();\n const search = Route.useSearch();\n\n const lang = search.lang ?? i18n.language;\n const { data: configData } = useSuspenseQuery(appConfigQueryOptions);\n\n // Get implicit notice from config for OAuth signup\n const implicitNotice =\n configData.registration.signup_notice?.[lang] ??\n configData.registration.signup_notice?.[configData.i18n.fallback_language];\n const oauthProviders = configData.identity_providers;\n\n const oauthError = search.oauth_error;\n const oauthErrorMessage = oauthError\n ? t(OAUTH_ERROR_I18N_MAP[oauthError] ?? 'oauth.error.failed')\n : undefined;\n\n const isPasswordAuthEnabled = configData.auth.password.enabled;\n const isPasskeyEnabled = configData.auth.passkey.enabled;\n const [passkeyError, setPasskeyError] = useState<string | null>(null);\n\n const handlePasskeySuccess = async (data: AuthResponse) => {\n if (data.user) {\n queryClient.setQueryData(getSessionQueryOptions.queryKey, data);\n await tick();\n\n if (isOAuthFlow(search)) {\n window.location.href = buildAuthenticatedAuthorizeUrl(search);\n } else {\n router.navigate({ to: '/profile' });\n }\n }\n queryClient.invalidateQueries({\n queryKey: getSessionQueryOptions.queryKey,\n });\n };\n\n const passkeyLoginMutation = useMutation({\n ...authenticateWithPasskeyMutationOptions,\n onSuccess: (data) => {\n setPasskeyError(null);\n handlePasskeySuccess(data);\n },\n onError: (error) => {\n const reason = classifyPasskeyError(error);\n if (reason === 'unsupported') {\n setPasskeyError(t('login.passkey.error.unsupported'));\n return;\n }\n\n setPasskeyError(t('login.passkey.error.failed'));\n },\n onSettled: () => {\n queryClient.invalidateQueries({\n queryKey: getSessionQueryOptions.queryKey,\n });\n },\n });\n\n const buildOAuthUrl = (providerId: string) => {\n let oauthUrl = `/api/oauth/${providerId}/authorize?mode=login`;\n\n if (isOAuthFlow(search)) {\n const authUrl = new URL(buildAuthenticatedAuthorizeUrl(search));\n const returnUrl = `${authUrl.pathname}${authUrl.search}${authUrl.hash}`;\n oauthUrl += `&return_url=${encodeURIComponent(returnUrl)}`;\n }\n\n return oauthUrl;\n };\n\n const buildPasswordLoginHref = () => {\n const params = new URLSearchParams();\n for (const [key, value] of Object.entries(extractOAuthParams(search))) {\n if (value !== undefined) {\n const stringValue = String(value);\n params.set(\n key,\n key === 'account_selected'\n ? decodeURIComponent(stringValue).replaceAll('\"', '')\n : stringValue,\n );\n }\n }\n const query = params.toString();\n return query ? `/login/password?${query}` : '/login/password';\n };\n\n return (\n <AuthLayout>\n {/*\n Branding title and subtitle are rendered once, by the brand panel in\n the layout. Repeating them here would give the page two copies of the\n product name and two heading nodes with the same text.\n */}\n <AuthPageHeader\n subtitle={t('login.selectMethod.subtitle') || undefined}\n title={t('login.title')}\n />\n\n <AuthorizationContextBanner search={search} />\n\n {oauthErrorMessage && (\n <Alert icon={CircleAlertIcon} type=\"error\">\n {oauthErrorMessage}\n </Alert>\n )}\n\n {passkeyError && (\n <Alert icon={CircleAlertIcon} type=\"error\">\n {passkeyError}\n </Alert>\n )}\n\n <div className=\"flex flex-col gap-tinyrack-sm\">\n {oauthProviders.map((provider) => (\n <AuthMethodTile\n icon={provider.icon_url}\n key={provider.id}\n label={provider.display_name}\n providerType={provider.type}\n // Leaves the SPA for the provider, so a plain anchor rather than a\n // router link. No children here — the tile supplies them, and an\n // element passed to `render` would override them.\n render={<a href={buildOAuthUrl(provider.id)} />}\n />\n ))}\n\n {isPasswordAuthEnabled && (\n <AuthMethodTile\n icon={<MailIcon aria-hidden className=\"size-tinyrack-xl\" />}\n label={t('login.method.password')}\n render={<a href={buildPasswordLoginHref()} />}\n />\n )}\n\n {isPasskeyEnabled && (\n <AuthMethodTile\n disabled={passkeyLoginMutation.isPending}\n icon={<FingerprintIcon aria-hidden className=\"size-tinyrack-xl\" />}\n isLoading={passkeyLoginMutation.isPending}\n label={t('login.method.passkey')}\n onClick={() => {\n setPasskeyError(null);\n passkeyLoginMutation.mutate();\n }}\n />\n )}\n </div>\n\n {implicitNotice && (\n <div\n className=\"prose prose-sm text-center text-tinyrack-text-muted text-tinyrack-xs! **:text-tinyrack-xs!\"\n dangerouslySetInnerHTML={{ __html: implicitNotice }}\n />\n )}\n </AuthLayout>\n );\n}\n"],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ import{t as e}from"./createLucideIcon-BPpAIXR_.js";import{i as t,r as n}from"./config-DTQCUlfZ.js";import{t as r}from"./mutationOptions-DyYFUbyn.js";var i=e(`log-out`,[[`path`,{d:`m16 17 5-5-5-5`,key:`1bji2h`}],[`path`,{d:`M21 12H9`,key:`dn1m92`}],[`path`,{d:`M9 21H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h4`,key:`1uf3rs`}]]),a=r({mutationFn:async()=>t(await n.api.auth.logout.$post())});export{i as n,a as t};
2
+ //# sourceMappingURL=logout-B5T52P8u.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"logout-B5T52P8u.js","names":[],"sources":["../../../../node_modules/.pnpm/lucide-react@1.25.0_react@19.2.7/node_modules/lucide-react/dist/esm/icons/log-out.mjs","../../../frontend/src/queries/logout.ts"],"sourcesContent":["/**\n * @license lucide-react v1.25.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.mjs';\n\nconst __iconNode = [\n [\"path\", { d: \"m16 17 5-5-5-5\", key: \"1bji2h\" }],\n [\"path\", { d: \"M21 12H9\", key: \"dn1m92\" }],\n [\"path\", { d: \"M9 21H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h4\", key: \"1uf3rs\" }]\n];\nconst LogOut = createLucideIcon(\"log-out\", __iconNode);\n\nexport { __iconNode, LogOut as default };\n//# sourceMappingURL=log-out.mjs.map\n","import { mutationOptions } from '@tanstack/react-query';\nimport { client, jsonOk } from '#frontend/libs/api.ts';\n\nexport const logoutMutationOptions = mutationOptions({\n mutationFn: async () => {\n const res = await client.api.auth.logout.$post();\n return jsonOk(res);\n },\n});\n"],"x_google_ignoreList":[0],"mappings":"qJAcA,IAAM,EAAS,EAAiB,UAAW,CAJzC,CAAC,OAAQ,CAAE,EAAG,iBAAkB,IAAK,QAAS,CAAC,EAC/C,CAAC,OAAQ,CAAE,EAAG,WAAY,IAAK,QAAS,CAAC,EACzC,CAAC,OAAQ,CAAE,EAAG,0CAA2C,IAAK,QAAS,CAAC,CAE/B,CAAU,ECXxC,EAAwB,EAAgB,CACnD,WAAY,SAEH,EAAO,MADI,EAAO,IAAI,KAAK,OAAO,MAAM,CAC9B,CAErB,CAAC"}
@@ -0,0 +1,2 @@
1
+ import{t as e}from"./createLucideIcon-BPpAIXR_.js";var t=e(`mail`,[[`path`,{d:`m22 7-8.991 5.727a2 2 0 0 1-2.009 0L2 7`,key:`132q7q`}],[`rect`,{x:`2`,y:`4`,width:`20`,height:`16`,rx:`2`,key:`izxlao`}]]);export{t};
2
+ //# sourceMappingURL=mail-D0B_1Dzd.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mail-D0B_1Dzd.js","names":[],"sources":["../../../../node_modules/.pnpm/lucide-react@1.25.0_react@19.2.7/node_modules/lucide-react/dist/esm/icons/mail.mjs"],"sourcesContent":["/**\n * @license lucide-react v1.25.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.mjs';\n\nconst __iconNode = [\n [\"path\", { d: \"m22 7-8.991 5.727a2 2 0 0 1-2.009 0L2 7\", key: \"132q7q\" }],\n [\"rect\", { x: \"2\", y: \"4\", width: \"20\", height: \"16\", rx: \"2\", key: \"izxlao\" }]\n];\nconst Mail = createLucideIcon(\"mail\", __iconNode);\n\nexport { __iconNode, Mail as default };\n//# sourceMappingURL=mail.mjs.map\n"],"x_google_ignoreList":[0],"mappings":"mDAaA,IAAM,EAAO,EAAiB,OAAQ,CAHpC,CAAC,OAAQ,CAAE,EAAG,0CAA2C,IAAK,QAAS,CAAC,EACxE,CAAC,OAAQ,CAAE,EAAG,IAAK,EAAG,IAAK,MAAO,KAAM,OAAQ,KAAM,GAAI,IAAK,IAAK,QAAS,CAAC,CAE1C,CAAU"}
@@ -0,0 +1,2 @@
1
+ import{G as e,J as t,Z as n,c as r,q as i}from"./createLucideIcon-BPpAIXR_.js";import{_ as a,bn as o,pt as s}from"./config-DTQCUlfZ.js";import{N as c,V as l,et as u,o as d,z as f}from"./shell-header-bar-CjG5qvPg.js";import{a as p,c as m,d as h,f as g,i as _,l as v,n as y,o as b,r as x,s as S,u as C}from"./DialogHandle-BmtK2pRn.js";var w=n(t(),1),T=w.forwardRef(function(e,t){let{render:n,className:i,style:o,forceRender:s=!1,...c}=e,l=g(),u=l.useState(`open`),d=l.useState(`nested`),f=l.useState(`mounted`);return r(`div`,e,{state:{open:u,transitionStatus:l.useState(`transitionStatus`)},ref:[l.context.backdropRef,t],stateAttributesMapping:a,props:[{role:`presentation`,hidden:!f,style:{userSelect:`none`,WebkitUserSelect:`none`}},c],enabled:s||!d})}),E=i(),D=w.forwardRef(function(e,t){let{render:n,className:i,style:a,finalFocus:o,initialFocus:c,...p}=e,m=g(),h=m.useState(`descriptionElementId`),y=m.useState(`disablePointerDismissal`),b=m.useState(`floatingRootContext`),x=m.useState(`popupProps`),S=m.useState(`modal`),C=m.useState(`mounted`),w=m.useState(`nested`),T=m.useState(`nestedOpenDialogCount`),D=m.useState(`open`),O=m.useState(`openMethod`),k=m.useState(`titleElementId`),A=m.useState(`transitionStatus`),j=m.useState(`role`),M=b.useState(`floatingId`);v(),s({open:D,ref:m.context.popupRef,onComplete(){D&&m.context.onOpenChangeComplete?.(!0)}});let N=c===void 0?l(m.context.popupRef):c,P=T>0,F=m.useStateSetter(`popupElement`),I=r(`div`,e,{state:{open:D,nested:w,transitionStatus:A,nestedDialogOpen:P},props:[x,{id:M,"aria-labelledby":k,"aria-describedby":h,role:j,...f,hidden:!C,onKeyDown(e){d.has(e.key)&&e.stopPropagation()},style:{"--nested-dialogs":T}},p],ref:[t,m.context.popupRef,F],stateAttributesMapping:_});return(0,E.jsx)(u,{context:b,openInteractionType:O,disabled:!C,closeOnFocusOut:!y,initialFocus:N,returnFocus:o,modal:S!==!1,restoreFocus:`popup`,children:I})});function O(e){return S(`dialog`,e)}var k=o(T,`tr-layer-backdrop tr-dialog-backdrop`),A=o(h,`tr-dialog-close`),j=o(C,`tr-dialog-description`);function M(){return y()}function N({className:t,placement:n=`middle`,...r}){return(0,E.jsx)(D,{...r,className:e(`tr-dialog tr-dialog-box`,t),"data-placement":n})}var P=o(m);function F(e){return(0,E.jsx)(O,{...e})}var I=o(b,`tr-dialog-title`),L=o(p,`tr-dialog-trigger`),R={Backdrop:k,Close:A,Description:j,Popup:N,Portal:P,Root:F,Viewport:o(x,`tr-layer-viewport tr-dialog-viewport`),Title:I,Trigger:L,createHandle:M},z={sm:`[--tr-dialog-box-max-width:var(--tinyrack-overlay-width-sm)]`,md:`[--tr-dialog-box-max-width:var(--tinyrack-overlay-width-md)]`,lg:`[--tr-dialog-box-max-width:var(--tinyrack-overlay-width-md)]`},B={default:`bg-tinyrack-surface-muted text-tinyrack-text`,destructive:`bg-tinyrack-danger-surface text-tinyrack-danger`};function V({isOpen:e,onClose:t,title:n,description:r,children:i,size:a=`md`,preventClose:o=!1,icon:s,variant:l=`default`}){return(0,w.useEffect)(()=>{if(!e||o)return;let n=e=>{e.key===`Escape`&&t()};return document.addEventListener(`keydown`,n),()=>document.removeEventListener(`keydown`,n)},[e,o,t]),e?(0,E.jsx)(R.Root,{defaultOpen:!0,disablePointerDismissal:o,onOpenChange:e=>{!e&&!o&&t()},children:(0,E.jsx)(R.Portal,{children:(0,E.jsxs)(R.Viewport,{children:[(0,E.jsx)(R.Backdrop,{}),(0,E.jsxs)(R.Popup,{className:z[a],children:[(0,E.jsxs)(`div`,{className:`flex items-start gap-tinyrack-md`,children:[s&&(0,E.jsx)(`div`,{className:`flex size-tinyrack-2xl shrink-0 items-center justify-center rounded-tinyrack-full ${B[l]}`,children:(0,E.jsx)(s,{"aria-hidden":!0,className:`size-tinyrack-lg`})}),(0,E.jsxs)(`div`,{className:`flex min-w-0 flex-1 flex-col gap-tinyrack-3xs`,children:[(0,E.jsx)(R.Title,{children:n}),r&&(0,E.jsx)(R.Description,{className:`text-tinyrack-text-muted text-tinyrack-xs`,children:r})]}),!o&&(0,E.jsx)(R.Close,{"aria-label":`Close`,className:`shrink-0`,"data-testid":`modal-close`,children:(0,E.jsx)(c,{"aria-hidden":!0,className:`size-tinyrack-lg`})})]}),i]})]})})}):null}function H({children:e}){return(0,E.jsx)(`div`,{className:`flex justify-end gap-tinyrack-sm pt-tinyrack-lg`,children:e})}export{H as n,V as t};
2
+ //# sourceMappingURL=modal-BDQFucjz.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"modal-BDQFucjz.js","names":["Dialog.Backdrop","Dialog.Close","Dialog.Description","Dialog.createHandle","Dialog.Popup","Dialog.Portal","Dialog.Root","Dialog.Title","Dialog.Trigger","Dialog.Viewport"],"sources":["../../../../node_modules/.pnpm/@base-ui+react@1.7.0_@types+react@19.2.17_react-dom@19.2.7_react@19.2.7__react@19.2.7/node_modules/@base-ui/react/dialog/backdrop/DialogBackdrop.mjs","../../../../node_modules/.pnpm/@base-ui+react@1.7.0_@types+react@19.2.17_react-dom@19.2.7_react@19.2.7__react@19.2.7/node_modules/@base-ui/react/dialog/popup/DialogPopup.mjs","../../../../node_modules/.pnpm/@base-ui+react@1.7.0_@types+react@19.2.17_react-dom@19.2.7_react@19.2.7__react@19.2.7/node_modules/@base-ui/react/dialog/root/DialogRoot.mjs","../../../../node_modules/.pnpm/@tinyrack+ui@0.25.0_@types+react@19.2.17_react-dom@19.2.7_react@19.2.7__react@19.2.7_shiki@4.3.1_tailwindcss@4.3.2/node_modules/@tinyrack/ui/dist/components/dialog/dialog-backdrop.js","../../../../node_modules/.pnpm/@tinyrack+ui@0.25.0_@types+react@19.2.17_react-dom@19.2.7_react@19.2.7__react@19.2.7_shiki@4.3.1_tailwindcss@4.3.2/node_modules/@tinyrack/ui/dist/components/dialog/dialog-close.js","../../../../node_modules/.pnpm/@tinyrack+ui@0.25.0_@types+react@19.2.17_react-dom@19.2.7_react@19.2.7__react@19.2.7_shiki@4.3.1_tailwindcss@4.3.2/node_modules/@tinyrack/ui/dist/components/dialog/dialog-description.js","../../../../node_modules/.pnpm/@tinyrack+ui@0.25.0_@types+react@19.2.17_react-dom@19.2.7_react@19.2.7__react@19.2.7_shiki@4.3.1_tailwindcss@4.3.2/node_modules/@tinyrack/ui/dist/components/dialog/dialog-handle.js","../../../../node_modules/.pnpm/@tinyrack+ui@0.25.0_@types+react@19.2.17_react-dom@19.2.7_react@19.2.7__react@19.2.7_shiki@4.3.1_tailwindcss@4.3.2/node_modules/@tinyrack/ui/dist/components/dialog/dialog-popup.js","../../../../node_modules/.pnpm/@tinyrack+ui@0.25.0_@types+react@19.2.17_react-dom@19.2.7_react@19.2.7__react@19.2.7_shiki@4.3.1_tailwindcss@4.3.2/node_modules/@tinyrack/ui/dist/components/dialog/dialog-portal.js","../../../../node_modules/.pnpm/@tinyrack+ui@0.25.0_@types+react@19.2.17_react-dom@19.2.7_react@19.2.7__react@19.2.7_shiki@4.3.1_tailwindcss@4.3.2/node_modules/@tinyrack/ui/dist/components/dialog/dialog-root.js","../../../../node_modules/.pnpm/@tinyrack+ui@0.25.0_@types+react@19.2.17_react-dom@19.2.7_react@19.2.7__react@19.2.7_shiki@4.3.1_tailwindcss@4.3.2/node_modules/@tinyrack/ui/dist/components/dialog/dialog-title.js","../../../../node_modules/.pnpm/@tinyrack+ui@0.25.0_@types+react@19.2.17_react-dom@19.2.7_react@19.2.7__react@19.2.7_shiki@4.3.1_tailwindcss@4.3.2/node_modules/@tinyrack/ui/dist/components/dialog/dialog-trigger.js","../../../../node_modules/.pnpm/@tinyrack+ui@0.25.0_@types+react@19.2.17_react-dom@19.2.7_react@19.2.7__react@19.2.7_shiki@4.3.1_tailwindcss@4.3.2/node_modules/@tinyrack/ui/dist/components/dialog/dialog-viewport.js","../../../../node_modules/.pnpm/@tinyrack+ui@0.25.0_@types+react@19.2.17_react-dom@19.2.7_react@19.2.7__react@19.2.7_shiki@4.3.1_tailwindcss@4.3.2/node_modules/@tinyrack/ui/dist/components/dialog/index.js","../../../frontend/src/components/ui/modal.tsx"],"sourcesContent":["'use client';\n\nimport * as React from 'react';\nimport { useDialogRootContext } from \"../root/DialogRootContext.mjs\";\nimport { useRenderElement } from \"../../internals/useRenderElement.mjs\";\nimport { popupTransitionStateMapping } from \"../../utils/popupStateMapping.mjs\";\n\n/**\n * An overlay displayed beneath the popup.\n * Renders a `<div>` element.\n *\n * Documentation: [Base UI Dialog](https://base-ui.com/react/components/dialog)\n */\nexport const DialogBackdrop = /*#__PURE__*/React.forwardRef(function DialogBackdrop(componentProps, forwardedRef) {\n const {\n render,\n className,\n style,\n forceRender = false,\n ...elementProps\n } = componentProps;\n const store = useDialogRootContext();\n const open = store.useState('open');\n const nested = store.useState('nested');\n const mounted = store.useState('mounted');\n const transitionStatus = store.useState('transitionStatus');\n const state = {\n open,\n transitionStatus\n };\n return useRenderElement('div', componentProps, {\n state,\n ref: [store.context.backdropRef, forwardedRef],\n stateAttributesMapping: popupTransitionStateMapping,\n props: [{\n role: 'presentation',\n hidden: !mounted,\n style: {\n userSelect: 'none',\n WebkitUserSelect: 'none'\n }\n }, elementProps],\n enabled: forceRender || !nested\n });\n});\nif (process.env.NODE_ENV !== \"production\") DialogBackdrop.displayName = \"DialogBackdrop\";","'use client';\n\nimport * as React from 'react';\nimport { FloatingFocusManager } from \"../../floating-ui-react/index.mjs\";\nimport { useDialogRootContext } from \"../root/DialogRootContext.mjs\";\nimport { useRenderElement } from \"../../internals/useRenderElement.mjs\";\nimport { useDialogPortalContext } from \"../portal/DialogPortalContext.mjs\";\nimport { useOpenChangeComplete } from \"../../internals/useOpenChangeComplete.mjs\";\nimport { COMPOSITE_KEYS } from \"../../internals/composite/composite.mjs\";\nimport { FOCUSABLE_POPUP_PROPS, createDefaultInitialFocus } from \"../../utils/popups/index.mjs\";\nimport { dialogStateAttributesMapping } from \"../utils/stateAttributesMapping.mjs\";\n\n/**\n * A container for the dialog contents.\n * Renders a `<div>` element.\n *\n * Documentation: [Base UI Dialog](https://base-ui.com/react/components/dialog)\n */\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport const DialogPopup = /*#__PURE__*/React.forwardRef(function DialogPopup(componentProps, forwardedRef) {\n const {\n render,\n className,\n style,\n finalFocus,\n initialFocus,\n ...elementProps\n } = componentProps;\n const store = useDialogRootContext();\n const descriptionElementId = store.useState('descriptionElementId');\n const disablePointerDismissal = store.useState('disablePointerDismissal');\n const floatingRootContext = store.useState('floatingRootContext');\n const rootPopupProps = store.useState('popupProps');\n const modal = store.useState('modal');\n const mounted = store.useState('mounted');\n const nested = store.useState('nested');\n const nestedOpenDialogCount = store.useState('nestedOpenDialogCount');\n const open = store.useState('open');\n const openMethod = store.useState('openMethod');\n const titleElementId = store.useState('titleElementId');\n const transitionStatus = store.useState('transitionStatus');\n const role = store.useState('role');\n const floatingId = floatingRootContext.useState('floatingId');\n useDialogPortalContext();\n useOpenChangeComplete({\n open,\n ref: store.context.popupRef,\n onComplete() {\n if (open) {\n store.context.onOpenChangeComplete?.(true);\n }\n }\n });\n const resolvedInitialFocus = initialFocus === undefined ? createDefaultInitialFocus(store.context.popupRef) : initialFocus;\n const nestedDialogOpen = nestedOpenDialogCount > 0;\n const setPopupElement = store.useStateSetter('popupElement');\n const state = {\n open,\n nested,\n transitionStatus,\n nestedDialogOpen\n };\n const element = useRenderElement('div', componentProps, {\n state,\n props: [rootPopupProps, {\n id: floatingId,\n 'aria-labelledby': titleElementId,\n 'aria-describedby': descriptionElementId,\n role,\n ...FOCUSABLE_POPUP_PROPS,\n hidden: !mounted,\n onKeyDown(event) {\n if (COMPOSITE_KEYS.has(event.key)) {\n event.stopPropagation();\n }\n },\n style: {\n '--nested-dialogs': nestedOpenDialogCount\n }\n }, elementProps],\n ref: [forwardedRef, store.context.popupRef, setPopupElement],\n stateAttributesMapping: dialogStateAttributesMapping\n });\n return /*#__PURE__*/_jsx(FloatingFocusManager, {\n context: floatingRootContext,\n openInteractionType: openMethod,\n disabled: !mounted,\n closeOnFocusOut: !disablePointerDismissal,\n initialFocus: resolvedInitialFocus,\n returnFocus: finalFocus,\n modal: modal !== false,\n restoreFocus: \"popup\",\n children: element\n });\n});\nif (process.env.NODE_ENV !== \"production\") DialogPopup.displayName = \"DialogPopup\";","'use client';\n\nimport { useRenderDialogRoot } from \"./useRenderDialogRoot.mjs\";\n\n/**\n * Groups all parts of the dialog.\n * Doesn't render its own HTML element.\n *\n * Documentation: [Base UI Dialog](https://base-ui.com/react/components/dialog)\n */\nexport function DialogRoot(props) {\n return useRenderDialogRoot('dialog', props);\n}","\"use client\";\nimport { createComponentPart } from \"../../internal/component-part.js\";\nimport { Dialog } from \"@base-ui/react/dialog\";\n//#region src/components/dialog/dialog-backdrop.tsx\nconst TRDialogBackdrop = createComponentPart(Dialog.Backdrop, \"tr-layer-backdrop tr-dialog-backdrop\");\n//#endregion\nexport { TRDialogBackdrop };\n\n//# sourceMappingURL=dialog-backdrop.js.map","\"use client\";\nimport { createComponentPart } from \"../../internal/component-part.js\";\nimport { Dialog } from \"@base-ui/react/dialog\";\n//#region src/components/dialog/dialog-close.tsx\nconst TRDialogClose = createComponentPart(Dialog.Close, \"tr-dialog-close\");\n//#endregion\nexport { TRDialogClose };\n\n//# sourceMappingURL=dialog-close.js.map","\"use client\";\nimport { createComponentPart } from \"../../internal/component-part.js\";\nimport { Dialog } from \"@base-ui/react/dialog\";\n//#region src/components/dialog/dialog-description.tsx\nconst TRDialogDescription = createComponentPart(Dialog.Description, \"tr-dialog-description\");\n//#endregion\nexport { TRDialogDescription };\n\n//# sourceMappingURL=dialog-description.js.map","\"use client\";\nimport { Dialog } from \"@base-ui/react/dialog\";\n//#region src/components/dialog/dialog-handle.ts\nfunction createDialogHandle() {\n\treturn Dialog.createHandle();\n}\n//#endregion\nexport { createDialogHandle };\n\n//# sourceMappingURL=dialog-handle.js.map","\"use client\";\nimport { mergeComponentClassName } from \"../../internal/component-class-name.js\";\nimport { jsx } from \"react/jsx-runtime\";\nimport { Dialog } from \"@base-ui/react/dialog\";\n//#region src/components/dialog/dialog-popup.tsx\nfunction TRDialogPopup({ className, placement = \"middle\", ...props }) {\n\treturn /* @__PURE__ */ jsx(Dialog.Popup, {\n\t\t...props,\n\t\tclassName: mergeComponentClassName(\"tr-dialog tr-dialog-box\", className),\n\t\t\"data-placement\": placement\n\t});\n}\n//#endregion\nexport { TRDialogPopup };\n\n//# sourceMappingURL=dialog-popup.js.map","\"use client\";\nimport { createComponentPart } from \"../../internal/component-part.js\";\nimport { Dialog } from \"@base-ui/react/dialog\";\n//#region src/components/dialog/dialog-portal.tsx\nconst TRDialogPortal = createComponentPart(Dialog.Portal);\n//#endregion\nexport { TRDialogPortal };\n\n//# sourceMappingURL=dialog-portal.js.map","\"use client\";\nimport { jsx } from \"react/jsx-runtime\";\nimport { Dialog } from \"@base-ui/react/dialog\";\n//#region src/components/dialog/dialog-root.tsx\nfunction TRDialogRoot(props) {\n\treturn /* @__PURE__ */ jsx(Dialog.Root, { ...props });\n}\n//#endregion\nexport { TRDialogRoot };\n\n//# sourceMappingURL=dialog-root.js.map","\"use client\";\nimport { createComponentPart } from \"../../internal/component-part.js\";\nimport { Dialog } from \"@base-ui/react/dialog\";\n//#region src/components/dialog/dialog-title.tsx\nconst TRDialogTitle = createComponentPart(Dialog.Title, \"tr-dialog-title\");\n//#endregion\nexport { TRDialogTitle };\n\n//# sourceMappingURL=dialog-title.js.map","\"use client\";\nimport { createComponentPart } from \"../../internal/component-part.js\";\nimport { Dialog } from \"@base-ui/react/dialog\";\n//#region src/components/dialog/dialog-trigger.tsx\nconst TRDialogTrigger = createComponentPart(Dialog.Trigger, \"tr-dialog-trigger\");\n//#endregion\nexport { TRDialogTrigger };\n\n//# sourceMappingURL=dialog-trigger.js.map","\"use client\";\nimport { createComponentPart } from \"../../internal/component-part.js\";\nimport { Dialog } from \"@base-ui/react/dialog\";\n//#region src/components/dialog/dialog-viewport.tsx\nconst TRDialogViewport = createComponentPart(Dialog.Viewport, \"tr-layer-viewport tr-dialog-viewport\");\n//#endregion\nexport { TRDialogViewport };\n\n//# sourceMappingURL=dialog-viewport.js.map","import { TRDialogBackdrop } from \"./dialog-backdrop.js\";\nimport { TRDialogClose } from \"./dialog-close.js\";\nimport { TRDialogDescription } from \"./dialog-description.js\";\nimport { createDialogHandle } from \"./dialog-handle.js\";\nimport { TRDialogPopup } from \"./dialog-popup.js\";\nimport { TRDialogPortal } from \"./dialog-portal.js\";\nimport { TRDialogRoot } from \"./dialog-root.js\";\nimport { TRDialogTitle } from \"./dialog-title.js\";\nimport { TRDialogTrigger } from \"./dialog-trigger.js\";\nimport { TRDialogViewport } from \"./dialog-viewport.js\";\n//#region src/components/dialog/index.tsx\nconst TRDialog = {\n\tBackdrop: TRDialogBackdrop,\n\tClose: TRDialogClose,\n\tDescription: TRDialogDescription,\n\tPopup: TRDialogPopup,\n\tPortal: TRDialogPortal,\n\tRoot: TRDialogRoot,\n\tViewport: TRDialogViewport,\n\tTitle: TRDialogTitle,\n\tTrigger: TRDialogTrigger,\n\tcreateHandle: createDialogHandle\n};\n//#endregion\nexport { TRDialog, TRDialogBackdrop, TRDialogClose, TRDialogDescription, TRDialogPopup, TRDialogPortal, TRDialogRoot, TRDialogTitle, TRDialogTrigger, TRDialogViewport, createDialogHandle };\n\n//# sourceMappingURL=index.js.map","import { TRDialog } from '@tinyrack/ui/components/dialog';\nimport type { LucideIcon } from 'lucide-react';\nimport { XIcon } from 'lucide-react';\nimport { type ReactNode, useEffect } from 'react';\n\ntype ModalVariant = 'default' | 'destructive';\n\ninterface ModalProps {\n isOpen: boolean;\n onClose: () => void;\n title: string;\n description?: string;\n children: ReactNode;\n size?: 'sm' | 'md' | 'lg';\n preventClose?: boolean;\n icon?: LucideIcon;\n variant?: ModalVariant;\n}\n\n/*\n Set through `--tr-dialog-box-max-width`, the override hook `.tr-dialog-box`\n exposes, rather than a `max-w-*` utility. The box feeds that same custom\n property into its own `width: min(…)` calculation, so a utility would move\n the max-width while leaving the width computation on the old value.\n\n This is the current design system overlay scale (20/32rem), not Tailwind's\n width scale. The local `lg` compatibility option now resolves to the largest\n supported overlay token, and `md` remains the unstyled `TRDialog` default.\n*/\nconst sizeClasses = {\n sm: '[--tr-dialog-box-max-width:var(--tinyrack-overlay-width-sm)]',\n md: '[--tr-dialog-box-max-width:var(--tinyrack-overlay-width-md)]',\n lg: '[--tr-dialog-box-max-width:var(--tinyrack-overlay-width-md)]',\n} as const;\n\nconst iconVariantClasses: Record<ModalVariant, string> = {\n default: 'bg-tinyrack-surface-muted text-tinyrack-text',\n destructive: 'bg-tinyrack-danger-surface text-tinyrack-danger',\n};\n\nexport function Modal({\n isOpen,\n onClose,\n title,\n description,\n children,\n size = 'md',\n preventClose = false,\n icon: IconComponent,\n variant = 'default',\n}: ModalProps) {\n useEffect(() => {\n if (!isOpen) return;\n if (preventClose) return;\n const handleKeyDown = (e: KeyboardEvent) => {\n if (e.key === 'Escape') {\n onClose();\n }\n };\n document.addEventListener('keydown', handleKeyDown);\n return () => document.removeEventListener('keydown', handleKeyDown);\n }, [isOpen, preventClose, onClose]);\n\n if (!isOpen) {\n return null;\n }\n\n return (\n <TRDialog.Root\n defaultOpen\n disablePointerDismissal={preventClose}\n onOpenChange={(open) => {\n if (!open && !preventClose) {\n onClose();\n }\n }}\n >\n <TRDialog.Portal>\n <TRDialog.Viewport>\n <TRDialog.Backdrop />\n {/*\n No max-height here: `.tr-dialog-box` already clamps itself against\n `100dvh` minus the viewport gap, which is more correct than the\n `90vh`/`85vh` this used to override it with.\n */}\n <TRDialog.Popup className={sizeClasses[size]}>\n <div className=\"flex items-start gap-tinyrack-md\">\n {IconComponent && (\n <div\n className={`flex size-tinyrack-2xl shrink-0 items-center justify-center rounded-tinyrack-full ${iconVariantClasses[variant]}`}\n >\n <IconComponent aria-hidden className=\"size-tinyrack-lg\" />\n </div>\n )}\n <div className=\"flex min-w-0 flex-1 flex-col gap-tinyrack-3xs\">\n <TRDialog.Title>{title}</TRDialog.Title>\n {description && (\n <TRDialog.Description className=\"text-tinyrack-text-muted text-tinyrack-xs\">\n {description}\n </TRDialog.Description>\n )}\n </div>\n {!preventClose && (\n <TRDialog.Close\n aria-label=\"Close\"\n className=\"shrink-0\"\n data-testid=\"modal-close\"\n >\n <XIcon aria-hidden className=\"size-tinyrack-lg\" />\n </TRDialog.Close>\n )}\n </div>\n {children}\n </TRDialog.Popup>\n </TRDialog.Viewport>\n </TRDialog.Portal>\n </TRDialog.Root>\n );\n}\n\ninterface ModalActionsProps {\n children: ReactNode;\n}\n\nexport function ModalActions({ children }: ModalActionsProps) {\n return (\n <div className=\"flex justify-end gap-tinyrack-sm pt-tinyrack-lg\">\n {children}\n </div>\n );\n}\n"],"x_google_ignoreList":[0,1,2,3,4,5,6,7,8,9,10,11,12,13],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ import{Er as e,Or as t,Tr as n}from"./config-DTQCUlfZ.js";var r=class extends n{#e;#t;#n;#r;constructor(e){super(),this.#e=e.client,this.mutationId=e.mutationId,this.#n=e.mutationCache,this.#t=[],this.state=e.state||i(),this.setOptions(e.options),this.scheduleGc()}setOptions(e){this.options=e,this.updateGcTime(this.options.gcTime)}get meta(){return this.options.meta}addObserver(e){this.#t.includes(e)||(this.#t.push(e),this.clearGcTimeout(),this.#n.notify({type:`observerAdded`,mutation:this,observer:e}))}removeObserver(e){this.#t=this.#t.filter(t=>t!==e),this.scheduleGc(),this.#n.notify({type:`observerRemoved`,mutation:this,observer:e})}optionalRemove(){this.#t.length||(this.state.status===`pending`?this.scheduleGc():this.#n.remove(this))}continue(){return this.#r?.continue()??this.execute(this.state.variables)}async execute(t){let n=()=>{this.#i({type:`continue`})},r={client:this.#e,meta:this.options.meta,mutationKey:this.options.mutationKey};this.#r=e({fn:()=>this.options.mutationFn?this.options.mutationFn(t,r):Promise.reject(Error(`No mutationFn found`)),onFail:(e,t)=>{this.#i({type:`failed`,failureCount:e,error:t})},onPause:()=>{this.#i({type:`pause`})},onContinue:n,retry:this.options.retry??0,retryDelay:this.options.retryDelay,networkMode:this.options.networkMode,canRun:()=>this.#n.canRun(this)});let i=this.state.status===`pending`,a=!this.#r.canStart();try{if(i)n();else{this.#i({type:`pending`,variables:t,isPaused:a}),this.#n.config.onMutate&&await this.#n.config.onMutate(t,this,r);let e=await this.options.onMutate?.(t,r);e!==this.state.context&&this.#i({type:`pending`,context:e,variables:t,isPaused:a})}let e=await this.#r.start();return await this.#n.config.onSuccess?.(e,t,this.state.context,this,r),await this.options.onSuccess?.(e,t,this.state.context,r),await this.#n.config.onSettled?.(e,null,this.state.variables,this.state.context,this,r),await this.options.onSettled?.(e,null,t,this.state.context,r),this.#i({type:`success`,data:e}),e}catch(e){try{await this.#n.config.onError?.(e,t,this.state.context,this,r)}catch(e){Promise.reject(e)}try{await this.options.onError?.(e,t,this.state.context,r)}catch(e){Promise.reject(e)}try{await this.#n.config.onSettled?.(void 0,e,this.state.variables,this.state.context,this,r)}catch(e){Promise.reject(e)}try{await this.options.onSettled?.(void 0,e,t,this.state.context,r)}catch(e){Promise.reject(e)}throw this.#i({type:`error`,error:e}),e}finally{this.#n.runNext(this)}}#i(e){let n=t=>{switch(e.type){case`failed`:return{...t,failureCount:e.failureCount,failureReason:e.error};case`pause`:return{...t,isPaused:!0};case`continue`:return{...t,isPaused:!1};case`pending`:return{...t,context:e.context,data:void 0,failureCount:0,failureReason:null,error:null,isPaused:e.isPaused,status:`pending`,variables:e.variables,submittedAt:Date.now()};case`success`:return{...t,data:e.data,failureCount:0,failureReason:null,error:null,status:`success`,isPaused:!1};case`error`:return{...t,data:void 0,error:e.error,failureCount:t.failureCount+1,failureReason:e.error,isPaused:!1,status:`error`}}};this.state=n(this.state),t.batch(()=>{this.#t.forEach(t=>{t.onMutationUpdate(e)}),this.#n.notify({mutation:this,type:`updated`,action:e})})}};function i(){return{context:void 0,data:void 0,error:null,failureCount:0,failureReason:null,isPaused:!1,status:`idle`,variables:void 0,submittedAt:0}}function a(e){return e}export{r as n,i as r,a as t};
2
+ //# sourceMappingURL=mutationOptions-DyYFUbyn.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"mutationOptions-DyYFUbyn.js","names":["#client","#mutationCache","#observers","#retryer","#dispatch"],"sources":["../../../../node_modules/.pnpm/@tanstack+query-core@5.101.2/node_modules/@tanstack/query-core/build/modern/mutation.js","../../../../node_modules/.pnpm/@tanstack+react-query@5.101.2_react@19.2.7/node_modules/@tanstack/react-query/build/modern/mutationOptions.js"],"sourcesContent":["// src/mutation.ts\nimport { notifyManager } from \"./notifyManager.js\";\nimport { Removable } from \"./removable.js\";\nimport { createRetryer } from \"./retryer.js\";\nvar Mutation = class extends Removable {\n #client;\n #observers;\n #mutationCache;\n #retryer;\n constructor(config) {\n super();\n this.#client = config.client;\n this.mutationId = config.mutationId;\n this.#mutationCache = config.mutationCache;\n this.#observers = [];\n this.state = config.state || getDefaultState();\n this.setOptions(config.options);\n this.scheduleGc();\n }\n setOptions(options) {\n this.options = options;\n this.updateGcTime(this.options.gcTime);\n }\n get meta() {\n return this.options.meta;\n }\n addObserver(observer) {\n if (!this.#observers.includes(observer)) {\n this.#observers.push(observer);\n this.clearGcTimeout();\n this.#mutationCache.notify({\n type: \"observerAdded\",\n mutation: this,\n observer\n });\n }\n }\n removeObserver(observer) {\n this.#observers = this.#observers.filter((x) => x !== observer);\n this.scheduleGc();\n this.#mutationCache.notify({\n type: \"observerRemoved\",\n mutation: this,\n observer\n });\n }\n optionalRemove() {\n if (!this.#observers.length) {\n if (this.state.status === \"pending\") {\n this.scheduleGc();\n } else {\n this.#mutationCache.remove(this);\n }\n }\n }\n continue() {\n return this.#retryer?.continue() ?? // continuing a mutation assumes that variables are set, mutation must have been dehydrated before\n this.execute(this.state.variables);\n }\n async execute(variables) {\n const onContinue = () => {\n this.#dispatch({ type: \"continue\" });\n };\n const mutationFnContext = {\n client: this.#client,\n meta: this.options.meta,\n mutationKey: this.options.mutationKey\n };\n this.#retryer = createRetryer({\n fn: () => {\n if (!this.options.mutationFn) {\n return Promise.reject(new Error(\"No mutationFn found\"));\n }\n return this.options.mutationFn(variables, mutationFnContext);\n },\n onFail: (failureCount, error) => {\n this.#dispatch({ type: \"failed\", failureCount, error });\n },\n onPause: () => {\n this.#dispatch({ type: \"pause\" });\n },\n onContinue,\n retry: this.options.retry ?? 0,\n retryDelay: this.options.retryDelay,\n networkMode: this.options.networkMode,\n canRun: () => this.#mutationCache.canRun(this)\n });\n const restored = this.state.status === \"pending\";\n const isPaused = !this.#retryer.canStart();\n try {\n if (restored) {\n onContinue();\n } else {\n this.#dispatch({ type: \"pending\", variables, isPaused });\n if (this.#mutationCache.config.onMutate) {\n await this.#mutationCache.config.onMutate(\n variables,\n this,\n mutationFnContext\n );\n }\n const context = await this.options.onMutate?.(\n variables,\n mutationFnContext\n );\n if (context !== this.state.context) {\n this.#dispatch({\n type: \"pending\",\n context,\n variables,\n isPaused\n });\n }\n }\n const data = await this.#retryer.start();\n await this.#mutationCache.config.onSuccess?.(\n data,\n variables,\n this.state.context,\n this,\n mutationFnContext\n );\n await this.options.onSuccess?.(\n data,\n variables,\n this.state.context,\n mutationFnContext\n );\n await this.#mutationCache.config.onSettled?.(\n data,\n null,\n this.state.variables,\n this.state.context,\n this,\n mutationFnContext\n );\n await this.options.onSettled?.(\n data,\n null,\n variables,\n this.state.context,\n mutationFnContext\n );\n this.#dispatch({ type: \"success\", data });\n return data;\n } catch (error) {\n try {\n await this.#mutationCache.config.onError?.(\n error,\n variables,\n this.state.context,\n this,\n mutationFnContext\n );\n } catch (e) {\n void Promise.reject(e);\n }\n try {\n await this.options.onError?.(\n error,\n variables,\n this.state.context,\n mutationFnContext\n );\n } catch (e) {\n void Promise.reject(e);\n }\n try {\n await this.#mutationCache.config.onSettled?.(\n void 0,\n error,\n this.state.variables,\n this.state.context,\n this,\n mutationFnContext\n );\n } catch (e) {\n void Promise.reject(e);\n }\n try {\n await this.options.onSettled?.(\n void 0,\n error,\n variables,\n this.state.context,\n mutationFnContext\n );\n } catch (e) {\n void Promise.reject(e);\n }\n this.#dispatch({ type: \"error\", error });\n throw error;\n } finally {\n this.#mutationCache.runNext(this);\n }\n }\n #dispatch(action) {\n const reducer = (state) => {\n switch (action.type) {\n case \"failed\":\n return {\n ...state,\n failureCount: action.failureCount,\n failureReason: action.error\n };\n case \"pause\":\n return {\n ...state,\n isPaused: true\n };\n case \"continue\":\n return {\n ...state,\n isPaused: false\n };\n case \"pending\":\n return {\n ...state,\n context: action.context,\n data: void 0,\n failureCount: 0,\n failureReason: null,\n error: null,\n isPaused: action.isPaused,\n status: \"pending\",\n variables: action.variables,\n submittedAt: Date.now()\n };\n case \"success\":\n return {\n ...state,\n data: action.data,\n failureCount: 0,\n failureReason: null,\n error: null,\n status: \"success\",\n isPaused: false\n };\n case \"error\":\n return {\n ...state,\n data: void 0,\n error: action.error,\n failureCount: state.failureCount + 1,\n failureReason: action.error,\n isPaused: false,\n status: \"error\"\n };\n }\n };\n this.state = reducer(this.state);\n notifyManager.batch(() => {\n this.#observers.forEach((observer) => {\n observer.onMutationUpdate(action);\n });\n this.#mutationCache.notify({\n mutation: this,\n type: \"updated\",\n action\n });\n });\n }\n};\nfunction getDefaultState() {\n return {\n context: void 0,\n data: void 0,\n error: null,\n failureCount: 0,\n failureReason: null,\n isPaused: false,\n status: \"idle\",\n variables: void 0,\n submittedAt: 0\n };\n}\nexport {\n Mutation,\n getDefaultState\n};\n//# sourceMappingURL=mutation.js.map","// src/mutationOptions.ts\nfunction mutationOptions(options) {\n return options;\n}\nexport {\n mutationOptions\n};\n//# sourceMappingURL=mutationOptions.js.map"],"x_google_ignoreList":[0,1],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ import{J as e,Z as t,i as n,n as r,q as i,s as a,t as o}from"./createLucideIcon-BPpAIXR_.js";import{On as s,Sn as c,Sr as l,t as u}from"./config-DTQCUlfZ.js";import{t as d}from"./useMutation-BWZ0G4Td.js";import{tt as f}from"./shell-header-bar-CjG5qvPg.js";import{t as p}from"./auth-field-DD8kvl--.js";import{t as m}from"./fingerprint-pattern-DP62Vk8x.js";import{t as h}from"./shield-check-D_p8H0ni.js";import{c as g,o as _}from"./zod-C87S6Tec.js";import{F as v,N as y,R as b,S as x,j as S,u as C,z as w}from"./index-CS23Ozt6.js";import{t as T}from"./auth-page-header-CIn2E4zI.js";import{t as E}from"./alert-leqyvHOp.js";import{t as D}from"./auth-layout-VtpryDof.js";import{t as O}from"./promise-OpBtq8tG.js";import{n as k,t as A}from"./auth-footer-Cz5ivsDc.js";import{t as j}from"./passkey-error-ZqqPQUta.js";import{i as M}from"./passkey-J1qnYp9A.js";import{r as N,t as P}from"./standard-schema-e8gtSzGE.js";var F=o(`tag`,[[`path`,{d:`M12.586 2.586A2 2 0 0 0 11.172 2H4a2 2 0 0 0-2 2v7.172a2 2 0 0 0 .586 1.414l8.704 8.704a2.426 2.426 0 0 0 3.42 0l6.58-6.58a2.426 2.426 0 0 0 0-3.42z`,key:`vktsd0`}],[`circle`,{cx:`7.5`,cy:`7.5`,r:`.5`,fill:`currentColor`,key:`kqv944`}]]),I=t(e()),L=i();function R(){let{t:e}=n(),t=s(),i=l(),o=C.useSearch(),{data:R}=f(u),[z,B]=(0,I.useState)(o.passkey_name?`registering`:`form`),[V,H]=(0,I.useState)(``),U=(0,I.useRef)(!1),W=R.auth.password.enabled&&R.auth.password.two_factor.enrollment_required&&R.auth.password.totp.enabled,{register:G,handleSubmit:K,formState:{errors:q}}=N({defaultValues:{name:``},resolver:P((0,I.useMemo)(()=>_({name:g().max(100,e(`validation.passkey.name.max`))}),[e]))}),J=d({...M,onSuccess:async e=>{e.second_factor_setup_completed&&e.user?(i.setQueryData(x.queryKey,{user:e.user}),await O(),v(o)?window.location.href=S(o):t.navigate({to:`/profile`})):(i.invalidateQueries({queryKey:x.queryKey}),t.navigate({to:`/profile`}))},onError:t=>{switch(B(`error`),j(t)){case`unsupported`:H(e(`setupPasskey.error.unsupported`));return;case`not_allowed`:H(e(`setupPasskey.error.notAllowed`));return;case`expired`:H(e(`setupPasskey.error.expired`));return;case`user_mismatch`:case`verification_failed`:H(e(`setupPasskey.error.failed`));return}},onSettled:()=>{i.invalidateQueries({queryKey:x.queryKey})}});return(0,I.useEffect)(()=>{o.passkey_name&&!U.current&&(U.current=!0,J.mutate({name:o.passkey_name}))},[J,o.passkey_name]),z===`registering`?(0,L.jsxs)(D,{children:[(0,L.jsx)(T,{subtitle:e(`setupPasskey.subtitle`),title:e(`setupPasskey.title`)}),(0,L.jsxs)(`div`,{className:`flex flex-col items-center gap-tinyrack-lg py-tinyrack-xl`,children:[(0,L.jsx)(m,{"aria-hidden":!0,className:`size-tinyrack-3xl animate-pulse text-tinyrack-primary`}),(0,L.jsx)(r,{align:`center`,as:`p`,color:`muted`,variant:`body`,children:e(`setupPasskey.waiting`)})]})]}):z===`error`?(0,L.jsxs)(D,{children:[(0,L.jsx)(T,{subtitle:e(`setupPasskey.subtitle`),title:e(`setupPasskey.title`)}),(0,L.jsx)(E,{icon:b,type:`error`,children:V}),(0,L.jsxs)(`div`,{className:`flex flex-col gap-tinyrack-sm`,children:[W&&(0,L.jsxs)(w,{className:`w-full gap-tinyrack-sm`,intent:`primary`,render:(0,L.jsx)(c,{search:y(o),to:`/setup/totp`}),uiSize:`lg`,children:[(0,L.jsx)(h,{"aria-hidden":!0,className:`size-tinyrack-xl`}),e(`setupPasskey.useTotp`)]}),(0,L.jsx)(a,{appearance:W?`outline`:`solid`,className:`w-full`,intent:W?`neutral`:`primary`,onClick:()=>{o.passkey_name?(B(`registering`),H(``),J.mutate({name:o.passkey_name})):B(`form`)},type:`button`,uiSize:`lg`,children:e(`setupPasskey.retry`)})]}),(0,L.jsx)(A,{children:(0,L.jsx)(k,{link:(0,L.jsx)(c,{search:y(o),to:`/login`,children:e(`setupPasskey.backToLogin`)})})})]}):(0,L.jsxs)(D,{children:[(0,L.jsx)(T,{subtitle:e(`setupPasskey.subtitle`),title:e(`setupPasskey.title`)}),(0,L.jsx)(E,{icon:h,type:`info`,children:e(`setupPasskey.required`)}),(0,L.jsx)(r,{align:`center`,as:`p`,color:`muted`,variant:`bodySm`,children:e(`setupPasskey.description`)}),(0,L.jsxs)(`form`,{className:`flex flex-col gap-tinyrack-lg`,onSubmit:K(e=>{B(`registering`),H(``),J.mutate({name:e.name||void 0})}),children:[(0,L.jsx)(p,{error:q.name,hint:e(`setupPasskey.name.hint`),icon:F,id:`passkey-name`,label:e(`setupPasskey.name.label`),placeholder:e(`setupPasskey.name.placeholder`),...G(`name`),type:`text`}),(0,L.jsx)(a,{className:`w-full`,intent:`primary`,loading:J.isPending,loadingLabel:e(`setupPasskey.registering`),type:`submit`,uiSize:`lg`,children:e(`setupPasskey.continue`)})]}),(0,L.jsx)(A,{children:(0,L.jsx)(k,{link:(0,L.jsx)(c,{search:y(o),to:`/login`,children:e(`setupPasskey.backToLogin`)})})})]})}export{R as component};
2
+ //# sourceMappingURL=passkey-BE9JvJOP.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"passkey-BE9JvJOP.js","names":["standardSchemaResolver","useMutation","useQueryClient","useSuspenseQuery","Link","useRouter","TRButton","TRLinkButton","TRText","CircleAlertIcon","FingerprintIcon","ShieldCheckIcon","TagIcon","useEffect","useMemo","useRef","useState","useForm","useTranslation","z","AuthField","AuthFooter","AuthFooterLink","AuthPageHeader","Alert","AuthLayout","buildAuthenticatedAuthorizeUrl","extractOAuthParams","isOAuthFlow","classifyPasskeyError","tick","appConfigQueryOptions","registerPasskeyMutationOptions","getSessionQueryOptions","Route","SetupStep","SetupPasskey","t","router","queryClient","search","useSearch","data","appConfig","step","setStep","passkey_name","errorMessage","setErrorMessage","autoRegisterCalledRef","canUseTotpSetup","auth","password","enabled","two_factor","enrollment_required","totp","formSchema","object","name","string","max","FormValues","infer","register","handleSubmit","formState","errors","defaultValues","resolver","registerMutation","onSuccess","second_factor_setup_completed","user","setQueryData","queryKey","window","location","href","navigate","to","invalidateQueries","onError","error","reason","onSettled","current","mutate","onSubmit","values","undefined","isPending","component"],"sources":["../../../../node_modules/.pnpm/lucide-react@1.25.0_react@19.2.7/node_modules/lucide-react/dist/esm/icons/tag.mjs","../../../frontend/src/routes/setup/passkey/index.tsx?tsr-split=component"],"sourcesContent":["/**\n * @license lucide-react v1.25.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.mjs';\n\nconst __iconNode = [\n [\n \"path\",\n {\n d: \"M12.586 2.586A2 2 0 0 0 11.172 2H4a2 2 0 0 0-2 2v7.172a2 2 0 0 0 .586 1.414l8.704 8.704a2.426 2.426 0 0 0 3.42 0l6.58-6.58a2.426 2.426 0 0 0 0-3.42z\",\n key: \"vktsd0\"\n }\n ],\n [\"circle\", { cx: \"7.5\", cy: \"7.5\", r: \".5\", fill: \"currentColor\", key: \"kqv944\" }]\n];\nconst Tag = createLucideIcon(\"tag\", __iconNode);\n\nexport { __iconNode, Tag as default };\n//# sourceMappingURL=tag.mjs.map\n","import { standardSchemaResolver } from '@hookform/resolvers/standard-schema';\nimport {\n useMutation,\n useQueryClient,\n useSuspenseQuery,\n} from '@tanstack/react-query';\nimport { createFileRoute, Link, useRouter } from '@tanstack/react-router';\nimport { TRButton } from '@tinyrack/ui/components/button';\nimport { TRLinkButton } from '@tinyrack/ui/components/link-button';\nimport { TRText } from '@tinyrack/ui/components/text';\nimport {\n CircleAlertIcon,\n FingerprintIcon,\n ShieldCheckIcon,\n TagIcon,\n} from 'lucide-react';\nimport { useEffect, useMemo, useRef, useState } from 'react';\nimport { useForm } from 'react-hook-form';\nimport { useTranslation } from 'react-i18next';\nimport { z } from 'zod';\nimport { AuthField } from '#frontend/components/auth/auth-field.tsx';\nimport {\n AuthFooter,\n AuthFooterLink,\n} from '#frontend/components/auth/auth-footer.tsx';\nimport { AuthPageHeader } from '#frontend/components/auth/auth-page-header.tsx';\nimport { Alert } from '#frontend/components/ui/alert.tsx';\nimport { RouteErrorFallback } from '#frontend/components/ui/route-error-fallback.tsx';\nimport { AuthLayout } from '#frontend/features/layout/auth-layout.tsx';\nimport {\n buildAuthenticatedAuthorizeUrl,\n extractOAuthParams,\n isOAuthFlow,\n OAuthSearchSchema,\n} from '#frontend/libs/oauth-search.ts';\nimport { classifyPasskeyError } from '#frontend/libs/passkey-error.ts';\nimport { tick } from '#frontend/libs/promise.ts';\nimport { appConfigQueryOptions } from '#frontend/queries/config.ts';\nimport { registerPasskeyMutationOptions } from '#frontend/queries/passkey.ts';\nimport { getSessionQueryOptions } from '#frontend/queries/session.ts';\n\nconst SearchSchema = OAuthSearchSchema.extend({\n passkey_name: z.string().optional(),\n});\n\nexport const Route = createFileRoute('/setup/passkey/')({\n component: SetupPasskey,\n errorComponent: RouteErrorFallback,\n loader: async ({ context }) => {\n await context.queryClient.ensureQueryData(appConfigQueryOptions);\n },\n validateSearch: SearchSchema,\n});\n\ntype SetupStep = 'form' | 'registering' | 'error';\n\nfunction SetupPasskey() {\n const { t } = useTranslation();\n const router = useRouter();\n const queryClient = useQueryClient();\n const search = Route.useSearch();\n const { data: appConfig } = useSuspenseQuery(appConfigQueryOptions);\n\n const [step, setStep] = useState<SetupStep>(\n search.passkey_name ? 'registering' : 'form',\n );\n const [errorMessage, setErrorMessage] = useState<string>('');\n const autoRegisterCalledRef = useRef(false);\n const canUseTotpSetup =\n appConfig.auth.password.enabled &&\n appConfig.auth.password.two_factor.enrollment_required &&\n appConfig.auth.password.totp.enabled;\n\n const formSchema = useMemo(\n () =>\n z.object({\n name: z.string().max(100, t('validation.passkey.name.max')),\n }),\n [t],\n );\n\n type FormValues = z.infer<typeof formSchema>;\n\n const {\n register,\n handleSubmit,\n formState: { errors },\n } = useForm<FormValues>({\n defaultValues: { name: '' },\n resolver: standardSchemaResolver(formSchema),\n });\n\n const registerMutation = useMutation({\n ...registerPasskeyMutationOptions,\n onSuccess: async (data) => {\n if (data.second_factor_setup_completed && data.user) {\n queryClient.setQueryData(getSessionQueryOptions.queryKey, {\n user: data.user,\n });\n await tick();\n\n if (isOAuthFlow(search)) {\n window.location.href = buildAuthenticatedAuthorizeUrl(search);\n } else {\n router.navigate({ to: '/profile' });\n }\n } else {\n queryClient.invalidateQueries({\n queryKey: getSessionQueryOptions.queryKey,\n });\n router.navigate({ to: '/profile' });\n }\n },\n onError: (error) => {\n setStep('error');\n const reason = classifyPasskeyError(error);\n\n switch (reason) {\n case 'unsupported':\n setErrorMessage(t('setupPasskey.error.unsupported'));\n return;\n case 'not_allowed':\n setErrorMessage(t('setupPasskey.error.notAllowed'));\n return;\n case 'expired':\n setErrorMessage(t('setupPasskey.error.expired'));\n return;\n case 'user_mismatch':\n case 'verification_failed':\n setErrorMessage(t('setupPasskey.error.failed'));\n return;\n }\n },\n onSettled: () => {\n queryClient.invalidateQueries({\n queryKey: getSessionQueryOptions.queryKey,\n });\n },\n });\n\n useEffect(() => {\n if (search.passkey_name && !autoRegisterCalledRef.current) {\n autoRegisterCalledRef.current = true;\n registerMutation.mutate({ name: search.passkey_name });\n }\n }, [registerMutation, search.passkey_name]);\n\n const onSubmit = (values: FormValues) => {\n setStep('registering');\n setErrorMessage('');\n registerMutation.mutate({ name: values.name || undefined });\n };\n\n // Registering state - waiting for WebAuthn\n if (step === 'registering') {\n return (\n <AuthLayout>\n <AuthPageHeader\n subtitle={t('setupPasskey.subtitle')}\n title={t('setupPasskey.title')}\n />\n <div className=\"flex flex-col items-center gap-tinyrack-lg py-tinyrack-xl\">\n <FingerprintIcon\n aria-hidden\n className=\"size-tinyrack-3xl animate-pulse text-tinyrack-primary\"\n />\n <TRText align=\"center\" as=\"p\" color=\"muted\" variant=\"body\">\n {t('setupPasskey.waiting')}\n </TRText>\n </div>\n </AuthLayout>\n );\n }\n\n // Error state\n if (step === 'error') {\n return (\n <AuthLayout>\n <AuthPageHeader\n subtitle={t('setupPasskey.subtitle')}\n title={t('setupPasskey.title')}\n />\n <Alert icon={CircleAlertIcon} type=\"error\">\n {errorMessage}\n </Alert>\n\n <div className=\"flex flex-col gap-tinyrack-sm\">\n {canUseTotpSetup && (\n <TRLinkButton\n className=\"w-full gap-tinyrack-sm\"\n intent=\"primary\"\n render={\n <Link search={extractOAuthParams(search)} to=\"/setup/totp\" />\n }\n uiSize=\"lg\"\n >\n <ShieldCheckIcon aria-hidden className=\"size-tinyrack-xl\" />\n {t('setupPasskey.useTotp')}\n </TRLinkButton>\n )}\n <TRButton\n appearance={canUseTotpSetup ? 'outline' : 'solid'}\n className=\"w-full\"\n intent={canUseTotpSetup ? 'neutral' : 'primary'}\n onClick={() => {\n if (search.passkey_name) {\n setStep('registering');\n setErrorMessage('');\n registerMutation.mutate({ name: search.passkey_name });\n } else {\n setStep('form');\n }\n }}\n type=\"button\"\n uiSize=\"lg\"\n >\n {t('setupPasskey.retry')}\n </TRButton>\n </div>\n\n <AuthFooter>\n <AuthFooterLink\n link={\n <Link search={extractOAuthParams(search)} to=\"/login\">\n {t('setupPasskey.backToLogin')}\n </Link>\n }\n />\n </AuthFooter>\n </AuthLayout>\n );\n }\n\n // Form state\n return (\n <AuthLayout>\n <AuthPageHeader\n subtitle={t('setupPasskey.subtitle')}\n title={t('setupPasskey.title')}\n />\n\n <Alert icon={ShieldCheckIcon} type=\"info\">\n {t('setupPasskey.required')}\n </Alert>\n\n <TRText align=\"center\" as=\"p\" color=\"muted\" variant=\"bodySm\">\n {t('setupPasskey.description')}\n </TRText>\n\n <form\n className=\"flex flex-col gap-tinyrack-lg\"\n onSubmit={handleSubmit(onSubmit)}\n >\n <AuthField\n error={errors.name}\n hint={t('setupPasskey.name.hint')}\n icon={TagIcon}\n id=\"passkey-name\"\n label={t('setupPasskey.name.label')}\n placeholder={t('setupPasskey.name.placeholder')}\n {...register('name')}\n type=\"text\"\n />\n\n <TRButton\n className=\"w-full\"\n intent=\"primary\"\n loading={registerMutation.isPending}\n loadingLabel={t('setupPasskey.registering')}\n type=\"submit\"\n uiSize=\"lg\"\n >\n {t('setupPasskey.continue')}\n </TRButton>\n </form>\n\n <AuthFooter>\n <AuthFooterLink\n link={\n <Link search={extractOAuthParams(search)} to=\"/login\">\n {t('setupPasskey.backToLogin')}\n </Link>\n }\n />\n </AuthFooter>\n </AuthLayout>\n );\n}\n"],"x_google_ignoreList":[0],"mappings":"44BAmBA,IAAM,EAAM,EAAiB,MAAO,CATlC,CACE,OACA,CACE,EAAG,uJACH,IAAK,QACP,CACF,EACA,CAAC,SAAU,CAAE,GAAI,MAAO,GAAI,MAAO,EAAG,KAAM,KAAM,eAAgB,IAAK,QAAS,CAAC,CAE/C,CAAU,iBCqC9C,SAASoC,GAAe,CACtB,GAAM,CAAEC,KAAMnB,EAAe,EACvBoB,EAASjC,EAAU,EACnBkC,EAAcrC,EAAe,EAC7BsC,EAASN,EAAMO,UAAU,EACzB,CAAEC,KAAMC,GAAcxC,EAAiB4B,CAAqB,EAE5D,CAACa,EAAMC,IAAAA,EAAAA,EAAAA,SAAAA,CACXL,EAAOM,aAAe,cAAgB,MACxC,EACM,CAACC,EAAcC,IAAAA,EAAAA,EAAAA,SAAAA,CAAoC,EAAE,EACrDC,GAAAA,EAAAA,EAAAA,OAAAA,CAA+B,EAAK,EACpCC,EACJP,EAAUQ,KAAKC,SAASC,SACxBV,EAAUQ,KAAKC,SAASE,WAAWC,qBACnCZ,EAAUQ,KAAKC,SAASI,KAAKH,QAYzB,CACJW,WACAC,eACAC,UAAW,CAAEC,WACXlD,EAAoB,CACtBmD,cAAe,CAAET,KAAM,EAAG,EAC1BU,SAAUrE,GAAAA,EAAAA,EAAAA,QAAAA,KAdRmB,EAAS,CACPwC,KAAMxC,EAAS,CAAC,CAAC0C,IAAI,IAAKxB,EAAE,6BAA6B,CAAC,CAC5D,CAAC,EACH,CAACA,CAAC,CAW+BoB,CAAU,CAC7C,CAAC,EAEKa,EAAmBrE,EAAY,CACnC,GAAG+B,EACHuC,UAAW,KAAO7B,IAAS,CACrBA,EAAK8B,+BAAiC9B,EAAK+B,MAC7ClC,EAAYmC,aAAazC,EAAuB0C,SAAU,CACxDF,KAAM/B,EAAK+B,IACb,CAAC,EACD,MAAM3C,EAAK,EAEPF,EAAYY,CAAM,EACpBoC,OAAOC,SAASC,KAAOpD,EAA+Bc,CAAM,EAE5DF,EAAOyC,SAAS,CAAEC,GAAI,UAAW,CAAC,IAGpCzC,EAAY0C,kBAAkB,CAC5BN,SAAU1C,EAAuB0C,QACnC,CAAC,EACDrC,EAAOyC,SAAS,CAAEC,GAAI,UAAW,CAAC,EAEtC,EACAE,QAAUC,GAAU,CAIlB,OAHAtC,EAAQ,OAAO,EACAhB,EAAqBsD,CAE5BC,EAAR,CACE,IAAK,cACHpC,EAAgBX,EAAE,gCAAgC,CAAC,EACnD,OACF,IAAK,cACHW,EAAgBX,EAAE,+BAA+B,CAAC,EAClD,OACF,IAAK,UACHW,EAAgBX,EAAE,4BAA4B,CAAC,EAC/C,OACF,IAAK,gBACL,IAAK,sBACHW,EAAgBX,EAAE,2BAA2B,CAAC,EAC9C,MACJ,CACF,EACAgD,cAAiB,CACf9C,EAAY0C,kBAAkB,CAC5BN,SAAU1C,EAAuB0C,QACnC,CAAC,CACH,CACF,CAAC,EAgGD,OA9FA9D,EAAAA,EAAAA,UAAAA,KAAgB,CACV2B,EAAOM,cAAgB,CAACG,EAAsBqC,UAChDrC,EAAsBqC,QAAU,GAChChB,EAAiBiB,OAAO,CAAE5B,KAAMnB,EAAOM,YAAa,CAAC,EAEzD,EAAG,CAACwB,EAAkB9B,EAAOM,YAAY,CAAC,EAStCF,IAAS,eAET,EAAA,EAAA,KAAA,CAAC,EAAD,CAAA,SAAA,EACE,EAAA,EAAA,IAAA,CAAC,EAAD,CACE,SAAUP,EAAE,uBAAuB,EACnC,MAAOA,EAAE,oBAAoB,CAAE,CAAA,GAEjC,EAAA,EAAA,KAAA,CAAC,MAAD,CAAK,UAAU,qEAAf,EACE,EAAA,EAAA,IAAA,CAAC,EAAD,CACE,cAAA,GACA,UAAU,uDAAuD,CAAA,GAEnE,EAAA,EAAA,IAAA,CAAC,EAAD,CAAQ,MAAM,SAAS,GAAG,IAAI,MAAM,QAAQ,QAAQ,gBACjDA,EAAE,sBAAsB,CACnB,CAAA,CACL,GACK,CAAA,CAAA,EAKZO,IAAS,SAET,EAAA,EAAA,KAAA,CAAC,EAAD,CAAA,SAAA,EACE,EAAA,EAAA,IAAA,CAAC,EAAD,CACE,SAAUP,EAAE,uBAAuB,EACnC,MAAOA,EAAE,oBAAoB,CAAE,CAAA,GAEjC,EAAA,EAAA,IAAA,CAAC,EAAD,CAAO,KAAM5B,EAAiB,KAAK,iBAChCsC,CACI,CAAA,GAEP,EAAA,EAAA,KAAA,CAAC,MAAD,CAAK,UAAU,yCAAf,CACGG,IACC,EAAA,EAAA,KAAA,CAAC,EAAD,CACE,UAAU,yBACV,OAAO,UACP,QACE,EAAA,EAAA,IAAA,CAAC,EAAD,CAAM,OAAQvB,EAAmBa,CAAM,EAAG,GAAG,aAAa,CAAA,EAE5D,OAAO,cANT,EAQE,EAAA,EAAA,IAAA,CAAC,EAAD,CAAiB,cAAA,GAAY,UAAU,kBAAkB,CAAA,EACxDH,EAAE,sBAAsB,CACb,KAEhB,EAAA,EAAA,IAAA,CAAC,EAAD,CACE,WAAYa,EAAkB,UAAY,QAC1C,UAAU,SACV,OAAQA,EAAkB,UAAY,UACtC,YAAe,CACTV,EAAOM,cACTD,EAAQ,aAAa,EACrBG,EAAgB,EAAE,EAClBsB,EAAiBiB,OAAO,CAAE5B,KAAMnB,EAAOM,YAAa,CAAC,GAErDD,EAAQ,MAAM,CAElB,EACA,KAAK,SACL,OAAO,cAENR,EAAE,oBAAoB,CACf,CAAA,CACP,KAEL,EAAA,EAAA,IAAA,CAAC,EAAD,CAAA,UACE,EAAA,EAAA,IAAA,CAAC,EAAD,CACE,MACE,EAAA,EAAA,IAAA,CAAC,EAAD,CAAM,OAAQV,EAAmBa,CAAM,EAAG,GAAG,kBAC1CH,EAAE,0BAA0B,CACzB,CAAA,CACP,CAAA,CAEO,CAAA,CACF,CAAA,CAAA,GAMd,EAAA,EAAA,KAAA,CAAC,EAAD,CAAA,SAAA,EACE,EAAA,EAAA,IAAA,CAAC,EAAD,CACE,SAAUA,EAAE,uBAAuB,EACnC,MAAOA,EAAE,oBAAoB,CAAE,CAAA,GAGjC,EAAA,EAAA,IAAA,CAAC,EAAD,CAAO,KAAM1B,EAAiB,KAAK,gBAChC0B,EAAE,uBAAuB,CACrB,CAAA,GAEP,EAAA,EAAA,IAAA,CAAC,EAAD,CAAQ,MAAM,SAAS,GAAG,IAAI,MAAM,QAAQ,QAAQ,kBACjDA,EAAE,0BAA0B,CACvB,CAAA,GAER,EAAA,EAAA,KAAA,CAAC,OAAD,CACE,UAAU,gCACV,SAAU4B,EAxGEwB,GAAuB,CACvC5C,EAAQ,aAAa,EACrBG,EAAgB,EAAE,EAClBsB,EAAiBiB,OAAO,CAAE5B,KAAM8B,EAAO9B,MAAQ+B,IAAAA,EAAU,CAAC,CAC5D,CAoGqC,WAFjC,EAIE,EAAA,EAAA,IAAA,CAAC,EAAD,CACE,MAAOvB,EAAOR,KACd,KAAMtB,EAAE,wBAAwB,EAChC,KAAMzB,EACN,GAAG,eACH,MAAOyB,EAAE,yBAAyB,EAClC,YAAaA,EAAE,+BAA+B,EAC9C,GAAI2B,EAAS,MAAM,EACnB,KAAK,MAAM,CAAA,GAGb,EAAA,EAAA,IAAA,CAAC,EAAD,CACE,UAAU,SACV,OAAO,UACP,QAASM,EAAiBqB,UAC1B,aAActD,EAAE,0BAA0B,EAC1C,KAAK,SACL,OAAO,cAENA,EAAE,uBAAuB,CAClB,CAAA,CACN,KAEN,EAAA,EAAA,IAAA,CAAC,EAAD,CAAA,UACE,EAAA,EAAA,IAAA,CAAC,EAAD,CACE,MACE,EAAA,EAAA,IAAA,CAAC,EAAD,CAAM,OAAQV,EAAmBa,CAAM,EAAG,GAAG,kBAC1CH,EAAE,0BAA0B,CACzB,CAAA,CACP,CAAA,CAEO,CAAA,CACF,CAAA,CAAA,CAEhB"}
@@ -0,0 +1,2 @@
1
+ import{I as e}from"./index-CS23Ozt6.js";var t=e;export{t as errorComponent};
2
+ //# sourceMappingURL=passkey-C5vUVgr_.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"passkey-C5vUVgr_.js","names":["RouteErrorFallback","SetupStep","SplitErrorComponent","errorComponent"],"sources":["../../../frontend/src/routes/setup/passkey/index.tsx?tsr-split=errorComponent"],"sourcesContent":["import { standardSchemaResolver } from '@hookform/resolvers/standard-schema';\nimport {\n useMutation,\n useQueryClient,\n useSuspenseQuery,\n} from '@tanstack/react-query';\nimport { createFileRoute, Link, useRouter } from '@tanstack/react-router';\nimport { TRButton } from '@tinyrack/ui/components/button';\nimport { TRLinkButton } from '@tinyrack/ui/components/link-button';\nimport { TRText } from '@tinyrack/ui/components/text';\nimport {\n CircleAlertIcon,\n FingerprintIcon,\n ShieldCheckIcon,\n TagIcon,\n} from 'lucide-react';\nimport { useEffect, useMemo, useRef, useState } from 'react';\nimport { useForm } from 'react-hook-form';\nimport { useTranslation } from 'react-i18next';\nimport { z } from 'zod';\nimport { AuthField } from '#frontend/components/auth/auth-field.tsx';\nimport {\n AuthFooter,\n AuthFooterLink,\n} from '#frontend/components/auth/auth-footer.tsx';\nimport { AuthPageHeader } from '#frontend/components/auth/auth-page-header.tsx';\nimport { Alert } from '#frontend/components/ui/alert.tsx';\nimport { RouteErrorFallback } from '#frontend/components/ui/route-error-fallback.tsx';\nimport { AuthLayout } from '#frontend/features/layout/auth-layout.tsx';\nimport {\n buildAuthenticatedAuthorizeUrl,\n extractOAuthParams,\n isOAuthFlow,\n OAuthSearchSchema,\n} from '#frontend/libs/oauth-search.ts';\nimport { classifyPasskeyError } from '#frontend/libs/passkey-error.ts';\nimport { tick } from '#frontend/libs/promise.ts';\nimport { appConfigQueryOptions } from '#frontend/queries/config.ts';\nimport { registerPasskeyMutationOptions } from '#frontend/queries/passkey.ts';\nimport { getSessionQueryOptions } from '#frontend/queries/session.ts';\n\nconst SearchSchema = OAuthSearchSchema.extend({\n passkey_name: z.string().optional(),\n});\n\nexport const Route = createFileRoute('/setup/passkey/')({\n component: SetupPasskey,\n errorComponent: RouteErrorFallback,\n loader: async ({ context }) => {\n await context.queryClient.ensureQueryData(appConfigQueryOptions);\n },\n validateSearch: SearchSchema,\n});\n\ntype SetupStep = 'form' | 'registering' | 'error';\n\nfunction SetupPasskey() {\n const { t } = useTranslation();\n const router = useRouter();\n const queryClient = useQueryClient();\n const search = Route.useSearch();\n const { data: appConfig } = useSuspenseQuery(appConfigQueryOptions);\n\n const [step, setStep] = useState<SetupStep>(\n search.passkey_name ? 'registering' : 'form',\n );\n const [errorMessage, setErrorMessage] = useState<string>('');\n const autoRegisterCalledRef = useRef(false);\n const canUseTotpSetup =\n appConfig.auth.password.enabled &&\n appConfig.auth.password.two_factor.enrollment_required &&\n appConfig.auth.password.totp.enabled;\n\n const formSchema = useMemo(\n () =>\n z.object({\n name: z.string().max(100, t('validation.passkey.name.max')),\n }),\n [t],\n );\n\n type FormValues = z.infer<typeof formSchema>;\n\n const {\n register,\n handleSubmit,\n formState: { errors },\n } = useForm<FormValues>({\n defaultValues: { name: '' },\n resolver: standardSchemaResolver(formSchema),\n });\n\n const registerMutation = useMutation({\n ...registerPasskeyMutationOptions,\n onSuccess: async (data) => {\n if (data.second_factor_setup_completed && data.user) {\n queryClient.setQueryData(getSessionQueryOptions.queryKey, {\n user: data.user,\n });\n await tick();\n\n if (isOAuthFlow(search)) {\n window.location.href = buildAuthenticatedAuthorizeUrl(search);\n } else {\n router.navigate({ to: '/profile' });\n }\n } else {\n queryClient.invalidateQueries({\n queryKey: getSessionQueryOptions.queryKey,\n });\n router.navigate({ to: '/profile' });\n }\n },\n onError: (error) => {\n setStep('error');\n const reason = classifyPasskeyError(error);\n\n switch (reason) {\n case 'unsupported':\n setErrorMessage(t('setupPasskey.error.unsupported'));\n return;\n case 'not_allowed':\n setErrorMessage(t('setupPasskey.error.notAllowed'));\n return;\n case 'expired':\n setErrorMessage(t('setupPasskey.error.expired'));\n return;\n case 'user_mismatch':\n case 'verification_failed':\n setErrorMessage(t('setupPasskey.error.failed'));\n return;\n }\n },\n onSettled: () => {\n queryClient.invalidateQueries({\n queryKey: getSessionQueryOptions.queryKey,\n });\n },\n });\n\n useEffect(() => {\n if (search.passkey_name && !autoRegisterCalledRef.current) {\n autoRegisterCalledRef.current = true;\n registerMutation.mutate({ name: search.passkey_name });\n }\n }, [registerMutation, search.passkey_name]);\n\n const onSubmit = (values: FormValues) => {\n setStep('registering');\n setErrorMessage('');\n registerMutation.mutate({ name: values.name || undefined });\n };\n\n // Registering state - waiting for WebAuthn\n if (step === 'registering') {\n return (\n <AuthLayout>\n <AuthPageHeader\n subtitle={t('setupPasskey.subtitle')}\n title={t('setupPasskey.title')}\n />\n <div className=\"flex flex-col items-center gap-tinyrack-lg py-tinyrack-xl\">\n <FingerprintIcon\n aria-hidden\n className=\"size-tinyrack-3xl animate-pulse text-tinyrack-primary\"\n />\n <TRText align=\"center\" as=\"p\" color=\"muted\" variant=\"body\">\n {t('setupPasskey.waiting')}\n </TRText>\n </div>\n </AuthLayout>\n );\n }\n\n // Error state\n if (step === 'error') {\n return (\n <AuthLayout>\n <AuthPageHeader\n subtitle={t('setupPasskey.subtitle')}\n title={t('setupPasskey.title')}\n />\n <Alert icon={CircleAlertIcon} type=\"error\">\n {errorMessage}\n </Alert>\n\n <div className=\"flex flex-col gap-tinyrack-sm\">\n {canUseTotpSetup && (\n <TRLinkButton\n className=\"w-full gap-tinyrack-sm\"\n intent=\"primary\"\n render={\n <Link search={extractOAuthParams(search)} to=\"/setup/totp\" />\n }\n uiSize=\"lg\"\n >\n <ShieldCheckIcon aria-hidden className=\"size-tinyrack-xl\" />\n {t('setupPasskey.useTotp')}\n </TRLinkButton>\n )}\n <TRButton\n appearance={canUseTotpSetup ? 'outline' : 'solid'}\n className=\"w-full\"\n intent={canUseTotpSetup ? 'neutral' : 'primary'}\n onClick={() => {\n if (search.passkey_name) {\n setStep('registering');\n setErrorMessage('');\n registerMutation.mutate({ name: search.passkey_name });\n } else {\n setStep('form');\n }\n }}\n type=\"button\"\n uiSize=\"lg\"\n >\n {t('setupPasskey.retry')}\n </TRButton>\n </div>\n\n <AuthFooter>\n <AuthFooterLink\n link={\n <Link search={extractOAuthParams(search)} to=\"/login\">\n {t('setupPasskey.backToLogin')}\n </Link>\n }\n />\n </AuthFooter>\n </AuthLayout>\n );\n }\n\n // Form state\n return (\n <AuthLayout>\n <AuthPageHeader\n subtitle={t('setupPasskey.subtitle')}\n title={t('setupPasskey.title')}\n />\n\n <Alert icon={ShieldCheckIcon} type=\"info\">\n {t('setupPasskey.required')}\n </Alert>\n\n <TRText align=\"center\" as=\"p\" color=\"muted\" variant=\"bodySm\">\n {t('setupPasskey.description')}\n </TRText>\n\n <form\n className=\"flex flex-col gap-tinyrack-lg\"\n onSubmit={handleSubmit(onSubmit)}\n >\n <AuthField\n error={errors.name}\n hint={t('setupPasskey.name.hint')}\n icon={TagIcon}\n id=\"passkey-name\"\n label={t('setupPasskey.name.label')}\n placeholder={t('setupPasskey.name.placeholder')}\n {...register('name')}\n type=\"text\"\n />\n\n <TRButton\n className=\"w-full\"\n intent=\"primary\"\n loading={registerMutation.isPending}\n loadingLabel={t('setupPasskey.registering')}\n type=\"submit\"\n uiSize=\"lg\"\n >\n {t('setupPasskey.continue')}\n </TRButton>\n </form>\n\n <AuthFooter>\n <AuthFooterLink\n link={\n <Link search={extractOAuthParams(search)} to=\"/login\">\n {t('setupPasskey.backToLogin')}\n </Link>\n }\n />\n </AuthFooter>\n </AuthLayout>\n );\n}\n"],"mappings":"wCAsDkD,IAAAE,EA3BzCF"}
@@ -0,0 +1,2 @@
1
+ import{J as e,U as t,Z as n,i as r,q as i,s as a}from"./createLucideIcon-BPpAIXR_.js";import{On as o,Sn as s,Sr as c,i as l,n as u,r as d,ur as f}from"./config-DTQCUlfZ.js";import{t as p}from"./useMutation-BWZ0G4Td.js";import{t as m}from"./useQuery-Ckxjmvtl.js";import{t as h}from"./fingerprint-pattern-DP62Vk8x.js";import{F as g,N as _,R as v,S as y,j as b,m as x,z as S}from"./index-CS23Ozt6.js";import{t as C}from"./auth-page-header-CIn2E4zI.js";import{t as w}from"./alert-leqyvHOp.js";import{t as T}from"./auth-layout-VtpryDof.js";import{t as E}from"./promise-OpBtq8tG.js";import{n as D,t as O}from"./auth-footer-Cz5ivsDc.js";import{t as k}from"./passkey-error-ZqqPQUta.js";import{t as A}from"./passkey-J1qnYp9A.js";var j=n(e()),M=f({queryKey:u.pendingSecondFactorMethods(),queryFn:async()=>l(await d.api.auth[`2fa`].methods.$get()),retry:!1}),N=i();function P(){let{t:e}=r(),n=o(),i=c(),l=x.useSearch(),[u,d]=(0,j.useState)(null),f=(0,j.useRef)(!1),P=m({...M,enabled:u!==null}).data?.methods.includes(`totp`)??!1,F=t=>{switch(t){case`unsupported`:return e(`verifyPasskey.error.unsupported`);case`not_allowed`:return e(`verifyPasskey.error.notAllowed`);case`expired`:return e(`verifyPasskey.error.expired`);case`user_mismatch`:return e(`verifyPasskey.error.userMismatch`);case`verification_failed`:return e(`verifyPasskey.error.failed`)}},I=p({...A,onSuccess:async e=>{e.user&&(i.setQueryData(y.queryKey,{user:e.user}),await E(),g(l)?window.location.href=b(l):n.navigate({to:`/profile`}))},onError:async e=>{let t=k(e);d({message:F(t),reason:t})},onSettled:()=>{i.invalidateQueries({queryKey:y.queryKey})}});return(0,j.useEffect)(()=>{f.current||(f.current=!0,I.mutate())},[I]),(0,N.jsxs)(T,{children:[(0,N.jsx)(C,{align:`center`,subtitle:e(`verifyPasskey.subtitle`),title:e(`verifyPasskey.title`)}),(0,N.jsxs)(`div`,{className:`flex flex-col items-center gap-tinyrack-lg`,children:[(0,N.jsx)(`div`,{className:`flex size-tinyrack-3xl items-center justify-center rounded-tinyrack-full bg-tinyrack-surface-muted`,children:(0,N.jsx)(h,{"aria-hidden":!0,className:`size-tinyrack-2xl text-tinyrack-text-muted`})}),I.isPending&&(0,N.jsxs)(`div`,{className:`flex flex-col items-center gap-tinyrack-sm`,children:[(0,N.jsx)(t,{uiSize:`md`}),(0,N.jsx)(`p`,{className:`text-center text-tinyrack-sm text-tinyrack-text-muted`,children:e(`verifyPasskey.waiting`)})]}),u&&(0,N.jsxs)(`div`,{className:`flex w-full flex-col items-center gap-tinyrack-md`,children:[(0,N.jsx)(w,{className:`w-full`,icon:v,type:`error`,children:u.message}),P&&(0,N.jsx)(S,{className:`w-full`,intent:`primary`,render:(0,N.jsx)(s,{search:_(l),to:`/verify/totp`}),uiSize:`lg`,children:e(`verifyPasskey.useTotp`)}),(0,N.jsx)(a,{appearance:P?`outline`:`solid`,className:`w-full`,intent:P?`neutral`:`primary`,onClick:()=>{d(null),I.mutate()},type:`button`,uiSize:`lg`,children:e(`verifyPasskey.retry`)})]})]}),(0,N.jsx)(O,{children:(0,N.jsx)(D,{link:(0,N.jsx)(s,{search:l,to:`/login`,children:e(`verifyPasskey.backToLogin`)})})})]})}export{P as component};
2
+ //# sourceMappingURL=passkey-CynCz1Dt.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"passkey-CynCz1Dt.js","names":["useMutation","useQuery","useQueryClient","Link","useRouter","TRButton","TRLinkButton","TRSpinner","CircleAlertIcon","FingerprintIcon","useEffect","useRef","useState","useTranslation","AuthFooter","AuthFooterLink","AuthPageHeader","Alert","AuthLayout","buildAuthenticatedAuthorizeUrl","extractOAuthParams","isOAuthFlow","classifyPasskeyError","tick","authenticateWithPasskeyMutationOptions","getPendingSecondFactorMethodsQueryOptions","getSessionQueryOptions","Route","VerifyPasskey","t","router","queryClient","search","useSearch","error","setError","message","reason","PasskeyErrorReason","hasStarted","pendingMethodsQuery","enabled","canUseTotp","data","methods","includes","getErrorMessage","verifyMutation","onSuccess","user","setQueryData","queryKey","window","location","href","navigate","to","onError","err","onSettled","invalidateQueries","current","mutate","isPending","component"],"sources":["../../../frontend/src/queries/second-factor.ts","../../../frontend/src/routes/verify/passkey/index.tsx?tsr-split=component"],"sourcesContent":["import { queryOptions } from '@tanstack/react-query';\nimport type { InferResponseType } from 'hono/client';\nimport { client, jsonOk } from '#frontend/libs/api.ts';\nimport { queryKeys } from './keys';\n\nexport type PendingSecondFactorMethodsResponse = InferResponseType<\n (typeof client.api.auth)['2fa']['methods']['$get'],\n 200\n>;\n\nexport const getPendingSecondFactorMethodsQueryOptions = queryOptions({\n queryKey: queryKeys.pendingSecondFactorMethods(),\n queryFn: async () => {\n const res = await client.api.auth['2fa'].methods.$get();\n return jsonOk(res);\n },\n retry: false,\n});\n","import { useMutation, useQuery, useQueryClient } from '@tanstack/react-query';\nimport { createFileRoute, Link, useRouter } from '@tanstack/react-router';\nimport { TRButton } from '@tinyrack/ui/components/button';\nimport { TRLinkButton } from '@tinyrack/ui/components/link-button';\nimport { TRSpinner } from '@tinyrack/ui/components/spinner';\nimport { CircleAlertIcon, FingerprintIcon } from 'lucide-react';\nimport { useEffect, useRef, useState } from 'react';\nimport { useTranslation } from 'react-i18next';\nimport {\n AuthFooter,\n AuthFooterLink,\n} from '#frontend/components/auth/auth-footer.tsx';\nimport { AuthPageHeader } from '#frontend/components/auth/auth-page-header.tsx';\nimport { Alert } from '#frontend/components/ui/alert.tsx';\nimport { AuthLayout } from '#frontend/features/layout/auth-layout.tsx';\nimport {\n buildAuthenticatedAuthorizeUrl,\n extractOAuthParams,\n isOAuthFlow,\n OAuthSearchSchema,\n} from '#frontend/libs/oauth-search.ts';\nimport {\n classifyPasskeyError,\n type PasskeyErrorReason,\n} from '#frontend/libs/passkey-error.ts';\nimport { tick } from '#frontend/libs/promise.ts';\nimport { authenticateWithPasskeyMutationOptions } from '#frontend/queries/passkey.ts';\nimport { getPendingSecondFactorMethodsQueryOptions } from '#frontend/queries/second-factor.ts';\nimport { getSessionQueryOptions } from '#frontend/queries/session.ts';\n\nconst SearchSchema = OAuthSearchSchema;\n\nexport const Route = createFileRoute('/verify/passkey/')({\n component: VerifyPasskey,\n validateSearch: SearchSchema,\n});\n\nfunction VerifyPasskey() {\n const { t } = useTranslation();\n const router = useRouter();\n const queryClient = useQueryClient();\n const search = Route.useSearch();\n const [error, setError] = useState<{\n message: string;\n reason: PasskeyErrorReason;\n } | null>(null);\n const hasStarted = useRef(false);\n const pendingMethodsQuery = useQuery({\n ...getPendingSecondFactorMethodsQueryOptions,\n enabled: error !== null,\n });\n const canUseTotp =\n pendingMethodsQuery.data?.methods.includes('totp') ?? false;\n\n const getErrorMessage = (reason: PasskeyErrorReason) => {\n switch (reason) {\n case 'unsupported':\n return t('verifyPasskey.error.unsupported');\n case 'not_allowed':\n return t('verifyPasskey.error.notAllowed');\n case 'expired':\n return t('verifyPasskey.error.expired');\n case 'user_mismatch':\n return t('verifyPasskey.error.userMismatch');\n case 'verification_failed':\n return t('verifyPasskey.error.failed');\n }\n };\n\n const verifyMutation = useMutation({\n ...authenticateWithPasskeyMutationOptions,\n onSuccess: async (data) => {\n if (data.user) {\n queryClient.setQueryData(getSessionQueryOptions.queryKey, {\n user: data.user,\n });\n await tick();\n\n if (isOAuthFlow(search)) {\n window.location.href = buildAuthenticatedAuthorizeUrl(search);\n } else {\n router.navigate({ to: '/profile' });\n }\n }\n },\n onError: async (err) => {\n const reason = classifyPasskeyError(err);\n setError({\n message: getErrorMessage(reason),\n reason,\n });\n },\n onSettled: () => {\n queryClient.invalidateQueries({\n queryKey: getSessionQueryOptions.queryKey,\n });\n },\n });\n\n // Auto-start passkey authentication on mount (with guard for StrictMode)\n useEffect(() => {\n if (hasStarted.current) return;\n hasStarted.current = true;\n verifyMutation.mutate();\n }, [verifyMutation]);\n\n return (\n <AuthLayout>\n {/*\n Centred: this screen has no form to scan, only a device prompt to wait\n on, so the eye has nothing to follow down a left edge.\n */}\n <AuthPageHeader\n align=\"center\"\n subtitle={t('verifyPasskey.subtitle')}\n title={t('verifyPasskey.title')}\n />\n\n <div className=\"flex flex-col items-center gap-tinyrack-lg\">\n <div className=\"flex size-tinyrack-3xl items-center justify-center rounded-tinyrack-full bg-tinyrack-surface-muted\">\n <FingerprintIcon\n aria-hidden\n className=\"size-tinyrack-2xl text-tinyrack-text-muted\"\n />\n </div>\n\n {verifyMutation.isPending && (\n <div className=\"flex flex-col items-center gap-tinyrack-sm\">\n <TRSpinner uiSize=\"md\" />\n <p className=\"text-center text-tinyrack-sm text-tinyrack-text-muted\">\n {t('verifyPasskey.waiting')}\n </p>\n </div>\n )}\n\n {error && (\n <div className=\"flex w-full flex-col items-center gap-tinyrack-md\">\n <Alert className=\"w-full\" icon={CircleAlertIcon} type=\"error\">\n {error.message}\n </Alert>\n {canUseTotp && (\n <TRLinkButton\n className=\"w-full\"\n intent=\"primary\"\n render={\n <Link search={extractOAuthParams(search)} to=\"/verify/totp\" />\n }\n uiSize=\"lg\"\n >\n {t('verifyPasskey.useTotp')}\n </TRLinkButton>\n )}\n <TRButton\n appearance={canUseTotp ? 'outline' : 'solid'}\n className=\"w-full\"\n intent={canUseTotp ? 'neutral' : 'primary'}\n onClick={() => {\n setError(null);\n verifyMutation.mutate();\n }}\n type=\"button\"\n uiSize=\"lg\"\n >\n {t('verifyPasskey.retry')}\n </TRButton>\n </div>\n )}\n </div>\n\n <AuthFooter>\n <AuthFooterLink\n link={\n <Link search={search} to=\"/login\">\n {t('verifyPasskey.backToLogin')}\n </Link>\n }\n />\n </AuthFooter>\n </AuthLayout>\n );\n}\n"],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ import{i as e,n as t,r as n,ur as r}from"./config-DTQCUlfZ.js";import{t as i}from"./mutationOptions-DyYFUbyn.js";function a(e){let t=new Uint8Array(e),n=``;for(let e of t)n+=String.fromCharCode(e);return btoa(n).replace(/\+/g,`-`).replace(/\//g,`_`).replace(/=/g,``)}function o(e){let t=e.replace(/-/g,`+`).replace(/_/g,`/`),n=(4-t.length%4)%4,r=t.padEnd(t.length+n,`=`),i=atob(r),a=new ArrayBuffer(i.length),o=new Uint8Array(a);for(let e=0;e<i.length;e++)o[e]=i.charCodeAt(e);return a}function s(){return c.stubThis(globalThis?.PublicKeyCredential!==void 0&&typeof globalThis.PublicKeyCredential==`function`)}var c={stubThis:e=>e};function l(e){let{id:t}=e;return{...e,id:o(t),transports:e.transports}}function u(e){return e===`localhost`||/^((xn--[a-z0-9-]+|[a-z0-9]+(-[a-z0-9]+)*)\.)+([a-z]{2,}|xn--[a-z0-9-]+)$/i.test(e)}var d=class extends Error{constructor({message:e,code:t,cause:n,name:r}){super(e,{cause:n}),Object.defineProperty(this,"code",{enumerable:!0,configurable:!0,writable:!0,value:void 0}),this.name=r??n.name,this.code=t}};function f({error:e,options:t}){let{publicKey:n}=t;if(!n)throw Error(`options was missing required publicKey property`);if(e.name===`AbortError`){if(t.signal instanceof AbortSignal)return new d({message:`Registration ceremony was sent an abort signal`,code:`ERROR_CEREMONY_ABORTED`,cause:e})}else if(e.name===`ConstraintError`){if(n.authenticatorSelection?.requireResidentKey===!0)return new d({message:`Discoverable credentials were required but no available authenticator supported it`,code:`ERROR_AUTHENTICATOR_MISSING_DISCOVERABLE_CREDENTIAL_SUPPORT`,cause:e});if(t.mediation===`conditional`&&n.authenticatorSelection?.userVerification===`required`)return new d({message:`User verification was required during automatic registration but it could not be performed`,code:`ERROR_AUTO_REGISTER_USER_VERIFICATION_FAILURE`,cause:e});if(n.authenticatorSelection?.userVerification===`required`)return new d({message:`User verification was required but no available authenticator supported it`,code:`ERROR_AUTHENTICATOR_MISSING_USER_VERIFICATION_SUPPORT`,cause:e})}else if(e.name===`InvalidStateError`)return new d({message:`The authenticator was previously registered`,code:`ERROR_AUTHENTICATOR_PREVIOUSLY_REGISTERED`,cause:e});else if(e.name===`NotAllowedError`)return new d({message:e.message,code:`ERROR_PASSTHROUGH_SEE_CAUSE_PROPERTY`,cause:e});else if(e.name===`NotSupportedError`)return n.pubKeyCredParams.filter(e=>e.type===`public-key`).length===0?new d({message:`No entry in pubKeyCredParams was of type "public-key"`,code:`ERROR_MALFORMED_PUBKEYCREDPARAMS`,cause:e}):new d({message:`No available authenticator supported any of the specified pubKeyCredParams algorithms`,code:`ERROR_AUTHENTICATOR_NO_SUPPORTED_PUBKEYCREDPARAMS_ALG`,cause:e});else if(e.name===`SecurityError`){let t=globalThis.location.hostname;if(!u(t))return new d({message:`${globalThis.location.hostname} is an invalid domain`,code:`ERROR_INVALID_DOMAIN`,cause:e});if(n.rp.id!==t)return new d({message:`The RP ID "${n.rp.id}" is invalid for this domain`,code:`ERROR_INVALID_RP_ID`,cause:e})}else if(e.name===`TypeError`){if(n.user.id.byteLength<1||n.user.id.byteLength>64)return new d({message:`User ID was not between 1 and 64 characters`,code:`ERROR_INVALID_USER_ID_LENGTH`,cause:e})}else if(e.name===`UnknownError`)return new d({message:`The authenticator was unable to process the specified options, or could not create a new credential`,code:`ERROR_AUTHENTICATOR_GENERAL_ERROR`,cause:e});return e}var p=new class{constructor(){Object.defineProperty(this,"controller",{enumerable:!0,configurable:!0,writable:!0,value:void 0})}createNewAbortSignal(){if(this.controller){let e=Error(`Cancelling existing WebAuthn API call for new one`);e.name=`AbortError`,this.controller.abort(e)}let e=new AbortController;return this.controller=e,e.signal}cancelCeremony(){if(this.controller){let e=Error(`Manually cancelling existing WebAuthn API call`);e.name=`AbortError`,this.controller.abort(e),this.controller=void 0}}},m=[`cross-platform`,`platform`];function h(e){if(e&&!(m.indexOf(e)<0))return e}async function g(e){!e.optionsJSON&&e.challenge&&(console.warn(`startRegistration() was not called correctly. It will try to continue with the provided options, but this call should be refactored to use the expected call structure instead. See https://simplewebauthn.dev/docs/packages/browser#typeerror-cannot-read-properties-of-undefined-reading-challenge for more information.`),e={optionsJSON:e});let{optionsJSON:t,useAutoRegister:n=!1}=e;if(!s())throw Error(`WebAuthn is not supported in this browser`);let r={...t,challenge:o(t.challenge),user:{...t.user,id:o(t.user.id)},excludeCredentials:t.excludeCredentials?.map(l)},i={};n&&(i.mediation=`conditional`),i.publicKey=r,i.signal=p.createNewAbortSignal();let c;try{c=await navigator.credentials.create(i)}catch(e){throw f({error:e,options:i})}if(!c)throw Error(`Registration was not completed`);let{id:u,rawId:d,response:m,type:g}=c,v;typeof m.getTransports==`function`&&(v=m.getTransports());let y;if(typeof m.getPublicKeyAlgorithm==`function`)try{y=m.getPublicKeyAlgorithm()}catch(e){_(`getPublicKeyAlgorithm()`,e)}let b;if(typeof m.getPublicKey==`function`)try{let e=m.getPublicKey();e!==null&&(b=a(e))}catch(e){_(`getPublicKey()`,e)}let x;if(typeof m.getAuthenticatorData==`function`)try{x=a(m.getAuthenticatorData())}catch(e){_(`getAuthenticatorData()`,e)}return{id:u,rawId:a(d),response:{attestationObject:a(m.attestationObject),clientDataJSON:a(m.clientDataJSON),transports:v,publicKeyAlgorithm:y,publicKey:b,authenticatorData:x},type:g,clientExtensionResults:c.getClientExtensionResults(),authenticatorAttachment:h(c.authenticatorAttachment)}}function _(e,t){console.warn(`The browser extension that intercepted this WebAuthn API call incorrectly implemented ${e}. You should report this error to them.\n`,t)}function v(){if(!s())return y.stubThis(new Promise(e=>e(!1)));let e=globalThis.PublicKeyCredential;return e?.isConditionalMediationAvailable===void 0?y.stubThis(new Promise(e=>e(!1))):y.stubThis(e.isConditionalMediationAvailable())}var y={stubThis:e=>e};function b({error:e,options:t}){let{publicKey:n}=t;if(!n)throw Error(`options was missing required publicKey property`);if(e.name===`AbortError`){if(t.signal instanceof AbortSignal)return new d({message:`Authentication ceremony was sent an abort signal`,code:`ERROR_CEREMONY_ABORTED`,cause:e})}else if(e.name===`NotAllowedError`)return new d({message:e.message,code:`ERROR_PASSTHROUGH_SEE_CAUSE_PROPERTY`,cause:e});else if(e.name===`SecurityError`){let t=globalThis.location.hostname;if(!u(t))return new d({message:`${globalThis.location.hostname} is an invalid domain`,code:`ERROR_INVALID_DOMAIN`,cause:e});if(n.rpId!==t)return new d({message:`The RP ID "${n.rpId}" is invalid for this domain`,code:`ERROR_INVALID_RP_ID`,cause:e})}else if(e.name===`UnknownError`)return new d({message:`The authenticator was unable to process the specified options, or could not create a new assertion signature`,code:`ERROR_AUTHENTICATOR_GENERAL_ERROR`,cause:e});return e}async function x(e){!e.optionsJSON&&e.challenge&&(console.warn(`startAuthentication() was not called correctly. It will try to continue with the provided options, but this call should be refactored to use the expected call structure instead. See https://simplewebauthn.dev/docs/packages/browser#typeerror-cannot-read-properties-of-undefined-reading-challenge for more information.`),e={optionsJSON:e});let{optionsJSON:t,useBrowserAutofill:n=!1,verifyBrowserAutofillInput:r=!0}=e;if(!s())throw Error(`WebAuthn is not supported in this browser`);let i;t.allowCredentials?.length!==0&&(i=t.allowCredentials?.map(l));let c={...t,challenge:o(t.challenge),allowCredentials:i},u={};if(n){if(!await v())throw Error(`Browser does not support WebAuthn autofill`);if(document.querySelectorAll(`input[autocomplete$='webauthn']`).length<1&&r)throw Error('No <input> with "webauthn" as the only or last value in its `autocomplete` attribute was detected');u.mediation=`conditional`,c.allowCredentials=[]}u.publicKey=c,u.signal=p.createNewAbortSignal();let d;try{d=await navigator.credentials.get(u)}catch(e){throw b({error:e,options:u})}if(!d)throw Error(`Authentication was not completed`);let{id:f,rawId:m,response:g,type:_}=d,y;return g.userHandle&&(y=a(g.userHandle)),{id:f,rawId:a(m),response:{authenticatorData:a(g.authenticatorData),clientDataJSON:a(g.clientDataJSON),signature:a(g.signature),userHandle:y},type:_,clientExtensionResults:d.getClientExtensionResults(),authenticatorAttachment:h(d.authenticatorAttachment)}}var S=r({queryKey:t.passkeys(),queryFn:async()=>e(await n.api.user.passkeys.$get())}),C=i({mutationFn:async t=>{let{options:r}=await e(await n.api.user.passkeys.register.options.$post()),i=await g({optionsJSON:r});return e(await n.api.user.passkeys.register.verify.$post({json:{response:i,name:t.name}}))}}),w=i({mutationFn:async t=>e(await n.api.user.passkeys[`:id`].$delete({param:{id:t.id}}))}),T=i({mutationFn:async t=>e(await n.api.user.passkeys[`:id`].$patch({param:{id:t.id},json:{name:t.name}}))}),E=i({mutationFn:async()=>{let{options:t}=await e(await n.api.auth.passkey.options.$post()),r=await x({optionsJSON:t});return e(await n.api.auth.passkey.verify.$post({json:{response:{...r,clientExtensionResults:{...r.clientExtensionResults}}}}))}}),D=async(t,r)=>{try{let{options:i}=await e(await n.api.auth.passkey.options.$post({},{init:{signal:r}})),a=await x({optionsJSON:i,useBrowserAutofill:!0});t(await e(await n.api.auth.passkey.verify.$post({json:{response:{...a,clientExtensionResults:{...a.clientExtensionResults}}}},{init:{signal:r}})))}catch(e){e instanceof Error&&e.name}};export{T as a,C as i,w as n,D as o,S as r,E as t};
2
+ //# sourceMappingURL=passkey-J1qnYp9A.js.map