@tempots/beatui 0.82.1 → 0.83.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 (462) hide show
  1. package/dist/ar-CBrjAlIY.cjs +1 -0
  2. package/dist/ar-DjMvIww5.js +175 -0
  3. package/dist/{ar-NCCPhOpI.js → ar-DwDxAANU.js} +16 -1
  4. package/dist/ar-kZBzg02I.cjs +1 -0
  5. package/dist/auth/index.cjs.js +1 -1
  6. package/dist/auth/index.es.js +33 -32
  7. package/dist/{auth-divider-Wr-S16kF.js → auth-divider-C3_CgC0l.js} +589 -569
  8. package/dist/auth-divider-C4WTL71M.cjs +1 -0
  9. package/dist/beatui.css +5678 -1438
  10. package/dist/beatui.tailwind.css +5662 -1422
  11. package/dist/better-auth/index.cjs.js +1 -1
  12. package/dist/better-auth/index.es.js +18 -31
  13. package/dist/{colors-B2yrgHSW.cjs → colors-BI0YhONJ.cjs} +1 -1
  14. package/dist/{colors-DPo9GEJR.js → colors-BmLYKmoH.js} +38 -30
  15. package/dist/de-B03SM9eF.cjs +1 -0
  16. package/dist/{de-BVK2MkCk.js → de-CSGSC0xX.js} +18 -3
  17. package/dist/de-CrBw41po.cjs +1 -0
  18. package/dist/{de-f2xcEb34.js → de-wChFYqM4.js} +79 -5
  19. package/dist/deep-merge-CmQoIYPC.js +1689 -0
  20. package/dist/deep-merge-UghuPcyW.cjs +1 -0
  21. package/dist/{duration-input-B9UNmUCh.cjs → duration-input-BJzKgI15.cjs} +1 -1
  22. package/dist/{duration-input-DqcJbxKD.js → duration-input-DaB6s0rL.js} +4 -4
  23. package/dist/editor-toolbar-group-BslfdazC.js +32 -0
  24. package/dist/editor-toolbar-group-_V1rDM-1.cjs +1 -0
  25. package/dist/{es-BxBeTRCv.cjs → es-BRa0hV-7.cjs} +1 -1
  26. package/dist/es-Ca5xT3NE.cjs +1 -0
  27. package/dist/es-CmPF3IGl.js +175 -0
  28. package/dist/{es-BQS8PL9j.js → es-dR46FTMF.js} +16 -1
  29. package/dist/{fa-DxPseW3g.cjs → fa-BxCSKn9j.cjs} +1 -1
  30. package/dist/fa-D696e75R.js +175 -0
  31. package/dist/fa-DhZJYuC6.cjs +1 -0
  32. package/dist/{fa-T-tkJSJr.js → fa-FsHBFjdY.js} +16 -1
  33. package/dist/fr-1nSKSIlw.cjs +1 -0
  34. package/dist/{fr-yOW_68YY.js → fr-B0jeX1Hx.js} +83 -9
  35. package/dist/{fr-CSRRhyCG.js → fr-Di6BT9_V.js} +18 -3
  36. package/dist/fr-Dq6RAY9s.cjs +1 -0
  37. package/dist/he-BBX1h9uD.cjs +1 -0
  38. package/dist/{he-Bxdc4M08.js → he-CXujw1Lw.js} +16 -1
  39. package/dist/he-DhcurPt5.cjs +1 -0
  40. package/dist/he-SgAsIYJA.js +175 -0
  41. package/dist/{hi-CJeFvTBe.js → hi-Bvh4d9bO.js} +16 -1
  42. package/dist/hi-Cd0YQZTU.cjs +1 -0
  43. package/dist/hi-CxsIxbfM.cjs +1 -0
  44. package/dist/hi-s9oiIihq.js +175 -0
  45. package/dist/{index-Bt7FYl80.cjs → index-Bm43lZqE.cjs} +2 -2
  46. package/dist/{index-05UbKOYe.cjs → index-C2_iX1um.cjs} +1 -1
  47. package/dist/{index-C2Lq1m45.js → index-C32iUFIr.js} +5 -5
  48. package/dist/{index-lYhXnu6I.js → index-CEqc0H3v.js} +1 -1
  49. package/dist/index-DH37GTQj.cjs +1 -0
  50. package/dist/{index-DklKfzD4.js → index-Di1_W_7Q.js} +351 -361
  51. package/dist/index.cjs.js +4 -4
  52. package/dist/index.es.js +6220 -3084
  53. package/dist/input-container-CSi72GI1.cjs +1 -0
  54. package/dist/{input-container-DiCjOzR2.js → input-container-Nx0gMAzS.js} +86 -75
  55. package/dist/it-ByIEk5Cq.cjs +1 -0
  56. package/dist/it-D_IcaYxp.cjs +1 -0
  57. package/dist/{it-6e6X-4BB.js → it-Dc4IMciD.js} +80 -6
  58. package/dist/{it-Zmp0BhIj.js → it-EWhykhHv.js} +18 -3
  59. package/dist/ja-CMGqpPo7.cjs +1 -0
  60. package/dist/{ja-BxNuNo2H.js → ja-D2t2g5xj.js} +85 -11
  61. package/dist/ja-DV6Fpp18.cjs +1 -0
  62. package/dist/{ja-DWjoA-hQ.js → ja-YZ0P5woj.js} +16 -1
  63. package/dist/json-schema/index.cjs.js +1 -1
  64. package/dist/json-schema/index.es.js +191 -185
  65. package/dist/json-schema-display/index.cjs.js +1 -1
  66. package/dist/json-schema-display/index.es.js +1 -1
  67. package/dist/json-structure/index.cjs.js +1 -1
  68. package/dist/json-structure/index.es.js +679 -660
  69. package/dist/ko-BPl5rP97.cjs +1 -0
  70. package/dist/ko-BRylA5JZ.js +175 -0
  71. package/dist/ko-DR1f0as8.cjs +1 -0
  72. package/dist/{ko-BOlI-33h.js → ko-U7BSUAxZ.js} +16 -1
  73. package/dist/lexical/index.cjs.js +31 -31
  74. package/dist/lexical/index.es.js +5248 -5221
  75. package/dist/lexical.css +5 -7
  76. package/dist/menu-CX72LaZ3.cjs +1 -0
  77. package/dist/menu-D_slbwl8.js +374 -0
  78. package/dist/{modal-v3u2Fpnd.js → modal-DaI1jH-X.js} +4 -4
  79. package/dist/{modal-I5srcntN.cjs → modal-kyZfvVZb.cjs} +1 -1
  80. package/dist/nl-BSfaHFt0.cjs +1 -0
  81. package/dist/{nl-Dr-l6zUy.cjs → nl-CQF0N7Mc.cjs} +1 -1
  82. package/dist/{nl-kQNcAdY1.js → nl-CqAxoB4J.js} +18 -3
  83. package/dist/nl-Dh7LUWAn.js +176 -0
  84. package/dist/{notice-CLDdy1MW.cjs → notice-Bc1L4Zpr.cjs} +1 -1
  85. package/dist/{notice-BuZvdvZh.js → notice-Dz4nX57_.js} +4 -4
  86. package/dist/{oneof-branch-detection-Dt8ss9lc.js → oneof-branch-detection-BED_n2MT.js} +522 -519
  87. package/dist/{oneof-branch-detection-DsM1K5xc.cjs → oneof-branch-detection-Vov_e3kI.cjs} +4 -4
  88. package/dist/{pl-CKyPFvss.js → pl-C-weXGCB.js} +16 -1
  89. package/dist/pl-D-O4sCnr.cjs +1 -0
  90. package/dist/{pl-Bs4nLJ__.js → pl-XEG-p1Q9.js} +77 -3
  91. package/dist/{pl-BK0i_yvq.cjs → pl-y_w3DWF3.cjs} +1 -1
  92. package/dist/prosemirror/index.cjs.js +1 -1
  93. package/dist/prosemirror/index.es.js +1 -1
  94. package/dist/{pt-DBmUhaNI.js → pt-BjNGOoZH.js} +18 -3
  95. package/dist/pt-DYsDA2sZ.js +175 -0
  96. package/dist/pt-DqaZWmbG.cjs +1 -0
  97. package/dist/pt-chEEYLlt.cjs +1 -0
  98. package/dist/ru-B46hVpFF.cjs +1 -0
  99. package/dist/{ru-Bi1_DEKM.js → ru-BTKBykp-.js} +86 -12
  100. package/dist/{ru-CsJ_yT-7.js → ru-CFmeZBXK.js} +16 -1
  101. package/dist/ru-CISMzCHR.cjs +1 -0
  102. package/dist/{styles-url-B2dzXrYt.cjs → styles-url-CVCcF0ra.cjs} +1 -1
  103. package/dist/{styles-url-Cw_mxshe.js → styles-url-DUdp56Ts.js} +1 -1
  104. package/dist/tailwind/index.cjs.js +1 -1
  105. package/dist/tailwind/index.es.js +3 -3
  106. package/dist/tailwind/preset.cjs.js +1 -1
  107. package/dist/tailwind/preset.es.js +74 -4
  108. package/dist/tailwind/vite-plugin.cjs.js +10 -10
  109. package/dist/tailwind/vite-plugin.es.js +289 -410
  110. package/dist/text-input-8v79fzEy.cjs +1 -0
  111. package/dist/text-input-CPJzUC2r.js +45 -0
  112. package/dist/{toolbar-D994_E_s.js → toolbar-CjQG7l7X.js} +1 -1
  113. package/dist/{toolbar-x0_8lmKu.cjs → toolbar-D3ZsC0g_.cjs} +1 -1
  114. package/dist/{tr-Bn5ldVJs.js → tr-C5X2gFZS.js} +17 -2
  115. package/dist/tr-CaMaflJL.cjs +1 -0
  116. package/dist/{tr-DiYB-FwX.js → tr-Cp8ZCUic.js} +77 -3
  117. package/dist/{tr-CgJ8uhZu.cjs → tr-mWu2E__o.cjs} +1 -1
  118. package/dist/{translations-Cq8bUKJP.js → translations-BGblCUBj.js} +144 -70
  119. package/dist/translations-CZ0KOii3.cjs +1 -0
  120. package/dist/translations-gVgMyNno.cjs +1 -0
  121. package/dist/translations-jUYta1_1.js +87 -0
  122. package/dist/types/auth/index.d.ts +13 -0
  123. package/dist/types/auth-i18n/default.d.ts +14 -0
  124. package/dist/types/auth-i18n/locales/ar.d.ts +14 -0
  125. package/dist/types/auth-i18n/locales/de.d.ts +14 -0
  126. package/dist/types/auth-i18n/locales/en.d.ts +14 -0
  127. package/dist/types/auth-i18n/locales/es.d.ts +14 -0
  128. package/dist/types/auth-i18n/locales/fa.d.ts +14 -0
  129. package/dist/types/auth-i18n/locales/fr.d.ts +14 -0
  130. package/dist/types/auth-i18n/locales/he.d.ts +14 -0
  131. package/dist/types/auth-i18n/locales/hi.d.ts +14 -0
  132. package/dist/types/auth-i18n/locales/it.d.ts +14 -0
  133. package/dist/types/auth-i18n/locales/ja.d.ts +14 -0
  134. package/dist/types/auth-i18n/locales/ko.d.ts +14 -0
  135. package/dist/types/auth-i18n/locales/nl.d.ts +14 -0
  136. package/dist/types/auth-i18n/locales/pl.d.ts +14 -0
  137. package/dist/types/auth-i18n/locales/pt.d.ts +14 -0
  138. package/dist/types/auth-i18n/locales/ru.d.ts +14 -0
  139. package/dist/types/auth-i18n/locales/tr.d.ts +14 -0
  140. package/dist/types/auth-i18n/locales/ur.d.ts +14 -0
  141. package/dist/types/auth-i18n/locales/vi.d.ts +14 -0
  142. package/dist/types/auth-i18n/locales/zh.d.ts +14 -0
  143. package/dist/types/auth-i18n/translations.d.ts +14 -0
  144. package/dist/types/beatui-i18n/default.d.ts +99 -0
  145. package/dist/types/beatui-i18n/index.d.ts +11 -0
  146. package/dist/types/beatui-i18n/locales/en.d.ts +63 -0
  147. package/dist/types/beatui-i18n/translations.d.ts +87 -0
  148. package/dist/types/better-auth/components/authenticated.d.ts +2 -2
  149. package/dist/types/better-auth/components/better-auth-container.d.ts +1 -1
  150. package/dist/types/better-auth/components/better-auth-modal.d.ts +1 -1
  151. package/dist/types/better-auth/index.d.ts +13 -0
  152. package/dist/types/better-auth/provider.d.ts +33 -0
  153. package/dist/types/better-auth/types.d.ts +112 -0
  154. package/dist/types/components/auth/auth-container.d.ts +63 -2
  155. package/dist/types/components/auth/auth-divider.d.ts +30 -0
  156. package/dist/types/components/auth/auth-email-prop.d.ts +25 -0
  157. package/dist/types/components/auth/index.d.ts +9 -0
  158. package/dist/types/components/auth/password-strength-indicator.d.ts +58 -0
  159. package/dist/types/components/auth/reset-password-form.d.ts +33 -0
  160. package/dist/types/components/auth/schemas.d.ts +183 -5
  161. package/dist/types/components/auth/signin-form.d.ts +33 -0
  162. package/dist/types/components/auth/signup-form.d.ts +36 -0
  163. package/dist/types/components/auth/social-login-button.d.ts +213 -0
  164. package/dist/types/components/auth/social-providers.d.ts +27 -1
  165. package/dist/types/components/auth/types.d.ts +299 -0
  166. package/dist/types/components/auth/utils.d.ts +198 -0
  167. package/dist/types/components/beatui.d.ts +35 -0
  168. package/dist/types/components/button/button.d.ts +61 -0
  169. package/dist/types/components/button/close-button.d.ts +32 -1
  170. package/dist/types/components/button/index.d.ts +2 -0
  171. package/dist/types/components/button/toggle-button-group.d.ts +95 -0
  172. package/dist/types/components/button/toggle-button.d.ts +60 -0
  173. package/dist/types/components/data/avatar-group.d.ts +74 -0
  174. package/dist/types/components/data/avatar.d.ts +62 -0
  175. package/dist/types/components/data/badge.d.ts +49 -2
  176. package/dist/types/components/data/calendar-shared.d.ts +59 -0
  177. package/dist/types/components/data/calendar.d.ts +107 -0
  178. package/dist/types/components/data/history-timeline.d.ts +35 -0
  179. package/dist/types/components/data/icon-badge.d.ts +14 -0
  180. package/dist/types/components/data/icon.d.ts +55 -4
  181. package/dist/types/components/data/index.d.ts +9 -0
  182. package/dist/types/components/data/page-drop-zone.d.ts +61 -8
  183. package/dist/types/components/data/presence-overlay.d.ts +26 -0
  184. package/dist/types/components/data/progress-bar.d.ts +81 -0
  185. package/dist/types/components/data/range-calendar.d.ts +104 -0
  186. package/dist/types/components/data/skeleton.d.ts +70 -0
  187. package/dist/types/components/data/table.d.ts +38 -11
  188. package/dist/types/components/data/tag.d.ts +40 -0
  189. package/dist/types/components/data/unstyled-drop-zone.d.ts +73 -0
  190. package/dist/types/components/form/control/control.d.ts +155 -0
  191. package/dist/types/components/form/control/date-utils.d.ts +81 -0
  192. package/dist/types/components/form/control/ensure-control.d.ts +28 -0
  193. package/dist/types/components/form/control/form-status.d.ts +63 -0
  194. package/dist/types/components/form/control/index.d.ts +10 -0
  195. package/dist/types/components/form/control/list-control.d.ts +100 -1
  196. package/dist/types/components/form/control/list-item-controls.d.ts +65 -0
  197. package/dist/types/components/form/controller/color-controller.d.ts +29 -1
  198. package/dist/types/components/form/controller/controller-validation.d.ts +31 -0
  199. package/dist/types/components/form/controller/controller.d.ts +286 -0
  200. package/dist/types/components/form/controller/index.d.ts +12 -0
  201. package/dist/types/components/form/controller/path.d.ts +69 -0
  202. package/dist/types/components/form/controller/union-controller.d.ts +106 -11
  203. package/dist/types/components/form/controller/utils.d.ts +67 -0
  204. package/dist/types/components/form/input/advanced-slider.d.ts +143 -0
  205. package/dist/types/components/form/input/appearance-selector.d.ts +39 -0
  206. package/dist/types/components/form/input/base64-input.d.ts +34 -0
  207. package/dist/types/components/form/input/base64s-input.d.ts +47 -0
  208. package/dist/types/components/form/input/bigint-input.d.ts +27 -0
  209. package/dist/types/components/form/input/checkbox-input.d.ts +46 -0
  210. package/dist/types/components/form/input/color-input.d.ts +42 -0
  211. package/dist/types/components/form/input/color-swatch-input.d.ts +53 -0
  212. package/dist/types/components/form/input/combobox-input.d.ts +73 -0
  213. package/dist/types/components/form/input/combobox-tags-input.d.ts +54 -0
  214. package/dist/types/components/form/input/date-input.d.ts +33 -0
  215. package/dist/types/components/form/input/date-time-input.d.ts +34 -0
  216. package/dist/types/components/form/input/dropdown-base.d.ts +52 -0
  217. package/dist/types/components/form/input/dropdown-input.d.ts +86 -0
  218. package/dist/types/components/form/input/duration-input.d.ts +18 -0
  219. package/dist/types/components/form/input/duration-mask.d.ts +24 -0
  220. package/dist/types/components/form/input/editable-text.d.ts +33 -0
  221. package/dist/types/components/form/input/email-input.d.ts +34 -0
  222. package/dist/types/components/form/input/file-input.d.ts +33 -0
  223. package/dist/types/components/form/input/files-input.d.ts +44 -0
  224. package/dist/types/components/form/input/index.d.ts +5 -0
  225. package/dist/types/components/form/input/input-adornment.d.ts +38 -0
  226. package/dist/types/components/form/input/input-container.d.ts +65 -0
  227. package/dist/types/components/form/input/input-options.d.ts +70 -0
  228. package/dist/types/components/form/input/input-wrapper.d.ts +78 -0
  229. package/dist/types/components/form/input/instant-input.d.ts +18 -0
  230. package/dist/types/components/form/input/lazy-native-select.d.ts +43 -0
  231. package/dist/types/components/form/input/list-input.d.ts +50 -0
  232. package/dist/types/components/form/input/mask-input.d.ts +158 -0
  233. package/dist/types/components/form/input/native-select.d.ts +50 -0
  234. package/dist/types/components/form/input/nullable-base64-input.d.ts +25 -0
  235. package/dist/types/components/form/input/nullable-bigint-input.d.ts +26 -0
  236. package/dist/types/components/form/input/nullable-date-input.d.ts +18 -0
  237. package/dist/types/components/form/input/nullable-date-time-input.d.ts +19 -0
  238. package/dist/types/components/form/input/nullable-duration-input.d.ts +19 -0
  239. package/dist/types/components/form/input/nullable-email-input.d.ts +18 -0
  240. package/dist/types/components/form/input/nullable-instant-input.d.ts +19 -0
  241. package/dist/types/components/form/input/nullable-mask-input.d.ts +24 -0
  242. package/dist/types/components/form/input/nullable-number-input.d.ts +29 -0
  243. package/dist/types/components/form/input/nullable-password-input.d.ts +18 -0
  244. package/dist/types/components/form/input/nullable-plain-date-input.d.ts +18 -0
  245. package/dist/types/components/form/input/nullable-plain-date-time-input.d.ts +18 -0
  246. package/dist/types/components/form/input/nullable-plain-month-day-input.d.ts +18 -0
  247. package/dist/types/components/form/input/nullable-plain-time-input.d.ts +18 -0
  248. package/dist/types/components/form/input/nullable-plain-year-month-input.d.ts +18 -0
  249. package/dist/types/components/form/input/nullable-rating-input.d.ts +33 -0
  250. package/dist/types/components/form/input/nullable-text-area.d.ts +27 -0
  251. package/dist/types/components/form/input/nullable-text-input.d.ts +18 -0
  252. package/dist/types/components/form/input/nullable-url-input.d.ts +18 -0
  253. package/dist/types/components/form/input/nullable-utils.d.ts +22 -2
  254. package/dist/types/components/form/input/nullable-uuid-input.d.ts +18 -0
  255. package/dist/types/components/form/input/nullable-zoned-date-time-input.d.ts +20 -0
  256. package/dist/types/components/form/input/number-input.d.ts +49 -0
  257. package/dist/types/components/form/input/option.d.ts +165 -0
  258. package/dist/types/components/form/input/otp-input.d.ts +77 -0
  259. package/dist/types/components/form/input/password-input.d.ts +39 -0
  260. package/dist/types/components/form/input/plain-date-input.d.ts +17 -0
  261. package/dist/types/components/form/input/plain-date-time-input.d.ts +17 -0
  262. package/dist/types/components/form/input/plain-month-day-input.d.ts +18 -0
  263. package/dist/types/components/form/input/plain-time-input.d.ts +17 -0
  264. package/dist/types/components/form/input/plain-year-month-input.d.ts +17 -0
  265. package/dist/types/components/form/input/radio-group.d.ts +108 -0
  266. package/dist/types/components/form/input/rating-input.d.ts +57 -0
  267. package/dist/types/components/form/input/segmented-input.d.ts +70 -1
  268. package/dist/types/components/form/input/select-tags-input.d.ts +69 -0
  269. package/dist/types/components/form/input/slider-input.d.ts +82 -0
  270. package/dist/types/components/form/input/switch.d.ts +59 -1
  271. package/dist/types/components/form/input/tag-input.d.ts +19 -0
  272. package/dist/types/components/form/input/tag-utils.d.ts +111 -0
  273. package/dist/types/components/form/input/tags-input.d.ts +18 -0
  274. package/dist/types/components/form/input/text-area.d.ts +42 -0
  275. package/dist/types/components/form/input/text-input.d.ts +63 -1
  276. package/dist/types/components/form/input/url-input.d.ts +34 -0
  277. package/dist/types/components/form/input/uuid-input.d.ts +19 -0
  278. package/dist/types/components/form/input/zoned-date-time-input.d.ts +20 -0
  279. package/dist/types/components/form/schema/standard-schema-v1.d.ts +98 -23
  280. package/dist/types/components/form/use-form.d.ts +146 -2
  281. package/dist/types/components/i18n/index.d.ts +9 -0
  282. package/dist/types/components/i18n/locale-direction.d.ts +21 -1
  283. package/dist/types/components/i18n/locale-selector.d.ts +45 -0
  284. package/dist/types/components/i18n/make-i18nprovider.d.ts +42 -0
  285. package/dist/types/components/json-schema/schema-types.d.ts +133 -0
  286. package/dist/types/components/json-structure/controls/deprecation-utils.d.ts +2 -3
  287. package/dist/types/components/json-structure/structure-types.d.ts +473 -19
  288. package/dist/types/components/layout/accordion.d.ts +77 -0
  289. package/dist/types/components/layout/action-card.d.ts +90 -2
  290. package/dist/types/components/layout/app-shell.d.ts +76 -0
  291. package/dist/types/components/layout/card.d.ts +27 -0
  292. package/dist/types/components/layout/center.d.ts +39 -0
  293. package/dist/types/components/layout/collapse.d.ts +28 -0
  294. package/dist/types/components/layout/divider.d.ts +84 -0
  295. package/dist/types/components/layout/group.d.ts +15 -0
  296. package/dist/types/components/layout/index.d.ts +2 -0
  297. package/dist/types/components/layout/nine-slice-scroll-view.d.ts +105 -0
  298. package/dist/types/components/layout/scrollable-panel.d.ts +54 -0
  299. package/dist/types/components/layout/sink.d.ts +46 -0
  300. package/dist/types/components/layout/stack.d.ts +16 -0
  301. package/dist/types/components/layout/with-breakpoint.d.ts +194 -0
  302. package/dist/types/components/lexical/code/language-selector.d.ts +2 -2
  303. package/dist/types/components/lexical/floating/block-handle.d.ts +2 -2
  304. package/dist/types/components/lexical/floating/floating-toolbar.d.ts +2 -2
  305. package/dist/types/components/lexical/floating/slash-command-palette.d.ts +2 -2
  306. package/dist/types/components/lexical/table/table-controls.d.ts +2 -2
  307. package/dist/types/components/lexical/toolbar/lexical-toolbar.d.ts +2 -2
  308. package/dist/types/components/lexical/toolbar/toolbar-helpers.d.ts +4 -2
  309. package/dist/types/components/misc/empty-state.d.ts +86 -0
  310. package/dist/types/components/misc/expando.d.ts +81 -0
  311. package/dist/types/components/misc/index.d.ts +2 -1
  312. package/dist/types/components/misc/link-portal.d.ts +40 -2
  313. package/dist/types/components/misc/notice.d.ts +93 -0
  314. package/dist/types/components/misc/notification-panel.d.ts +21 -0
  315. package/dist/types/components/misc/notification-provider.d.ts +141 -0
  316. package/dist/types/components/misc/notification.d.ts +93 -0
  317. package/dist/types/components/misc/style-portal.d.ts +31 -1
  318. package/dist/types/components/monaco/monaco-editor-input.d.ts +59 -2
  319. package/dist/types/components/navigation/breadcrumbs.d.ts +96 -0
  320. package/dist/types/components/navigation/flyout.d.ts +118 -16
  321. package/dist/types/components/navigation/index.d.ts +3 -0
  322. package/dist/types/components/navigation/link/link.d.ts +100 -0
  323. package/dist/types/components/navigation/menu.d.ts +155 -35
  324. package/dist/types/components/navigation/pagination.d.ts +82 -0
  325. package/dist/types/components/navigation/sidebar/sidebar-group.d.ts +42 -0
  326. package/dist/types/components/navigation/sidebar/sidebar-link.d.ts +101 -0
  327. package/dist/types/components/navigation/sidebar/sidebar-separator.d.ts +17 -0
  328. package/dist/types/components/navigation/sidebar/sidebar.d.ts +57 -0
  329. package/dist/types/components/navigation/tabs/tabs.d.ts +3 -2
  330. package/dist/types/components/navigation/toolbar/toolbar.d.ts +125 -0
  331. package/dist/types/components/navigation/tree-view.d.ts +95 -0
  332. package/dist/types/components/overlay/announcement-bar.d.ts +41 -2
  333. package/dist/types/components/overlay/block-command-palette.d.ts +25 -0
  334. package/dist/types/components/overlay/command-palette.d.ts +17 -0
  335. package/dist/types/components/overlay/dialogs.d.ts +213 -0
  336. package/dist/types/components/overlay/drawer.d.ts +76 -12
  337. package/dist/types/components/overlay/index.d.ts +4 -0
  338. package/dist/types/components/overlay/lightbox.d.ts +53 -10
  339. package/dist/types/components/overlay/modal.d.ts +113 -13
  340. package/dist/types/components/overlay/overlay.d.ts +61 -0
  341. package/dist/types/components/overlay/popover.d.ts +100 -0
  342. package/dist/types/components/overlay/ribbon.d.ts +58 -9
  343. package/dist/types/components/prosemirror/etoolbar-button.d.ts +10 -0
  344. package/dist/types/components/prosemirror/etoolbar-group.d.ts +10 -0
  345. package/dist/types/components/prosemirror/link-control.d.ts +43 -2
  346. package/dist/types/components/prosemirror/prosemirror-toolbar.d.ts +46 -6
  347. package/dist/types/components/prosemirror/utils.d.ts +113 -1
  348. package/dist/types/components/theme/style-utils.d.ts +95 -0
  349. package/dist/types/components/theme/theme.d.ts +39 -0
  350. package/dist/types/components/theme/types.d.ts +133 -1
  351. package/dist/types/components/typography/index.d.ts +1 -0
  352. package/dist/types/components/typography/kbd.d.ts +48 -0
  353. package/dist/types/components/typography/label.d.ts +45 -0
  354. package/dist/types/index.d.ts +14 -0
  355. package/dist/types/json-schema/index.d.ts +13 -0
  356. package/dist/types/json-schema-display/index.d.ts +12 -0
  357. package/dist/types/json-structure/index.d.ts +9 -4
  358. package/dist/types/markdown/index.d.ts +13 -0
  359. package/dist/types/monaco/index.d.ts +17 -0
  360. package/dist/types/monaco/lazy-loader.d.ts +79 -0
  361. package/dist/types/monaco/styles-url.d.ts +11 -0
  362. package/dist/types/monaco/styles.d.ts +11 -0
  363. package/dist/types/monaco/types.d.ts +47 -0
  364. package/dist/types/prosemirror/index.d.ts +12 -0
  365. package/dist/types/prosemirror/styles-url.d.ts +11 -0
  366. package/dist/types/prosemirror/styles.d.ts +10 -0
  367. package/dist/types/tailwind/google-fonts.d.ts +15 -0
  368. package/dist/types/tailwind/index.d.ts +13 -0
  369. package/dist/types/tailwind/preset.d.ts +111 -0
  370. package/dist/types/tailwind/vite-plugin.d.ts +39 -4
  371. package/dist/types/tokens/base-colors.d.ts +21 -0
  372. package/dist/types/tokens/breakpoints.d.ts +67 -0
  373. package/dist/types/tokens/colors.d.ts +213 -4
  374. package/dist/types/tokens/motion.d.ts +142 -3
  375. package/dist/types/tokens/radius.d.ts +99 -0
  376. package/dist/types/tokens/shadows.d.ts +85 -0
  377. package/dist/types/tokens/spacing.d.ts +111 -0
  378. package/dist/types/tokens/text-shadows.d.ts +82 -0
  379. package/dist/types/tokens/typography.d.ts +313 -25
  380. package/dist/types/tokens/z-index.d.ts +62 -0
  381. package/dist/types/utils/color.d.ts +297 -28
  382. package/dist/types/utils/download.d.ts +92 -0
  383. package/dist/types/utils/focus-trap.d.ts +67 -11
  384. package/dist/types/utils/format-file-size.d.ts +44 -0
  385. package/dist/ur-B6yB2JQ7.cjs +1 -0
  386. package/dist/ur-CvGP14xo.cjs +1 -0
  387. package/dist/{ur-Bg9eX81v.js → ur-Deo004ME.js} +16 -1
  388. package/dist/{ur-B69X-xNs.js → ur-DkIYJxsF.js} +82 -8
  389. package/dist/use-animated-toggle-89fKlXxy.js +195 -0
  390. package/dist/use-animated-toggle-DrqK7nUS.cjs +1 -0
  391. package/dist/{use-form-B56E_x5Y.js → use-form-BurzbPVV.js} +190 -2
  392. package/dist/{use-form-Cnp3XQ5X.cjs → use-form-Uree6QFy.cjs} +1 -1
  393. package/dist/vi-BYk1rJDv.js +53 -0
  394. package/dist/vi-DKw6PBja.js +175 -0
  395. package/dist/vi-Df4WZe9y.cjs +1 -0
  396. package/dist/vi-DneuUbkq.cjs +1 -0
  397. package/dist/{widget-customization-Ds9sicAg.js → widget-customization-0is7oTeP.js} +205 -204
  398. package/dist/widget-customization-B-LmxkPE.cjs +1 -0
  399. package/dist/zh-C5a9NGFW.cjs +1 -0
  400. package/dist/zh-CaKHseXJ.js +175 -0
  401. package/dist/zh-DFHuW_5g.cjs +1 -0
  402. package/dist/{zh-BIykcEu9.js → zh-DR7QaM65.js} +16 -1
  403. package/package.json +1 -1
  404. package/dist/ar-BsUm-TCn.cjs +0 -1
  405. package/dist/ar-D7CXDmVZ.cjs +0 -1
  406. package/dist/ar-nOSKXpIW.js +0 -101
  407. package/dist/auth-divider-BqZPH1-z.cjs +0 -1
  408. package/dist/de-BUFLEyKr.cjs +0 -1
  409. package/dist/de-WzsOu9Gn.cjs +0 -1
  410. package/dist/deep-merge-BYm0y62g.js +0 -1620
  411. package/dist/deep-merge-d7sf0xmN.cjs +0 -1
  412. package/dist/editor-toolbar-group--a-xgsJw.cjs +0 -1
  413. package/dist/editor-toolbar-group-CVpl5mxF.js +0 -31
  414. package/dist/es-CDqqzpCw.js +0 -101
  415. package/dist/es-Ds2Xf3wV.cjs +0 -1
  416. package/dist/fa-C7tE_hR3.js +0 -101
  417. package/dist/fa-Ct1UtDB7.cjs +0 -1
  418. package/dist/fr-Cdyopuz3.cjs +0 -1
  419. package/dist/fr-CzAkRFed.cjs +0 -1
  420. package/dist/he-D2oUloCJ.js +0 -101
  421. package/dist/he-DarDNPn0.cjs +0 -1
  422. package/dist/he-DlXALrK7.cjs +0 -1
  423. package/dist/hi-3dBhLwDs.cjs +0 -1
  424. package/dist/hi-D5ZlZoQq.js +0 -101
  425. package/dist/hi-tATwsXJ6.cjs +0 -1
  426. package/dist/index-DE2tjivA.cjs +0 -1
  427. package/dist/input-container-C6qEIjcA.cjs +0 -1
  428. package/dist/it-BmFag7j0.cjs +0 -1
  429. package/dist/it-DohtcWi9.cjs +0 -1
  430. package/dist/ja-Dj-bAKLf.cjs +0 -1
  431. package/dist/ja-eyTArrgS.cjs +0 -1
  432. package/dist/ko-BFLCDMMs.cjs +0 -1
  433. package/dist/ko-BomUE-yQ.cjs +0 -1
  434. package/dist/ko-Ch0jFsBV.js +0 -101
  435. package/dist/menu-CZzRsQP_.js +0 -372
  436. package/dist/menu-ClrU72xH.cjs +0 -1
  437. package/dist/nl-Bx2ACvr4.cjs +0 -1
  438. package/dist/nl-NuTdZO1s.js +0 -102
  439. package/dist/pl-QHl6sl8f.cjs +0 -1
  440. package/dist/pt-BETjHZrL.js +0 -101
  441. package/dist/pt-DZGw2Z-1.cjs +0 -1
  442. package/dist/pt-oBMmVYcu.cjs +0 -1
  443. package/dist/ru-CtxMmoa6.cjs +0 -1
  444. package/dist/ru-D03IuLqh.cjs +0 -1
  445. package/dist/text-input-B3VBat1k.js +0 -44
  446. package/dist/text-input-Ds8e7Z1G.cjs +0 -1
  447. package/dist/tr-B_-_1wua.cjs +0 -1
  448. package/dist/translations-B4-Zd2LM.cjs +0 -1
  449. package/dist/translations-D62qqNV9.cjs +0 -1
  450. package/dist/translations-DPr6c05Z.js +0 -67
  451. package/dist/ur-DvqAg9gW.cjs +0 -1
  452. package/dist/ur-DyUSmIbo.cjs +0 -1
  453. package/dist/use-animated-toggle-ChycsEoj.js +0 -175
  454. package/dist/use-animated-toggle-DR6CyMac.cjs +0 -1
  455. package/dist/vi-BdzxA60L.js +0 -101
  456. package/dist/vi-CBmPaHxg.cjs +0 -1
  457. package/dist/vi-D5R3YcU0.cjs +0 -1
  458. package/dist/vi-DhdsHHf_.js +0 -38
  459. package/dist/widget-customization-Dk7XcVly.cjs +0 -1
  460. package/dist/zh-CCGXcj5r.cjs +0 -1
  461. package/dist/zh-Cb1b8uik.cjs +0 -1
  462. package/dist/zh-Dn1UJiZa.js +0 -101
