@tempots/beatui 0.82.1 → 0.83.3

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 +294 -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
@@ -1,12 +1,47 @@
1
1
  import { TNode } from '@tempots/dom';
2
2
  import { AppearancePreference } from './theme';
3
3
  import { NotificationViewportPosition } from './misc/notification-provider';
4
+ /** Configuration options for the {@link BeatUI} root provider. */
4
5
  export type BeatUIOptions = {
6
+ /** Whether to load and provide the authentication i18n translations. @default false */
5
7
  includeAuthI18n?: boolean;
8
+ /** Whether to enable light/dark appearance toggling. @default true */
6
9
  enableAppearance?: boolean;
10
+ /** The initial appearance preference when appearance is enabled. @default 'system' */
7
11
  defaultAppearance?: AppearancePreference;
12
+ /** localStorage key used to persist the appearance preference. @default 'bui-appearance' */
8
13
  appearancePreferenceKey?: string;
14
+ /** Whether to include the notification system provider and viewport. @default true */
9
15
  includeNotifications?: boolean;
16
+ /** Position of the notification viewport on screen. @default 'bottom-end' */
10
17
  notificationPosition?: NotificationViewportPosition;
11
18
  };
19
+ /**
20
+ * Root provider component that initializes all BeatUI subsystems: routing,
21
+ * locale, i18n, theming, and notifications. Wrap your application with this
22
+ * component to enable all BeatUI features.
23
+ *
24
+ * @param options - Configuration for which subsystems to enable
25
+ * @param children - The application content
26
+ * @returns A provider tree wrapping the children
27
+ *
28
+ * @example
29
+ * ```typescript
30
+ * import { BeatUI } from '@tempots/beatui'
31
+ *
32
+ * BeatUI(
33
+ * { enableAppearance: true, includeNotifications: true },
34
+ * html.div('My Application')
35
+ * )
36
+ * ```
37
+ *
38
+ * @example
39
+ * ```typescript
40
+ * // With auth i18n support
41
+ * BeatUI(
42
+ * { includeAuthI18n: true, defaultAppearance: 'dark' },
43
+ * AppLayout({ children: Router({ ... }) })
44
+ * )
45
+ * ```
46
+ */
12
47
  export declare function BeatUI({ includeAuthI18n, enableAppearance, defaultAppearance, appearancePreferenceKey, includeNotifications, notificationPosition, }: BeatUIOptions, ...children: TNode[]): import("@tempots/dom").Renderable;
@@ -3,23 +3,84 @@ import { ControlSize, ButtonVariant } from '../theme';
3
3
  import { ThemeColorName } from '../../tokens';
4
4
  import { ExtendedColor } from '../theme/style-utils';
5
5
  import { RadiusName } from '../../tokens/radius';
6
+ /** Configuration options for the {@link Button} component. */
6
7
  export interface ButtonOptions {
8
+ /** The HTML button type attribute. @default 'button' */
7
9
  type?: Value<'submit' | 'reset' | 'button'>;
10
+ /** Whether the button is disabled and non-interactive. @default false */
8
11
  disabled?: Value<boolean>;
12
+ /** Whether to show a loading spinner and disable interaction. @default false */
9
13
  loading?: Value<boolean>;
14
+ /** Visual style variant controlling background, text, and border colors. @default 'filled' */
10
15
  variant?: Value<ButtonVariant>;
16
+ /** Size affecting padding, font size, and icon dimensions. @default 'md' */
11
17
  size?: Value<ControlSize>;
18
+ /** Theme color for the button's color scheme. @default 'base' */
12
19
  color?: Value<ThemeColorName>;
20
+ /** Border radius preset. @default 'sm' */
13
21
  roundedness?: Value<RadiusName>;
22
+ /** Callback invoked when the button is clicked. */
14
23
  onClick?: () => void;
24
+ /** Whether the button takes the full width of its container. @default false */
15
25
  fullWidth?: Value<boolean>;
16
26
  /**
17
27
  * Whether to stop event propagation on click.
18
28
  * When true (default), prevents the click event from bubbling up.
19
29
  * Set to false if you need parent elements to receive click events (e.g., for Flyout triggers).
30
+ * @default true
20
31
  */
21
32
  stopPropagation?: boolean;
22
33
  }
