@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
@@ -13,17 +13,16 @@ export interface DialogPartRenderProps extends ButtonHTMLAttributes<HTMLButtonEl
13
13
  }
14
14
  export interface DialogTriggerProps extends ComponentPropsWithRef<'button'>, SxProps {
15
15
  /**
16
- * Replaces the default button. Spread ALL supplied props onto the operative element and attach
17
- * the supplied ref, including when composing through Button. The forwarded and callback refs
18
- * refer to the rendered element, which need not be a button; their public types remain
19
- * HTMLButtonElement for compatibility.
20
- * Overridden handlers, className and style win; compose behavior manually to retain both:
16
+ * Replace the button. Spread all supplied props onto the element and attach the supplied ref,
17
+ * including through Button. Refs point to that element, even when it is not a button;
18
+ * the public ref type remains HTMLButtonElement for compatibility.
19
+ * Handler, className and style overrides replace the supplied values. Compose handlers to keep both:
21
20
  * `onClick={(e) => { p.onClick?.(e); mine(e); }}`.
22
- * Only the render path joins data-ui markers into a token list; library selectors should use
23
- * `[data-ui~="dialog-trigger"]`. The default button always has data-ui="dialog-trigger".
24
- * For disabled anchors, compose through Button's render path: aria-disabled keeps them
25
- * focusable and its supplied handler blocks primary click/Enter activation, but does NOT
26
- * cover auxiliary/middle-click navigation. This part alone supplies native button semantics.
21
+ * The render path joins data-ui markers into a token list; use `[data-ui~="dialog-trigger"]`.
22
+ * The default button has data-ui="dialog-trigger".
23
+ * For disabled anchors, compose through Button's render path. aria-disabled keeps them focusable;
24
+ * its handler blocks primary click/Enter, but not auxiliary/middle-click navigation.
25
+ * This part supplies native button semantics only.
27
26
  */
28
27
  render?: (props: DialogPartRenderProps) => ReactNode;
29
28
  }
@@ -37,17 +36,16 @@ export interface DialogDescriptionProps extends ComponentPropsWithRef<'p'>, SxPr
37
36
  }
38
37
  export interface DialogCloseProps extends ComponentPropsWithRef<'button'>, SxProps {
39
38
  /**
40
- * Replaces the default button. Spread ALL supplied props onto the operative element and attach
41
- * the supplied ref, including when composing through Button. The forwarded and callback refs
42
- * refer to the rendered element, which need not be a button; their public types remain
43
- * HTMLButtonElement for compatibility.
44
- * Overridden handlers, className and style win; compose behavior manually to retain both:
39
+ * Replace the button. Spread all supplied props onto the element and attach the supplied ref,
40
+ * including through Button. Refs point to that element, even when it is not a button;
41
+ * the public ref type remains HTMLButtonElement for compatibility.
42
+ * Handler, className and style overrides replace the supplied values. Compose handlers to keep both:
45
43
  * `onClick={(e) => { p.onClick?.(e); mine(e); }}`.
46
- * Only the render path joins data-ui markers into a token list; library selectors should use
47
- * `[data-ui~="dialog-close"]`. The default button always has data-ui="dialog-close".
48
- * For disabled anchors, compose through Button's render path: aria-disabled keeps them
49
- * focusable and its supplied handler blocks primary click/Enter activation, but does NOT
50
- * cover auxiliary/middle-click navigation. This part alone supplies native button semantics.
44
+ * The render path joins data-ui markers into a token list; use `[data-ui~="dialog-close"]`.
45
+ * The default button has data-ui="dialog-close".
46
+ * For disabled anchors, compose through Button's render path. aria-disabled keeps them focusable;
47
+ * its handler blocks primary click/Enter, but not auxiliary/middle-click navigation.
48
+ * This part supplies native button semantics only.
51
49
  */
52
50
  render?: (props: DialogPartRenderProps) => ReactNode;
53
51
  }
@@ -1,4 +1,5 @@
1
1
  import { type ComponentPropsWithRef, type ReactNode } from 'react';
2
+ import { type SurfaceAppearance } from '../../styling/surface';
2
3
  import { type SxProps } from '../../styling/sx';
3
4
  export type DrawerSide = 'inline-start' | 'inline-end' | 'top' | 'bottom';
4
5
  export type DrawerSize = 'sm' | 'md' | 'lg';
