@jfrader/ui 0.5.1 → 0.7.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 (336) hide show
  1. package/README.md +28 -7
  2. package/dist/{accordion-DLul6vIl.js → accordion-D6myONB9.js} +36 -35
  3. package/dist/accordion.js +1 -1
  4. package/dist/activity-rings-Uszvwqdl.js +528 -0
  5. package/dist/activity-rings.js +2 -0
  6. package/dist/{alert-DS_einpy.js → alert-Bhj-qSMs.js} +15 -14
  7. package/dist/alert.js +1 -1
  8. package/dist/{announcement-bar-Dlbq5-9D.js → announcement-bar-B5J33QUh.js} +132 -131
  9. package/dist/announcement-bar.js +1 -1
  10. package/dist/{avatar-group-M1opAQEG.js → avatar-group-BlMLNw4J.js} +10 -9
  11. package/dist/avatar-group.js +1 -1
  12. package/dist/avatar-sPxDqFiZ.js +133 -0
  13. package/dist/avatar.js +1 -1
  14. package/dist/{badge-CjM5Agqk.js → badge-CfhTcA-Z.js} +10 -9
  15. package/dist/badge.js +1 -1
  16. package/dist/billing-toggle-CgC7yxxo.js +349 -0
  17. package/dist/billing-toggle.js +2 -0
  18. package/dist/{bottom-sheet-DjZOPq4k.js → bottom-sheet-BFQKO0Wo.js} +282 -264
  19. package/dist/bottom-sheet.js +1 -1
  20. package/dist/{breadcrumbs-BDK_LiwH.js → breadcrumbs-CG3akw-b.js} +19 -18
  21. package/dist/breadcrumbs.js +1 -1
  22. package/dist/{button-NLY0h6EJ.js → button-C6OV0C7J.js} +14 -13
  23. package/dist/button-group-B9wP2ddS.js +611 -0
  24. package/dist/button-group.js +2 -0
  25. package/dist/button.js +1 -1
  26. package/dist/calendar-Bg6D2sul.js +377 -0
  27. package/dist/calendar.js +1 -1
  28. package/dist/calendar.utils-azmB4Ej7.js +79 -0
  29. package/dist/card-C008OQCp.js +164 -0
  30. package/dist/card.js +1 -1
  31. package/dist/{carousel-B7OrvD6J.js → carousel-lTH4Foke.js} +13 -12
  32. package/dist/carousel.js +1 -1
  33. package/dist/chat-thread-DkB-WMWJ.js +864 -0
  34. package/dist/chat-thread.js +2 -0
  35. package/dist/{checkbox-DKSzExj2.js → checkbox-CClE61GV.js} +9 -8
  36. package/dist/checkbox.js +1 -1
  37. package/dist/{chip-group-DjQ0_6Y9.js → chip-group-BZUX9KPF.js} +17 -16
  38. package/dist/chip-group.js +1 -1
  39. package/dist/{choice-control-5kJkLXgv.js → choice-control-BsWOZPc9.js} +1 -1
  40. package/dist/{code-block-B5we2lZa.js → code-block-CYP89_6h.js} +35 -34
  41. package/dist/code-block.js +1 -1
  42. package/dist/{combobox-DFFqOBCi.js → combobox-D2Oc-co7.js} +21 -20
  43. package/dist/combobox.js +1 -1
  44. package/dist/command-palette-BrT1n9bb.js +394 -0
  45. package/dist/command-palette.js +1 -1
  46. package/dist/comment-thread-DXfqgRNI.js +772 -0
  47. package/dist/comment-thread.js +1 -1
  48. package/dist/{container-BOaSptJa.js → container-BxtwJSSD.js} +3 -2
  49. package/dist/container.js +1 -1
  50. package/dist/{context-menu-__1c2Dk9.js → context-menu-I4i0LRpm.js} +52 -51
  51. package/dist/context-menu.js +1 -1
  52. package/dist/{copy-button-DCSLcYS-.js → copy-button-C0p_qrgf.js} +4 -4
  53. package/dist/copy-button.js +1 -1
  54. package/dist/{countdown-Dp_TD1VP.js → countdown-EcpV6rXy.js} +18 -17
  55. package/dist/countdown.js +1 -1
  56. package/dist/css-BYJhdGh-.js +2 -0
  57. package/dist/{date-picker-BiPN7yeK.js → date-picker-D-bn-iHs.js} +14 -13
  58. package/dist/date-picker.js +1 -1
  59. package/dist/date-range-picker-rXcZsI1Y.js +589 -0
  60. package/dist/date-range-picker.js +1 -1
  61. package/dist/dialog-CR1xdkrC.js +222 -0
  62. package/dist/dialog.js +1 -1
  63. package/dist/{divider-Cp7aNbhM.js → divider-zOJzkcHh.js} +7 -6
  64. package/dist/divider.js +1 -1
  65. package/dist/drawer-CceaEhCr.js +590 -0
  66. package/dist/drawer.js +1 -1
  67. package/dist/emblem-DnXmpZCh.js +166 -0
  68. package/dist/emblem.js +2 -0
  69. package/dist/{empty-state-CDgrjPPf.js → empty-state-DO0ApylK.js} +2 -1
  70. package/dist/empty-state.js +1 -1
  71. package/dist/{expandable-card-rUATve0o.js → expandable-card-W97vjix9.js} +52 -51
  72. package/dist/expandable-card.js +1 -1
  73. package/dist/{expanding-search-BxOwtdwt.js → expanding-search-Bb2_YfNx.js} +16 -15
  74. package/dist/expanding-search.js +1 -1
  75. package/dist/{field-anatomy-COVdNpf5.js → field-anatomy-BDIP42MI.js} +2 -1
  76. package/dist/{file-dropzone-BuXm3Tea.js → file-dropzone-Bi5ikRIz.js} +14 -13
  77. package/dist/file-dropzone.js +1 -1
  78. package/dist/{filter-toolbar-Cy5Hqur-.js → filter-toolbar-QRnC4S_H.js} +33 -32
  79. package/dist/filter-toolbar.js +1 -1
  80. package/dist/{flex-Dh-_J5-U.js → flex-CS7eMRcK.js} +2 -2
  81. package/dist/flex.js +1 -1
  82. package/dist/game-card-Oeu74giK.js +194 -0
  83. package/dist/game-card.js +2 -0
  84. package/dist/{hold-to-confirm-DjB2EVjM.js → hold-to-confirm-CVBA0wNT.js} +18 -17
  85. package/dist/hold-to-confirm.js +1 -1
  86. package/dist/{hover-card-CoMJKg1g.js → hover-card-Dgu2CwMD.js} +20 -19
  87. package/dist/hover-card.js +1 -1
  88. package/dist/{icon-wrapper-stN8sD7R.js → icon-wrapper-C-zMD0uL.js} +1 -1
  89. package/dist/{image-compare-BxY8Ykzt.js → image-compare-Ln2UUqTU.js} +20 -19
  90. package/dist/image-compare.js +1 -1
  91. package/dist/in-view-title-BUZCMqge.js +225 -0
  92. package/dist/in-view-title.js +2 -0
  93. package/dist/index.js +102 -83
  94. package/dist/initials-DEdwNe9_.js +18 -0
  95. package/dist/{inline-edit-C0eeml65.js → inline-edit-D-pR2RPC.js} +22 -21
  96. package/dist/inline-edit.js +1 -1
  97. package/dist/{input-control-DmMuAuPS.js → input-control-B6HVBgwl.js} +1 -1
  98. package/dist/{json-viewer-DgWqyU75.js → json-viewer-Dro3WrjS.js} +31 -30
  99. package/dist/json-viewer.js +1 -1
  100. package/dist/{kbd-C3ACoMoE.js → kbd-BI_9qzYr.js} +2 -1
  101. package/dist/kbd.js +1 -1
  102. package/dist/keycap-keyboard-Cdx-OAS1.js +311 -0
  103. package/dist/keycap-keyboard.js +2 -0
  104. package/dist/{layout-style-Cbd1Vilw.js → layout-style-BE0gSqrH.js} +1 -1
  105. package/dist/lightbox-gallery-D0YaSTut.js +777 -0
  106. package/dist/lightbox-gallery.js +2 -0
  107. package/dist/link-unfurl-CReyIjyy.js +695 -0
  108. package/dist/link-unfurl.js +2 -0
  109. package/dist/{listbox-style-WX-RASp1.js → listbox-style-DNOxAulu.js} +1 -1
  110. package/dist/{loading-ring-B8-30Dl1.js → loading-ring-D0lGrK8z.js} +1 -1
  111. package/dist/locale-switcher-DTkySKsM.js +375 -0
  112. package/dist/locale-switcher.js +2 -0
  113. package/dist/{mention-input-sq61si9L.js → mention-input-BjjAbJCf.js} +6 -6
  114. package/dist/mention-input.js +1 -1
  115. package/dist/{menu-DDKgmK2F.js → menu-CVzpsyXn.js} +113 -96
  116. package/dist/menu.js +1 -1
  117. package/dist/{metric-card--lVTz5Wn.js → metric-card-BnFssTXj.js} +12 -11
  118. package/dist/metric-card.js +1 -1
  119. package/dist/{multi-select-DG1BCFX7.js → multi-select-B3puEVo0.js} +67 -66
  120. package/dist/multi-select.js +1 -1
  121. package/dist/{navigation-CC26JDr-.js → navigation-C_JD43gA.js} +41 -40
  122. package/dist/navigation.js +1 -1
  123. package/dist/next.js +65 -0
  124. package/dist/now-playing-DjVm1Phm.js +439 -0
  125. package/dist/now-playing.js +2 -0
  126. package/dist/overlay-motion-Cr77ihn2.js +90 -0
  127. package/dist/{overlay-portal-C4JZFq2M.js → overlay-portal-C9igMHnC.js} +1 -1
  128. package/dist/{pagination-BfkeWbmP.js → pagination-Dkh4bJQh.js} +10 -9
  129. package/dist/pagination.js +1 -1
  130. package/dist/{password-field-03pWRkuY.js → password-field-Da58GP1g.js} +4 -4
  131. package/dist/password-field.js +1 -1
  132. package/dist/photo-grid-Dtl17D74.js +830 -0
  133. package/dist/photo-grid.js +2 -0
  134. package/dist/{pill-BaS-uIbn.js → pill-Dd7pog19.js} +10 -9
  135. package/dist/pill.js +1 -1
  136. package/dist/{popover-CErIw2q3.js → popover-CUMOcMtj.js} +5 -4
  137. package/dist/popover.js +1 -1
  138. package/dist/presence-spring-4zwtUDQN.js +12 -0
  139. package/dist/{progress-DAQkfhPd.js → progress-Bcuz3Ob4.js} +11 -10
  140. package/dist/progress.js +1 -1
  141. package/dist/{radio-cards-Cu9cBssN.js → radio-cards-FkAhESb5.js} +35 -34
  142. package/dist/radio-cards.js +1 -1
  143. package/dist/{radio-group-TIK0-iPX.js → radio-group-DItMf2YM.js} +18 -17
  144. package/dist/radio-group.js +1 -1
  145. package/dist/{resizable-panels-DUpQEpwG.js → resizable-panels-61h9hA3B.js} +13 -12
  146. package/dist/resizable-panels.js +1 -1
  147. package/dist/{scroll-area-CcZyiSOQ.js → scroll-area-B8KkCPOM.js} +16 -15
  148. package/dist/scroll-area.js +1 -1
  149. package/dist/{search-field-DMvho0KQ.js → search-field-CbsajaZb.js} +93 -92
  150. package/dist/search-field.js +1 -1
  151. package/dist/{segmented-control-8ZUGnsZm.js → segmented-control-DCh-4ca-.js} +26 -25
  152. package/dist/segmented-control.js +1 -1
  153. package/dist/{select-D5rhJ8gi.js → select-SrcQqZjo.js} +27 -26
  154. package/dist/select.js +1 -1
  155. package/dist/sheet-stack-DYX1SGSB.js +820 -0
  156. package/dist/sheet-stack.js +2 -0
  157. package/dist/shortcut-recorder-VgTQdjjn.js +688 -0
  158. package/dist/shortcut-recorder.js +2 -0
  159. package/dist/{signature-pad-_bTeguN9.js → signature-pad-khL2yhQI.js} +15 -14
  160. package/dist/signature-pad.js +1 -1
  161. package/dist/{skeleton-XQQDkCHd.js → skeleton-LJsQsveI.js} +9 -8
  162. package/dist/skeleton.js +1 -1
  163. package/dist/slider-DjAnGmlC.js +535 -0
  164. package/dist/slider.js +1 -1
  165. package/dist/{sortable-data-table-CYKT_Ng7.js → sortable-data-table-Bpitup_d.js} +29 -28
  166. package/dist/sortable-data-table.js +1 -1
  167. package/dist/{spinner-DtxvDPdM.js → spinner-CvzajSg9.js} +11 -10
  168. package/dist/spinner.js +1 -1
  169. package/dist/{split-button-BCw4zZom.js → split-button-Bu41f2AY.js} +20 -19
  170. package/dist/split-button.js +1 -1
  171. package/dist/{stack-DC3IbtWk.js → stack-Bac4sJeI.js} +2 -2
  172. package/dist/stack.js +1 -1
  173. package/dist/{stepper-CruHbXxX.js → stepper-C8Ncavbr.js} +22 -21
  174. package/dist/stepper.js +1 -1
  175. package/dist/stretch-refresh-OrnTEj7P.js +349 -0
  176. package/dist/stretch-refresh.js +2 -0
  177. package/dist/{surface-DZ4d-2aL.js → surface-C69kwSuk.js} +13 -3
  178. package/dist/{swipe-actions-CBuJREU1.js → swipe-actions-1H5UOZKE.js} +26 -25
  179. package/dist/swipe-actions.js +1 -1
  180. package/dist/{switch-C1WrKrf-.js → switch-79-hkQqg.js} +15 -14
  181. package/dist/switch.js +1 -1
  182. package/dist/sx-BJXJ2xJK.js +23 -0
  183. package/dist/{tabs-XluwRjgg.js → tabs-Bb5-noYE.js} +43 -42
  184. package/dist/tabs.js +1 -1
  185. package/dist/{tag-input-DSRCyrX2.js → tag-input-BQaueKEb.js} +5 -5
  186. package/dist/tag-input.js +1 -1
  187. package/dist/{text-field-hU72iSVS.js → text-field-D0VP7b4P.js} +3 -3
  188. package/dist/text-field.js +1 -1
  189. package/dist/{textarea-3k4Y0QQ3.js → textarea-D1YwEPmn.js} +3 -3
  190. package/dist/textarea.js +1 -1
  191. package/dist/theme-provider-BvcY-iJu.js +20 -0
  192. package/dist/theme-root-BrYVcTzt.js +163 -0
  193. package/dist/theme-root.js +1 -1
  194. package/dist/theme-scope-DGWy4H0C.js +62 -0
  195. package/dist/{theme-switch-C505TtU8.js → theme-switch-CP42mVDb.js} +12 -11
  196. package/dist/theme-switch.js +1 -1
  197. package/dist/thread-parts-Cpktor6D.js +683 -0
  198. package/dist/{time-picker-CPlhW0tr.js → time-picker-Tnd-JBLC.js} +16 -15
  199. package/dist/time-picker.js +1 -1
  200. package/dist/{timeline-B0uAAVfT.js → timeline-BcF46lG9.js} +22 -21
  201. package/dist/timeline.js +1 -1
  202. package/dist/{toast-B7wo3sX1.js → toast-CSAbl5yK.js} +12 -11
  203. package/dist/{toast-stack-B40VpS4M.js → toast-stack-BCR4Cu7V.js} +10 -9
  204. package/dist/toast-stack.js +1 -1
  205. package/dist/toast.js +1 -1
  206. package/dist/{toggle-group-B2fpFZwV.js → toggle-group-C7ye1v4s.js} +23 -22
  207. package/dist/toggle-group.js +1 -1
  208. package/dist/{tooltip-BvgVTCTN.js → tooltip-IajLwdUb.js} +48 -39
  209. package/dist/tooltip.js +1 -1
  210. package/dist/{tree-view-j8qLqkb_.js → tree-view-CoW4oJIZ.js} +15 -14
  211. package/dist/tree-view.js +1 -1
  212. package/dist/{trigger-style-B1KVC8O1.js → trigger-style-CtOrdPk4.js} +1 -1
  213. package/dist/types/components/activity-rings/activity-rings.d.ts +113 -0
  214. package/dist/types/components/activity-rings/index.d.ts +2 -0
  215. package/dist/types/components/avatar-group/avatar-group.d.ts +3 -3
  216. package/dist/types/components/billing-toggle/billing-toggle.d.ts +57 -0
  217. package/dist/types/components/billing-toggle/index.d.ts +2 -0
  218. package/dist/types/components/button/button.d.ts +7 -7
  219. package/dist/types/components/button-group/button-group.d.ts +72 -0
  220. package/dist/types/components/button-group/index.d.ts +2 -0
  221. package/dist/types/components/card/card.d.ts +7 -1
  222. package/dist/types/components/chat-thread/chat-thread.d.ts +130 -0
  223. package/dist/types/components/chat-thread/index.d.ts +2 -0
  224. package/dist/types/components/chip-group/chip-group.d.ts +2 -2
  225. package/dist/types/components/combobox/combobox.d.ts +2 -2
  226. package/dist/types/components/command-palette/command-palette.d.ts +1 -1
  227. package/dist/types/components/comment-thread/comment-thread.d.ts +7 -7
  228. package/dist/types/components/copy-button/copy-button.d.ts +6 -6
  229. package/dist/types/components/countdown/countdown.d.ts +2 -2
  230. package/dist/types/components/dialog/dialog.d.ts +18 -20
  231. package/dist/types/components/drawer/drawer.d.ts +7 -1
  232. package/dist/types/components/emblem/emblem.d.ts +59 -0
  233. package/dist/types/components/emblem/index.d.ts +2 -0
  234. package/dist/types/components/empty-state/empty-state.d.ts +2 -2
  235. package/dist/types/components/file-dropzone/file-dropzone.d.ts +3 -4
  236. package/dist/types/components/filter-toolbar/filter-toolbar.d.ts +2 -2
  237. package/dist/types/components/game-card/card-frame.d.ts +16 -0
  238. package/dist/types/components/game-card/decks.d.ts +27 -0
  239. package/dist/types/components/game-card/game-card.d.ts +37 -0
  240. package/dist/types/components/game-card/index.d.ts +4 -0
  241. package/dist/types/components/hold-to-confirm/hold-to-confirm.d.ts +1 -1
  242. package/dist/types/components/hover-card/hover-card.d.ts +5 -5
  243. package/dist/types/components/in-view-title/in-view-title.d.ts +23 -0
  244. package/dist/types/components/in-view-title/index.d.ts +1 -0
  245. package/dist/types/components/inline-edit/inline-edit.d.ts +6 -6
  246. package/dist/types/components/json-viewer/json-viewer.d.ts +7 -9
  247. package/dist/types/components/keycap-keyboard/index.d.ts +2 -0
  248. package/dist/types/components/keycap-keyboard/keycap-keyboard.d.ts +32 -0
  249. package/dist/types/components/lightbox-gallery/index.d.ts +2 -0
  250. package/dist/types/components/lightbox-gallery/lightbox-gallery.d.ts +74 -0
  251. package/dist/types/components/link-unfurl/index.d.ts +2 -0
  252. package/dist/types/components/link-unfurl/link-unfurl.d.ts +104 -0
  253. package/dist/types/components/locale-switcher/index.d.ts +2 -0
  254. package/dist/types/components/locale-switcher/locale-switcher.d.ts +64 -0
  255. package/dist/types/components/mention-input/mention-input.d.ts +7 -7
  256. package/dist/types/components/menu/menu.d.ts +29 -5
  257. package/dist/types/components/metric-card/metric-card.d.ts +2 -2
  258. package/dist/types/components/navigation/navigation.d.ts +1 -1
  259. package/dist/types/components/next/emotion-registry.d.ts +14 -0
  260. package/dist/types/components/next/index.d.ts +2 -0
  261. package/dist/types/components/next/registry.d.ts +21 -0
  262. package/dist/types/components/now-playing/index.d.ts +1 -0
  263. package/dist/types/components/now-playing/now-playing.d.ts +88 -0
  264. package/dist/types/components/password-field/password-field.d.ts +1 -1
  265. package/dist/types/components/photo-grid/index.d.ts +2 -0
  266. package/dist/types/components/photo-grid/photo-grid.d.ts +82 -0
  267. package/dist/types/components/progress/progress.d.ts +1 -1
  268. package/dist/types/components/select/select.d.ts +1 -1
  269. package/dist/types/components/sheet-stack/index.d.ts +2 -0
  270. package/dist/types/components/sheet-stack/sheet-stack.d.ts +81 -0
  271. package/dist/types/components/shortcut-recorder/index.d.ts +2 -0
  272. package/dist/types/components/shortcut-recorder/shortcut-recorder.d.ts +117 -0
  273. package/dist/types/components/signature-pad/signature-pad.d.ts +2 -2
  274. package/dist/types/components/split-button/split-button.d.ts +3 -4
  275. package/dist/types/components/stretch-refresh/index.d.ts +1 -0
  276. package/dist/types/components/stretch-refresh/stretch-refresh.d.ts +49 -0
  277. package/dist/types/components/swipe-actions/swipe-actions.d.ts +1 -2
  278. package/dist/types/components/tag-input/tag-input.d.ts +2 -3
  279. package/dist/types/components/theme-root/index.d.ts +1 -0
  280. package/dist/types/components/theme-root/theme-root.d.ts +10 -3
  281. package/dist/types/components/theme-switch/theme-switch.d.ts +3 -3
  282. package/dist/types/components/{comment-thread → thread}/thread-parts.d.ts +7 -2
  283. package/dist/types/components/time-picker/time-picker.d.ts +2 -2
  284. package/dist/types/components/timeline/timeline.d.ts +4 -4
  285. package/dist/types/components/toast/toast.d.ts +3 -3
  286. package/dist/types/components/tooltip/tooltip.d.ts +8 -1
  287. package/dist/types/components/tree-view/tree-view.d.ts +4 -3
  288. package/dist/types/components/typewriter-terminal/index.d.ts +2 -0
  289. package/dist/types/components/typewriter-terminal/typewriter-terminal.d.ts +87 -0
  290. package/dist/types/components/usage-meter/usage-meter.d.ts +6 -16
  291. package/dist/types/components/usage-meter/usage-model.d.ts +30 -0
  292. package/dist/types/components/user-menu/index.d.ts +2 -0
  293. package/dist/types/components/user-menu/user-menu.d.ts +118 -0
  294. package/dist/types/index.d.ts +18 -1
  295. package/dist/types/overlay/exit-motion.d.ts +24 -0
  296. package/dist/types/overlay/presence-spring.d.ts +12 -0
  297. package/dist/types/overlay/use-native-dialog.d.ts +10 -1
  298. package/dist/types/styling/create-theme.d.ts +24 -0
  299. package/dist/types/styling/css.d.ts +1 -1
  300. package/dist/types/styling/motion-timings.d.ts +5 -0
  301. package/dist/types/styling/overlay-motion.d.ts +95 -0
  302. package/dist/types/styling/surface.d.ts +7 -0
  303. package/dist/types/styling/sx.d.ts +1 -1
  304. package/dist/types/styling/theme-scope.d.ts +29 -3
  305. package/dist/types/styling/theme.d.ts +15 -0
  306. package/dist/types/utils/initials.d.ts +2 -0
  307. package/dist/typewriter-terminal-BUEsMzo3.js +588 -0
  308. package/dist/typewriter-terminal.js +2 -0
  309. package/dist/{usage-meter-qyQ3rYVv.js → usage-meter-CYvlB6l3.js} +165 -175
  310. package/dist/usage-meter.js +1 -1
  311. package/dist/usage-model-C0fS47w4.js +32 -0
  312. package/dist/use-native-dialog-FB0p7lkg.js +93 -0
  313. package/dist/use-scroll-lock-40gXwwAy.js +23 -0
  314. package/dist/user-menu-MctRu_Lh.js +757 -0
  315. package/dist/user-menu.js +2 -0
  316. package/dist/{visually-hidden-BJdvqqvn.js → visually-hidden-DgVO3NaB.js} +1 -1
  317. package/package.json +87 -5
  318. package/dist/avatar-CaGJHy1N.js +0 -145
  319. package/dist/calendar-BzJdv_SZ.js +0 -449
  320. package/dist/card-Ca4KQKYQ.js +0 -154
  321. package/dist/command-palette-BmQu2w4H.js +0 -391
  322. package/dist/comment-thread-ASaXDcGo.js +0 -1410
  323. package/dist/date-range-picker-DQpUeKqV.js +0 -570
  324. package/dist/dialog-BX1zYMs-.js +0 -219
  325. package/dist/drawer-DsASTiP-.js +0 -553
  326. package/dist/elastic-slider-BG6K019r.js +0 -395
  327. package/dist/elastic-slider.js +0 -2
  328. package/dist/slider-DVG6-Awh.js +0 -308
  329. package/dist/sx-Dx9JUKp5.js +0 -23
  330. package/dist/theme-root-Bs1U3uPA.js +0 -46
  331. package/dist/theme-scope-t7nAKc2c.js +0 -27
  332. package/dist/types/components/elastic-slider/elastic-slider.d.ts +0 -53
  333. package/dist/types/components/elastic-slider/index.d.ts +0 -1
  334. package/dist/use-native-dialog-DWpIUVO1.js +0 -84
  335. package/dist/use-slider-interaction-ChL-208h.js +0 -234
  336. /package/dist/types/components/{comment-thread → thread}/thread-core.d.ts +0 -0