34
+ /**
35
+ * Generates CSS class names for a button based on size, roundedness, loading state, and width.
36
+ *
37
+ * @param size - Control size for padding and text
38
+ * @param roundedness - Border radius preset name
39
+ * @param loading - Whether loading spinner is shown
40
+ * @param fullWidth - Whether button is full-width
41
+ * @returns Space-separated CSS class string
42
+ */
23
43
  export declare function generateButtonClasses(size: ControlSize, roundedness: RadiusName, loading: boolean, fullWidth: boolean): string;
44
+ /**
45
+ * Generates inline CSS custom properties for button theming based on variant, color, and disabled state.
46
+ * Sets background, text, border, hover, and text-shadow values for both light and dark modes.
47
+ *
48
+ * @param variant - The visual style variant
49
+ * @param color - The theme color
50
+ * @param disabled - Whether the button is disabled (suppresses hover styles)
51
+ * @returns Semicolon-separated CSS custom property declarations
52
+ */
24
53
  export declare function generateButtonStyles(variant: ButtonVariant, color: ExtendedColor, disabled: boolean): string;
54
+ /**
55
+ * An interactive button component with theme-aware styling, loading state, and accessibility support.
56
+ *
57
+ * When `loading` is true, the button content is replaced with a spinning icon and the button is
58
+ * disabled. The button preserves its dimensions during loading to prevent layout shift.
59
+ * Screen readers are notified of the loading state via `aria-busy` and `aria-label`.
60
+ *
61
+ * For submit buttons (`type: 'submit'`), the default browser form submission behavior is preserved.
62
+ * For other button types, `preventDefault()` is called automatically.
63
+ *
64
+ * @param options - Configuration for appearance, behavior, and state
65
+ * @param children - Content to display inside the button (text, icons, etc.)
66
+ * @returns A styled button element
67
+ *
68
+ * @example
69
+ * ```typescript
70
+ * Button(
71
+ * { variant: 'filled', color: 'primary', onClick: () => console.log('clicked') },
72
+ * 'Save Changes'
73
+ * )
74
+ * ```
75
+ *
76
+ * @example
77
+ * ```typescript
78
+ * // Button with loading state
79
+ * const saving = prop(false)
80
+ * Button(
81
+ * { variant: 'filled', color: 'success', loading: saving, onClick: handleSave },
82
+ * 'Submit'
83
+ * )
84
+ * ```
85
+ */
25
86
  export declare function Button({ type, disabled, loading, variant, size, color, roundedness, onClick, fullWidth, stopPropagation, }: ButtonOptions, ...children: TNode[]): import("@tempots/dom").Renderable;
@@ -2,14 +2,45 @@ import { Renderable, TNode, Value } from '@tempots/dom';
2
2
  import { ControlSize } from '../theme';
3
3
  import { ThemeColorName } from '../../tokens';
4
4
  import { RadiusName } from '../../tokens/radius';
5
+ /** Configuration options for the {@link CloseButton} component. */
5
6
  export type CloseButtonOptions = {
7
+ /** Size of the close button icon and hit target. @default 'sm' */
6
8
  size?: Value<ControlSize>;
9
+ /** Icon name from Iconify. @default 'line-md:close' */
7
10
  icon?: Value<string>;
11
+ /** Whether the button is disabled. */
8
12
  disabled?: Value<boolean>;
13
+ /** Border radius of the button. @default 'full' */
9
14
  roundedness?: Value<RadiusName>;
15
+ /** Theme color for the icon. @default 'base' */
10
16
  color?: Value<ThemeColorName>;
17
+ /** Callback invoked when the button is clicked. */
11
18
  onClick?: () => void;
12
- /** Optional localized label for screen readers; defaults to t.$.closeModal */
19
+ /** Localized label for screen readers. Defaults to the i18n `closeModal` translation. */
13
20
  label?: Value<string>;
14
21
  };