@@ -2,24 +2,123 @@ import { TNode, ElementPosition, Value, Merge } from '@tempots/dom';
2
2
  import { ArrayController } from '../controller/controller';
3
3
  import { ListInputPayload, MoveDirection, MovableDirection } from '../input/list-input';
4
4
  import { InputWrapperOptions } from '../input';
5
+ import { ListControlsLayout } from './list-item-controls';
6
+ /**
7
+ * Payload provided to each list item element renderer, re-exported from {@link ListInputPayload}.
8
+ *
9
+ * @typeParam T - The type of each item in the list
10
+ */
5
11
  export type ListControllerPayload<T> = ListInputPayload<T>;
6
12
  export type { MoveDirection, MovableDirection };
7
- export type ListControlsLayout = 'below' | 'aside';
13
+ /**
14
+ * Base configuration options for {@link BaseListControl} (without InputWrapper).
15
+ *
16
+ * @typeParam T - The type of each item in the list
17
+ */
8
18
  export type BaseListControlOptions<T> = {
19
+ /** The array controller managing the list state */
9
20
  controller: ArrayController<T[]>;
21
+ /** Render function for each list item, receiving the item's payload */
10
22
  element: (payload: ListInputPayload<T>) => TNode;
23
+ /** Optional separator rendered between list items */
11
24
  separator?: (pos: ElementPosition) => TNode;
25
+ /**
26
+ * Whether to show move up/down buttons for reordering items.
27
+ * @default true
28
+ */
12
29
  showMove?: Value<boolean>;
30
+ /**
31
+ * Whether to show the remove button for each item.
32
+ * @default true
33
+ */
13
34
  showRemove?: Value<boolean>;
35
+ /**
36
+ * Whether to show the "Add" button below the list.
37
+ * @default true
38
+ */
14
39
  showAdd?: Value<boolean>;
15
40
  /** When true, disables the remove button instead of hiding it */
16
41
  removeDisabled?: Value<boolean>;
17
42
  /** When true, disables the add button (if visible) */
18
43
  addDisabled?: Value<boolean>;
44
+ /** Factory function that creates a new default item when the "Add" button is clicked */
19
45
  createItem?: () => T;
46
+ /** Custom label for the "Add" button. Defaults to the i18n `addLabel` message. */
20
47
  addLabel?: TNode;
48
+ /**
49
+ * Layout mode for the item controls.
50
+ * @default 'aside'
51
+ */
21
52
  controlsLayout?: Value<ListControlsLayout>;
22
53
  };