@@ -21,6 +22,11 @@ export interface DrawerContentProps extends Omit<ComponentPropsWithRef<'dialog'>
21
22
  withDescription?: boolean;
22
23
  }
23
24
  export interface DrawerPanelProps extends ComponentPropsWithRef<'div'>, SxProps {
25
+ /**
26
+ * `contrast` (default) uses the dark palette with a charcoal surface on any page theme.
27
+ * `default` keeps the enclosing theme.
28
+ */
29
+ appearance?: SurfaceAppearance;
24
30
  }
25
31
  export interface DrawerHeaderProps extends ComponentPropsWithRef<'div'>, SxProps {
26
32
  }
@@ -38,7 +44,7 @@ export interface DrawerCloseProps extends ComponentPropsWithRef<'button'>, SxPro
38
44
  declare function DrawerRoot({ open: openProp, defaultOpen, onOpenChange, side, size, draggable, children, }: DrawerProps): import("@emotion/react/jsx-runtime").JSX.Element;
39
45
  declare function DrawerTrigger({ ref, onClick, className, sx, ...rest }: DrawerTriggerProps): import("@emotion/react/jsx-runtime").JSX.Element;
40
46
  declare function DrawerContent({ ref, className, sx, ...props }: DrawerContentProps): import("@emotion/react/jsx-runtime").JSX.Element;
41
- declare function DrawerPanel({ ref, className, sx, ...props }: DrawerPanelProps): import("@emotion/react/jsx-runtime").JSX.Element;
47
+ declare function DrawerPanel({ ref, className, appearance, style, sx, ...props }: DrawerPanelProps): import("@emotion/react/jsx-runtime").JSX.Element;
42
48
  declare function DrawerHeader({ ref, className, sx, ...props }: DrawerHeaderProps): import("@emotion/react/jsx-runtime").JSX.Element;
43
49
  declare function DrawerBody({ ref, className, sx, ...props }: DrawerBodyProps): import("@emotion/react/jsx-runtime").JSX.Element;
44
50
  declare function DrawerFooter({ ref, className, sx, ...props }: DrawerFooterProps): import("@emotion/react/jsx-runtime").JSX.Element;
@@ -0,0 +1,59 @@
1
+ import { type ComponentPropsWithRef, type CSSProperties, type HTMLAttributes, type ReactNode, type RefCallback } from 'react';
2
+ import { type Interpolation, type Theme } from '../../styling/css';
3
+ import { type SxProps } from '../../styling/sx';
4
+ export type EmblemShape = 'shield' | 'circle' | 'squircle' | 'hexagon';
5
+ export type EmblemSize = 'sm' | 'md' | 'lg' | 'xl';
6
+ export type EmblemPattern = 'none' | 'stripes' | 'hoops' | 'sash';
7
+ export interface EmblemPartProps {
8
+ className?: string;
9
+ css?: Interpolation<Theme>;
10
+ }
11
+ /** Props the `render` callback spreads onto the element it returns. */
12
+ export interface EmblemRenderProps extends Omit<HTMLAttributes<HTMLElement>, 'color'> {
13
+ ref: RefCallback<HTMLElement> | null;
14
+ css: Interpolation<Theme>;
15
+ 'data-ui': string;
16
+ 'data-shape': EmblemShape;
17
+ 'data-pattern': EmblemPattern;
18
+ style: CSSProperties;
19
+ children: ReactNode;
20
+ }
21
+ export interface EmblemProps extends Omit<ComponentPropsWithRef<'span'>, 'children' | 'role' | 'aria-label' | 'color'>, SxProps {
22
+ /** Accessible name, and the words the monogram is built from. */
23
+ name: string;
24
+ /** Replaces the initials derived from `name`. Three characters fill a plate. */
25
+ initials?: string;
26
+ /** Crest image, drawn to the plate's shape. The monogram stands in while it is missing or broken. */
27
+ src?: string;
28
+ /** Fill color. The highlight, the pattern and the default ink derive from it. */
29
+ color?: string;
30
+ /**
31
+ * Pattern color. Defaults to a lighter tint of `color`; keep it near the fill's lightness, or the
32
+ * monogram loses its contrast over the bands.
33
+ */
34
+ secondaryColor?: string;
35
+ /** Ink color over the fill. Defaults to the fill's own contrast color. */
36
+ inkColor?: string;
37
+ /** Plate outline. `shield` keeps the crest geometry this component came from. */
38
+ shape?: EmblemShape;
39
+ /** Plate side: `sm` 24px, `md` 32px, `lg` 40px, `xl` 56px. */
40
+ size?: EmblemSize;
41
+ /** Pattern over the fill. `none` leaves the plain gradient. */
42
+ pattern?: EmblemPattern;
43
+ slotProps?: {
44
+ image?: EmblemPartProps;
45
+ monogram?: EmblemPartProps;
46
+ };
47
+ /**
48
+ * Replaces the root `<span>` with the returned element, for a linked emblem. Spread every
49
+ * supplied prop onto it and attach the supplied ref. The accessible name is `name`, followed by
50
+ * the monogram while it stands in for an image, because a link's visible text belongs in its
51
+ * name (WCAG 2.5.3). Pass your own `aria-label` after the spread to describe the destination,
52
+ * and keep the monogram in it.
53
+ */
54
+ render?: (props: EmblemRenderProps) => ReactNode;
55
+ }
56
+ export declare function Emblem({ ref, name, initials, src, color, secondaryColor, inkColor, shape, size, pattern, slotProps, className, style, sx, render, ...rest }: EmblemProps): import("@emotion/react/jsx-runtime").JSX.Element;
57
+ export declare namespace Emblem {
58
+ var displayName: string;
59
+ }
@@ -0,0 +1,2 @@
1
+ export { Emblem } from './emblem';
2
+ export type { EmblemPartProps, EmblemPattern, EmblemProps, EmblemRenderProps, EmblemShape, EmblemSize, } from './emblem';
@@ -27,8 +27,8 @@ export interface EmptyStateProps extends Omit<ComponentPropsWithRef<'section'>,
27
27
  slotProps?: EmptyStateSlotProps;