22
+ /**
23
+ * A small icon-only button for dismissing modals, drawers, notifications, and tags.
24
+ * Renders as a text-variant button with a close icon (X) and proper ARIA labeling
25
+ * for screen reader accessibility.
26
+ *
27
+ * @param options - Configuration for size, icon, and behavior
28
+ * @param children - Additional child nodes appended to the button
29
+ * @returns A Renderable button element
30
+ *
31
+ * @example
32
+ * ```typescript
33
+ * CloseButton({ onClick: () => modal.close() })
34
+ * ```
35
+ *
36
+ * @example
37
+ * ```typescript
38
+ * // Custom icon and label
39
+ * CloseButton({
40
+ * icon: 'mdi:close-circle',
41
+ * label: 'Dismiss notification',
42
+ * onClick: handleDismiss
43
+ * })
44
+ * ```
45
+ */
15
46
  export declare function CloseButton({ size, icon, disabled, roundedness, color, onClick, label, }: CloseButtonOptions, ...children: TNode[]): Renderable;
@@ -1,2 +1,4 @@
1
1
  export * from './button';
2
2
  export * from './close-button';
3
+ export * from './toggle-button';
4
+ export * from './toggle-button-group';
@@ -0,0 +1,95 @@
1
+ import { TNode, Value } from '@tempots/dom';
2
+ import { ControlSize, ButtonVariant } from '../theme';
3
+ import { ThemeColorName } from '../../tokens';
4
+ import { RadiusName } from '../../tokens/radius';
5
+ /**
6
+ * Describes a single item within a {@link ToggleButtonGroup}.
7
+ */
8
+ export interface ToggleButtonGroupItem {
9
+ /** Unique key identifying this item within the group */
10
+ key: string;
11
+ /** Content rendered inside the toggle button (text, icons, or any TNode) */
12
+ label: TNode;
13
+ /** Whether this specific button is disabled. @default false */
14
+ disabled?: boolean;
15
+ }
16
+ /**
17
+ * Configuration options for the {@link ToggleButtonGroup} component.
18
+ */
19
+ export interface ToggleButtonGroupOptions {
20
+ /** The toggle button items to render */
21
+ items: ToggleButtonGroupItem[];
22
+ /** Array of currently selected item keys */
23
+ value: Value<string[]>;
24
+ /** Callback invoked when the selection changes */
25
+ onChange?: (value: string[]) => void;
26
+ /**
27
+ * Whether multiple items can be selected simultaneously.
28
+ * When false, selecting an item deselects all others.
29
+ * @default false
30
+ */
31
+ multiple?: Value<boolean>;
32
+ /** Whether the entire group is disabled. @default false */
33
+ disabled?: Value<boolean>;
34
+ /** Visual style variant applied to all buttons. @default 'outline' */
35
+ variant?: Value<ButtonVariant>;
36
+ /** Size affecting padding, font size, and dimensions. @default 'md' */
37
+ size?: Value<ControlSize>;
38
+ /** Theme color for pressed buttons. @default 'primary' */
39
+ color?: Value<ThemeColorName>;
40
+ /** Border radius preset for the group's outer corners. @default 'sm' */
41
+ roundedness?: Value<RadiusName>;
42
+ /**
43
+ * Layout orientation of the button group.
44
+ * @default 'horizontal'
45
+ */
46
+ orientation?: Value<'horizontal' | 'vertical'>;
47
+ }
48
+ /**
49
+ * A group container for toggle buttons that manages single or multiple
50
+ * selection. Buttons are visually connected with shared borders and
51
+ * the group's outer corners use the specified border radius.
52
+ *
53
+ * Uses `role="group"` for accessibility. In single-selection mode,
54
+ * selecting a button deselects all others (like a radio group).
55
+ * In multiple-selection mode, each button toggles independently.
56
+ *
57
+ * @param options - Configuration for the toggle button group
58
+ * @returns A styled group of toggle buttons
59
+ *
60
+ * @example
61
+ * ```ts
62
+ * import { prop } from '@tempots/dom'
63
+ * import { ToggleButtonGroup } from '@tempots/beatui'
64
+ *
65
+ * // Single selection
66
+ * const alignment = prop<string[]>(['left'])
67
+ * ToggleButtonGroup({
68
+ * items: [
69
+ * { key: 'left', label: 'Left' },
70
+ * { key: 'center', label: 'Center' },
71
+ * { key: 'right', label: 'Right' },
72
+ * ],
73
+ * value: alignment,
74
+ * onChange: alignment.set,
75
+ * })
76
+ * ```
77
+ *
78
+ * @example
79
+ * ```ts
80
+ * // Multiple selection
81
+ * const formats = prop<string[]>([])
82
+ * ToggleButtonGroup({
83
+ * items: [
84
+ * { key: 'bold', label: 'B' },
85
+ * { key: 'italic', label: 'I' },
86
+ * { key: 'underline', label: 'U' },
87
+ * ],
88
+ * value: formats,
89
+ * onChange: formats.set,
90
+ * multiple: true,
91
+ * variant: 'outline',
92
+ * })
93
+ * ```
94
+ */
95
+ export declare function ToggleButtonGroup({ items, value, onChange, multiple, disabled, variant, size, color, roundedness, orientation, }: ToggleButtonGroupOptions): import("@tempots/dom").Renderable;
@@ -0,0 +1,60 @@
1
+ import { TNode, Value } from '@tempots/dom';
2
+ import { ControlSize, ButtonVariant } from '../theme';
3
+ import { ThemeColorName } from '../../tokens';
4
+ import { RadiusName } from '../../tokens/radius';
5
+ /**
6
+ * Configuration options for the {@link ToggleButton} component.
7
+ */
8
+ export interface ToggleButtonOptions {
9
+ /** Whether the button is currently pressed/active. */
10
+ pressed: Value<boolean>;
11
+ /** Callback invoked when the button is toggled. */
12
+ onToggle?: (pressed: boolean) => void;
13
+ /** Whether the button is disabled. @default false */
14
+ disabled?: Value<boolean>;
15
+ /** Visual style variant. @default 'outline' */
16
+ variant?: Value<ButtonVariant>;
17
+ /** Size affecting padding, font size, and icon dimensions. @default 'md' */
18
+ size?: Value<ControlSize>;
19
+ /** Theme color for the pressed state. @default 'primary' */
20
+ color?: Value<ThemeColorName>;
21
+ /** Border radius preset. @default 'sm' */
22
+ roundedness?: Value<RadiusName>;
23
+ /** Whether the button takes the full width of its container. @default false */
24
+ fullWidth?: Value<boolean>;
25
+ }
26
+ /**
27
+ * A toggle button that can be pressed/unpressed, similar to a checkbox
28
+ * but styled as a button with visual feedback for the pressed state.
29
+ *
30
+ * Uses `aria-pressed` for accessibility. When pressed, the button displays
31
+ * a filled appearance using the specified color; when unpressed, it shows
32
+ * the variant's default appearance.
33
+ *
34
+ * @param options - Configuration for the toggle button
35
+ * @param children - Content to display inside the button
36
+ * @returns A styled toggle button element
37
+ *
38
+ * @example
39
+ * ```ts
40
+ * import { prop } from '@tempots/dom'
41
+ * import { ToggleButton } from '@tempots/beatui'
42
+ *
43
+ * const bold = prop(false)
44
+ * ToggleButton(
45
+ * { pressed: bold, onToggle: bold.set, variant: 'outline' },
46
+ * 'B'
47
+ * )
48
+ * ```
49
+ *
50
+ * @example
51
+ * ```ts
52
+ * // Icon toggle
53
+ * const starred = prop(false)
54
+ * ToggleButton(
55
+ * { pressed: starred, onToggle: starred.set, color: 'yellow' },
56
+ * Icon({ icon: starred.map(s => s ? 'lucide:star' : 'lucide:star-off') })
57
+ * )
58
+ * ```
59
+ */
60
+ export declare function ToggleButton({ pressed, onToggle, disabled, variant, size, color, roundedness, fullWidth, }: ToggleButtonOptions, ...children: TNode[]): import("@tempots/dom").Renderable;
@@ -0,0 +1,74 @@
1
+ import { TNode, Value } from '@tempots/dom';
2
+ import { ThemeColorName } from '../../tokens';
3
+ import { AvatarSize } from './avatar';
4
+ /**
5
+ * Configuration options for the {@link AvatarGroup} component.
6
+ */
7
+ export interface AvatarGroupOptions {
8
+ /** Size of avatars in the group. @default 'md' */
9
+ size?: Value<AvatarSize>;
10
+ /** Spacing between avatars: 'tight' for overlap, 'normal' for standard gap. @default 'tight' */
11
+ spacing?: Value<'tight' | 'normal'>;
12
+ }
13
+ /**
14
+ * Configuration options for the {@link AvatarGroupOverflow} component.
15
+ */
16
+ export interface AvatarGroupOverflowOptions {
17
+ /** Number to display in the overflow indicator (e.g., +5). */
18
+ count: Value<number>;
19
+ /** Size matching the avatar group. @default 'md' */
20
+ size?: Value<AvatarSize>;
21
+ /** Theme color for the overflow indicator background. @default 'base' */
22
+ color?: Value<ThemeColorName>;
23
+ }
24
+ /**
25
+ * Renders a container for grouping multiple Avatar components with overlapping or spaced layout.
26
+ *
27
+ * The AvatarGroup component provides a styled container for displaying multiple avatars
28
+ * in a row. It supports two spacing modes:
29
+ * - **tight**: Avatars overlap with negative margin for a compact, stacked appearance
30
+ * - **normal**: Avatars are spaced with standard gap
31
+ *
32
+ * The group automatically applies consistent sizing to all child avatars via CSS classes.
33
+ * For displaying overflow (e.g., "+5 more"), use the {@link AvatarGroupOverflow} component.
34
+ *
35
+ * @param options - Configuration for size and spacing
36
+ * @param children - Avatar components to display in the group
37
+ * @returns A div element containing the avatar group
38
+ *
39
+ * @example
40
+ * ```typescript
41
+ * AvatarGroup({ size: 'lg', spacing: 'tight' },
42
+ * Avatar({ src: 'user1.jpg', name: 'Alice' }),
43
+ * Avatar({ src: 'user2.jpg', name: 'Bob' }),
44
+ * Avatar({ src: 'user3.jpg', name: 'Charlie' }),
45
+ * AvatarGroupOverflow({ count: 5 })
46
+ * )
47
+ * ```
48
+ */
49
+ export declare function AvatarGroup({ size, spacing }: AvatarGroupOptions, ...children: TNode[]): import("@tempots/dom").Renderable;
50
+ /**
51
+ * Renders an overflow indicator for AvatarGroup showing the count of hidden avatars.
52
+ *
53
+ * This component displays a styled avatar-like element with a "+N" label indicating
54
+ * how many additional avatars are not shown in the group. It should be used as the
55
+ * last child of an {@link AvatarGroup}.
56
+ *
57
+ * The overflow indicator inherits the styling of the avatar group and matches the
58
+ * size of other avatars in the group.
59
+ *
60
+ * @param options - Configuration for count, size, and color
61
+ * @returns A div element styled as an avatar showing the overflow count
62
+ *
63
+ * @example
64
+ * ```typescript
65
+ * AvatarGroup({ size: 'md', spacing: 'tight' },
66
+ * Avatar({ name: 'Alice' }),
67
+ * Avatar({ name: 'Bob' }),
68
+ * Avatar({ name: 'Charlie' }),
69
+ * AvatarGroupOverflow({ count: 7, color: 'primary' })
70
+ * )
71
+ * // Displays: [A] [B] [C] [+7]
72
+ * ```
73
+ */
74
+ export declare function AvatarGroupOverflow({ count, size, color, }: AvatarGroupOverflowOptions): import("@tempots/dom").Renderable;
@@ -0,0 +1,62 @@
1
+ import { TNode, Value } from '@tempots/dom';
2
+ import { ThemeColorName } from '../../tokens';
3
+ /**
4
+ * Size options for Avatar components.
5
+ * Ranges from `'xs'` (24px) to `'2xl'` (96px).
6
+ */
7
+ export type AvatarSize = 'xs' | 'sm' | 'md' | 'lg' | 'xl' | '2xl';
8
+ /**
9
+ * Configuration options for the {@link Avatar} component.
10
+ */
11
+ export interface AvatarOptions {
12
+ /** Image URL for the avatar. @default undefined */
13
+ src?: Value<string | undefined>;
14
+ /** Name for generating initials fallback. @default undefined */
15
+ name?: Value<string | undefined>;
16
+ /** Icon name (Iconify format) as a fallback. @default undefined */
17
+ icon?: Value<string | undefined>;
18
+ /** Size of the avatar. @default 'md' */
19
+ size?: Value<AvatarSize>;
20
+ /** Shape variant: circle or square. @default 'circle' */
21
+ variant?: Value<'circle' | 'square'>;
22
+ /** Theme color for the avatar background. @default 'base' */
23
+ color?: Value<ThemeColorName>;
24
+ /** Whether to add a border around the avatar. @default false */
25
+ bordered?: Value<boolean>;
26
+ }
27
+ /**
28
+ * Renders a user avatar with image, initials, or icon fallback.
29
+ *
30
+ * The Avatar component displays user profile images with graceful fallbacks:
31
+ * 1. Image from `src` prop (if provided and loads successfully)
32
+ * 2. Initials derived from `name` prop (if image fails or is not provided)
33
+ * 3. Icon from `icon` prop (if provided and no name is available)
34
+ * 4. Default user icon (if all else fails)
35
+ *
36
+ * Supports multiple sizes, shapes (circle or square), theme colors, and optional borders.
37
+ * The component automatically applies the appropriate background color and text color
38
+ * based on the theme color and appearance mode.
39
+ *
40
+ * @param options - Configuration for image, name, icon, size, shape, color, and border
41
+ * @param children - Additional child nodes appended to the avatar container
42
+ * @returns A div element containing the rendered avatar
43
+ *
44
+ * @example
45
+ * ```typescript
46
+ * // Avatar with image
47
+ * Avatar({ src: 'https://example.com/avatar.jpg', name: 'John Doe', size: 'lg' })
48
+ * ```
49
+ *
50
+ * @example
51
+ * ```typescript
52
+ * // Avatar with initials fallback
53
+ * Avatar({ name: 'Jane Smith', color: 'primary', variant: 'square' })
54
+ * ```
55
+ *
56
+ * @example
57
+ * ```typescript
58
+ * // Avatar with icon fallback
59
+ * Avatar({ icon: 'mdi:account', size: 'xl', bordered: true })
60
+ * ```
61
+ */
62
+ export declare function Avatar({ src, name, icon, size, variant, color, bordered, }: AvatarOptions, ...children: TNode[]): import("@tempots/dom").Renderable;
@@ -3,14 +3,61 @@ import { ControlSize, ButtonVariant } from '../theme';
3
3
  import { ThemeColorName } from '../../tokens';
