@tempots/beatui 0.81.0 → 0.82.1

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 (237) hide show
  1. package/dist/_commonjsHelpers-DKOUU3wS.cjs +1 -0
  2. package/dist/_commonjsHelpers-DaMA6jEr.js +8 -0
  3. package/dist/{ar-DwHLVgKj.cjs → ar-D7CXDmVZ.cjs} +1 -1
  4. package/dist/{ar-Bo_FZZi7.js → ar-nOSKXpIW.js} +1 -1
  5. package/dist/auth/index.cjs.js +1 -1
  6. package/dist/auth/index.es.js +63 -1349
  7. package/dist/auth-divider-BqZPH1-z.cjs +1 -0
  8. package/dist/auth-divider-Wr-S16kF.js +1355 -0
  9. package/dist/beatui.css +2035 -295
  10. package/dist/beatui.tailwind.css +2036 -296
  11. package/dist/better-auth/index.cjs.js +1 -0
  12. package/dist/better-auth/index.es.js +754 -0
  13. package/dist/{de-zI5mdV4M.cjs → de-WzsOu9Gn.cjs} +1 -1
  14. package/dist/{de-CCqwOkqN.js → de-f2xcEb34.js} +1 -1
  15. package/dist/{deep-merge-1uN6CG6K.js → deep-merge-BYm0y62g.js} +271 -285
  16. package/dist/deep-merge-d7sf0xmN.cjs +1 -0
  17. package/dist/duration-input-B9UNmUCh.cjs +1 -0
  18. package/dist/{duration-input-C9kpsw-t.js → duration-input-DqcJbxKD.js} +31 -29
  19. package/dist/editor-toolbar-group--a-xgsJw.cjs +1 -0
  20. package/dist/editor-toolbar-group-CVpl5mxF.js +31 -0
  21. package/dist/{es-BF02UrPL.js → es-CDqqzpCw.js} +1 -1
  22. package/dist/{es-Cw90CAbu.cjs → es-Ds2Xf3wV.cjs} +1 -1
  23. package/dist/{fa-DPQV4YB8.js → fa-C7tE_hR3.js} +1 -1
  24. package/dist/{fa-B4lssnzR.cjs → fa-Ct1UtDB7.cjs} +1 -1
  25. package/dist/{fr-1Kd6z1F-.cjs → fr-CzAkRFed.cjs} +1 -1
  26. package/dist/{fr-dmxPhwkD.js → fr-yOW_68YY.js} +1 -1
  27. package/dist/{he-BtQbrVt3.js → he-D2oUloCJ.js} +1 -1
  28. package/dist/{he-CJ3XnuPm.cjs → he-DlXALrK7.cjs} +1 -1
  29. package/dist/{hi-BpfnFKHp.cjs → hi-3dBhLwDs.cjs} +1 -1
  30. package/dist/{hi-D_Le4Yka.js → hi-D5ZlZoQq.js} +1 -1
  31. package/dist/{hls.light.min-Bhrf47iR.cjs → hls.light.min-C6xKDzRR.cjs} +1 -1
  32. package/dist/{hls.light.min-C6VwviEa.js → hls.light.min-hEMf_E8u.js} +1 -1
  33. package/dist/{index-CfaWytS2.cjs → index-05UbKOYe.cjs} +1 -1
  34. package/dist/{index-K6u33-GC.cjs → index-Bt7FYl80.cjs} +19 -19
  35. package/dist/{index-YtW7SCWB.js → index-C2Lq1m45.js} +1434 -1463
  36. package/dist/{index-CGEzILlC.js → index-lYhXnu6I.js} +1 -1
  37. package/dist/index.cjs.js +4 -4
  38. package/dist/index.es.js +2389 -2738
  39. package/dist/input-container-C6qEIjcA.cjs +1 -0
  40. package/dist/input-container-DiCjOzR2.js +247 -0
  41. package/dist/{it-DyHjSuHN.js → it-6e6X-4BB.js} +1 -1
  42. package/dist/{it-COCZ9NyB.cjs → it-DohtcWi9.cjs} +1 -1
  43. package/dist/{ja-X43lABza.js → ja-BxNuNo2H.js} +1 -1
  44. package/dist/{ja--NdggLU9.cjs → ja-eyTArrgS.cjs} +1 -1
  45. package/dist/json-schema/index.cjs.js +1 -8
  46. package/dist/json-schema/index.es.js +1359 -7608
  47. package/dist/json-schema-display/index.cjs.js +1 -0
  48. package/dist/json-schema-display/index.es.js +846 -0
  49. package/dist/json-structure/index.cjs.js +1 -1
  50. package/dist/json-structure/index.es.js +542 -698
  51. package/dist/{ko-BUvb0ggK.cjs → ko-BFLCDMMs.cjs} +1 -1
  52. package/dist/{ko-B9g9iw99.js → ko-Ch0jFsBV.js} +1 -1
  53. package/dist/lexical/index.cjs.js +46 -0
  54. package/dist/lexical/index.es.js +21370 -0
  55. package/dist/lexical.css +1124 -0
  56. package/dist/menu-CZzRsQP_.js +372 -0
  57. package/dist/menu-ClrU72xH.cjs +1 -0
  58. package/dist/modal-I5srcntN.cjs +1 -0
  59. package/dist/modal-v3u2Fpnd.js +488 -0
  60. package/dist/{nl-0S25Gsld.cjs → nl-Bx2ACvr4.cjs} +1 -1
  61. package/dist/{nl-Ew5jnSsT.js → nl-NuTdZO1s.js} +1 -1
  62. package/dist/{notice-C-964yaY.js → notice-BuZvdvZh.js} +84 -82
  63. package/dist/notice-CLDdy1MW.cjs +1 -0
  64. package/dist/oneof-branch-detection-DsM1K5xc.cjs +8 -0
  65. package/dist/oneof-branch-detection-Dt8ss9lc.js +6281 -0
  66. package/dist/{pl-C9f6UBSe.js → pl-Bs4nLJ__.js} +1 -1
  67. package/dist/{pl-B3k-K3S4.cjs → pl-QHl6sl8f.cjs} +1 -1
  68. package/dist/prosemirror/index.cjs.js +1 -1
  69. package/dist/prosemirror/index.es.js +1 -1
  70. package/dist/{pt-DYtAvbrw.js → pt-BETjHZrL.js} +1 -1
  71. package/dist/{pt-CKoikRO5.cjs → pt-DZGw2Z-1.cjs} +1 -1
  72. package/dist/{ru-ZexN-b8V.js → ru-Bi1_DEKM.js} +1 -1
  73. package/dist/{ru-COb7RSDt.cjs → ru-D03IuLqh.cjs} +1 -1
  74. package/dist/session-id-3KiilioY.js +8 -0
  75. package/dist/session-id-B5lJMzbB.cjs +1 -0
  76. package/dist/stack-BJgsPJ9A.js +873 -0
  77. package/dist/stack-DcZ_u50f.cjs +1 -0
  78. package/dist/string-B9vVyfq3.cjs +1 -0
  79. package/dist/string-DYyMxBl-.js +19 -0
  80. package/dist/styles-url-B2dzXrYt.cjs +1 -0
  81. package/dist/styles-url-Cw_mxshe.js +4 -0
  82. package/dist/text-input-B3VBat1k.js +44 -0
  83. package/dist/text-input-Ds8e7Z1G.cjs +1 -0
  84. package/dist/{toolbar-DNpBIoJo.js → toolbar-D994_E_s.js} +4 -4
  85. package/dist/toolbar-x0_8lmKu.cjs +1 -0
  86. package/dist/{tr-tO_EH-Y2.cjs → tr-B_-_1wua.cjs} +1 -1
  87. package/dist/{tr-BDvn05-H.js → tr-DiYB-FwX.js} +1 -1
  88. package/dist/translations-B4-Zd2LM.cjs +1 -0
  89. package/dist/translations-Cq8bUKJP.js +584 -0
  90. package/dist/{translations-DwGC_94w.cjs → translations-D62qqNV9.cjs} +1 -1
  91. package/dist/{translations-CfWR4loD.js → translations-DPr6c05Z.js} +1 -1
  92. package/dist/types/better-auth/bridge.d.ts +2 -0
  93. package/dist/types/better-auth/callbacks.d.ts +6 -0
  94. package/dist/types/better-auth/components/authenticated.d.ts +4 -0
  95. package/dist/types/better-auth/components/better-auth-container.d.ts +4 -0
  96. package/dist/types/better-auth/components/better-auth-modal.d.ts +4 -0
  97. package/dist/types/better-auth/components/magic-link-form.d.ts +7 -0
  98. package/dist/types/better-auth/components/passkey-management.d.ts +6 -0
  99. package/dist/types/better-auth/components/passkey-signin.d.ts +12 -0
  100. package/dist/types/better-auth/components/two-factor-setup.d.ts +8 -0
  101. package/dist/types/better-auth/components/two-factor-verify.d.ts +10 -0
  102. package/dist/types/better-auth/i18n/default.d.ts +29 -0
  103. package/dist/types/better-auth/i18n/locales/en.d.ts +28 -0
  104. package/dist/types/better-auth/i18n/translations.d.ts +27 -0
  105. package/dist/types/better-auth/index.d.ts +22 -0
  106. package/dist/types/better-auth/provider.d.ts +6 -0
  107. package/dist/types/better-auth/session.d.ts +14 -0
  108. package/dist/types/better-auth/social-mapping.d.ts +2 -0
  109. package/dist/types/better-auth/types.d.ts +164 -0
  110. package/dist/types/components/auth/auth-container.d.ts +1 -1
  111. package/dist/types/components/auth/social-providers.d.ts +1 -1
  112. package/dist/types/components/auth/types.d.ts +2 -0
  113. package/dist/types/components/editor-toolbar/editor-toolbar-button.d.ts +16 -0
  114. package/dist/types/components/editor-toolbar/editor-toolbar-group.d.ts +9 -0
  115. package/dist/types/components/editor-toolbar/index.d.ts +2 -0
  116. package/dist/types/components/json-schema-display/display-widget-customization.d.ts +61 -0
  117. package/dist/types/components/json-schema-display/display-wrapper.d.ts +14 -0
  118. package/dist/types/components/json-schema-display/displays/any-display.d.ts +14 -0
  119. package/dist/types/components/json-schema-display/displays/array-display.d.ts +13 -0
  120. package/dist/types/components/json-schema-display/displays/boolean-display.d.ts +13 -0
  121. package/dist/types/components/json-schema-display/displays/composition-display.d.ts +14 -0
  122. package/dist/types/components/json-schema-display/displays/enum-const-display.d.ts +13 -0
  123. package/dist/types/components/json-schema-display/displays/generic-display.d.ts +18 -0
  124. package/dist/types/components/json-schema-display/displays/null-display.d.ts +13 -0
  125. package/dist/types/components/json-schema-display/displays/number-display.d.ts +13 -0
  126. package/dist/types/components/json-schema-display/displays/object-display.d.ts +13 -0
  127. package/dist/types/components/json-schema-display/displays/string-display.d.ts +14 -0
  128. package/dist/types/components/json-schema-display/index.d.ts +14 -0
  129. package/dist/types/components/json-schema-display/json-schema-display.d.ts +25 -0
  130. package/dist/types/components/json-schema-display/mismatch.d.ts +14 -0
  131. package/dist/types/components/json-structure/controls/control-utils.d.ts +19 -0
  132. package/dist/types/components/json-structure/controls/index.d.ts +1 -0
  133. package/dist/types/components/lexical/bare-editor.d.ts +29 -0
  134. package/dist/types/components/lexical/code/index.d.ts +1 -0
  135. package/dist/types/components/lexical/code/language-selector.d.ts +13 -0
  136. package/dist/types/components/lexical/contextual-editor.d.ts +22 -0
  137. package/dist/types/components/lexical/docked-editor.d.ts +23 -0
  138. package/dist/types/components/lexical/floating/block-handle.d.ts +16 -0
  139. package/dist/types/components/lexical/floating/floating-toolbar.d.ts +12 -0
  140. package/dist/types/components/lexical/floating/index.d.ts +6 -0
  141. package/dist/types/components/lexical/floating/slash-command-palette.d.ts +20 -0
  142. package/dist/types/components/lexical/index.d.ts +8 -0
  143. package/dist/types/components/lexical/lexical-editor-input.d.ts +30 -0
  144. package/dist/types/components/lexical/table/index.d.ts +1 -0
  145. package/dist/types/components/lexical/table/table-controls.d.ts +12 -0
  146. package/dist/types/components/lexical/toolbar/index.d.ts +6 -0
  147. package/dist/types/components/lexical/toolbar/lexical-toolbar.d.ts +12 -0
  148. package/dist/types/components/lexical/toolbar/toolbar-button.d.ts +1 -0
  149. package/dist/types/components/lexical/toolbar/toolbar-group.d.ts +1 -0
  150. package/dist/types/components/lexical/toolbar/toolbar-helpers.d.ts +30 -0
  151. package/dist/types/components/prosemirror/etoolbar-button.d.ts +1 -11
  152. package/dist/types/components/prosemirror/etoolbar-group.d.ts +1 -4
  153. package/dist/types/json-schema-display/index.d.ts +1 -0
  154. package/dist/types/lexical/commands/index.d.ts +17 -0
  155. package/dist/types/lexical/headless.d.ts +39 -0
  156. package/dist/types/lexical/horizontal-rule-node.d.ts +20 -0
  157. package/dist/types/lexical/index.d.ts +20 -0
  158. package/dist/types/lexical/lazy-loader.d.ts +35 -0
  159. package/dist/types/lexical/nodes.d.ts +29 -0
  160. package/dist/types/lexical/plugins/auto-link.d.ts +7 -0
  161. package/dist/types/lexical/plugins/clipboard.d.ts +11 -0
  162. package/dist/types/lexical/plugins/code-shiki.d.ts +11 -0
  163. package/dist/types/lexical/plugins/code.d.ts +7 -0
  164. package/dist/types/lexical/plugins/dragon.d.ts +6 -0
  165. package/dist/types/lexical/plugins/file-io.d.ts +10 -0
  166. package/dist/types/lexical/plugins/hashtag.d.ts +7 -0
  167. package/dist/types/lexical/plugins/history.d.ts +7 -0
  168. package/dist/types/lexical/plugins/horizontal-rule.d.ts +12 -0
  169. package/dist/types/lexical/plugins/html-io.d.ts +9 -0
  170. package/dist/types/lexical/plugins/index.d.ts +24 -0
  171. package/dist/types/lexical/plugins/link.d.ts +6 -0
  172. package/dist/types/lexical/plugins/list.d.ts +6 -0
  173. package/dist/types/lexical/plugins/mark.d.ts +15 -0
  174. package/dist/types/lexical/plugins/markdown-io.d.ts +13 -0
  175. package/dist/types/lexical/plugins/offset.d.ts +6 -0
  176. package/dist/types/lexical/plugins/overflow.d.ts +7 -0
  177. package/dist/types/lexical/plugins/plain-text.d.ts +6 -0
  178. package/dist/types/lexical/plugins/rich-text.d.ts +6 -0
  179. package/dist/types/lexical/plugins/selection.d.ts +6 -0
  180. package/dist/types/lexical/plugins/slash-commands.d.ts +26 -0
  181. package/dist/types/lexical/plugins/table.d.ts +11 -0
  182. package/dist/types/lexical/plugins/text.d.ts +13 -0
  183. package/dist/types/lexical/plugins/yjs.d.ts +9 -0
  184. package/dist/types/lexical/styles-url.d.ts +2 -0
  185. package/dist/types/lexical/styles.d.ts +2 -0
  186. package/dist/types/lexical/types.d.ts +634 -0
  187. package/dist/types/lexical-i18n/default.d.ts +92 -0
  188. package/dist/types/lexical-i18n/index.d.ts +21 -0
  189. package/dist/types/lexical-i18n/locales/ar.d.ts +91 -0
  190. package/dist/types/lexical-i18n/locales/de.d.ts +91 -0
  191. package/dist/types/lexical-i18n/locales/en.d.ts +91 -0
  192. package/dist/types/lexical-i18n/locales/es.d.ts +91 -0
  193. package/dist/types/lexical-i18n/locales/fa.d.ts +91 -0
  194. package/dist/types/lexical-i18n/locales/fr.d.ts +91 -0
  195. package/dist/types/lexical-i18n/locales/he.d.ts +91 -0
  196. package/dist/types/lexical-i18n/locales/hi.d.ts +91 -0
  197. package/dist/types/lexical-i18n/locales/it.d.ts +91 -0
  198. package/dist/types/lexical-i18n/locales/ja.d.ts +91 -0
  199. package/dist/types/lexical-i18n/locales/ko.d.ts +91 -0
  200. package/dist/types/lexical-i18n/locales/nl.d.ts +91 -0
  201. package/dist/types/lexical-i18n/locales/pl.d.ts +91 -0
  202. package/dist/types/lexical-i18n/locales/pt.d.ts +91 -0
  203. package/dist/types/lexical-i18n/locales/ru.d.ts +91 -0
  204. package/dist/types/lexical-i18n/locales/tr.d.ts +91 -0
  205. package/dist/types/lexical-i18n/locales/ur.d.ts +91 -0
  206. package/dist/types/lexical-i18n/locales/vi.d.ts +91 -0
  207. package/dist/types/lexical-i18n/locales/zh.d.ts +91 -0
  208. package/dist/types/lexical-i18n/translations.d.ts +21 -0
  209. package/dist/{ur-DbEqQgS6.js → ur-B69X-xNs.js} +1 -1
  210. package/dist/{ur-BbnYJ3HS.cjs → ur-DyUSmIbo.cjs} +1 -1
  211. package/dist/use-animated-toggle-ChycsEoj.js +175 -0
  212. package/dist/use-animated-toggle-DR6CyMac.cjs +1 -0
  213. package/dist/use-form-B56E_x5Y.js +859 -0
  214. package/dist/use-form-Cnp3XQ5X.cjs +2 -0
  215. package/dist/utils-DEbsp9Q9.js +129 -0
  216. package/dist/utils-DIUEhA-Z.cjs +1 -0
  217. package/dist/{vi-CpZUeuSj.js → vi-BdzxA60L.js} +1 -1
  218. package/dist/{vi-ByBwvGQY.cjs → vi-CBmPaHxg.cjs} +1 -1
  219. package/dist/widget-customization-Dk7XcVly.cjs +1 -0
  220. package/dist/widget-customization-Ds9sicAg.js +1073 -0
  221. package/dist/{zh-DnxK0ieB.cjs → zh-Cb1b8uik.cjs} +1 -1
  222. package/dist/{zh-DJyhKO0I.js → zh-Dn1UJiZa.js} +1 -1
  223. package/package.json +59 -8
  224. package/dist/_commonjsHelpers-C6fGbg64.js +0 -6
  225. package/dist/_commonjsHelpers-DwGv2jUC.cjs +0 -1
  226. package/dist/deep-merge-CBIkQM4E.cjs +0 -1
  227. package/dist/duration-input-DHWhQJnn.cjs +0 -1
  228. package/dist/modal-CSHIhHvI.js +0 -654
  229. package/dist/modal-cc8Ehngz.cjs +0 -1
  230. package/dist/notice-C_BWqu2K.cjs +0 -1
  231. package/dist/toolbar-D5FcnRju.cjs +0 -1
  232. package/dist/translations-0tLX4x7M.js +0 -866
  233. package/dist/translations-WPN3ibDg.cjs +0 -1
  234. package/dist/use-form-D4JFOcjo.cjs +0 -2
  235. package/dist/use-form-D4rqJkvG.js +0 -1731
  236. package/dist/widget-customization-BSjJz3_Y.js +0 -1195
  237. package/dist/widget-customization-CrFVrt4V.cjs +0 -1