54
+ /**
55
+ * Configuration options for {@link ListControl}, combining InputWrapper options with list control options.
56
+ *
57
+ * Inherits all properties from {@link InputWrapperOptions} (except `content`, which is generated)
58
+ * and {@link BaseListControlOptions}.
59
+ *
60
+ * @typeParam T - The type of each item in the list
61
+ */
23
62
  export type ListControlOptions<T> = Merge<Omit<InputWrapperOptions, 'content'>, BaseListControlOptions<T>>;
63
+ /**
64
+ * Renders a list of items with move, remove, and add controls -- without an InputWrapper.
65
+ *
66
+ * Each item is rendered using the `element` callback and can optionally include
67
+ * move up/down buttons, a remove button, and an "Add" button at the bottom.
68
+ * The controls layout can be positioned `'aside'` (to the right) or `'below'` each item.
69
+ *
70
+ * @typeParam T - The type of each item in the list
71
+ *
72
+ * @param options - Configuration options for the list control
73
+ *
74
+ * @returns A renderable TNode representing the list with controls
75
+ *
76
+ * @example
77
+ * ```typescript
78
+ * import { BaseListControl } from '@tempots/beatui'
79
+ *
80
+ * BaseListControl({
81
+ * controller: myArrayController,
82
+ * element: ({ controller, index }) => TextInput({
83
+ * value: controller.signal,
84
+ * onChange: controller.change,
85
+ * }),
86
+ * createItem: () => '',
87
+ * showMove: true,
88
+ * showRemove: true,
89
+ * showAdd: true,
90
+ * })
91
+ * ```
92
+ */
24
93
  export declare const BaseListControl: <T>(options: BaseListControlOptions<T>) => import("@tempots/dom").Renderable<import("@tempots/dom").DOMContext>;