@@ -1,5 +1,5 @@
1
1
  'use client';
2
- import { r as e } from "./sx-Dx9JUKp5.js";
2
+ import { i as e } from "./css-BYJhdGh-.js";
3
3
  import { vars as t } from "@jfrader/tokens/vars";
4
4
  //#region src/styling/trigger-style.ts
5
5
  var n = e({
@@ -0,0 +1,113 @@
1
+ import { type ComponentPropsWithoutRef, type ComponentPropsWithRef } from 'react';
2
+ import { type Interpolation, type Theme } from '../../styling/css';
3
+ import { type SxProps } from '../../styling/sx';
4
+ export type ActivityTone = 'accent' | 'warning' | 'success' | 'info';
5
+ export type ActivityRingsSize = 'sm' | 'md' | 'lg';
6
+ export type ActivityValues = Readonly<Record<string, number | null>>;
7
+ export interface ActivityMetric {
8
+ /** Stable, nonempty, unique identity. */
9
+ id: string;
10
+ label: string;
11
+ /** Positive target; nonpositive or nonfinite goals render the metric as unavailable. */
12
+ goal: number;
13
+ /** Unit supported by `Intl.NumberFormat` (`'kilometer'`, `'minute'`, `'hour'`, …); otherwise use `formatValue`. */
14
+ unit?: string;
15
+ tone?: ActivityTone;
16
+ /** Formats amounts for units Intl does not support. Use Intl in the formatter. */
17
+ formatValue?: (value: number, locale: string | undefined) => string;
18
+ }
19
+ export interface ActivityDay {
20
+ id: string;
21
+ /** Civil date, `YYYY-MM-DD`. */
22
+ date: string;
23
+ values: ActivityValues;
24
+ }
25
+ /** `open` is below goal, `closed` at or above it; `unknown` has no finite value. */
26
+ export type ActivityRingStatus = 'unknown' | 'unavailable' | 'open' | 'closed';
27
+ export interface ActivityRingsLabels {
28
+ /** Region name when no consumer name is given. */
29
+ root: string;
30
+ /** Day picker group label. */
31
+ days: string;
32
+ legend: string;
33
+ unknown: string;
34
+ unavailable: string;
35
+ goalMet: string;
36
+ noSelection: string;
37
+ empty: string;
38
+ amount: (value: string, goal: string) => string;
39
+ summary: (met: string, total: string) => string;
40
+ }
41
+ type PartElement = 'svg' | 'ul' | 'button' | 'div' | 'fieldset' | 'label' | 'p';
42
+ export type ActivityRingsPartProps<T extends PartElement> = Omit<ComponentPropsWithoutRef<T>, 'children'> & {
43
+ css?: Interpolation<Theme>;
44
+ };
45
+ type DataSource = {
46
+ /** Standalone values when there is no day picker. */
47
+ values?: ActivityValues;
48
+ days?: never;
49
+ } | {
50
+ /** Days win over standalone values; supplying both is a type error. */
51
+ days: readonly ActivityDay[];
52
+ values?: never;
53
+ };
54
+ interface ActivityRingsSlotProps {
55
+ rings?: ActivityRingsPartProps<'svg'>;
56
+ legend?: ActivityRingsPartProps<'ul'>;
57
+ dayPicker?: ActivityRingsPartProps<'fieldset'>;
58
+ dayLabel?: ActivityRingsPartProps<'label'>;
59
+ summary?: ActivityRingsPartProps<'p'>;
60
+ }
61
+ /** Metric slot props shared by the toggle-button and plain-row legend elements. */
62
+ export type ActivityRingsMetricProps = Pick<ActivityRingsPartProps<'button'> & ActivityRingsPartProps<'div'>, keyof ActivityRingsPartProps<'button'> & keyof ActivityRingsPartProps<'div'>>;
63
+ /**
64
+ * The metric slot targets a toggle button when `interactiveLegend` is `true`, or a row when false
65
+ * or omitted. A runtime boolean accepts only props shared by both elements.
66
+ */
67
+ type LegendMode = {
68
+ /** Legend rows become toggle buttons that isolate one ring. */
69
+ interactiveLegend: true;
70
+ slotProps?: ActivityRingsSlotProps & {
71
+ metric?: ActivityRingsPartProps<'button'>;
72
+ };
73
+ } | {
74
+ interactiveLegend?: false;
75
+ slotProps?: ActivityRingsSlotProps & {
76
+ metric?: ActivityRingsPartProps<'div'>;
77
+ };
78
+ } | {
79
+ interactiveLegend?: boolean;
80
+ slotProps?: ActivityRingsSlotProps & {
81
+ metric?: ActivityRingsMetricProps;
82
+ };
83
+ };
84
+ export type ActivityRingsProps = Omit<ComponentPropsWithRef<'section'>, 'children' | 'defaultValue' | 'onChange'> & SxProps & DataSource & LegendMode & {
85
+ /** Rendered outside → inside. */
86
+ metrics: readonly ActivityMetric[];
87
+ /** Selected day id. A missing id renders the no-selection summary. */
88
+ value?: string | null;
89
+ /** Seeds the selected day once; defaults to the last day. */
90
+ defaultValue?: string | null;
91
+ onValueChange?: (dayId: string) => void;
92
+ focusedMetric?: string | null;
93
+ defaultFocusedMetric?: string | null;
94
+ onFocusedMetricChange?: (metricId: string | null) => void;
95
+ /** Fires once when a same-day value observed below its goal reaches it. */
96
+ onRingClose?: (metricId: string, dayId: string | null) => void;
97
+ size?: ActivityRingsSize;
98
+ locale?: string;
99
+ /** English defaults. */
100
+ labels?: Partial<ActivityRingsLabels>;
101
+ /** Keeps the legend for assistive tech while removing it visually. */
102
+ hideLegend?: boolean;
103
+ };
104
+ /**
105
+ * Compare each metric with its goal using the UsageMeter value rules. The SVG is decorative;
106
+ * the legend gives amounts, goals, and percentages. The optional day picker uses native radios
107
+ * with arrows and Home/End. Enable legend toggle buttons to isolate a ring with Enter/Space.
108
+ */
109
+ export declare function ActivityRings({ ref, metrics, values: valuesProp, days: daysProp, value, defaultValue, onValueChange, focusedMetric, defaultFocusedMetric, onFocusedMetricChange, interactiveLegend, onRingClose, size, locale, labels: labelsProp, hideLegend, slotProps, className, sx, 'aria-label': ariaLabel, 'aria-labelledby': labelledBy, ...rest }: ActivityRingsProps): import("@emotion/react/jsx-runtime").JSX.Element;
110
+ export declare namespace ActivityRings {
111
+ var displayName: string;
112
+ }
113
+ export {};
@@ -0,0 +1,2 @@
1
+ export { ActivityRings } from './activity-rings';
2
+ export type { ActivityDay, ActivityMetric, ActivityRingStatus, ActivityRingsLabels, ActivityRingsMetricProps, ActivityRingsPartProps, ActivityRingsProps, ActivityRingsSize, ActivityTone, ActivityValues, } from './activity-rings';
@@ -14,7 +14,7 @@ export interface AvatarGroupPartProps {
14
14
  css?: Interpolation<Theme>;
15
15
  }
16
16
  export interface AvatarGroupProps extends Omit<ComponentPropsWithRef<'div'>, 'children' | 'role'>, SxProps {
17
- /** Stable display order of people; immutable input. */
17
+ /** People in display order. Treat this array as immutable. */
18
18
  members: readonly AvatarGroupMember[];
19
19
  /** Maximum number of visible people; overflow does not consume a person slot. Defaults to 4. */
20
20
  max?: number;
@@ -22,7 +22,7 @@ export interface AvatarGroupProps extends Omit<ComponentPropsWithRef<'div'>, 'ch
22
22
  size?: AvatarSize;
23
23
  /** Fallback accessible name for the group landmark. Defaults to 'Team members'. */
24
24
  label?: string;
25
- /** Locale for formatting count numerals; pin for deterministic SSR. Defaults to ambient Intl locale. */
25
+ /** Locale for counts. Set it for SSR; otherwise uses the environment's Intl locale. */
26
26
  locale?: Intl.LocalesArgument;
27
27
  /** Formats the accessible name of the overflow image. Defaults to English plural wording. */
28
28
  getOverflowLabel?: (hidden: number, formatted: string) => string;
@@ -34,7 +34,7 @@ export interface AvatarGroupProps extends Omit<ComponentPropsWithRef<'div'>, 'ch
34
34
  overflow?: AvatarGroupPartProps;
35
35
  summary?: AvatarGroupPartProps;
36
36
  };
37
- /** Shared styling overrides passed down to each child Avatar. Cannot override id/name/status. */
37
+ /** Style overrides for each Avatar. Cannot override id/name/status. */
38
38
  avatarProps?: Pick<AvatarProps, 'slotProps' | 'sx' | 'className'>;
39
39
  }
40
40
  export declare function AvatarGroup({ ref, members, max, size, label, locale, getOverflowLabel, getSummaryLabel, slotProps, avatarProps, className, sx, ...rest }: AvatarGroupProps): import("@emotion/react/jsx-runtime").JSX.Element;
@@ -0,0 +1,57 @@
1
+ import { type ComponentPropsWithRef, type ComponentPropsWithoutRef, type ReactNode } from 'react';
2
+ import { type Interpolation, type Theme } from '../../styling/css';
3
+ import { type SxProps } from '../../styling/sx';
4
+ import { type SegmentedControlItemProps } from '../segmented-control';
5
+ export type BillingToggleSize = 'md' | 'lg';
6
+ export type BillingToggleTone = 'neutral' | 'accent' | 'success';
7
+ type SlotProps<Element extends 'span' | 'del'> = ComponentPropsWithoutRef<Element> & {
8
+ css?: Interpolation<Theme>;
9
+ };
10
+ export interface BillingToggleProps extends Omit<ComponentPropsWithRef<'div'>, 'defaultValue' | 'onChange'>, SxProps {
11
+ value?: string;
12
+ defaultValue?: string;
13
+ onValueChange?: (value: string) => void;
14
+ disabled?: boolean;
15
+ size?: BillingToggleSize;
16
+ tone?: BillingToggleTone;
17
+ locale?: Intl.LocalesArgument;
18
+ }
19
+ export interface BillingToggleListProps extends Omit<ComponentPropsWithRef<'div'>, 'defaultValue' | 'onChange'>, SxProps {
20
+ }
21
+ export interface BillingToggleLabelProps extends ComponentPropsWithRef<'span'>, SxProps {
22
+ }
23
+ export interface BillingToggleItemProps extends Omit<SegmentedControlItemProps, 'accessory'> {
24
+ badge?: ReactNode;
25
+ activeBadge?: ReactNode;
26
+ slotProps?: {
27
+ label?: SlotProps<'span'>;
28
+ badge?: SlotProps<'span'>;
29
+ selection?: SlotProps<'span'>;
30
+ };
31
+ }
32
+ export interface BillingTogglePriceProps extends Omit<ComponentPropsWithRef<'span'>, 'children'>, SxProps {
33
+ amount: number;
34
+ currency: string;
35
+ locale?: Intl.LocalesArgument;
36
+ formatOptions?: Omit<Intl.NumberFormatOptions, 'style' | 'currency'>;
37
+ was?: number;
38
+ period?: ReactNode;
39
+ previousLabel?: string;
40
+ slotProps?: {
41
+ amount?: SlotProps<'span'>;
42
+ previous?: SlotProps<'del'>;
43
+ period?: SlotProps<'span'>;
44
+ };
45
+ }
46
+ declare function BillingToggleRoot({ ref, value: valueProp, defaultValue, onValueChange, disabled, size, tone, locale, className, sx, children, ...rest }: BillingToggleProps): import("@emotion/react/jsx-runtime").JSX.Element;
47
+ declare function BillingToggleLabel({ ref, id: idProp, className, sx, children, ...rest }: BillingToggleLabelProps): import("@emotion/react/jsx-runtime").JSX.Element | null;
48
+ declare function BillingToggleList({ ref, className, sx, children, ...rest }: BillingToggleListProps): import("@emotion/react/jsx-runtime").JSX.Element;
49
+ declare function BillingToggleItem({ badge, activeBadge, slotProps, children, className, sx, ...rest }: BillingToggleItemProps): import("@emotion/react/jsx-runtime").JSX.Element;
50
+ declare function BillingTogglePrice({ ref, amount, currency, locale: localeProp, formatOptions, was, period, previousLabel, slotProps, className, sx, ...rest }: BillingTogglePriceProps): import("@emotion/react/jsx-runtime").JSX.Element;
51
+ export declare const BillingToggle: typeof BillingToggleRoot & {
52
+ List: typeof BillingToggleList;
53
+ Item: typeof BillingToggleItem;
54
+ Label: typeof BillingToggleLabel;
55
+ Price: typeof BillingTogglePrice;
56
+ };
57
+ export {};
@@ -0,0 +1,2 @@
1
+ export { BillingToggle } from './billing-toggle';
2
+ export type { BillingToggleProps, BillingToggleListProps, BillingToggleItemProps, BillingToggleLabelProps, BillingTogglePriceProps, BillingToggleSize, BillingToggleTone, } from './billing-toggle';
@@ -20,15 +20,15 @@ export interface ButtonProps extends Omit<ComponentPropsWithRef<'button'>, 'colo
20
20
  /** Consumer style overrides, merged after the component's own styles. */
21
21
  css?: Interpolation<Theme>;
22
22
  /**
23
- * Replaces the native button. Spread ALL supplied props onto the operative element and attach
24
- * the supplied ref. Both that ref and the forwarded ref refer to the rendered element, which
25
- * need not be a button; the public forwarded-ref type remains HTMLButtonElement for compatibility.
26
- * Overridden handlers, className and style win; compose behavior manually to retain both:
23
+ * Replaces the native button. Spread all supplied props onto the element and attach the supplied
24
+ * ref. Both refs target that element, even when it is not a button. The public ref type remains
25
+ * HTMLButtonElement for compatibility.
26
+ * Your handlers, className, and style override the supplied ones. Compose handlers to keep both:
27
27
  * `onClick={(e) => { p.onClick?.(e); mine(e); }}`.
28
- * Only this render path joins data-ui markers into a token list; library selectors should use
28
+ * This render path joins data-ui markers into a token list. Library selectors should use
29
29
  * `[data-ui~="button"]`. The default button always has data-ui="button".
30
- * Disabled anchors receive aria-disabled and remain focusable. Primary click/Enter activation
31
- * is blocked by the supplied handler; auxiliary/middle-click navigation is NOT covered.
30
+ * Disabled anchors receive aria-disabled and stay focusable. The supplied handler blocks primary
31
+ * click and Enter activation; it does not block auxiliary or middle-click navigation.
32
32
  */
33
33
  render?: (props: ButtonRenderProps) => ReactNode;
34
34
  }