4
4
  import { ExtendedColor } from '../theme/style-utils';
5
5
  import { RadiusName } from '../../tokens/radius';
6
+ /** Configuration options for the {@link Badge} component. */
6
7
  export interface BadgeOptions {
8
+ /** Visual style variant matching button variants. @default 'filled' */
7
9
  variant?: Value<ButtonVariant>;
10
+ /** Size of the badge affecting padding and font. @default 'md' */
8
11
  size?: Value<ControlSize>;
12
+ /** Theme color for the badge background and text. @default 'base' */
9
13
  color?: Value<ThemeColorName>;
14
+ /** Border radius of the badge. @default 'full' */
10
15
  roundedness?: Value<RadiusName>;
16
+ /** Whether to render as a circle (equal width and height). @default false */
11
17
  circle?: Value<boolean>;
18
+ /** Whether the badge takes the full width of its container. @default false */
12
19
  fullWidth?: Value<boolean>;
20
+ /** Whether to render as a small colored dot indicator (8px by default). @default false */
21
+ dot?: Value<boolean>;
13
22
  }
14
- export declare function generateBadgeClasses(size: ControlSize, roundedness: RadiusName, circle: boolean, fullWidth: boolean): string;
23
+ /**
24
+ * Generates CSS class names for the badge based on size, roundedness, and shape.
25
+ *
26
+ * @param size - Control size for padding and text
27
+ * @param roundedness - Border radius preset
28
+ * @param circle - Whether to force a circular shape
29
+ * @param fullWidth - Whether to stretch to full container width
30
+ * @param dot - Whether to render as a small dot indicator
31
+ * @returns Space-separated CSS class string
32
+ */
33
+ export declare function generateBadgeClasses(size: ControlSize, roundedness: RadiusName, circle: boolean, fullWidth: boolean, dot: boolean): string;
34
+ /**
35
+ * Generates inline CSS custom properties for badge theming based on variant and color.
36
+ * Sets background, text, border, and hover colors for both light and dark modes.
37
+ *
38
+ * @param variant - The visual style variant
39
+ * @param color - The theme color
40
+ * @returns Semicolon-separated CSS custom property declarations
41
+ */
15
42
  export declare function generateBadgeStyles(variant: ButtonVariant, color: ExtendedColor): string;