94
+ /**
95
+ * Renders a list of items with move, remove, and add controls inside an InputWrapper.
96
+ *
97
+ * Combines {@link BaseListControl} with {@link InputWrapper} to provide a complete
98
+ * form field for managing a list of values, including label, description, and error display.
99
+ *
100
+ * @typeParam T - The type of each item in the list
101
+ *
102
+ * @param options - Configuration options combining InputWrapper and list control settings
103
+ * @param children - Additional child nodes to render inside the InputWrapper
104
+ *
105
+ * @returns A renderable TNode representing the wrapped list control
106
+ *
107
+ * @example
108
+ * ```typescript
109
+ * import { ListControl } from '@tempots/beatui'
110
+ *
111
+ * ListControl({
112
+ * controller: tagsController,
113
+ * label: 'Tags',
114
+ * description: 'Add tags to categorize this item',
115
+ * element: ({ controller }) => TextInput({
116
+ * value: controller.signal,
117
+ * onChange: controller.change,
118
+ * }),
119
+ * createItem: () => '',
120
+ * showAdd: true,
121
+ * })
122
+ * ```
123
+ */
25
124
  export declare const ListControl: <T>(options: ListControlOptions<T>, ...children: TNode[]) => import("@tempots/dom").Renderable;
@@ -0,0 +1,65 @@
1
+ import { TNode, Value, Signal } from '@tempots/dom';
2
+ /**
3
+ * Layout mode for list item controls (move/remove buttons).
4
+ *
5
+ * - `'aside'` - Controls are rendered in a column to the right of each item
6
+ * - `'below'` - Controls are rendered in a row below each item
7
+ */
8
+ export type ListControlsLayout = 'below' | 'aside';
9
+ /**
10
+ * Configuration options for {@link ListItemControls}.
11
+ */
12
+ export type ListItemControlsOptions = {
13
+ /** Callback to move the item up or down */
14
+ onMove: (direction: 'up' | 'down') => void;
15
+ /** Signal indicating the item cannot be moved up */
16
+ cannotMoveUp: Signal<boolean>;
17
+ /** Signal indicating the item cannot be moved down */
18
+ cannotMoveDown: Signal<boolean>;
19
+ /** Callback to remove the item */
20
+ onRemove: () => void;
21
+ /**
22
+ * Whether to show the move buttons.
23
+ * @default true
24
+ */
25
+ showMove?: Value<boolean>;
26
+ /**
27
+ * Whether to show the remove button.
28
+ * @default true
29
+ */
30
+ showRemove?: Value<boolean>;
31
+ /** When true, disables the remove button instead of hiding it */
32
+ removeDisabled?: Value<boolean>;
33
+ /**
34
+ * Whether to show move buttons (e.g., when list has more than 1 item).
35
+ * @default true
36
+ */
37
+ showMoveButtons?: Value<boolean>;
38
+ /**
39
+ * Layout mode for the controls.
40
+ * @default 'aside'
41
+ */
42
+ layout?: Value<ListControlsLayout>;
43
+ };
44
+ /**
45
+ * Renders reusable move/remove controls for a list item.
46
+ *
47
+ * Wraps content with move up/down and remove buttons, positioned either
48
+ * beside (`'aside'`) or below the content depending on the layout mode.
49
+ *
50
+ * @param options - Configuration options for the controls
51
+ * @param content - The list item content to wrap
52
+ * @returns A TNode with the content and its controls
53
+ *
54
+ * @example
55
+ * ```ts
56
+ * ListItemControls({
57
+ * onMove: dir => payload.move(dir),
58
+ * cannotMoveUp: payload.cannotMove('up'),
59
+ * cannotMoveDown: payload.cannotMove('down'),
60
+ * onRemove: payload.remove,
61
+ * layout: 'aside',
62
+ * }, myItemContent)
63
+ * ```
64
+ */
65
+ export declare function ListItemControls(options: ListItemControlsOptions, content: TNode): TNode;
@@ -3,9 +3,37 @@ import { Signal } from '@tempots/dom';
3
3
  import { Path } from './path';