28
28
  }
29
29
  /**
30
- * Empty view with a literal next action. Use Skeleton while content is pending and Alert for an
31
- * error next to existing content. The caller owns copy, translations and result announcements.
30
+ * Show a message and action when content is empty. Use Skeleton while loading and Alert for an
31
+ * error alongside existing content. Supply copy, translations and result announcements.
32
32
  */
33
33
  export declare function EmptyState({ ref, title, description, icon, action, headingLevel, variant, slotProps, className, sx, 'aria-labelledby': labelledBy, 'aria-describedby': describedBy, ...rest }: EmptyStateProps): import("@emotion/react/jsx-runtime").JSX.Element;
34
34
  export declare namespace EmptyState {
@@ -82,10 +82,9 @@ export interface FileDropzoneProps extends Omit<ComponentPropsWithRef<'div'>, 'd
82
82
  inputRef?: Ref<HTMLInputElement>;
83
83
  slotProps?: FileDropzoneSlotProps;
84
84
  }
85
- /** The visible surface is the native label of an operable file input; no custom dropzone role.
86
- * Submit canonical value items, not input.files: drops and accumulated batches are not
87
- * reflected in native FormData/required. Client validation is a convenience; validate uploads
88
- * independently on the server. */
85
+ /** Choose or drop files through a labelled native file input; there is no custom dropzone role.
86
+ * Submit value items, not input.files. Drops and accumulated batches are absent from native
87
+ * FormData and native required validation. Validate uploads on the server too. */
89
88
  export declare function FileDropzone({ ref, value, defaultValue, onValueChange, onReject, accept, multiple, maxFiles, maxSize, validate, onUpload, listPlacement, compactAt, label, description, note, dropLabel, error, messages, locale, disabled, readOnly, required, size, paste, renderFileIcon, name, inputRef, slotProps, className, sx, onDragEnter, onDragOver, onDragLeave, onDrop, onPaste, ...rest }: FileDropzoneProps): import("@emotion/react/jsx-runtime").JSX.Element;
90
89
  export declare namespace FileDropzone {
91
90
  var displayName: string;
@@ -54,8 +54,8 @@ export interface FilterToolbarResultCountProps extends Omit<ComponentPropsWithRe
54
54
  loadingLabel?: string;
55
55
  unknownLabel?: string;
56
56
  }
57
- /** A named group with native Tab order. Enter/Space activate remove and clear buttons;
58
- * the shell does not intercept editing keys or promise roving toolbar navigation. */
57
+ /** Group filters with a name and native Tab order. Enter/Space activate remove and clear buttons.
58
+ * Editing keys pass through. Roving toolbar navigation is not supported. */
59
59
  declare function FilterToolbarRoot({ ref, value: valueProp, defaultValue, onValueChange, disabled, label, messages: messagesProp, className, sx, children, 'aria-label': ariaLabel, 'aria-labelledby': ariaLabelledBy, tabIndex, ...rest }: FilterToolbarProps): import("@emotion/react/jsx-runtime").JSX.Element;