@@ -0,0 +1,72 @@
1
+ import { type ComponentPropsWithRef, type ReactNode } from 'react';
2
+ import { type Placement } from '@floating-ui/react';
3
+ import { type Interpolation, type Theme } from '../../styling/css';
4
+ import { type SxProps } from '../../styling/sx';
5
+ import { type ButtonProps, type ButtonSize, type ButtonTone, type ButtonVariant } from '../button';
6
+ import { type MenuContentProps, type MenuItemProps, type MenuSeparatorProps, type MenuItemTone } from '../menu/menu';
7
+ export type ButtonGroupOrientation = 'horizontal' | 'vertical';
8
+ export interface ButtonGroupProps extends Omit<ComponentPropsWithRef<'div'>, 'role'>, SxProps {
9
+ variant?: ButtonVariant;
10
+ tone?: ButtonTone;
11
+ size?: ButtonSize;
12
+ orientation?: ButtonGroupOrientation;
13
+ collapseLabels?: boolean;
14
+ disabled?: boolean;
15
+ open?: boolean;
16
+ defaultOpen?: boolean;
17
+ onOpenChange?: (open: boolean) => void;
18
+ placement?: Placement;
19
+ }
20
+ export interface ButtonGroupItemProps extends Omit<ButtonProps, 'render'> {
21
+ iconOnly?: boolean;
22
+ label?: string;
23
+ reserveLabels?: readonly string[];
24
+ }
25
+ export interface ButtonGroupLinkProps extends Omit<ComponentPropsWithRef<'a'>, 'color'>, SxProps {
26
+ href: string;
27
+ css?: Interpolation<Theme>;
28
+ disabled?: boolean;
29
+ variant?: ButtonVariant;
30
+ tone?: ButtonTone;
31
+ size?: ButtonSize;
32
+ iconOnly?: boolean;
33
+ label?: string;
34
+ startIcon?: ReactNode;
35
+ reserveLabels?: readonly string[];
36
+ }
37
+ export interface ButtonGroupLabelProps extends Omit<ComponentPropsWithRef<'span'>, 'role' | 'tabIndex'>, SxProps {
38
+ css?: Interpolation<Theme>;
39
+ }
40
+ export type ButtonGroupTriggerProps = Omit<ButtonGroupItemProps, 'loading' | 'reserveLabels' | 'iconOnly'> & ({
41
+ 'aria-label': string;
42
+ } | {
43
+ 'aria-labelledby': string;
44
+ });
45
+ export interface ButtonGroupContentProps extends Omit<MenuContentProps, 'role'> {
46
+ css?: Interpolation<Theme>;
47
+ }
48
+ export interface ButtonGroupMenuItemProps extends MenuItemProps {
49
+ tone?: MenuItemTone;
50
+ css?: Interpolation<Theme>;
51
+ }
52
+ export interface ButtonGroupSeparatorProps extends MenuSeparatorProps {
53
+ css?: Interpolation<Theme>;
54
+ }
55
+ declare function ButtonGroupRoot({ ref, variant, tone, size, orientation, collapseLabels, disabled, open, defaultOpen, onOpenChange, placement, children, className, sx, onKeyDown, onPointerOver, onPointerLeave, onPointerCancel, onFocus, onBlur, ...rest }: ButtonGroupProps): import("@emotion/react/jsx-runtime").JSX.Element;
56
+ declare function ButtonGroupItem({ ref, variant, tone, size, disabled, iconOnly, label, reserveLabels, children, startIcon, endIcon, css: cssProp, sx, ...rest }: ButtonGroupItemProps): import("@emotion/react/jsx-runtime").JSX.Element;
57
+ declare function ButtonGroupLink({ ref, href, disabled, variant, tone, size, iconOnly, label, startIcon, reserveLabels, children, className, css: cssProp, sx, onClick, onAuxClick, onKeyDown, ...rest }: ButtonGroupLinkProps): import("@emotion/react/jsx-runtime").JSX.Element;
58
+ declare function ButtonGroupLabel({ className, sx, ...props }: ButtonGroupLabelProps): import("@emotion/react/jsx-runtime").JSX.Element;
59
+ declare function ButtonGroupTrigger({ ref, variant, tone, size, disabled, children, startIcon, endIcon, css: cssProp, sx, ...rest }: ButtonGroupTriggerProps): import("@emotion/react/jsx-runtime").JSX.Element;
60
+ declare function ButtonGroupContent({ dir, 'aria-labelledby': labelledBy, ...props }: ButtonGroupContentProps): import("@emotion/react/jsx-runtime").JSX.Element;
61
+ declare function ButtonGroupMenuItem({ tone, disabled, onClick, onSelect, ...props }: ButtonGroupMenuItemProps): import("@emotion/react/jsx-runtime").JSX.Element;
62
+ declare function ButtonGroupSeparator(props: ButtonGroupSeparatorProps): import("@emotion/react/jsx-runtime").JSX.Element;
63
+ export declare const ButtonGroup: typeof ButtonGroupRoot & {
64
+ Item: typeof ButtonGroupItem;
65
+ Link: typeof ButtonGroupLink;
66
+ Label: typeof ButtonGroupLabel;
67
+ Trigger: typeof ButtonGroupTrigger;
68
+ Content: typeof ButtonGroupContent;
69
+ MenuItem: typeof ButtonGroupMenuItem;
70
+ Separator: typeof ButtonGroupSeparator;
71
+ };
72
+ export {};
@@ -0,0 +1,2 @@
1
+ export { ButtonGroup } from './button-group';
2
+ export type { ButtonGroupProps, ButtonGroupOrientation, ButtonGroupItemProps, ButtonGroupLinkProps, ButtonGroupLabelProps, ButtonGroupTriggerProps, ButtonGroupContentProps, ButtonGroupMenuItemProps, ButtonGroupSeparatorProps, } from './button-group';
@@ -1,5 +1,6 @@
1
1
  import { type ComponentPropsWithRef } from 'react';