4
4
  import { ControllerValidation } from './controller-validation';
5
5
  /**
6
- * Specialized controller for color values with validation and transformation utilities
6
+ * Specialized controller for color values with validation and transformation utilities.
7
+ *
8
+ * Extends the base `Controller<string>` with color-specific functionality including
9
+ * hex color validation, normalization, RGB conversion, and format transformation.
10
+ * Values are internally stored as normalized hex strings (e.g., `'#ff0000'`).
11
+ *
12
+ * @example
13
+ * ```typescript
14
+ * import { createColorController } from '@tempots/beatui'
15
+ *
16
+ * const colorCtrl = createColorController(stringController)
17
+ *
18
+ * // Validate and set colors
19
+ * colorCtrl.setColor('#f00') // Normalizes to '#ff0000'
20
+ * colorCtrl.setRgb(255, 128, 0) // Sets to '#ff8000'
21
+ *
22
+ * // Read reactive values
23
+ * colorCtrl.isValidHex // Signal<boolean>
24
+ * colorCtrl.normalizedHex // Signal<string>
25
+ * ```
7
26
  */
8
27
  export declare class ColorController extends Controller<string> {
28
+ /**
29
+ * Creates a new ColorController instance.
30
+ *
31
+ * @param path - The path segments identifying this controller in the form tree
32
+ * @param change - Callback to propagate value changes to the parent
33
+ * @param signal - Reactive signal holding the current color string
34
+ * @param status - Reactive signal holding the current validation status
35
+ * @param parent - Parent context providing the disabled state
36
+ */
9
37
  constructor(path: Path, change: (value: string) => void, signal: Signal<string>, status: Signal<ControllerValidation>, parent: {
10
38
  disabled: Signal<boolean>;
11
39
  });
@@ -1,9 +1,18 @@
1
1
  import { Validation } from '@tempots/std';
2
2
  import { PathSegment } from './path';
3
+ /**
4
+ * Represents a validation error for a form controller with support for nested field errors.
5
+ */
3
6
  export type ControllerError = {
7
+ /** The error message for this field. */
4
8
  message?: string;
9
+ /** Nested errors for child fields, keyed by field name or array index. */
5
10
  dependencies?: Record<PathSegment, ControllerError>;
6
11
  };
12
+ /**
13
+ * Validation state for a controller, which can be valid, pending, or invalid with a ControllerError.
14
+ * This is an alias for `Validation<ControllerError>` from @tempots/std.
15
+ */
7
16
  export type ControllerValidation = Validation<ControllerError>;
8
17
  /**
9
18
  * Helper object for creating ControllerValidation instances.
@@ -46,4 +55,26 @@ export declare const ControllerValidation: {
46
55
  */
47
56
  readonly fromError: (error: ControllerError) => ControllerValidation;
48
57
  };