60
60
  declare function Controls({ children, className, sx, ...rest }: FilterToolbarControlsProps): import("@emotion/react/jsx-runtime").JSX.Element;
61
61
  declare function ActiveFilters({ empty, slotProps, className, sx, ...rest }: FilterToolbarActiveFiltersProps): import("@emotion/react/jsx-runtime").JSX.Element;
@@ -0,0 +1,16 @@
1
+ export declare const CARD_FRAME: {
2
+ /** height = width × ratio */
3
+ readonly ratio: 1.48;
4
+ /** border-radius = width / cornerDivisor */
5
+ readonly cornerDivisor: 13;
6
+ };
7
+ export declare const CARD_FACE: {
8
+ /** The centre mark is this share of the card's width, in container query units. */
9
+ readonly markWidthRatio: 0.35;
10
+ /** The suit watermarks sit this far from the top and bottom edges. */
11
+ readonly watermarkInsetPercent: 3;
12
+ /** Watermarks are a texture, not a second reading of the suit. */
13
+ readonly watermarkOpacity: 0.15;
14
+ /** Horizontal breathing room around the centre mark. */
15
+ readonly contentPaddingPercent: 4;
16
+ };
@@ -0,0 +1,27 @@
1
+ export type SpanishSuit = 'oros' | 'copas' | 'espadas' | 'bastos';
2
+ export type FrenchSuit = 'hearts' | 'diamonds' | 'clubs' | 'spades';
3
+ export type GameCardSuit = SpanishSuit | FrenchSuit;
4
+ /** Spanish cards print 1–7 and then 10, 11 and 12 for sota, caballo and rey. */
5
+ export type SpanishRank = 1 | 2 | 3 | 4 | 5 | 6 | 7 | 10 | 11 | 12;
6
+ export type FrenchRank = 'A' | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 'J' | 'Q' | 'K';
7
+ export type GameCardRank = SpanishRank | FrenchRank;
8
+ export type GameCardValue = {
9
+ deck: 'spanish';
10
+ suit: SpanishSuit;
11
+ rank: SpanishRank;
12
+ } | {
13
+ deck: 'french';
14
+ suit: FrenchSuit;
15
+ rank: FrenchRank;
16
+ };
17
+ /**
18
+ * Suit glyphs, keyed by suit (the two decks never share a suit name). The Spanish set is the one in
19
+ * use today — oros 💰, copas 🍷, espadas 🗡️, bastos 🌵. The French set asks for text presentation
20
+ * (U+FE0E) so the ink stays ours and the deck keeps its two-colour convention, which an
21
+ * emoji-presentation glyph would take over.
22
+ */
23
+ export declare const SUIT_GLYPHS: Record<GameCardSuit, string>;
24
+ /** The French deck's red/black split. Spanish glyphs carry their own colour. */
25
+ export declare const SUIT_INK: Partial<Record<GameCardSuit, 'red' | 'ink'>>;
26
+ /** Visible rank marks, shared by number. `rankLabel` on the card replaces the mark. */
27
+ export declare const RANK_MARKS: Record<GameCardRank, string>;
@@ -0,0 +1,37 @@
1
+ import type { ComponentPropsWithRef, ReactNode } from 'react';
2
+ import { type Interpolation, type Theme } from '../../styling/css';
3
+ import { type SxProps } from '../../styling/sx';
4
+ import { type GameCardValue } from './decks';
5
+ export type GameCardSize = 'sm' | 'md' | 'lg';
6
+ export type GameCardFace = 'emoji' | 'back';
7
+ export interface GameCardPartProps {
8
+ className?: string;
9
+ css?: Interpolation<Theme>;
10
+ }
11
+ export interface GameCardProps extends Omit<ComponentPropsWithRef<'div'>, 'children' | 'color'>, SxProps {
12
+ /**
13
+ * Accessible name, in the page's language and the consumer's grammar: "as de oros", "king of
14
+ * hearts". A face-down card names the back, never the value.
15
+ */
16
+ label: string;
17
+ /** What the card is. Omit it, or set `face="back"`, for a card that stays hidden. */
18
+ value?: GameCardValue;
19
+ /** Defaults to `emoji` with a value and `back` without one. */
20
+ face?: GameCardFace;
21
+ /** Card width: `sm` 32px, `md` 72px, `lg` 112px. */
22
+ size?: GameCardSize;
23
+ /** Replaces the printed rank mark; the suit glyph stays. */
24
+ rankLabel?: string;
25
+ /** Draws the card as worn: out of play, or waiting. */
26
+ dimmed?: boolean;
27
+ /** Your own art for the face — an image, an SVG, anything. Replaces the emoji print. */
28
+ children?: ReactNode;
29
+ slotProps?: {
30
+ face?: GameCardPartProps;
31
+ back?: GameCardPartProps;
32
+ };
33
+ }
34
+ export declare function GameCard({ ref, label, value, face, size, rankLabel, dimmed, children, slotProps, className, sx, ...rest }: GameCardProps): import("@emotion/react/jsx-runtime").JSX.Element;
35
+ export declare namespace GameCard {
36
+ var displayName: string;
37
+ }
@@ -0,0 +1,4 @@
1
+ export { GameCard } from './game-card';
2
+ export type { GameCardFace, GameCardPartProps, GameCardProps, GameCardSize } from './game-card';
3
+ export { RANK_MARKS, SUIT_GLYPHS, SUIT_INK } from './decks';
4
+ export type { FrenchRank, FrenchSuit, GameCardRank, GameCardSuit, GameCardValue, SpanishRank, SpanishSuit, } from './decks';
@@ -25,7 +25,7 @@ export interface HoldToConfirmProps extends Omit<ComponentPropsWithRef<'button'>
25
25
  confirmedIcon?: ReactNode;