@@ -0,0 +1,29 @@
1
+ export declare const defaultMessages: {
2
+ twoFactorSetupDescription: string;
3
+ twoFactorEnableButton: string;
4
+ twoFactorVerifyButton: string;
5
+ twoFactorScanDescription: string;
6
+ twoFactorBackupCodesDescription: string;
7
+ twoFactorCodePlaceholder: string;
8
+ twoFactorBackupCodePlaceholder: string;
9
+ twoFactorEnabled: string;
10
+ twoFactorTotpDescription: string;
11
+ twoFactorOtpDescription: string;
12
+ twoFactorBackupDescription: string;
13
+ twoFactorSendOtpButton: string;
14
+ twoFactorMethodLabel: (method: string) => string;
15
+ passwordPlaceholder: string;
16
+ magicLinkDescription: string;
17
+ magicLinkSendButton: string;
18
+ magicLinkSent: string;
19
+ passkeySignInButton: string;
20
+ passkeyAddButton: string;
21
+ passkeyDeleteButton: string;
22
+ passkeyRenameButton: string;
23
+ passkeySaveButton: string;
24
+ passkeyCancelButton: string;
25
+ passkeyNamePlaceholder: string;
26
+ passkeyUnnamed: string;
27
+ };
28
+ export declare const defaultLocale = "en";
29
+ export type BetterAuthMessages = typeof defaultMessages;
@@ -0,0 +1,28 @@
1
+ declare const en: {
2
+ twoFactorSetupDescription: string;
3
+ twoFactorEnableButton: string;
4
+ twoFactorVerifyButton: string;
5
+ twoFactorScanDescription: string;
6
+ twoFactorBackupCodesDescription: string;
7
+ twoFactorCodePlaceholder: string;
8
+ twoFactorBackupCodePlaceholder: string;
9
+ twoFactorEnabled: string;
10
+ twoFactorTotpDescription: string;
11
+ twoFactorOtpDescription: string;
12
+ twoFactorBackupDescription: string;
13
+ twoFactorSendOtpButton: string;
14
+ twoFactorMethodLabel: (method: string) => string;
15
+ passwordPlaceholder: string;
16
+ magicLinkDescription: string;
17
+ magicLinkSendButton: string;
18
+ magicLinkSent: string;
19
+ passkeySignInButton: string;
20
+ passkeyAddButton: string;
21
+ passkeyDeleteButton: string;
22
+ passkeyRenameButton: string;
23
+ passkeySaveButton: string;
24
+ passkeyCancelButton: string;
25
+ passkeyNamePlaceholder: string;
26
+ passkeyUnnamed: string;
27
+ };
28
+ export default en;
@@ -0,0 +1,27 @@
1
+ export declare const BetterAuthI18n: import("@tempots/dom").Provider<import("@tempots/dom").Signal<{
2
+ twoFactorSetupDescription: string;
3
+ twoFactorEnableButton: string;
4
+ twoFactorVerifyButton: string;
5
+ twoFactorScanDescription: string;
6
+ twoFactorBackupCodesDescription: string;
7
+ twoFactorCodePlaceholder: string;
8
+ twoFactorBackupCodePlaceholder: string;
9
+ twoFactorEnabled: string;
10
+ twoFactorTotpDescription: string;
11
+ twoFactorOtpDescription: string;
12
+ twoFactorBackupDescription: string;
13
+ twoFactorSendOtpButton: string;
14
+ twoFactorMethodLabel: (method: string) => string;
15
+ passwordPlaceholder: string;
16
+ magicLinkDescription: string;
17
+ magicLinkSendButton: string;
18
+ magicLinkSent: string;
19
+ passkeySignInButton: string;
20
+ passkeyAddButton: string;
21
+ passkeyDeleteButton: string;
22
+ passkeyRenameButton: string;
23
+ passkeySaveButton: string;
24
+ passkeyCancelButton: string;
25
+ passkeyNamePlaceholder: string;
26
+ passkeyUnnamed: string;
27
+ }>, object>;
@@ -0,0 +1,22 @@
1
+ export type { BetterAuthClient, BetterAuthResult, BetterAuthUser, BetterAuthSession, BetterAuthBridge, BetterAuthBridgeOptions, TwoFactorClient, PasskeyClient, PasskeyInfo, } from './types';
2
+ export { createBetterAuthBridge } from './bridge';
3
+ export { createSessionManager } from './session';
4
+ export type { SessionManager } from './session';
5
+ export { mapSocialProviders } from './social-mapping';
6
+ export { BetterAuth } from './provider';
7
+ export type { BetterAuthProviderOptions } from './provider';
8
+ export { BetterAuthContainer } from './components/better-auth-container';
9
+ export { BetterAuthModal } from './components/better-auth-modal';
10
+ export { Authenticated, Unauthenticated } from './components/authenticated';
11
+ export { TwoFactorSetup } from './components/two-factor-setup';
12
+ export type { TwoFactorSetupOptions } from './components/two-factor-setup';
13
+ export { TwoFactorVerify } from './components/two-factor-verify';
14
+ export type { TwoFactorVerifyOptions, TwoFactorMethod, } from './components/two-factor-verify';
15
+ export { MagicLinkForm } from './components/magic-link-form';
16
+ export type { MagicLinkFormOptions } from './components/magic-link-form';
17
+ export { PasskeySignIn } from './components/passkey-signin';
18
+ export type { PasskeySignInOptions } from './components/passkey-signin';
19
+ export { PasskeyManagement } from './components/passkey-management';
20
+ export type { PasskeyManagementOptions } from './components/passkey-management';
21
+ export { BetterAuthI18n } from './i18n/translations';
22
+ export type { BetterAuthMessages } from './i18n/default';
@@ -0,0 +1,6 @@
1
+ import { Provider } from '@tempots/dom';
2
+ import { BetterAuthBridge, BetterAuthBridgeOptions, BetterAuthClient } from './types';
3
+ export interface BetterAuthProviderOptions extends BetterAuthBridgeOptions {
4
+ client: BetterAuthClient;
5
+ }
6
+ export declare const BetterAuth: Provider<BetterAuthBridge, BetterAuthProviderOptions>;
@@ -0,0 +1,14 @@
1
+ import { Signal } from '@tempots/dom';
2
+ import { BetterAuthClient, BetterAuthSession, BetterAuthUser } from './types';
3
+ export interface SessionManager {
4
+ session: Signal<BetterAuthSession | null>;
5
+ isPending: Signal<boolean>;
6
+ user: Signal<BetterAuthUser | null>;
7
+ isAuthenticated: Signal<boolean>;
8
+ refresh: () => Promise<void>;
9
+ dispose: () => void;
10
+ }
11
+ export declare function createSessionManager(client: BetterAuthClient, options?: {
12
+ refreshInterval?: number;
13
+ onSessionChange?: (session: BetterAuthSession | null) => void;
14
+ }): SessionManager;
@@ -0,0 +1,2 @@
1
+ import { AuthProviderInfo, AuthProviderName } from '../components/auth';
2
+ export declare function mapSocialProviders(providers: AuthProviderName[]): AuthProviderInfo[];
@@ -0,0 +1,164 @@
1
+ import { Signal } from '@tempots/dom';
2
+ import { AuthContainerLabels, AuthContainerOptions, AuthProviderInfo, AuthProviderName, PasswordRules, ResetPasswordFormOptions, SignInFormOptions, SignUpFormOptions } from '../components/auth';
3
+ export interface BetterAuthClient {
4
+ signIn: {
5
+ email: (opts: {
6
+ email: string;
7
+ password: string;
8
+ rememberMe?: boolean;
9
+ callbackURL?: string;
10
+ }) => Promise<BetterAuthResult<unknown>>;
11
+ social: (opts: {
12
+ provider: string;
13
+ callbackURL?: string;
14
+ errorCallbackURL?: string;
15
+ }) => Promise<BetterAuthResult<unknown>>;
16
+ magicLink?: (opts: {
17
+ email: string;
18
+ callbackURL?: string;
19
+ }) => Promise<BetterAuthResult<unknown>>;
20
+ passkey?: (opts?: {
21
+ autoFill?: boolean;
22
+ }) => Promise<BetterAuthResult<unknown>>;
23
+ };
24
+ signUp: {
25
+ email: (opts: {
26
+ name?: string;
27
+ email: string;
28
+ password: string;
29
+ callbackURL?: string;
30
+ }) => Promise<BetterAuthResult<unknown>>;
31
+ };
32
+ signOut: (opts?: object) => Promise<BetterAuthResult<unknown>>;
33
+ getSession: () => Promise<BetterAuthResult<{
34
+ session: unknown;
35
+ user: BetterAuthUser;
36
+ }>>;
37
+ requestPasswordReset: (opts: {
38
+ email: string;
39
+ redirectTo?: string;
40
+ }) => Promise<BetterAuthResult<unknown>>;
41
+ resetPassword?: (opts: {
42
+ newPassword: string;
43
+ token: string;
44
+ }) => Promise<BetterAuthResult<unknown>>;
45
+ changePassword?: (opts: {
46
+ newPassword: string;
47
+ currentPassword: string;
48
+ revokeOtherSessions?: boolean;
49
+ }) => Promise<BetterAuthResult<unknown>>;
50
+ sendVerificationEmail?: (opts: {
51
+ email: string;
52
+ callbackURL: string;
53
+ }) => Promise<BetterAuthResult<unknown>>;
54
+ twoFactor?: TwoFactorClient;
55
+ passkey?: PasskeyClient;
56
+ magicLink?: {
57
+ verify: (opts: {
58
+ token: string;
59
+ }) => Promise<BetterAuthResult<unknown>>;
60
+ };
61
+ }
62
+ export interface BetterAuthResult<T> {
63
+ data: T | null;
64
+ error: {
65
+ message: string;
66
+ status: number;
67
+ statusText: string;
68
+ } | null;
69
+ }
70
+ export interface BetterAuthUser {
71
+ id: string;
72
+ name?: string;
73
+ email: string;
74
+ image?: string;
75
+ }
76
+ export interface TwoFactorClient {
77
+ enable: (opts: {
78
+ password: string;
79
+ issuer?: string;
80
+ }) => Promise<BetterAuthResult<{
81
+ totpURI: string;
82
+ backupCodes: string[];
83
+ }>>;
84
+ disable: (opts: {
85
+ password: string;
86
+ }) => Promise<BetterAuthResult<unknown>>;
87
+ getTotpUri: (opts: {
88
+ password: string;
89
+ }) => Promise<BetterAuthResult<{
90
+ totpURI: string;
91
+ }>>;
92
+ verifyTotp: (opts: {
93
+ code: string;
94
+ trustDevice?: boolean;
95
+ }) => Promise<BetterAuthResult<unknown>>;
96
+ sendOtp?: (opts?: {
97
+ trustDevice?: boolean;
98
+ }) => Promise<BetterAuthResult<unknown>>;
99
+ verifyOtp?: (opts: {
100
+ code: string;
101
+ trustDevice?: boolean;
102
+ }) => Promise<BetterAuthResult<unknown>>;
103
+ generateBackupCodes: (opts: {
104
+ password: string;
105
+ }) => Promise<BetterAuthResult<{
106
+ backupCodes: string[];
107
+ }>>;
108
+ verifyBackupCode: (opts: {
109
+ code: string;
110
+ }) => Promise<BetterAuthResult<unknown>>;
111
+ }
112
+ export interface PasskeyClient {
113
+ addPasskey: (opts?: {
114
+ name?: string;
115
+ }) => Promise<BetterAuthResult<unknown>>;
116
+ listUserPasskeys: () => Promise<BetterAuthResult<PasskeyInfo[]>>;
117
+ deletePasskey: (opts: {
118
+ id: string;
119
+ }) => Promise<BetterAuthResult<unknown>>;
120
+ updatePasskey: (opts: {
121
+ id: string;
122
+ name: string;
123
+ }) => Promise<BetterAuthResult<unknown>>;
124
+ }
125
+ export interface PasskeyInfo {
126
+ id: string;
127
+ name?: string;
128
+ createdAt: string;
129
+ }
130
+ export interface BetterAuthBridgeOptions {
131
+ callbackURL?: string;
132
+ errorCallbackURL?: string;
133
+ socialProviders?: AuthProviderName[];
134
+ passwordRules?: PasswordRules;
135
+ showRememberMe?: boolean;
136
+ showNameField?: boolean;
137
+ showConfirmPassword?: boolean;
138
+ showPasswordStrength?: boolean;
139
+ refreshInterval?: number;
140
+ onSessionChange?: (session: BetterAuthSession | null) => void;
141
+ onError?: (error: {
142
+ message: string;
143
+ status: number;
144
+ }) => void;
145
+ labels?: AuthContainerLabels;
146
+ }
147
+ export interface BetterAuthSession {
148
+ user: BetterAuthUser;
149
+ [key: string]: unknown;
150
+ }
151
+ export interface BetterAuthBridge {
152
+ session: Signal<BetterAuthSession | null>;
153
+ isPending: Signal<boolean>;
154
+ user: Signal<BetterAuthUser | null>;
155
+ isAuthenticated: Signal<boolean>;
156
+ containerOptions: AuthContainerOptions;
157
+ signInOptions: SignInFormOptions;
158
+ signUpOptions: SignUpFormOptions;
159
+ resetOptions: ResetPasswordFormOptions;
160
+ socialProviders: AuthProviderInfo[];
161
+ signOut: () => Promise<void>;
162
+ refreshSession: () => Promise<void>;
163
+ dispose: () => void;
164
+ }
@@ -1,6 +1,6 @@
1
1
  import { TNode } from '@tempots/dom';