58
+ /**
59
+ * Creates a function that extracts validation state for a specific subpath from a parent validation.
60
+ * Used internally to propagate validation errors to child controllers.
61
+ *
62
+ * @param fields - Path segments to traverse to find the relevant error
63
+ * @returns A function that maps parent validation state to child validation state
64
+ *
65
+ * @example
66
+ * ```typescript
67
+ * const mapEmail = makeMapValidation(['user', 'email'])
68
+ * const parentStatus = Validation.invalid({
69
+ * dependencies: {
70
+ * user: {
71
+ * dependencies: {
72
+ * email: { message: 'Invalid email' }
73
+ * }
74
+ * }
75
+ * }
76
+ * })
77
+ * const emailStatus = mapEmail(parentStatus) // Validation.invalid({ message: 'Invalid email' })
78
+ * ```
79
+ */
49
80
  export declare function makeMapValidation(fields: PathSegment[]): (status: ControllerValidation) => ControllerValidation;
@@ -2,70 +2,356 @@ import { Signal } from '@tempots/dom';
2
2
  import { Path, PathSegment } from './path';
3
3
  import { ControllerError, ControllerValidation } from './controller-validation';
4
4
  import { ValidationMode } from './union-controller';
5
+ /**
6
+ * Reactive form field controller that manages value, validation state, touched/dirty tracking, and disabled state.
7
+ * Provides the foundation for type-safe form handling with fine-grained reactivity.
8
+ *
9
+ * @template T - The type of the value managed by this controller
10
+ *
11
+ * @example
12
+ * ```typescript
13
+ * import { prop } from '@tempots/dom'
14
+ * import { Controller } from '@tempots/beatui'
15
+ * import { Validation } from '@tempots/std'
16
+ *
17
+ * const valueSignal = prop('initial')
18
+ * const statusSignal = prop(Validation.valid)
19
+ * const disabledSignal = prop(false)
20
+ *
21
+ * const controller = new Controller(
22
+ * ['email'],
23
+ * (value) => { valueSignal.set(value) },
24
+ * valueSignal,
25
+ * statusSignal,
26
+ * { disabled: disabledSignal }
27
+ * )
28
+ *
29
+ * // Access reactive properties
30
+ * controller.signal.value // Current value
31
+ * controller.hasError.value // Boolean error state
32
+ * controller.touched.value // User interaction tracking
33
+ * controller.dirty.value // Differs from baseline
34
+ * ```
35
+ */
5
36
  export declare class Controller<T> {
6
37
  #private;
38
+ /** The path segments identifying this controller's position in the form hierarchy (e.g., ['user', 'email']). */
7
39
  readonly path: Path;
40
+ /** Callback to propagate value changes up to the parent form. */
8
41
  readonly change: (value: T) => void;
42
+ /** Reactive signal containing the current field value. */
9
43
  readonly signal: Signal<T>;
44
+ /** Reactive signal containing the current validation state (valid, pending, or invalid with errors). */
10
45
  readonly status: Signal<ControllerValidation>;
46
+ /** Reactive signal containing the current error message string, or undefined if valid. */
11
47
  readonly error: Signal<undefined | string>;
48
+ /** Reactive signal indicating whether this field has any errors. */
12
49
  readonly hasError: Signal<boolean>;
50
+ /** Reactive signal tracking whether the user has interacted with this field. */
13
51
  readonly touched: Signal<boolean>;
52
+ /** Reactive signal indicating whether errors should be shown (respects validation mode and touched state). */
14
53
  readonly errorVisible: Signal<boolean>;
54
+ /** Reactive signal tracking whether the current value differs from the baseline. */
15
55
  readonly dirty: Signal<boolean>;
56
+ /** Reactive signal containing nested field errors for child controllers. */
16
57
  readonly dependencyErrors: Signal<undefined | Record<string | number, ControllerError>>;
58
+ /** Parent controller context providing disabled state and optional validation mode. */
17
59
  protected readonly parent: {
18
60
  disabled: Signal<boolean>;
19
61
  validationMode?: Signal<ValidationMode>;
20
62
  };
63
+ /** Reactive signal indicating whether this field is disabled (combines local and parent disabled state). */
21
64
  readonly disabled: Signal<boolean>;
65
+ /** Reactive signal indicating whether this field is disabled OR has errors (useful for submit button state). */
22
66
  readonly disabledOrHasErrors: Signal<boolean>;
67
+ /**
68
+ * Creates a new Controller instance.
69
+ *
70
+ * @param path - Field path segments in the form hierarchy
71
+ * @param change - Callback to propagate value changes
72
+ * @param signal - Reactive signal holding the field value
73
+ * @param status - Reactive signal holding validation state
74
+ * @param parent - Parent context with disabled state and optional validation mode
75
+ * @param equals - Equality function for dirty tracking (defaults to strictEqual)
76
+ */
23
77
  constructor(path: Path, change: (value: T) => void, signal: Signal<T>, status: Signal<ControllerValidation>, parent: {
24
78
  disabled: Signal<boolean>;
25
79
  validationMode?: Signal<ValidationMode>;
26
80
  }, equals?: (a: T, b: T) => boolean);
81
+ /**
82
+ * Returns the field name as a dot-separated string (e.g., "user.email").
83
+ */
27
84
  get name(): string;
85
+ /**
86
+ * Registers a callback to be executed when this controller is disposed.
87
+ *
88
+ * @param callback - Function to execute on disposal
89
+ */
28
90
  readonly onDispose: (callback: () => void) => void;
91
+ /**
92
+ * Disposes all internal resources and registered callbacks.
93
+ * Should be called when the controller is no longer needed to prevent memory leaks.
94
+ */
29
95
  readonly dispose: () => void;
96
+ /**
97
+ * Sets the disabled state for this field.
98
+ *
99
+ * @param disabled - Whether the field should be disabled
100
+ */
30
101
  readonly setDisabled: (disabled: boolean) => void;
102
+ /**
103
+ * Disables this field.
104
+ */
31
105
  readonly disable: () => void;
106
+ /**
107
+ * Enables this field.
108
+ */
32
109
  readonly enable: () => void;
110
+ /**
111
+ * Marks this field as touched (user has interacted with it).
112
+ */
33
113
  readonly markTouched: () => void;
114
+ /**
115
+ * Resets the touched state to false.
116
+ */
34
117
  readonly resetTouched: () => void;
118
+ /**
119
+ * Marks the current value as the new baseline for dirty tracking.
120
+ */
35
121
  readonly markPristine: () => void;
122
+ /**
123
+ * Resets the field value to the baseline value.
124
+ */
36
125
  readonly reset: () => void;
126
+ /**
127
+ * Casts this controller to an ArrayController for managing array values.
128
+ *
129
+ * @param equals - Equality function for array comparison (defaults to strictEqual)
130
+ * @returns An ArrayController instance
131
+ */
37
132
  readonly array: (equals?: (a: T, b: T) => boolean) => ArrayController<T extends any[] ? T : never>;
133
+ /**
134
+ * Casts this controller to an ObjectController for managing object values with field access.
135
+ *
136
+ * @param equals - Equality function for object comparison (defaults to strictEqual)
137
+ * @returns An ObjectController instance
138
+ */
38
139
  readonly object: (equals?: (a: T, b: T) => boolean) => ObjectController<T extends Record<string, any> ? T : never>;
140
+ /**
141
+ * Creates a transformed controller that maps values bidirectionally.
142
+ * Useful for converting between internal and display representations.
143
+ *
144
+ * @template Out - The transformed value type
145
+ * @param transform - Function to convert from T to Out
146
+ * @param untransform - Function to convert from Out back to T
147
+ * @param subpath - Optional path segments to append
148
+ * @param equals - Equality function for the transformed type
149
+ * @returns A new Controller instance managing the transformed value
150
+ *
151
+ * @example
152
+ * ```typescript
153
+ * // Transform number to string for text input
154
+ * const stringController = numberController.transform(
155
+ * (n) => n.toString(),
156
+ * (s) => parseFloat(s) || 0
157
+ * )
158
+ * ```
159
+ */
39
160
  readonly transform: <Out>(transform: (value: T) => Out, untransform: (value: Out) => T, subpath?: PathSegment[], equals?: (a: Out, b: Out) => boolean) => Controller<Out>;
161
+ /**
162
+ * Creates a transformed controller with async bidirectional mapping.
163
+ * Useful for async operations like fetching related data or formatting.
164
+ *
165
+ * @template Out - The transformed value type
166
+ * @param transform - Async function to convert from T to Out
167
+ * @param untransform - Async function to convert from Out back to T
168
+ * @param alt - Fallback value while async transform is pending
169
+ * @param subpath - Optional path segments to append
170
+ * @param equals - Equality function for the transformed type
171
+ * @returns A new Controller instance managing the async-transformed value
172
+ */
40
173
  readonly asyncTransform: <Out>(transform: (value: T) => Promise<Out>, untransform: (value: Out) => Promise<T>, alt: Out, subpath?: PathSegment[], equals?: (a: Out, b: Out) => boolean) => Controller<Out>;
41
174
  }