26
26
  slotProps?: Partial<Record<'face' | 'icon' | 'label' | 'fill' | 'hint' | 'status', HoldToConfirmPartProps>>;
27
27
  }
28
- /** Native button with timed Space/Enter activation. Provide an untimed Dialog alternative in the application. */
28
+ /** Hold Space or Enter to confirm. Provide an untimed confirmation in a Dialog too. */
29
29
  export declare function HoldToConfirm({ ref, label, confirmedLabel, confirmationAnnouncement, getHoldDescription, locale, duration, value, defaultValue, onValueChange, onConfirm, onHoldChange, tone, size, icon, confirmedIcon, disabled, slotProps, className, sx, onPointerDown, onPointerMove, onPointerUp, onPointerCancel, onLostPointerCapture, onKeyDown, onKeyUp, onBlur, onClick, onContextMenu, 'aria-describedby': describedBy, ...rest }: HoldToConfirmProps): import("@emotion/react/jsx-runtime").JSX.Element;
30
30
  export declare namespace HoldToConfirm {
31
31
  var displayName: string;
@@ -36,11 +36,11 @@ export interface HoverCardTriggerRenderProps extends HTMLAttributes<HTMLElement>
36
36
  }
37
37
  export interface HoverCardTriggerProps extends ComponentPropsWithRef<'button'>, SxProps {
38
38
  /**
39
- * Replaces the default button, e.g. with a profile link. Spread ALL supplied props onto the
40
- * operative element and attach the supplied ref. The ref refers to the rendered element, which
41
- * need not be a button; its public type remains HTMLButtonElement for compatibility.
42
- * Native activation is never prevented: a rendered link still navigates on click, Enter or tap.
43
- * Compact inline links rely on the WCAG 2.5.8 inline exception for target size.
39
+ * Replace the button, e.g. with a profile link. Spread all supplied props onto the element
40
+ * and attach the supplied ref. The ref points to that element, even when it is not a button;
41
+ * its public type remains HTMLButtonElement for compatibility.
42
+ * Links still navigate on click, Enter or tap; native activation is not prevented.
43
+ * Inline links rely on the WCAG 2.5.8 inline exception for target size.
44
44
  */
45
45
  render?: (props: HoverCardTriggerRenderProps) => ReactNode;
46
46
  }