2
2
  import { type Interpolation, type Theme } from '../../styling/css';
3
+ import { type SurfaceAppearance } from '../../styling/surface';
3
4
  import { type SxProps } from '../../styling/sx';
4
5
  export type CardVariant = 'flat' | 'raised';
5
6
  export type CardHeadingLevel = 1 | 2 | 3 | 4 | 5 | 6;
@@ -17,6 +18,11 @@ export interface CardSlotProps {
17
18
  }
18
19
  export interface CardProps extends ComponentPropsWithRef<'div'>, SxProps {
19
20
  variant?: CardVariant;
21
+ /**
22
+ * `contrast` uses the dark palette with a charcoal surface on any page theme.
23
+ * Omit this prop or use `default` to keep the enclosing theme.
24
+ */
25
+ appearance?: SurfaceAppearance;
20
26
  slotProps?: CardSlotProps;
21
27
  }
22
28
  export type CardHeaderProps = ComponentPropsWithRef<'div'> & SxProps;
@@ -26,7 +32,7 @@ export interface CardTitleProps extends ComponentPropsWithRef<'h3'>, SxProps {
26
32
  export type CardDescriptionProps = ComponentPropsWithRef<'p'> & SxProps;
27
33
  export type CardContentProps = ComponentPropsWithRef<'div'> & SxProps;
28
34
  export type CardFooterProps = ComponentPropsWithRef<'div'> & SxProps;
29
- declare function CardRoot({ ref, variant, slotProps, className, sx, ...rest }: CardProps): import("@emotion/react/jsx-runtime").JSX.Element;
35
+ declare function CardRoot({ ref, variant, appearance, slotProps, className, style, sx, ...rest }: CardProps): import("@emotion/react/jsx-runtime").JSX.Element;
30
36
  declare function CardHeader({ ref, className, sx, ...rest }: CardHeaderProps): import("@emotion/react/jsx-runtime").JSX.Element;
31
37
  declare function CardTitle({ ref, level, className, sx, ...rest }: CardTitleProps): import("@emotion/react/jsx-runtime").JSX.Element;
32
38
  declare function CardDescription({ ref, className, sx, ...rest }: CardDescriptionProps): import("@emotion/react/jsx-runtime").JSX.Element;
@@ -0,0 +1,130 @@
1
+ import { type ComponentPropsWithRef } from 'react';
2
+ import { type SxProps } from '../../styling/sx';
3
+ import { type ThreadAuthor, type ThreadTimestamp } from '../thread/thread-core';
4
+ import { type ThreadButtonProps, type ThreadPartProps, type ThreadReactionLabels, type ThreadSize, type ThreadTextareaProps } from '../thread/thread-parts';
5
+ export type ChatParticipant = ThreadAuthor;
6
+ export type ChatThreadSize = ThreadSize;
7
+ export type ChatMessageStatus = 'sending' | 'sent' | 'delivered' | 'read' | 'failed';
8
+ export interface ChatAttachment {
9
+ id: string;
10
+ name: string;
11
+ kind: 'image' | 'file';
12
+ url?: string;
13
+ size?: number;
14
+ width?: number;
15
+ height?: number;
16
+ alt?: string;
17
+ }
18
+ export interface ChatReaction {
19
+ emoji: string;
20
+ count: number;
21
+ mine?: boolean;
22
+ }
23
+ export interface ChatMessage {
24
+ id: string;
25
+ authorId: string;
26
+ text?: string;
27
+ createdAt: ThreadTimestamp;
28
+ attachments?: readonly ChatAttachment[];
29
+ reactions?: readonly ChatReaction[];
30
+ status?: ChatMessageStatus;
31
+ }
32
+ export interface ChatDraft {
33
+ text: string;
34
+ files: File[];
35
+ }
36
+ export type ChatThreadEvent = {
37
+ type: 'send';
38
+ message: ChatMessage;
39
+ draft: ChatDraft;
40
+ } | {
41
+ type: 'react';
42
+ id: string;
43
+ emoji: string;
44
+ added: boolean;
45
+ };
46
+ export interface ChatThreadLabels extends ThreadReactionLabels {
47
+ conversation: string;
48
+ transcript: string;
49
+ composer: string;
50
+ placeholder: string;
51
+ send: string;
52
+ attach: string;
53
+ attachments: string;
54
+ sending: string;
55
+ sent: string;
56
+ delivered: string;
57
+ read: string;
58
+ failed: string;
59
+ retry: string;
60
+ jumpToLatest: string;
61
+ unknownAuthor: string;
62
+ empty: string;
63
+ invalidTime: string;
64
+ sendFailed: string;
65
+ removeFile: (name: string) => string;
66
+ readBy: (names: string) => string;
67
+ typing: (names: string) => string;
68
+ newMessages: (count: number) => string;
69
+ showAttachments: (count: number) => string;
70
+ fileRejected: (reason: 'type' | 'size' | 'count', name: string) => string;
71
+ }
72
+ type ChatThreadPart = 'viewport' | 'scroller' | 'log' | 'list' | 'message' | 'bubble' | 'time' | 'attachments' | 'receipt' | 'reaction';
73
+ export type ChatThreadSlotProps = Partial<Record<ChatThreadPart, ThreadPartProps>> & {
74
+ jumpButton?: ThreadButtonProps;
75
+ };
76
+ export type ChatThreadComposerSlotProps = Partial<Record<'tray' | 'file' | 'error', ThreadPartProps>> & {
77
+ form?: ComponentPropsWithRef<'form'>;
78
+ textarea?: ThreadTextareaProps;
79
+ attachButton?: ThreadButtonProps;
80
+ fileInput?: Omit<ComponentPropsWithRef<'input'>, 'type' | 'multiple' | 'accept' | 'disabled'>;
81
+ removeButton?: ThreadButtonProps;
82
+ sendButton?: ThreadButtonProps;
83
+ };
84
+ export interface ChatThreadComposerProps extends Omit<ComponentPropsWithRef<'div'>, 'defaultValue' | 'onChange' | 'children'>, SxProps {
85
+ value?: ChatDraft;
86
+ defaultValue?: ChatDraft;
87
+ onValueChange?: (draft: ChatDraft) => void;
88
+ onSend: (draft: ChatDraft) => void | Promise<void>;
89
+ allowAttachments?: boolean;
90
+ accept?: string;
91
+ maxFiles?: number;
92
+ maxFileSize?: number;
93
+ disabled?: boolean;
94
+ placeholder?: string;
95
+ label?: string;
96
+ locale?: Intl.LocalesArgument;
97
+ size?: ChatThreadSize;
98
+ labels?: Partial<ChatThreadLabels>;
99
+ slotProps?: ChatThreadComposerSlotProps;
100
+ }
101
+ export interface ChatThreadProps extends Omit<ComponentPropsWithRef<'div'>, 'defaultValue' | 'onChange' | 'children'>, SxProps {
102
+ participants: readonly ChatParticipant[];
103
+ currentUserId: string;
104
+ value?: readonly ChatMessage[];
105
+ defaultValue?: readonly ChatMessage[];
106
+ onValueChange?: (next: ChatMessage[], event: ChatThreadEvent) => void;
107
+ now: number;
108
+ locale?: Intl.LocalesArgument;
109
+ timeZone?: string;
110
+ typing?: readonly string[];
111
+ readBy?: Readonly<Record<string, string>>;
112
+ onSend?: (draft: ChatDraft) => void | Promise<void>;
113
+ onReact?: (id: string, emoji: string) => void;
114
+ onRetry?: (id: string) => void | Promise<void>;
115
+ reactions?: readonly string[];
116
+ groupWindow?: number;
117
+ composer?: boolean;
118
+ disabled?: boolean;
119
+ composerProps?: Omit<ChatThreadComposerProps, 'onSend'>;
120
+ getNewId?: () => string;
121
+ size?: ChatThreadSize;
122
+ labels?: Partial<ChatThreadLabels>;
123
+ slotProps?: ChatThreadSlotProps;
124
+ }
125
+ declare function Composer(props: ChatThreadComposerProps): import("@emotion/react/jsx-runtime").JSX.Element;
126
+ declare function ChatThreadRoot({ ref, participants, currentUserId, value, defaultValue, onValueChange, now, locale, timeZone, typing, readBy, onSend, onReact, onRetry, reactions, groupWindow, composer, disabled, composerProps, getNewId, size, labels: labelProps, slotProps, className, sx, ...rest }: ChatThreadProps): import("@emotion/react/jsx-runtime").JSX.Element;
127
+ export declare const ChatThread: typeof ChatThreadRoot & {
128
+ Composer: typeof Composer;
129
+ };
130
+ export {};
@@ -0,0 +1,2 @@
1
+ export { ChatThread } from './chat-thread';
2
+ export type { ChatAttachment, ChatDraft, ChatMessage, ChatMessageStatus, ChatParticipant, ChatReaction, ChatThreadComposerProps, ChatThreadComposerSlotProps, ChatThreadEvent, ChatThreadLabels, ChatThreadProps, ChatThreadSize, ChatThreadSlotProps, } from './chat-thread';
@@ -45,8 +45,8 @@ export interface ChipGroupMultipleProps extends ChipGroupBaseProps {
45
45
  onValueChange?: (value: string[]) => void;
46
46
  }
47
47
  export type ChipGroupProps = ChipGroupSingleProps | ChipGroupMultipleProps;
48
- /** Clearable pressed-button filters. Arrows (horizontal RTL-aware), Home/End move focus only;
49
- * Enter/Space toggle. Multiple values are emitted in option order, not activation order. */
48
+ /** Choose and clear filters. Arrows and Home/End move focus; horizontal arrows reverse in RTL.
49
+ * Enter/Space toggle selection. Multiple values are reported in option order. */
50
50
  export declare function ChipGroup({ ref, options, type, value: valueProp, defaultValue, onValueChange, label, allowEmpty, disabled, size, maxVisible, expanded: expandedProp, defaultExpanded, onExpandedChange, locale, moreLabel, lessLabel, slotProps, className, sx, onKeyDown, onBlur, 'aria-label': ariaLabel, 'aria-labelledby': ariaLabelledBy, ...rest }: ChipGroupProps): import("@emotion/react/jsx-runtime").JSX.Element;
51
51
  export declare namespace ChipGroup {
52
52
  var displayName: string;
@@ -12,14 +12,14 @@ export interface ComboboxProps {
12
12
  onOpenChange?: (open: boolean) => void;
13
13
  /** Renders a hidden input so the value takes part in native form submission. */
14
14
  name?: string;
15
- /** Decides whether an option label matches the typed query. Defaults to a case-insensitive substring match. */
15
+ /** Matches an option label to the query. Defaults to a case-insensitive substring match. */
16
16
  filter?: (label: string, query: string) => boolean;
17
17
  /** Fires with the new input text when the user types and when a selection or Escape writes a label. */
18
18
  onInputChange?: (query: string) => void;
19
19
  children?: ReactNode;
20
20
  }
21
21
  export interface ComboboxInputProps extends Omit<TextFieldProps, 'value' | 'defaultValue' | 'onValueChange'> {
22
- /** Root `name` is the canonical form name; an Input `name` submits an extra text entry. */
22
+ /** Root `name` submits the selected value. Input `name` submits an extra text entry. */
23
23
  name?: string;
24
24
  /** Controlled input text. */
25
25
  inputValue?: string;
@@ -6,7 +6,7 @@ export interface CommandPaletteProps {
6
6
  onOpenChange?: (open: boolean) => void;
7
7
  /** Accessible name of the dialog, input and listbox. */
8
8
  label?: string;
9
- /** Decides whether an item's label (or keywords) matches the query. Case-insensitive substring by default. */
9
+ /** Matches an item's label or keywords to the query. Defaults to a case-insensitive substring match. */
10
10
  filter?: (text: string, query: string) => boolean;
11
11
  /** Rendered by CommandPalette.Empty when nothing matches. */
12
12
  emptyMessage?: ReactNode;
@@ -1,14 +1,14 @@
1
1
  import { type ComponentPropsWithRef, type ReactNode } from 'react';
2
2
  import { type SxProps } from '../../styling/sx';
3
- import { type ThreadAuthor, type ThreadComment, type ThreadReaction } from './thread-core';
4
- import { type ThreadButtonProps, type ThreadPartProps, type ThreadReactionLabels, type ThreadSize, type ThreadTextareaProps } from './thread-parts';
5
- export type { ThreadComment } from './thread-core';
3
+ import { type ThreadAuthor, type ThreadComment, type ThreadReaction } from '../thread/thread-core';
4
+ import { type ThreadButtonProps, type ThreadPartProps, type ThreadReactionLabels, type ThreadSize, type ThreadTextareaProps } from '../thread/thread-parts';
5
+ export type { ThreadComment } from '../thread/thread-core';
6
6
  export type CommentAuthor = ThreadAuthor;
7
7
  export type CommentReaction = ThreadReaction;
8
8
  export type CommentThreadSize = ThreadSize;
9
9
  export type CommentThreadHeadingLevel = 2 | 3 | 4 | 5 | 6;
10
10
  export type CommentThreadPartProps = ThreadPartProps;
11
- /** What a proposed tree changes; `parentId` is where a reply actually attached after `maxDepth`. */
11
+ /** Describes a proposed change. `parentId` is the reply's attachment point after applying `maxDepth`. */
12
12
  export type CommentThreadEvent = {
13
13
  type: 'reply';
14
14
  comment: ThreadComment;
@@ -65,9 +65,9 @@ export interface CommentThreadLabels extends ThreadReactionLabels {
65
65
  }
66
66
  type CommentThreadPart = 'header' | 'title' | 'list' | 'item' | 'article' | 'time' | 'body' | 'replies' | 'actions' | 'reaction' | 'composer' | 'resolved' | 'status';
67
67
  export type CommentThreadSlotProps = Partial<Record<CommentThreadPart, CommentThreadPartProps>> & {
68
- /** Extra Textarea props for every composer and editor; handlers are composed with the thread's. */
68
+ /** Textarea props for every composer and editor. Handlers are combined with the thread's handlers. */
69
69
  textarea?: ThreadTextareaProps;
70
- /** Extra Button props for every Send/Save button; `onClick` runs first and may `preventDefault()`. */
70
+ /** Button props for Send/Save. `onClick` runs first and can call `preventDefault()`. */
71
71
  send?: ThreadButtonProps;
72
72
  };
73
73
  export interface CommentThreadProps extends Omit<ComponentPropsWithRef<'section'>, 'defaultValue' | 'onChange' | 'children' | 'title'>, SxProps {
@@ -76,7 +76,7 @@ export interface CommentThreadProps extends Omit<ComponentPropsWithRef<'section'
76
76
  defaultValue?: readonly ThreadComment[];
77
77
  /** The full proposed tree plus what changed. */
78
78
  onValueChange?: (next: ThreadComment[], event: CommentThreadEvent) => void;
79
- /** Whose comments are editable; authorization stays on the server. */
79
+ /** Determines whose comments can be edited. Enforce authorization on the server. */
80
80
  currentUser: CommentAuthor;
81
81
  /** Mention candidates; defaults to every author plus `currentUser`. Deduped by id. */
82
82
  people?: readonly CommentAuthor[];
@@ -15,17 +15,17 @@ export interface CopyButtonSlotProps {
15
15
  export interface CopyButtonProps extends Omit<ComponentPropsWithRef<'button'>, 'children' | 'value' | 'defaultValue' | 'color' | 'type'>, SxProps {
16
16
  /** The string written to the clipboard. An empty string is a valid payload. */
17
17
  text: string;
18
- /** Accessible name and idle face, e.g. "Copy command". */
18
+ /** Accessible name and label while idle, e.g. "Copy command". */
19
19
  label: string;
20
- /** Face and announcement while the write is in flight. */
20
+ /** Label and announcement while copying. */
21
21
  pendingLabel: string;
22
- /** Face and announcement after a successful write. */
22
+ /** Label and announcement after copying succeeds. */
23
23
  copiedLabel: string;
24
- /** Face and announcement after a failed or unavailable write. */
24
+ /** Label and announcement when copying fails or is unavailable. */
25
25
  errorLabel: string;
26
26
  /** Hides the visible label; the accessible name and announcements stay. */
27
27
  iconOnly?: boolean;
28
- /** Decorative icon per face; a supplied key replaces the default, including `null` for none. */
28
+ /** Icon for each state. A supplied key replaces the default; `null` removes it. */
29
29
  icons?: CopyButtonIcons;
30
30
  value?: CopyButtonValue;
31
31
  defaultValue?: CopyButtonValue;
@@ -34,7 +34,7 @@ export interface CopyButtonProps extends Omit<ComponentPropsWithRef<'button'>, '
34
34
  onCopied?: (text: string) => void;
35
35
  /** Called once per failed write, including a missing Clipboard API. */
36
36
  onCopyError?: (error: unknown) => void;
37
- /** Milliseconds before `copied`/`error` request `idle`; 0 keeps the result face. */
37
+ /** Milliseconds before `copied`/`error` request `idle`; 0 keeps the result label. */
38
38
  resetAfterMs?: number;
39
39
  variant?: ButtonVariant;
40
40
  tone?: ButtonTone;
@@ -20,7 +20,7 @@ export interface CountdownProps extends Omit<ComponentPropsWithRef<'div'>, 'chil
20
20
  pendingLabel?: ReactNode;
21
21
  invalidLabel?: ReactNode;
22
22
  invalidText?: string;
23
- /** Authoritative epoch-ms source. Background callbacks run at the first executable wake-up. */
23
+ /** Clock source in epoch milliseconds. Background callbacks run when execution next becomes possible. */
24
24
  clock?: () => number;
25
25
  /** Shared server snapshot for identical SSR and hydration output. */
26
26
  initialNow?: number;
@@ -30,7 +30,7 @@ export interface CountdownProps extends Omit<ComponentPropsWithRef<'div'>, 'chil
30
30
  completionIcon?: ReactNode;
31
31
  slotProps?: Partial<Record<'label' | 'content' | 'unit' | 'number' | 'complete' | 'icon' | 'description', CountdownPartProps>>;
32
32
  }
33
- /** Noninteractive ARIA timer. Tab and every other key pass through; no focus or editable state. */
33
+ /** Show an ARIA timer without controls. Tab and other keys pass through; it cannot be focused or edited. */
34
34
  export declare function Countdown({ ref, target, variant, units, label, locale, unitDisplay, completeLabel, completeText, pendingLabel, invalidLabel, invalidText, clock, initialNow, onComplete, announceCompletion, completionIcon, slotProps, className, sx, 'aria-labelledby': externalLabel, 'aria-describedby': externalDescription, 'aria-label': ariaLabel, ...rest }: CountdownProps): import("@emotion/react/jsx-runtime").JSX.Element;
35
35
  export declare namespace Countdown {
36
36
  var displayName: string;