175
+ /**
176
+ * Controller specialized for object values that provides field-level access via the `.field()` method.
177
+ * Automatically tracks deep touched and dirty states by monitoring all child field controllers.
178
+ *
179
+ * @template T - The object type managed by this controller
180
+ *
181
+ * @example
182
+ * ```typescript
183
+ * import { prop } from '@tempots/dom'
184
+ * import { ObjectController } from '@tempots/beatui'
185
+ * import { Validation } from '@tempots/std'
186
+ *
187
+ * const valueSignal = prop({ email: '', password: '' })
188
+ * const statusSignal = prop(Validation.valid)
189
+ * const disabledSignal = prop(false)
190
+ *
191
+ * const controller = new ObjectController(
192
+ * [],
193
+ * (value) => { valueSignal.set(value) },
194
+ * valueSignal,
195
+ * statusSignal,
196
+ * { disabled: disabledSignal }
197
+ * )
198
+ *
199
+ * // Access field controllers
200
+ * const emailController = controller.field('email')
201
+ * const passwordController = controller.field('password')
202
+ *
203
+ * // Deep state tracking
204
+ * controller.touchedDeep.value // True if any field is touched
205
+ * controller.dirtyDeep.value // True if any field is dirty
206
+ * ```
207
+ */
42
208
  export declare class ObjectController<T extends object> extends Controller<T> {
43
209
  #private;
210
+ /** Reactive signal indicating whether this field or any child field is touched. */
44
211
  readonly touchedDeep: Signal<boolean>;
212
+ /** Reactive signal indicating whether this field or any child field is dirty. */
45
213
  readonly dirtyDeep: Signal<boolean>;
46
214
  constructor(path: Path, change: (value: T) => void, signal: Signal<T>, status: Signal<ControllerValidation>, parent: {
47
215
  disabled: Signal<boolean>;
48
216
  }, equals: (a: T, b: T) => boolean);
217
+ /**
218
+ * Gets or creates a controller for a specific field in the object.
219
+ * Controllers are cached and reused for the same field name.
220
+ *
221
+ * @template K - The field key type
222
+ * @param field - The field name to access
223
+ * @returns A Controller instance for the specified field
224
+ *
225
+ * @example
226
+ * ```typescript
227
+ * const emailController = userController.field('email')
228
+ * const nameController = userController.field('name')
229
+ * ```
230
+ */
49
231
  readonly field: <K extends keyof T & string>(field: K) => Controller<T[K]>;
232
+ /**
233
+ * Marks this field and all child fields as touched recursively.
234
+ * Useful for showing all validation errors when a form is submitted.
235
+ */
50
236
  readonly markAllTouched: () => void;
237
+ /**
238
+ * Marks this field and all child fields as pristine (resets baseline) recursively.
239
+ */
51
240
  readonly markAllPristine: () => void;
52
241
  }