@@ -0,0 +1,23 @@
1
+ import { type ComponentPropsWithRef } from 'react';
2
+ import { type Interpolation, type Theme } from '../../styling/css';
3
+ import { type SxProps } from '../../styling/sx';
4
+ export type InViewTitleVariant = 'word' | 'line' | 'blur' | 'tracking' | 'wipe';
5
+ export interface InViewTitlePartProps {
6
+ className?: string;
7
+ css?: Interpolation<Theme>;
8
+ }
9
+ export interface InViewTitleProps extends Omit<ComponentPropsWithRef<'h2'>, 'children'>, SxProps {
10
+ text: string;
11
+ level?: 1 | 2 | 3 | 4 | 5 | 6;
12
+ variant?: InViewTitleVariant;
13
+ once?: boolean;
14
+ locale?: Intl.LocalesArgument;
15
+ slotProps?: {
16
+ visual?: InViewTitlePartProps;
17
+ segment?: InViewTitlePartProps;
18
+ };
19
+ }
20
+ export declare function InViewTitle({ text, level, variant, once, locale, slotProps, ref, className, sx, ...rest }: InViewTitleProps): import("@emotion/react/jsx-runtime").JSX.Element;
21
+ export declare namespace InViewTitle {
22
+ var displayName: string;
23
+ }
@@ -0,0 +1 @@
1
+ export { InViewTitle, type InViewTitleProps, type InViewTitleVariant, type InViewTitlePartProps } from './in-view-title';
@@ -7,7 +7,7 @@ export type InlineEditPhase = 'idle' | 'saving' | 'saved' | 'failed';
7
7
  type ControlElement = HTMLInputElement | HTMLTextAreaElement;