2
2
  import { AuthContainerOptions } from './index';
3
- export declare function AuthContainer({ mode: initialMode, socialProviders, initialName, initialEmail, passwordRules, showRememberMe, showSocialDivider, showPasswordStrength, labels, onSignIn, onSignUp, onResetPassword, onModeChange, showContainer, }: AuthContainerOptions, ...children: TNode[]): TNode;
3
+ export declare function AuthContainer({ mode: initialMode, socialProviders, initialName, initialEmail, passwordRules, showRememberMe, showSocialDivider, showPasswordStrength, labels, onSignIn, onSignUp, onResetPassword, onModeChange, onSocialLogin, showContainer, }: AuthContainerOptions, ...children: TNode[]): TNode;
4
4
  export declare function AuthModal(fn: (open: (options: AuthContainerOptions & {
5
5
  modalTitle?: () => string;
6
6
  }) => void) => TNode): TNode;
@@ -1,2 +1,2 @@
1
1
  import { SocialProvidersOptions } from './types';
2
- export declare function SocialProviders({ providers }: SocialProvidersOptions): import("@tempots/dom").Renderable;
2
+ export declare function SocialProviders({ providers, onSocialLogin }: SocialProvidersOptions): import("@tempots/dom").Renderable;
@@ -73,6 +73,7 @@ export interface AuthContainerOptions {
73
73
  onSignUp?: (data: SignUpData) => Promise<string | null>;
74
74
  onResetPassword?: (data: ResetPasswordData) => Promise<string | null>;
75
75
  onModeChange?: (mode: AuthMode) => void;
76
+ onSocialLogin?: (provider: AuthProviderName) => Promise<void>;
76
77
  showPasswordStrength?: Value<boolean>;
77
78
  showAlreadyHaveAccountLink?: boolean;
78
79
  showNameField?: boolean;
@@ -83,6 +84,7 @@ export interface AuthContainerOptions {
83
84
  }
84
85
  export interface SocialProvidersOptions {
85
86
  providers: AuthProviderInfo[];
87
+ onSocialLogin?: (provider: AuthProviderName) => Promise<void>;
86
88
  }
87
89
  export interface SignInFormLabels {
88
90
  emailLabel?: Value<string>;
@@ -0,0 +1,16 @@
1
+ import { Signal, Value } from '@tempots/dom';
2
+ import { ControlSize } from '../theme';
3
+ export interface EditorToolbarButtonOptions {
4
+ active: Signal<boolean>;
5
+ display: Signal<boolean>;
6
+ onClick: () => void;
7
+ disabled: Signal<boolean>;
8
+ label: Value<string>;
9
+ icon: Value<string>;
10
+ size: Value<ControlSize>;
11
+ }
12
+ /**
13
+ * A reusable toolbar button component for rich text editors.
14
+ * Used by both Lexical and ProseMirror editor toolbars.
15
+ */
16
+ export declare function EditorToolbarButton(options: EditorToolbarButtonOptions): import("@tempots/dom").Renderable;
@@ -0,0 +1,9 @@
1
+ import { Signal, TNode } from '@tempots/dom';
2
+ /**
3
+ * A reusable toolbar group component for rich text editors.
4
+ * Shows the group only when at least one of the display signals is true.
5
+ * Used by both Lexical and ProseMirror editor toolbars.
6
+ */
7
+ export declare function EditorToolbarGroup({ display, }: {
8
+ display: Signal<boolean>[];
9
+ }, ...children: TNode[]): import("@tempots/dom").Renderable;
@@ -0,0 +1,2 @@
1
+ export { EditorToolbarButton, type EditorToolbarButtonOptions, } from './editor-toolbar-button';
2
+ export { EditorToolbarGroup } from './editor-toolbar-group';
@@ -0,0 +1,61 @@
1
+ import type { Renderable } from '@tempots/dom';
2
+ import type { Value } from '@tempots/dom';
3
+ import type { SchemaContext } from '../json-schema/schema-context';
4
+ import type { Mismatch } from './mismatch';
5
+ import { type ResolvedWidget } from '../json-schema/widgets/utils';
6
+ /**
7
+ * Display widget factory function signature.
8
+ * Unlike form WidgetFactory, takes a read-only Value<unknown> instead of Controller<T>.
9
+ */
10
+ export type DisplayWidgetFactory = (props: {
11
+ value: Value<unknown>;
12
+ ctx: SchemaContext;
13
+ mismatches?: Mismatch[];
14
+ options?: Record<string, unknown>;
15
+ }) => Renderable;
16
+ /**
17
+ * Display widget registration entry
18
+ */
19
+ export interface DisplayWidgetRegistration {
20
+ /** Widget factory function */
21
+ factory: DisplayWidgetFactory;
22
+ /** Custom matcher function for widget selection */
23
+ matcher: (ctx: SchemaContext) => boolean;
24
+ /** Widget priority (higher = preferred, default: 50) */
25
+ priority?: number;
26
+ /** Widget display name (for debugging) */
27
+ displayName?: string;
28
+ /** Widget description */
29
+ description?: string;
30
+ }
31
+ /**
32
+ * Array of custom display widget registrations
33
+ */
34
+ export type CustomDisplayWidgets = DisplayWidgetRegistration[];
35
+ /**
36
+ * Display widget registry for managing custom display widgets
37
+ */
38
+ export declare class DisplayWidgetRegistry {
39
+ private widgets;
40
+ register(registration: DisplayWidgetRegistration): void;
41
+ /**
42
+ * Find the best display widget for a schema context.
43
+ * Returns the factory if found, undefined otherwise.
44
+ */
45
+ findBestWidget(ctx: SchemaContext): {
46
+ factory: DisplayWidgetFactory;
47
+ resolved?: ResolvedWidget;
48
+ } | undefined;
49
+ }
50
+ /**
51
+ * Create a custom display widget registration that matches by explicit x:ui widget name.
52
+ */
53
+ export declare function forDisplayXUI(widgetName: string, factory: DisplayWidgetFactory, options?: Partial<Omit<DisplayWidgetRegistration, 'factory' | 'matcher'>>): DisplayWidgetRegistration;
54
+ /**
55
+ * Create a custom display widget registration that matches by schema format.
56
+ */
57
+ export declare function forDisplayFormat(format: string, factory: DisplayWidgetFactory, options?: Partial<Omit<DisplayWidgetRegistration, 'factory' | 'matcher'>>): DisplayWidgetRegistration;
58
+ /**
59
+ * Create a custom display widget registration that matches by type + format combination.
60
+ */
61
+ export declare function forDisplayTypeAndFormat(type: string, format: string, factory: DisplayWidgetFactory, options?: Partial<Omit<DisplayWidgetRegistration, 'factory' | 'matcher'>>): DisplayWidgetRegistration;
@@ -0,0 +1,14 @@
1
+ import { Renderable, TNode } from '@tempots/dom';
2
+ import type { SchemaContext } from '../json-schema/schema-context';
3
+ import type { Mismatch } from './mismatch';
4
+ /**
5
+ * Display wrapper component.
6
+ * Renders label (from ctx.widgetLabel), required indicator, deprecated badge,
7
+ * description, and mismatch indicators around content.
8
+ * Analog of InputWrapper + WithSchemaIssues for display mode.
9
+ */
10
+ export declare function DisplayWrapper({ ctx, mismatches, children, }: {
11
+ ctx: SchemaContext;
12
+ mismatches?: Mismatch[];
13
+ children: TNode;
14
+ }): Renderable;
@@ -0,0 +1,14 @@
1
+ import { Renderable, Value } from '@tempots/dom';
2
+ import type { SchemaContext } from '../../json-schema/schema-context';
3
+ import type { Mismatch } from '../mismatch';
4
+ import type { DisplayWidgetRegistry } from '../display-widget-customization';
5
+ /**
6
+ * Fallback display for values without a specific schema type.
7
+ * Detects runtime type and renders appropriately, or falls back to JSON.stringify.
8
+ */
9
+ export declare function AnyDisplay({ ctx, value, mismatches, }: {
10
+ ctx: SchemaContext;
11
+ value: Value<unknown>;
12
+ mismatches?: Mismatch[];
13
+ displayWidgetRegistry?: DisplayWidgetRegistry;
14
+ }): Renderable;
@@ -0,0 +1,13 @@
1
+ import { Renderable, Value } from '@tempots/dom';
2
+ import type { SchemaContext } from '../../json-schema/schema-context';
3
+ import type { Mismatch } from '../mismatch';
4
+ import type { DisplayWidgetRegistry } from '../display-widget-customization';
5
+ /**
6
+ * Renders an array value with per-item schema rendering.
7
+ */
8
+ export declare function ArrayDisplay({ ctx, value, mismatches, displayWidgetRegistry, }: {
9
+ ctx: SchemaContext;
10
+ value: Value<unknown>;
11
+ mismatches?: Mismatch[];
12
+ displayWidgetRegistry?: DisplayWidgetRegistry;
13
+ }): Renderable;
@@ -0,0 +1,13 @@
1
+ import { Renderable, Value } from '@tempots/dom';
2
+ import type { SchemaContext } from '../../json-schema/schema-context';
3
+ import type { Mismatch } from '../mismatch';
4
+ import type { DisplayWidgetRegistry } from '../display-widget-customization';
5
+ /**
6
+ * Renders a boolean value as a styled true/false badge.
7
+ */
8
+ export declare function BooleanDisplay({ ctx, value, mismatches, }: {
9
+ ctx: SchemaContext;
10
+ value: Value<unknown>;
11
+ mismatches?: Mismatch[];
12
+ displayWidgetRegistry?: DisplayWidgetRegistry;
13
+ }): Renderable;
@@ -0,0 +1,14 @@
1
+ import { Renderable, Value } from '@tempots/dom';
2
+ import type { SchemaContext } from '../../json-schema/schema-context';
3
+ import type { Mismatch } from '../mismatch';
4
+ import type { DisplayWidgetRegistry } from '../display-widget-customization';
5
+ /**
6
+ * Renders oneOf/anyOf by detecting the matching branch and rendering via matched schema.
7
+ * For allOf: merges and renders as single schema.
8
+ */
9
+ export declare function CompositionDisplay({ ctx, value, mismatches, displayWidgetRegistry, }: {
10
+ ctx: SchemaContext;
11
+ value: Value<unknown>;
12
+ mismatches?: Mismatch[];
13
+ displayWidgetRegistry?: DisplayWidgetRegistry;
14
+ }): Renderable;
@@ -0,0 +1,13 @@
1
+ import { Renderable, Value } from '@tempots/dom';
2
+ import type { SchemaContext } from '../../json-schema/schema-context';
3
+ import type { Mismatch } from '../mismatch';
4
+ import type { DisplayWidgetRegistry } from '../display-widget-customization';
5
+ /**
6
+ * Renders an enum or const value with mismatch indication.
7
+ */
8
+ export declare function EnumConstDisplay({ ctx, value, mismatches, }: {
9
+ ctx: SchemaContext;
10
+ value: Value<unknown>;
11
+ mismatches?: Mismatch[];
12
+ displayWidgetRegistry?: DisplayWidgetRegistry;
13
+ }): Renderable;
@@ -0,0 +1,18 @@
1
+ import { Renderable, Value } from '@tempots/dom';
2
+ import type { SchemaContext } from '../../json-schema/schema-context';
3
+ import type { Mismatch } from '../mismatch';
4
+ import type { DisplayWidgetRegistry } from '../display-widget-customization';
5
+ interface GenericDisplayProps {
6
+ ctx: SchemaContext;
7
+ value: Value<unknown>;
8
+ mismatches?: Mismatch[];
9
+ displayWidgetRegistry?: DisplayWidgetRegistry;
10
+ }
11
+ /**
12
+ * Generic display dispatcher.
13
+ * Mirrors generic-control.ts: resolves $ref, merges allOf,
14
+ * routes by schema type to the appropriate display component.
15
+ * Checks custom display widgets first.
16
+ */
17
+ export declare function GenericDisplay({ ctx, value, mismatches, displayWidgetRegistry, }: GenericDisplayProps): Renderable;
18
+ export {};
@@ -0,0 +1,13 @@
1
+ import { Renderable, Value } from '@tempots/dom';
2
+ import type { SchemaContext } from '../../json-schema/schema-context';
3
+ import type { Mismatch } from '../mismatch';
4
+ import type { DisplayWidgetRegistry } from '../display-widget-customization';
5
+ /**
6
+ * Renders a null indicator.
7
+ */
8
+ export declare function NullDisplay({ ctx, mismatches, }: {
9
+ ctx: SchemaContext;
10
+ value: Value<unknown>;
11
+ mismatches?: Mismatch[];
12
+ displayWidgetRegistry?: DisplayWidgetRegistry;
13
+ }): Renderable;
@@ -0,0 +1,13 @@
1
+ import { Renderable, Value } from '@tempots/dom';
2
+ import type { SchemaContext } from '../../json-schema/schema-context';
3
+ import type { Mismatch } from '../mismatch';
4
+ import type { DisplayWidgetRegistry } from '../display-widget-customization';
5
+ /**
6
+ * Renders a number or integer value with locale formatting.
7
+ */
8
+ export declare function NumberDisplay({ ctx, value, mismatches, }: {
9
+ ctx: SchemaContext;
10
+ value: Value<unknown>;
11
+ mismatches?: Mismatch[];
12
+ displayWidgetRegistry?: DisplayWidgetRegistry;
13
+ }): Renderable;
@@ -0,0 +1,13 @@
1
+ import { Renderable, Value } from '@tempots/dom';
2
+ import type { SchemaContext } from '../../json-schema/schema-context';
3
+ import type { Mismatch } from '../mismatch';
4
+ import type { DisplayWidgetRegistry } from '../display-widget-customization';
5
+ /**
6
+ * Renders an object value with labeled properties in schema order.
7
+ */
8
+ export declare function ObjectDisplay({ ctx, value, mismatches, displayWidgetRegistry, }: {
9
+ ctx: SchemaContext;
10
+ value: Value<unknown>;
11
+ mismatches?: Mismatch[];
12
+ displayWidgetRegistry?: DisplayWidgetRegistry;
13
+ }): Renderable;
@@ -0,0 +1,14 @@
1
+ import { Renderable, Value } from '@tempots/dom';
2
+ import type { SchemaContext } from '../../json-schema/schema-context';
3
+ import type { Mismatch } from '../mismatch';
4
+ import type { DisplayWidgetRegistry } from '../display-widget-customization';
5
+ /**
6
+ * Renders a string value with format-aware display.
7
+ * Supports: email, uri/url, color, date-time, date, time, password, uuid, textarea, markdown, and plain text.
8
+ */
9
+ export declare function StringDisplay({ ctx, value, mismatches, }: {
10
+ ctx: SchemaContext;
11
+ value: Value<unknown>;
12
+ mismatches?: Mismatch[];
13
+ displayWidgetRegistry?: DisplayWidgetRegistry;
14
+ }): Renderable;
@@ -0,0 +1,14 @@
1
+ export * from './mismatch';
2
+ export * from './display-widget-customization';
3
+ export * from './display-wrapper';
4
+ export * from './json-schema-display';
5
+ export { GenericDisplay } from './displays/generic-display';
6
+ export { StringDisplay } from './displays/string-display';
7
+ export { NumberDisplay } from './displays/number-display';
8
+ export { BooleanDisplay } from './displays/boolean-display';
9
+ export { NullDisplay } from './displays/null-display';
10
+ export { ArrayDisplay } from './displays/array-display';
11
+ export { ObjectDisplay } from './displays/object-display';
12
+ export { EnumConstDisplay } from './displays/enum-const-display';
13
+ export { CompositionDisplay } from './displays/composition-display';
14
+ export { AnyDisplay } from './displays/any-display';
@@ -0,0 +1,25 @@
1
+ import { Renderable, Value } from '@tempots/dom';
2
+ import type { JSONSchema } from '../json-schema/schema-context';
3
+ export type { JSONSchema } from '../json-schema/schema-context';
4
+ import { type CustomDisplayWidgets } from './display-widget-customization';
5
+ export interface JSONSchemaDisplayProps {
6
+ /** The root JSON Schema describing the value */
7
+ schema: JSONSchema;
8
+ /** The reactive value to display */
9
+ value: Value<unknown>;
10
+ /** Whether to compute and show mismatches (default: true) */
11
+ showMismatches?: boolean;
12
+ /** Custom display widget registrations */
13
+ customWidgets?: CustomDisplayWidgets;
14
+ /** Use horizontal layout for field labels */
15
+ horizontal?: boolean;
16
+ }
17
+ /**
18
+ * Top-level JSON Schema Display component.
19
+ * Given a JSON Schema and a JSON value, renders the value using schema annotations,
20
+ * highlights mismatches, and supports custom display widgets.
21
+ *
22
+ * This is the read-only counterpart to JSONSchemaForm.
23
+ * No AJV dependency, no Controller, no form state.
24
+ */
25
+ export declare function JSONSchemaDisplay({ schema, value, showMismatches, customWidgets, horizontal, }: JSONSchemaDisplayProps): Renderable;
@@ -0,0 +1,14 @@
1
+ import type { JSONSchemaDefinition } from '../json-schema/schema-types';
2
+ export type MismatchKind = 'type-mismatch' | 'missing-required' | 'extra-property' | 'enum-mismatch' | 'const-mismatch' | 'constraint-violation';
3
+ export interface Mismatch {
4
+ readonly kind: MismatchKind;
5
+ readonly path: ReadonlyArray<PropertyKey>;
6
+ readonly message: string;
7
+ readonly expected?: string;
8
+ readonly actual?: string;
9
+ }
10
+ /**
11
+ * Lightweight mismatch detection between a JSON value and a JSON Schema definition.
12
+ * No AJV dependency - checks type, required, extra properties, enum/const, and basic constraints.
13
+ */
14
+ export declare function detectMismatches(value: unknown, definition: JSONSchemaDefinition, path?: PropertyKey[]): Mismatch[];