16
- export declare function Badge({ variant, size, color, roundedness, circle, fullWidth, }: BadgeOptions, ...children: TNode[]): import("@tempots/dom").Renderable;
43
+ /**
44
+ * A small status indicator or label component with theme-aware colors.
45
+ * Supports all button variants (filled, light, outline, default, text) and
46
+ * can be rendered as a pill, circle, or full-width element.
47
+ *
48
+ * @param options - Configuration for variant, size, color, and shape
49
+ * @param children - Content to display inside the badge (text, number, icon)
50
+ * @returns A styled span element
51
+ *
52
+ * @example
53
+ * ```typescript
54
+ * Badge({ variant: 'filled', color: 'success', size: 'sm' }, '3')
55
+ * ```
56
+ *
57
+ * @example
58
+ * ```typescript
59
+ * // Circle badge for notification counts
60
+ * Badge({ circle: true, color: 'danger', size: 'xs' }, '9+')
61
+ * ```
62
+ */
63
+ export declare function Badge({ variant, size, color, roundedness, circle, fullWidth, dot, }: BadgeOptions, ...children: TNode[]): import("@tempots/dom").Renderable;
@@ -0,0 +1,59 @@
1
+ import { Value, type Prop, type TNode } from '@tempots/dom';
2
+ import { ControlSize } from '../theme';
3
+ import { ThemeColorName } from '../../tokens';
4
+ import type { BeatUITemporal, PlainDate } from '../../temporal/types';
5
+ export declare const YEARS_PER_PAGE = 20;
6
+ export declare const DAYS_IN_WEEK = 7;
7
+ export declare const MONTH_NAMES: string[];
8
+ export declare const SHORT_MONTH_NAMES: string[];
9
+ export declare const DAY_NAMES: string[];
10
+ export type CalendarView = 'days' | 'months' | 'years';
11
+ export declare function generateCalendarClasses(size: ControlSize, disabled: boolean): string;
12
+ export declare function generateCalendarStyles(color: ThemeColorName): string;
13
+ /** Base cell data computed by {@link buildCalendarGrid}. */
14
+ export interface CalendarBaseCell {
15
+ day: number;
16
+ date: PlainDate;
17
+ inMonth: boolean;
18
+ isToday: boolean;
19
+ isDisabled: boolean;
20
+ }
21
+ /** Builds the base array of day cells for a given month. */
22
+ export declare function buildCalendarGrid(T: BeatUITemporal, year: number, month: number, weekStartsOn: number, today: PlainDate, isDateDisabled?: (date: PlainDate) => boolean): CalendarBaseCell[];
23
+ /** State and actions returned by {@link createCalendarNav}. */
24
+ export interface CalendarNav {
25
+ today: PlainDate;
26
+ currentYear: Prop<number>;
27
+ currentMonth: Prop<number>;
28
+ view: Prop<CalendarView>;
29
+ yearPageStart: Prop<number>;
30
+ shiftedDayNames: string[];
31
+ prevMonth: () => void;
32
+ nextMonth: () => void;
33
+ prevYear: () => void;
34
+ nextYear: () => void;
35
+ prevYearPage: () => void;
36
+ nextYearPage: () => void;
37
+ switchToMonthsView: () => void;
38
+ switchToYearsView: () => void;
39
+ selectMonth: (month: number) => void;
40
+ selectYear: (year: number) => void;
41
+ }
42
+ /** Creates the shared navigation state for a calendar. */
43
+ export declare function createCalendarNav(T: BeatUITemporal, initialYear: number, initialMonth: number, disabled: Value<boolean>, weekStartsOn: number): CalendarNav;
44
+ export interface CalendarShellOptions {
45
+ size: Value<ControlSize>;
46
+ disabled: Value<boolean>;
47
+ color: Value<ThemeColorName>;
48
+ ariaLabel: string;
49
+ }
50
+ /**
51
+ * Renders the full calendar shell: outer wrapper, navigation header
52
+ * (days/months/years), weekday headers, month picker, year picker,
53
+ * and a custom day grid.
54
+ */
55
+ export declare function renderCalendarShell(nav: CalendarNav, opts: CalendarShellOptions, renderGrid: () => TNode): TNode;
56
+ /** Converts a `PlainDate` to a JavaScript `Date` (local midnight). */
57
+ export declare function plainDateToDate(pd: PlainDate): Date;
58
+ /** Converts a JavaScript `Date` to a `PlainDate`. */
59
+ export declare function dateToPlainDate(T: BeatUITemporal, d: Date): PlainDate;