8
8
  export interface InlineEditMessages {
9
9
  /**
10
- * Accessible name of the resting trigger; `value` is the persisted value. While it is empty,
10
+ * Accessible name of the value button; `value` is the saved value. When empty,
11
11
  * the visible placeholder follows this text in the name.
12
12
  */
13
13
  edit: (context: {
@@ -41,11 +41,11 @@ export interface InlineEditSlotProps {
41
41
  error?: InlineEditPartProps;
42
42
  status?: InlineEditPartProps;
43
43
  }
44
- /** Native attributes and handlers for the editor; value, editability and placeholder stay owned. */
44
+ /** Native editor attributes and handlers. The component sets value, editability and placeholder. */
45
45
  export interface InlineEditControlProps extends Omit<TextareaHTMLAttributes<ControlElement>, 'value' | 'defaultValue' | 'children' | 'disabled' | 'readOnly' | 'placeholder' | 'cols' | 'dangerouslySetInnerHTML'> {
46
46
  }
47
47
  export interface InlineEditProps extends Omit<ComponentPropsWithRef<'div'>, 'children' | 'defaultValue' | 'onChange'>, SxProps {
48
- /** Persisted value shown by the trigger; never the draft. */
48
+ /** Saved value shown by the trigger, not the draft. */
49
49
  value?: string;
50
50
  defaultValue?: string;
51
51
  /** Requested once per resolved save, before the close request. */
@@ -54,7 +54,7 @@ export interface InlineEditProps extends Omit<ComponentPropsWithRef<'div'>, 'chi
54
54
  open?: boolean;
55
55
  defaultOpen?: boolean;
56
56
  onOpenChange?: (open: boolean) => void;
57
- /** Persists a changed value; a throw or rejection is a failed save. */
57
+ /** Saves a changed value. Throw or reject to report a failed save. */
58
58
  onSave: (next: string) => void | Promise<unknown>;
59
59
  /** Accessible name of the editor and part of the trigger's name. */
60
60
  label: string;
@@ -70,7 +70,7 @@ export interface InlineEditProps extends Omit<ComponentPropsWithRef<'div'>, 'chi
70
70
  readOnly?: boolean;
71
71
  /** Saves when focus leaves the whole widget. */
72
72
  saveOnBlur?: boolean;
73
- /** Resting content while the persisted value is empty. */
73
+ /** Content shown while the saved value is empty. */
74
74
  placeholder?: ReactNode;
75
75
  /** Native placeholder of the editor. */
76
76
  inputPlaceholder?: string;
@@ -78,7 +78,7 @@ export interface InlineEditProps extends Omit<ComponentPropsWithRef<'div'>, 'chi
78
78
  /** External error; while present it marks the editor invalid and blocks saving. */
79
79
  error?: ReactNode;
80
80
  controlProps?: InlineEditControlProps;
81
- /** The mounted editor element, or null while resting. */
81
+ /** The editor element, or null when not editing. */
82
82
  controlRef?: Ref<ControlElement>;
83
83
  messages?: Partial<InlineEditMessages>;
84
84
  editIcon?: ReactNode;
@@ -66,15 +66,13 @@ export interface JsonViewerProps extends Omit<ComponentPropsWithRef<'div'>, 'onS
66
66
  }) => void;
67
67
  slotProps?: JsonViewerSlotProps;
68
68
  }
69
- /** Read-only JSON tree. Search overlays expansion/pages; clearing restores base state.
70
- * Each expanded treeitem OWNS its child role=group via aria-owns; the group is a DOM sibling
71
- * (flattened out of the treeitem) so the author name stays scoped to the label — nesting it in
72
- * the DOM would fold the whole subtree into the treeitem's visible text and break the
73
- * label-content-name-mismatch axe gate. Roving DOM focus follows the TreeView
74
- * navigation contract. Right opens, Left closes/moves to parent even in RTL. Up/Down clamp;
75
- * Home/End move; Enter/Space activate; 500ms typeahead; / searches; Ctrl/Cmd+C copies JSON
76
- * (+Shift copies path).
77
- * Strict JSON only, no getters/cycles/nonfinite numbers. Paged, not virtualized.
69
+ /** Browse JSON without editing it.
70
+ * Search adds expansion and pages; clearing restores the base state.
71
+ * Expanded treeitems reference sibling child groups with aria-owns to keep names scoped to labels.
72
+ * TreeView navigation: Right opens/enters; Left closes/moves to the parent, including in RTL.
73
+ * Up/Down stop at the ends; Home/End move; Enter/Space activate. Typeahead resets after 500ms.
74
+ * / searches; Ctrl/Cmd+C copies JSON; add Shift to copy the path.
75
+ * Accepts strict JSON only, without getters, cycles or nonfinite numbers. Paged, not virtualized.
78
76
  */
79
77
  export declare function JsonViewer({ data, rootName, expandedValue, defaultExpandedValue, onExpandedValueChange, defaultExpandDepth, query: queryProp, defaultQuery, onQueryChange, value: valueProp, defaultValue, onValueChange, onNodeActivate, searchable, copyable, showPath, pageSize: pageSizeProp, maxMatches: maxMatchesProp, maxHeight, size, locale, labels: labelProps, onCopy, onCopyError, slotProps, ref, className, sx, style, onKeyDown, onClick, 'aria-label': ariaLabel, 'aria-labelledby': labelledBy, 'aria-describedby': describedBy, ...rest }: JsonViewerProps): import("@emotion/react/jsx-runtime").JSX.Element;
80
78
  export declare namespace JsonViewer {
@@ -0,0 +1,2 @@
1
+ export { KeycapKeyboard } from './keycap-keyboard';
2
+ export type { KeycapKeyboardProps, KeycapKeyboardSlotProps, KeycapSpec } from './keycap-keyboard';
@@ -0,0 +1,32 @@
1
+ import { type ComponentPropsWithRef, type ReactNode } from 'react';
2
+ import { type Interpolation, type Theme } from '../../styling/css';
3
+ import { type SxProps } from '../../styling/sx';
4
+ export interface KeycapSpec {
5
+ code: string;
6
+ legend: ReactNode;
7
+ units?: number;
8
+ }
9
+ export interface KeycapKeyboardSlotProps {
10
+ className?: string;
11
+ css?: Interpolation<Theme>;
12
+ }
13
+ export interface KeycapKeyboardProps extends Omit<ComponentPropsWithRef<'div'>, 'children' | 'defaultValue' | 'onChange' | 'tabIndex' | 'role' | 'onKeyDown' | 'onKeyUp'>, SxProps {
14
+ layout?: 'compact' | 'letters';
15
+ rows?: readonly (readonly KeycapSpec[])[];
16
+ value?: readonly string[];
17
+ defaultValue?: readonly string[];
18
+ onValueChange?: (codes: readonly string[]) => void;
19
+ eventTarget?: HTMLInputElement | HTMLTextAreaElement | null;
20
+ tone?: 'neutral' | 'accent';
21
+ paused?: boolean;
22
+ slotProps?: {
23
+ row?: KeycapKeyboardSlotProps;
24
+ key?: KeycapKeyboardSlotProps;
25
+ legend?: KeycapKeyboardSlotProps;
26
+ };
27
+ }
28
+ /** Show a keyboard illustration. Supply text input, focus and shortcut descriptions separately. */
29
+ export declare function KeycapKeyboard({ ref, layout, rows, value, defaultValue, onValueChange, eventTarget, tone, paused, slotProps, className, sx, style, ...rest }: KeycapKeyboardProps): import("@emotion/react/jsx-runtime").JSX.Element;
30
+ export declare namespace KeycapKeyboard {
31
+ var displayName: string;
32
+ }
@@ -0,0 +1,2 @@
1
+ export { LightboxGallery } from './lightbox-gallery';
2
+ export type { LightboxGalleryImage, LightboxGalleryLabels, LightboxGalleryProps, LightboxGallerySlotProps, } from './lightbox-gallery';
@@ -0,0 +1,74 @@
1
+ import { type ComponentPropsWithRef, type ReactNode } from 'react';
2
+ import { vars } from '@jfrader/tokens/vars';
3
+ import { type Interpolation, type Theme } from '../../styling/css';
4
+ import { type SxProps } from '../../styling/sx';
5
+ export interface LightboxGalleryImage {
6
+ id: string;
7
+ src: string;
8
+ width: number;
9
+ height: number;
10
+ alt: string;
11
+ title?: string;
12
+ caption?: ReactNode;
13
+ srcSet?: string;
14
+ sizes?: string;
15
+ }
16
+ type Slot<Tag extends keyof React.JSX.IntrinsicElements> = Omit<ComponentPropsWithRef<Tag>, 'children'> & {
17
+ css?: Interpolation<Theme>;
18
+ };
19
+ export interface LightboxGallerySlotProps {
20
+ grid?: Slot<'ul'>;
21
+ tile?: Omit<Slot<'button'>, 'type'>;
22
+ image?: Omit<Slot<'img'>, 'src' | 'srcSet' | 'sizes' | 'alt' | 'width' | 'height'>;
23
+ viewer?: Omit<Slot<'dialog'>, 'open'> & {
24
+ withDescription?: boolean;
25
+ };
26
+ stage?: Slot<'div'>;
27
+ title?: Slot<'h2'>;
28
+ caption?: Slot<'p'>;
29
+ thumbnails?: Slot<'div'>;
30
+ controls?: Slot<'div'>;
31
+ status?: Slot<'div'>;
32
+ }
33
+ export interface LightboxGalleryLabels {
34
+ open: string;
35
+ close: string;
36
+ previous: string;
37
+ next: string;
38
+ zoom: string;
39
+ zoomIn: string;
40
+ zoomOut: string;
41
+ reset: string;
42
+ panLeft: string;
43
+ panRight: string;
44
+ panUp: string;
45
+ panDown: string;
46
+ empty: string;
47
+ unavailable: string;
48
+ imageUnavailable: string;
49
+ loading: string;
50
+ thumbnails: string;
51
+ position: (position: string, total: string) => string;
52
+ zoomPercent: (percent: string) => string;
53
+ }
54
+ export interface LightboxGalleryProps extends Omit<ComponentPropsWithRef<'div'>, 'children' | 'defaultValue'>, SxProps {
55
+ images: readonly LightboxGalleryImage[];
56
+ label: string;
57
+ minColumnWidth?: number;
58
+ gap?: keyof typeof vars.space;
59
+ value?: string | null;
60
+ defaultValue?: string | null;
61
+ onValueChange?: (id: string | null) => void;
62
+ open?: boolean;
63
+ defaultOpen?: boolean;
64
+ onOpenChange?: (open: boolean) => void;
65
+ maxZoom?: number;
66
+ labels?: Partial<LightboxGalleryLabels>;
67
+ locale?: Intl.LocalesArgument;
68
+ slotProps?: LightboxGallerySlotProps;
69
+ }
70
+ export declare function LightboxGallery({ ref, images, label, minColumnWidth, gap, value, defaultValue, onValueChange, open: openProp, defaultOpen, onOpenChange, maxZoom, labels: labelOverrides, locale, slotProps, className, sx, ...rest }: LightboxGalleryProps): import("@emotion/react/jsx-runtime").JSX.Element;
71
+ export declare namespace LightboxGallery {
72
+ var displayName: string;
73
+ }
74
+ export {};
@@ -0,0 +1,2 @@
1
+ export { LinkUnfurl } from './link-unfurl';
2
+ export type { LinkUnfurlLabels, LinkUnfurlMessage, LinkUnfurlPreview, LinkUnfurlPreviewRequestContext, LinkUnfurlPreviewStatus, LinkUnfurlProps, LinkUnfurlSlotProps, LinkUnfurlSuggestion, } from './link-unfurl';