242
+ /**
243
+ * Controller specialized for array values that provides item-level access and array manipulation methods.
244
+ * Automatically tracks deep touched and dirty states by monitoring all child item controllers.
245
+ *
246
+ * @template T - The array type managed by this controller
247
+ *
248
+ * @example
249
+ * ```typescript
250
+ * import { prop } from '@tempots/dom'
251
+ * import { ArrayController } from '@tempots/beatui'
252
+ * import { Validation } from '@tempots/std'
253
+ *
254
+ * const valueSignal = prop(['task 1', 'task 2'])
255
+ * const statusSignal = prop(Validation.valid)
256
+ * const disabledSignal = prop(false)
257
+ *
258
+ * const controller = new ArrayController(
259
+ * [],
260
+ * (value) => { valueSignal.set(value) },
261
+ * valueSignal,
262
+ * statusSignal,
263
+ * { disabled: disabledSignal }
264
+ * )
265
+ *
266
+ * // Access item controllers
267
+ * const firstItemController = controller.item(0)
268
+ *
269
+ * // Array operations
270
+ * controller.push('new task')
271
+ * controller.removeAt(1)
272
+ * controller.move(0, 2) // Move first item to third position
273
+ * controller.length.value // Reactive array length
274
+ * ```
275
+ */
53
276
  export declare class ArrayController<T extends unknown[]> extends Controller<T> {
54
277
  #private;
278
+ /** Reactive signal containing the current array length. */
55
279
  readonly length: Signal<number>;
280
+ /** Reactive signal indicating whether this array or any item is touched. */
56
281
  readonly touchedDeep: Signal<boolean>;
282
+ /** Reactive signal indicating whether this array or any item is dirty. */
57
283
  readonly dirtyDeep: Signal<boolean>;
58
284
  constructor(path: Path, change: (value: T) => void, signal: Signal<T>, status: Signal<ControllerValidation>, parent: {
59
285
  disabled: Signal<boolean>;
60
286
  }, equals: (a: T, b: T) => boolean);
287
+ /**
288
+ * Gets or creates a controller for a specific array item by index.
289
+ * Controllers are cached and reused for the same index.
290
+ *
291
+ * @param index - The zero-based index of the item
292
+ * @returns A Controller instance for the specified item
293
+ *
294
+ * @example
295
+ * ```typescript
296
+ * const firstTaskController = tasksController.item(0)
297
+ * const secondTaskController = tasksController.item(1)
298
+ * ```
299
+ */
61
300
  readonly item: (index: number) => Controller<T[number]>;
301
+ /**
302
+ * Appends one or more items to the end of the array.
303
+ *
304
+ * @param value - Items to append
305
+ */
62
306
  readonly push: (...value: T[number][]) => void;
307
+ /**
308
+ * Removes the last item from the array.
309
+ */
63
310
  readonly pop: () => void;
311
+ /**
312
+ * Removes the first item from the array.
313
+ */
64
314
  readonly shift: () => void;
315
+ /**
316
+ * Inserts one or more items at the beginning of the array.
317
+ *
318
+ * @param value - Items to prepend
319
+ */
65
320
  readonly unshift: (...value: T) => void;
321
+ /**
322
+ * Removes the item at the specified index.
323
+ *
324
+ * @param index - Zero-based index of the item to remove
325
+ */
66
326
  readonly removeAt: (index: number) => void;
327
+ /**
328
+ * Removes items from the array starting at the specified index.
329
+ *
330
+ * @param start - Zero-based index to start removing items
331
+ * @param deleteCount - Number of items to remove (optional)
332
+ */
67
333
  readonly splice: (start: number, deleteCount?: number) => void;
334
+ /**
335
+ * Moves one or more items from one index to another within the array.
336
+ *
337
+ * @param from - Source index to move from
338
+ * @param to - Destination index to move to
339
+ * @param length - Number of items to move (defaults to 1)
340
+ *
341
+ * @example
342
+ * ```typescript
343
+ * controller.move(0, 2) // Move first item to third position
344
+ * controller.move(2, 0, 2) // Move items at index 2-3 to the beginning
345
+ * ```
346
+ */
68
347
  readonly move: (from: number, to: number, length?: number) => void;
348
+ /**
349
+ * Marks this array and all item controllers as touched recursively.
350
+ * Useful for showing all validation errors when a form is submitted.
351
+ */
69
352
  readonly markAllTouched: () => void;
353
+ /**
354
+ * Marks this array and all item controllers as pristine (resets baseline) recursively.
355
+ */
70
356
  readonly markAllPristine: () => void;
71
357
  }
@@ -1,3 +1,15 @@
1
+ /**
2
+ * @fileoverview Form Controller Module
3
+ *
4
+ * Exports form controller classes, utilities, and related types:
5
+ * - {@link Controller} / {@link ArrayController} - Core reactive form state management
6
+ * - {@link ControllerValidation} - Validation state tracking
7
+ * - {@link ColorController} - Specialized color value controller
8
+ * - {@link UnionController} - Controller for discriminated union types
9
+ * - {@link EnsureControl} / {@link ListControl} - Control components (re-exported from control/)
10
+ * - Path utilities for navigating nested form structures
11
+ * - Transform utilities for controller value conversion
12
+ */
1
13
  export * from '../control/ensure-control';
2
14
  export * from '../control/list-control';
3
15
  export * from './path';