@jfrader/ui 0.5.0 → 0.6.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 (314) hide show
  1. package/README.md +18 -1
  2. package/dist/accordion-D6myONB9.js +206 -0
  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-B58xempt.js → announcement-bar-B5J33QUh.js} +132 -131
  9. package/dist/announcement-bar.js +1 -1
  10. package/dist/avatar-B6idYC59.js +146 -0
  11. package/dist/{avatar-group-DOQQuV51.js → avatar-group-DvP8mAE-.js} +10 -9
  12. package/dist/avatar-group.js +1 -1
  13. package/dist/avatar.js +1 -1
  14. package/dist/badge-CfhTcA-Z.js +120 -0
  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-DPJBFkie.js → bottom-sheet-BFQKO0Wo.js} +287 -268
  19. package/dist/bottom-sheet.js +1 -1
  20. package/dist/{breadcrumbs-Cfw_hgt2.js → breadcrumbs-CG3akw-b.js} +28 -20
  21. package/dist/breadcrumbs.js +1 -1
  22. package/dist/{button-C92uYFJW.js → button-C6OV0C7J.js} +21 -20
  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-lTH4Foke.js +475 -0
  32. package/dist/carousel.js +1 -1
  33. package/dist/chat-thread-DVa17BRC.js +864 -0
  34. package/dist/chat-thread.js +2 -0
  35. package/dist/{checkbox-cFquiSdy.js → checkbox-CClE61GV.js} +23 -21
  36. package/dist/checkbox.js +1 -1
  37. package/dist/{chip-group-DTQd_M-G.js → chip-group-BZUX9KPF.js} +19 -17
  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-ahnRi-g8.js → code-block-CYP89_6h.js} +99 -97
  41. package/dist/code-block.js +1 -1
  42. package/dist/{combobox-Bhzvu9ma.js → combobox-D2Oc-co7.js} +131 -125
  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-BnUHxviq.js +772 -0
  47. package/dist/comment-thread.js +2 -0
  48. package/dist/{container-BOaSptJa.js → container-BxtwJSSD.js} +3 -2
  49. package/dist/container.js +1 -1
  50. package/dist/context-menu-I4i0LRpm.js +371 -0
  51. package/dist/context-menu.js +2 -0
  52. package/dist/{copy-button-ByiA6D3R.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-5zKSSuFF.js → date-picker-D-bn-iHs.js} +15 -14
  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-DYoJf0I_.js → divider-zOJzkcHh.js} +23 -21
  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/{empty-state-CDgrjPPf.js → empty-state-DO0ApylK.js} +2 -1
  68. package/dist/empty-state.js +1 -1
  69. package/dist/{expandable-card-C-qJcZ14.js → expandable-card-W97vjix9.js} +59 -51
  70. package/dist/expandable-card.js +1 -1
  71. package/dist/expanding-search-Bb2_YfNx.js +239 -0
  72. package/dist/expanding-search.js +2 -0
  73. package/dist/{field-anatomy-COVdNpf5.js → field-anatomy-BDIP42MI.js} +2 -1
  74. package/dist/file-dropzone-Bi5ikRIz.js +458 -0
  75. package/dist/file-dropzone.js +1 -1
  76. package/dist/{filter-toolbar-D5KEKTSe.js → filter-toolbar-QRnC4S_H.js} +36 -33
  77. package/dist/filter-toolbar.js +1 -1
  78. package/dist/{flex-Dh-_J5-U.js → flex-CS7eMRcK.js} +2 -2
  79. package/dist/flex.js +1 -1
  80. package/dist/{hold-to-confirm-DjB2EVjM.js → hold-to-confirm-CVBA0wNT.js} +18 -17
  81. package/dist/hold-to-confirm.js +1 -1
  82. package/dist/{hover-card-B-nrCIy2.js → hover-card-DN1EAlQA.js} +26 -25
  83. package/dist/hover-card.js +1 -1
  84. package/dist/{icon-wrapper-stN8sD7R.js → icon-wrapper-C-zMD0uL.js} +1 -1
  85. package/dist/{image-compare-ciuhPtQZ.js → image-compare-Ln2UUqTU.js} +20 -19
  86. package/dist/image-compare.js +1 -1
  87. package/dist/index.js +98 -78
  88. package/dist/{inline-edit-C0eeml65.js → inline-edit-D-pR2RPC.js} +22 -21
  89. package/dist/inline-edit.js +1 -1
  90. package/dist/{input-control-DmMuAuPS.js → input-control-B6HVBgwl.js} +1 -1
  91. package/dist/{json-viewer-BcySQfjZ.js → json-viewer-Dro3WrjS.js} +34 -29
  92. package/dist/json-viewer.js +1 -1
  93. package/dist/{kbd-C3ACoMoE.js → kbd-BI_9qzYr.js} +2 -1
  94. package/dist/kbd.js +1 -1
  95. package/dist/keycap-keyboard-Cdx-OAS1.js +311 -0
  96. package/dist/keycap-keyboard.js +2 -0
  97. package/dist/{layout-style-Cbd1Vilw.js → layout-style-BE0gSqrH.js} +1 -1
  98. package/dist/lightbox-gallery-D0YaSTut.js +777 -0
  99. package/dist/lightbox-gallery.js +2 -0
  100. package/dist/link-unfurl-CReyIjyy.js +695 -0
  101. package/dist/link-unfurl.js +2 -0
  102. package/dist/{listbox-style-WX-RASp1.js → listbox-style-DNOxAulu.js} +1 -1
  103. package/dist/{loading-ring-B8-30Dl1.js → loading-ring-D0lGrK8z.js} +1 -1
  104. package/dist/locale-switcher-CZF7XNYG.js +295 -0
  105. package/dist/locale-switcher.js +2 -0
  106. package/dist/mention-input-BjjAbJCf.js +600 -0
  107. package/dist/mention-input.js +1 -1
  108. package/dist/menu-CVzpsyXn.js +312 -0
  109. package/dist/menu.js +1 -1
  110. package/dist/{metric-card-Bh9K4fZs.js → metric-card-BnFssTXj.js} +12 -11
  111. package/dist/metric-card.js +1 -1
  112. package/dist/{multi-select-Pce_IYnz.js → multi-select-B3puEVo0.js} +78 -69
  113. package/dist/multi-select.js +1 -1
  114. package/dist/{navigation-sP5fiuQS.js → navigation-C_JD43gA.js} +56 -49
  115. package/dist/navigation.js +1 -1
  116. package/dist/next.js +65 -0
  117. package/dist/now-playing-DjVm1Phm.js +439 -0
  118. package/dist/now-playing.js +2 -0
  119. package/dist/{overlay-layer-SeUyyEPD.js → overlay-layer-qEbpEtb8.js} +16 -2
  120. package/dist/overlay-motion-Cr77ihn2.js +90 -0
  121. package/dist/{overlay-portal-C4JZFq2M.js → overlay-portal-C9igMHnC.js} +1 -1
  122. package/dist/{pagination-DmXZ8E85.js → pagination-Dkh4bJQh.js} +31 -29
  123. package/dist/pagination.js +1 -1
  124. package/dist/{password-field-03pWRkuY.js → password-field-Da58GP1g.js} +4 -4
  125. package/dist/password-field.js +1 -1
  126. package/dist/photo-grid-Dtl17D74.js +830 -0
  127. package/dist/photo-grid.js +2 -0
  128. package/dist/pill-Dd7pog19.js +59 -0
  129. package/dist/pill.js +1 -1
  130. package/dist/popover-CUMOcMtj.js +126 -0
  131. package/dist/popover.js +1 -1
  132. package/dist/presence-spring-4zwtUDQN.js +12 -0
  133. package/dist/{progress-CbOWBUdA.js → progress-Bcuz3Ob4.js} +12 -11
  134. package/dist/progress.js +1 -1
  135. package/dist/{radio-cards-D2QZENI_.js → radio-cards-FkAhESb5.js} +65 -63
  136. package/dist/radio-cards.js +1 -1
  137. package/dist/{radio-group-E6mMRgo7.js → radio-group-DItMf2YM.js} +32 -28
  138. package/dist/radio-group.js +1 -1
  139. package/dist/{resizable-panels-BhjUVXZZ.js → resizable-panels-61h9hA3B.js} +16 -14
  140. package/dist/resizable-panels.js +1 -1
  141. package/dist/{scroll-area-CcZyiSOQ.js → scroll-area-B8KkCPOM.js} +16 -15
  142. package/dist/scroll-area.js +1 -1
  143. package/dist/{search-field-IxF0IJXm.js → search-field-CbsajaZb.js} +94 -93
  144. package/dist/search-field.js +1 -1
  145. package/dist/{segmented-control-yO1K1nbi.js → segmented-control-DCh-4ca-.js} +28 -26
  146. package/dist/segmented-control.js +1 -1
  147. package/dist/{select-n_H52W1Z.js → select-SrcQqZjo.js} +29 -27
  148. package/dist/select.js +1 -1
  149. package/dist/sheet-stack-DYX1SGSB.js +820 -0
  150. package/dist/sheet-stack.js +2 -0
  151. package/dist/shortcut-recorder-VgTQdjjn.js +688 -0
  152. package/dist/shortcut-recorder.js +2 -0
  153. package/dist/signature-pad-khL2yhQI.js +646 -0
  154. package/dist/signature-pad.js +1 -1
  155. package/dist/{skeleton-XQQDkCHd.js → skeleton-LJsQsveI.js} +9 -8
  156. package/dist/skeleton.js +1 -1
  157. package/dist/slider-DjAnGmlC.js +535 -0
  158. package/dist/slider.js +1 -1
  159. package/dist/{sortable-data-table-tirqlLY2.js → sortable-data-table-Bpitup_d.js} +29 -28
  160. package/dist/sortable-data-table.js +1 -1
  161. package/dist/{spinner-DtxvDPdM.js → spinner-CvzajSg9.js} +11 -10
  162. package/dist/spinner.js +1 -1
  163. package/dist/{split-button-Cb3EHs64.js → split-button-Bu41f2AY.js} +88 -93
  164. package/dist/split-button.js +1 -1
  165. package/dist/{stack-DC3IbtWk.js → stack-Bac4sJeI.js} +2 -2
  166. package/dist/stack.js +1 -1
  167. package/dist/{stepper-CruHbXxX.js → stepper-C8Ncavbr.js} +22 -21
  168. package/dist/stepper.js +1 -1
  169. package/dist/stretch-refresh-OrnTEj7P.js +349 -0
  170. package/dist/stretch-refresh.js +2 -0
  171. package/dist/{surface-DZ4d-2aL.js → surface-C69kwSuk.js} +13 -3
  172. package/dist/{swipe-actions-DiZC57-3.js → swipe-actions-1H5UOZKE.js} +29 -26
  173. package/dist/swipe-actions.js +1 -1
  174. package/dist/switch-79-hkQqg.js +146 -0
  175. package/dist/switch.js +1 -1
  176. package/dist/sx-BJXJ2xJK.js +23 -0
  177. package/dist/tabs-Bb5-noYE.js +211 -0
  178. package/dist/tabs.js +1 -1
  179. package/dist/{tag-input-DSRCyrX2.js → tag-input-BQaueKEb.js} +5 -5
  180. package/dist/tag-input.js +1 -1
  181. package/dist/{text-field-C8TWG-tY.js → text-field-D0VP7b4P.js} +18 -16
  182. package/dist/text-field.js +1 -1
  183. package/dist/{textarea-BrW0XcG_.js → textarea-D1YwEPmn.js} +21 -19
  184. package/dist/textarea.js +1 -1
  185. package/dist/theme-provider-BvcY-iJu.js +20 -0
  186. package/dist/theme-root-BrYVcTzt.js +163 -0
  187. package/dist/theme-root.js +1 -1
  188. package/dist/theme-scope-DGWy4H0C.js +62 -0
  189. package/dist/theme-switch-CP42mVDb.js +167 -0
  190. package/dist/theme-switch.js +2 -0
  191. package/dist/thread-parts-DfZNz70v.js +683 -0
  192. package/dist/{time-picker-Db8D49cP.js → time-picker-Tnd-JBLC.js} +39 -32
  193. package/dist/time-picker.js +1 -1
  194. package/dist/{timeline-k3nURuCP.js → timeline-DaldDMX7.js} +28 -21
  195. package/dist/timeline.js +1 -1
  196. package/dist/{toast-BHxI32ZA.js → toast-CSAbl5yK.js} +107 -87
  197. package/dist/{toast-stack-DqrAzdg5.js → toast-stack-BCR4Cu7V.js} +25 -10
  198. package/dist/toast-stack.js +1 -1
  199. package/dist/toast.js +1 -1
  200. package/dist/{toggle-group-fcjzpifI.js → toggle-group-C7ye1v4s.js} +24 -23
  201. package/dist/toggle-group.js +1 -1
  202. package/dist/tooltip-IajLwdUb.js +129 -0
  203. package/dist/tooltip.js +1 -1
  204. package/dist/{tree-view-C2liIxqy.js → tree-view-CoW4oJIZ.js} +18 -13
  205. package/dist/tree-view.js +1 -1
  206. package/dist/{trigger-style-B1KVC8O1.js → trigger-style-CtOrdPk4.js} +1 -1
  207. package/dist/types/components/activity-rings/activity-rings.d.ts +115 -0
  208. package/dist/types/components/activity-rings/index.d.ts +2 -0
  209. package/dist/types/components/billing-toggle/billing-toggle.d.ts +57 -0
  210. package/dist/types/components/billing-toggle/index.d.ts +2 -0
  211. package/dist/types/components/button-group/button-group.d.ts +72 -0
  212. package/dist/types/components/button-group/index.d.ts +2 -0
  213. package/dist/types/components/card/card.d.ts +4 -1
  214. package/dist/types/components/chat-thread/chat-thread.d.ts +130 -0
  215. package/dist/types/components/chat-thread/index.d.ts +2 -0
  216. package/dist/types/components/checkbox/checkbox.d.ts +1 -1
  217. package/dist/types/components/command-palette/command-palette.d.ts +1 -1
  218. package/dist/types/components/comment-thread/comment-thread.d.ts +118 -0
  219. package/dist/types/components/comment-thread/index.d.ts +1 -0
  220. package/dist/types/components/context-menu/context-menu.d.ts +55 -0
  221. package/dist/types/components/context-menu/index.d.ts +2 -0
  222. package/dist/types/components/date-range-picker/date-range-picker.d.ts +1 -1
  223. package/dist/types/components/drawer/drawer.d.ts +7 -1
  224. package/dist/types/components/expanding-search/expanding-search.d.ts +22 -0
  225. package/dist/types/components/expanding-search/index.d.ts +1 -0
  226. package/dist/types/components/keycap-keyboard/index.d.ts +2 -0
  227. package/dist/types/components/keycap-keyboard/keycap-keyboard.d.ts +32 -0
  228. package/dist/types/components/lightbox-gallery/index.d.ts +2 -0
  229. package/dist/types/components/lightbox-gallery/lightbox-gallery.d.ts +74 -0
  230. package/dist/types/components/link-unfurl/index.d.ts +2 -0
  231. package/dist/types/components/link-unfurl/link-unfurl.d.ts +94 -0
  232. package/dist/types/components/locale-switcher/index.d.ts +2 -0
  233. package/dist/types/components/locale-switcher/locale-switcher.d.ts +58 -0
  234. package/dist/types/components/menu/menu.d.ts +74 -7
  235. package/dist/types/components/next/emotion-registry.d.ts +16 -0
  236. package/dist/types/components/next/index.d.ts +2 -0
  237. package/dist/types/components/next/registry.d.ts +21 -0
  238. package/dist/types/components/now-playing/index.d.ts +1 -0
  239. package/dist/types/components/now-playing/now-playing.d.ts +88 -0
  240. package/dist/types/components/pagination/pagination.d.ts +1 -1
  241. package/dist/types/components/photo-grid/index.d.ts +2 -0
  242. package/dist/types/components/photo-grid/photo-grid.d.ts +82 -0
  243. package/dist/types/components/radio-cards/radio-cards.d.ts +1 -1
  244. package/dist/types/components/radio-group/radio-group.d.ts +1 -1
  245. package/dist/types/components/sheet-stack/index.d.ts +2 -0
  246. package/dist/types/components/sheet-stack/sheet-stack.d.ts +78 -0
  247. package/dist/types/components/shortcut-recorder/index.d.ts +2 -0
  248. package/dist/types/components/shortcut-recorder/shortcut-recorder.d.ts +117 -0
  249. package/dist/types/components/slider/slider-style.d.ts +14 -0
  250. package/dist/types/components/slider/slider.d.ts +2 -10
  251. package/dist/types/components/slider/use-slider-interaction.d.ts +79 -0
  252. package/dist/types/components/split-button/split-button.d.ts +2 -2
  253. package/dist/types/components/stretch-refresh/index.d.ts +1 -0
  254. package/dist/types/components/stretch-refresh/stretch-refresh.d.ts +49 -0
  255. package/dist/types/components/tabs/tabs.d.ts +1 -1
  256. package/dist/types/components/text-field/text-field.d.ts +1 -1
  257. package/dist/types/components/textarea/textarea.d.ts +1 -1
  258. package/dist/types/components/theme-root/index.d.ts +1 -0
  259. package/dist/types/components/theme-root/theme-root.d.ts +9 -1
  260. package/dist/types/components/theme-switch/index.d.ts +1 -0
  261. package/dist/types/components/theme-switch/theme-switch.d.ts +33 -0
  262. package/dist/types/components/thread/thread-core.d.ts +96 -0
  263. package/dist/types/components/thread/thread-parts.d.ts +119 -0
  264. package/dist/types/components/tooltip/tooltip.d.ts +9 -2
  265. package/dist/types/components/usage-meter/usage-meter.d.ts +2 -12
  266. package/dist/types/components/usage-meter/usage-model.d.ts +30 -0
  267. package/dist/types/components/user-menu/index.d.ts +2 -0
  268. package/dist/types/components/user-menu/user-menu.d.ts +119 -0
  269. package/dist/types/index.d.ts +18 -0
  270. package/dist/types/overlay/exit-motion.d.ts +24 -0
  271. package/dist/types/overlay/overlay-layer.d.ts +20 -0
  272. package/dist/types/overlay/presence-spring.d.ts +12 -0
  273. package/dist/types/overlay/use-native-dialog.d.ts +10 -1
  274. package/dist/types/overlay/use-overlay-floating.d.ts +9 -2
  275. package/dist/types/styling/create-theme.d.ts +24 -0
  276. package/dist/types/styling/css.d.ts +1 -1
  277. package/dist/types/styling/overlay-motion.d.ts +95 -0
  278. package/dist/types/styling/surface.d.ts +7 -0
  279. package/dist/types/styling/theme-scope.d.ts +29 -3
  280. package/dist/types/styling/theme.d.ts +5 -0
  281. package/dist/{usage-meter-qyQ3rYVv.js → usage-meter-CYvlB6l3.js} +165 -175
  282. package/dist/usage-meter.js +1 -1
  283. package/dist/usage-model-C0fS47w4.js +32 -0
  284. package/dist/use-native-dialog-FB0p7lkg.js +93 -0
  285. package/dist/{use-overlay-floating-DvJifLpF.js → use-overlay-floating-Bx2jBKAA.js} +8 -6
  286. package/dist/use-scroll-lock-40gXwwAy.js +23 -0
  287. package/dist/user-menu-DzELTg1x.js +757 -0
  288. package/dist/user-menu.js +2 -0
  289. package/dist/{visually-hidden-BJdvqqvn.js → visually-hidden-DgVO3NaB.js} +1 -1
  290. package/package.json +88 -2
  291. package/dist/accordion-xCI_u0BV.js +0 -198
  292. package/dist/avatar-BahDVO9t.js +0 -132
  293. package/dist/badge-B_sLygxU.js +0 -108
  294. package/dist/calendar-B3Svu0X2.js +0 -447
  295. package/dist/card-D-aI2QHx.js +0 -158
  296. package/dist/carousel-IvPqN-oM.js +0 -472
  297. package/dist/command-palette-BQ5LleGb.js +0 -384
  298. package/dist/date-range-picker-B5uFWsm-.js +0 -562
  299. package/dist/dialog-ciiv9H2b.js +0 -218
  300. package/dist/drawer-DsASTiP-.js +0 -553
  301. package/dist/file-dropzone-pR4v7owg.js +0 -457
  302. package/dist/mention-input-BcQKX2EJ.js +0 -599
  303. package/dist/menu-xwOOUtWP.js +0 -275
  304. package/dist/pill-DO2gHzMb.js +0 -56
  305. package/dist/popover-QHcEvf9c.js +0 -119
  306. package/dist/signature-pad-q2SAsrdD.js +0 -640
  307. package/dist/slider-t0B5cecO.js +0 -477
  308. package/dist/switch-qwv8jQnR.js +0 -142
  309. package/dist/sx-Dx9JUKp5.js +0 -23
  310. package/dist/tabs-CAVJndX1.js +0 -203
  311. package/dist/theme-root-BbTBuLMQ.js +0 -46
  312. package/dist/theme-scope-t7nAKc2c.js +0 -27
  313. package/dist/tooltip-CkeiW9C1.js +0 -113
  314. package/dist/use-native-dialog-DWpIUVO1.js +0 -84
@@ -0,0 +1,16 @@
1
+ import { type ReactNode } from 'react';
2
+ export interface EmotionRegistryProps {
3
+ /** Emotion cache key: the class name prefix and the `data-emotion` attribute value. */
4
+ cacheKey?: string;
5
+ children?: ReactNode;
6
+ }
7
+ /**
8
+ * Emotion SSR registry for the App Router: one shared cache and a flush that only
9
+ * sends the styles inserted since the last pass, so the server and client trees
10
+ * match on hydration. Without it, Emotion inserts <style> nodes inline during SSR
11
+ * and the hydration diff mismatches.
12
+ */
13
+ export declare function EmotionRegistry({ cacheKey, children }: EmotionRegistryProps): import("@emotion/react/jsx-runtime").JSX.Element;
14
+ export declare namespace EmotionRegistry {
15
+ var displayName: string;
16
+ }
@@ -0,0 +1,2 @@
1
+ export { EmotionRegistry } from './emotion-registry';
2
+ export type { EmotionRegistryProps } from './emotion-registry';
@@ -0,0 +1,21 @@
1
+ import { type EmotionCache } from '@emotion/cache';
2
+ export interface PendingStyle {
3
+ name: string;
4
+ isGlobal: boolean;
5
+ }
6
+ export interface CollectedStyles {
7
+ globals: {
8
+ name: string;
9
+ styles: string;
10
+ }[];
11
+ names: string[];
12
+ styles: string;
13
+ }
14
+ export interface EmotionRegistryCache {
15
+ cache: EmotionCache;
16
+ /** Returns the styles inserted since the previous call and forgets them. */
17
+ flush: () => PendingStyle[];
18
+ }
19
+ export declare function createEmotionRegistry(key: string): EmotionRegistryCache;
20
+ /** Splits flushed styles into one payload per global and one shared payload for scoped rules. */
21
+ export declare function collectStyles(pending: readonly PendingStyle[], inserted: EmotionCache['inserted']): CollectedStyles;
@@ -0,0 +1 @@
1
+ export { NowPlaying, NowPlayingLevels, type NowPlayingProps, type NowPlayingTrack, type NowPlayingLabels, type NowPlayingSlotProps, type NowPlayingLevelsProps, } from './now-playing';
@@ -0,0 +1,88 @@
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
+ import { type ButtonProps } from '../button';
5
+ import { type SliderProps } from '../slider';
6
+ export interface NowPlayingTrack {
7
+ id: string;
8
+ title: string;
9
+ artist: string;
10
+ duration: number | null;
11
+ artwork?: string;
12
+ artworkAlt?: string;
13
+ }
14
+ type Part<T extends 'div' | 'span' | 'img'> = ComponentPropsWithRef<T> & {
15
+ css?: Interpolation<Theme>;
16
+ };
17
+ export interface NowPlayingSlotProps {
18
+ mini?: Part<'div'>;
19
+ full?: Part<'div'>;
20
+ artwork?: Part<'img'>;
21
+ title?: Part<'span'>;
22
+ artist?: Part<'span'>;
23
+ expand?: Omit<ButtonProps, 'sx' | 'render'>;
24
+ collapse?: Omit<ButtonProps, 'sx' | 'render'>;
25
+ seek?: Omit<Extract<SliderProps, {
26
+ type?: 'single';
27
+ }>, 'sx' | 'type' | 'value' | 'defaultValue' | 'onValueChange' | 'label' | 'dir' | 'min' | 'max' | 'step' | 'largeStep' | 'locale' | 'formatValue' | 'formatOptions' | 'showValue'>;
28
+ waveform?: Part<'div'>;
29
+ controls?: Part<'div'>;
30
+ status?: Part<'span'>;
31
+ error?: Part<'div'>;
32
+ }
33
+ export interface NowPlayingLabels {
34
+ play: string;
35
+ pause: string;
36
+ previous: string;
37
+ next: string;
38
+ expand: string;
39
+ collapse: string;
40
+ seek: string;
41
+ empty: string;
42
+ unavailable: string;
43
+ busy: string;
44
+ playing: string;
45
+ paused: string;
46
+ position: (elapsed: string, duration: string) => string;
47
+ }
48
+ export interface NowPlayingProps extends Omit<ComponentPropsWithRef<'section'>, 'defaultValue' | 'children' | 'onChange'>, SxProps {
49
+ tracks: readonly NowPlayingTrack[];
50
+ value?: number;
51
+ defaultValue?: number;
52
+ onValueChange?: (index: number) => void;
53
+ playing?: boolean;
54
+ defaultPlaying?: boolean;
55
+ onPlayingChange?: (playing: boolean) => void;
56
+ open?: boolean;
57
+ defaultOpen?: boolean;
58
+ onOpenChange?: (open: boolean) => void;
59
+ position?: number;
60
+ defaultPosition?: number;
61
+ onPositionChange?: (seconds: number) => void;
62
+ busy?: boolean;
63
+ error?: ReactNode;
64
+ waveform?: readonly number[];
65
+ label?: string;
66
+ labels?: Partial<NowPlayingLabels>;
67
+ locale?: Intl.LocalesArgument;
68
+ /**
69
+ * Seconds per arrow step. Slider requires the duration to be a whole number of steps, so a
70
+ * step that does not divide it is rounded to the nearest one that does (180s with 7 → 180/26).
71
+ * Defaults to the largest step of at most one second that divides the duration.
72
+ */
73
+ seekStep?: number;
74
+ seekLargeStep?: number;
75
+ slotProps?: NowPlayingSlotProps;
76
+ }
77
+ export interface NowPlayingLevelsProps extends ComponentPropsWithRef<'span'>, SxProps {
78
+ playing?: boolean;
79
+ }
80
+ export declare function NowPlayingLevels({ ref, playing: playingProp, className, sx, ...rest }: NowPlayingLevelsProps): import("@emotion/react/jsx-runtime").JSX.Element;
81
+ export declare namespace NowPlayingLevels {
82
+ var displayName: string;
83
+ }
84
+ declare function NowPlayingRoot({ ref, tracks, value, defaultValue, onValueChange, playing, defaultPlaying, onPlayingChange, open, defaultOpen, onOpenChange, position, defaultPosition, onPositionChange, busy, error, waveform, label, labels: labelsProp, locale, seekStep, seekLargeStep, slotProps, className, sx, onKeyDown, 'aria-label': ariaLabel, 'aria-labelledby': ariaLabelledBy, 'aria-describedby': ariaDescribedBy, ...rest }: NowPlayingProps): import("@emotion/react/jsx-runtime").JSX.Element;
85
+ export declare const NowPlaying: typeof NowPlayingRoot & {
86
+ Levels: typeof NowPlayingLevels;
87
+ };
88
+ export {};
@@ -12,7 +12,7 @@ export interface PaginationProps extends Omit<ComponentPropsWithRef<'nav'>, 'onC
12
12
  nextLabel?: string;
13
13
  locale?: string;
14
14
  }
15
- export declare function Pagination({ ref, page, totalPages, onPageChange, siblingCount, label, previousLabel, nextLabel, locale, className, sx, ...rest }: PaginationProps): import("@emotion/react/jsx-runtime").JSX.Element;
15
+ export declare function Pagination({ ref, page, totalPages, onPageChange, siblingCount, label, previousLabel, nextLabel, locale, className, sx, 'aria-label': ariaLabel, 'aria-labelledby': ariaLabelledBy, ...rest }: PaginationProps): import("@emotion/react/jsx-runtime").JSX.Element;
16
16
  export declare namespace Pagination {
17
17
  var displayName: string;
18
18
  }
@@ -0,0 +1,2 @@
1
+ export { PhotoGrid } from './photo-grid';
2
+ export type { PhotoGridProps, PhotoGridPhoto, PhotoGridLabels, PhotoGridSlotProps } from './photo-grid';
@@ -0,0 +1,82 @@
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 PhotoGridPhoto {
5
+ id: string;
6
+ src: string;
7
+ srcSet?: string;
8
+ sizes?: string;
9
+ alt: string;
10
+ width: number;
11
+ height: number;
12
+ title: string;
13
+ detail?: ReactNode;
14
+ }
15
+ type Slot<Tag extends keyof React.JSX.IntrinsicElements> = Omit<ComponentPropsWithRef<Tag>, 'children'> & {
16
+ css?: Interpolation<Theme>;
17
+ };
18
+ type ActionSlot = Omit<Slot<'button'>, 'type' | 'disabled' | 'aria-pressed'>;
19
+ export interface PhotoGridSlotProps {
20
+ header?: Slot<'header'>;
21
+ title?: Slot<'h2'>;
22
+ density?: Slot<'div'>;
23
+ list?: Slot<'ul'>;
24
+ item?: Slot<'li'>;
25
+ photo?: ActionSlot;
26
+ favorite?: ActionSlot;
27
+ viewer?: Omit<Slot<'dialog'>, 'open'>;
28
+ stage?: Slot<'div'>;
29
+ filmstrip?: Omit<Slot<'input'>, 'type' | 'value' | 'defaultValue' | 'min' | 'max' | 'step' | 'disabled'>;
30
+ controls?: Slot<'div'>;
31
+ status?: Slot<'div'>;
32
+ }
33
+ export interface PhotoGridLabels {
34
+ larger: string;
35
+ smaller: string;
36
+ density: string;
37
+ empty: string;
38
+ unavailable: string;
39
+ imageUnavailable: string;
40
+ close: string;
41
+ previous: string;
42
+ next: string;
43
+ filmstrip: string;
44
+ zoomIn: string;
45
+ zoomOut: string;
46
+ resetZoom: string;
47
+ panLeft: string;
48
+ panRight: string;
49
+ panUp: string;
50
+ panDown: string;
51
+ favorite: (title: string, favorite: boolean) => string;
52
+ openPhoto: (title: string, alt: string, favorite: boolean) => string;
53
+ position: (position: string, total: string, title: string) => string;
54
+ columns: (columns: string) => string;
55
+ }
56
+ export interface PhotoGridProps extends Omit<ComponentPropsWithRef<'div'>, 'children' | 'defaultValue'>, SxProps {
57
+ photos: readonly PhotoGridPhoto[];
58
+ title: string;
59
+ /** Preferred columns. Narrow containers reduce effective columns without changing this axis. */
60
+ densitySteps?: readonly number[];
61
+ density?: number;
62
+ defaultDensity?: number;
63
+ onDensityChange?: (columns: number) => void;
64
+ favorites?: readonly string[];
65
+ defaultFavorites?: readonly string[];
66
+ onFavoritesChange?: (ids: string[]) => void;
67
+ onFavoriteChange?: (id: string, favorite: boolean) => void;
68
+ value?: string | null;
69
+ defaultValue?: string | null;
70
+ onValueChange?: (id: string | null) => void;
71
+ open?: boolean;
72
+ defaultOpen?: boolean;
73
+ onOpenChange?: (open: boolean) => void;
74
+ labels?: Partial<PhotoGridLabels>;
75
+ locale?: Intl.LocalesArgument;
76
+ slotProps?: PhotoGridSlotProps;
77
+ }
78
+ export declare function PhotoGrid({ ref, photos, title, densitySteps, density: densityProp, defaultDensity, onDensityChange, favorites: favoritesProp, defaultFavorites, onFavoritesChange, onFavoriteChange, value: valueProp, defaultValue, onValueChange, open: openProp, defaultOpen, onOpenChange, labels: labelOverrides, locale, slotProps, className, sx, onKeyDown, ...rest }: PhotoGridProps): import("@emotion/react/jsx-runtime").JSX.Element;
79
+ export declare namespace PhotoGrid {
80
+ var displayName: string;
81
+ }
82
+ export {};
@@ -31,7 +31,7 @@ export interface RadioCardsItemProps extends Omit<ComponentPropsWithRef<'input'>
31
31
  export type RadioCardsLabelProps = ComponentPropsWithRef<'span'> & SxProps;
32
32
  export type RadioCardsDescriptionProps = ComponentPropsWithRef<'span'> & SxProps;
33
33
  declare function RadioCardsRoot({ ref, value: valueProp, defaultValue, onValueChange, name: nameProp, required, disabled, invalid, error, layout, minColumnWidth, size, className, sx, style, children, onKeyDown, 'aria-labelledby': labelledBy, 'aria-describedby': describedBy, 'aria-invalid': ariaInvalid, ...rest }: RadioCardsProps): import("@emotion/react/jsx-runtime").JSX.Element;
34
- declare function RadioCardsItem({ ref, value, label, description, meta, icon, disabledReason, disabled: disabledProp, required: requiredProp, onChange, slotProps, className, sx, 'aria-label': ariaLabel, 'aria-labelledby': labelledBy, 'aria-describedby': describedBy, 'aria-invalid': ariaInvalid, ...rest }: RadioCardsItemProps): import("@emotion/react/jsx-runtime").JSX.Element;
34
+ declare function RadioCardsItem({ ref, value, label, description, meta, icon, disabledReason, dir, disabled: disabledProp, required: requiredProp, onChange, slotProps, className, sx, 'aria-label': ariaLabel, 'aria-labelledby': labelledBy, 'aria-describedby': describedBy, 'aria-invalid': ariaInvalid, ...rest }: RadioCardsItemProps): import("@emotion/react/jsx-runtime").JSX.Element;
35
35
  declare function RadioCardsLabel(props: RadioCardsLabelProps): import("@emotion/react/jsx-runtime").JSX.Element;
36
36
  declare function RadioCardsDescription(props: RadioCardsDescriptionProps): import("@emotion/react/jsx-runtime").JSX.Element;
37
37
  export declare const RadioCards: typeof RadioCardsRoot & {
@@ -26,7 +26,7 @@ export interface RadioGroupRadioProps extends Omit<ComponentPropsWithRef<'input'
26
26
  };
27
27
  }
28
28
  declare function RadioGroupRoot({ ref, value: valueProp, defaultValue, onValueChange, name: nameProp, disabled, orientation, className, sx, ...rest }: RadioGroupProps): import("@emotion/react/jsx-runtime").JSX.Element;
29
- declare function RadioGroupRadio({ ref, value, label, description, disabled: disabledProp, onChange, slotProps, className, sx, 'aria-labelledby': ariaLabelledByProp, 'aria-describedby': ariaDescribedByProp, ...rest }: RadioGroupRadioProps): import("@emotion/react/jsx-runtime").JSX.Element;
29
+ declare function RadioGroupRadio({ ref, value, label, description, disabled: disabledProp, onChange, slotProps, className, sx, dir, 'aria-labelledby': ariaLabelledByProp, 'aria-describedby': ariaDescribedByProp, ...rest }: RadioGroupRadioProps): import("@emotion/react/jsx-runtime").JSX.Element;
30
30
  export declare const RadioGroup: typeof RadioGroupRoot & {
31
31
  Radio: typeof RadioGroupRadio;
32
32
  };
@@ -0,0 +1,2 @@
1
+ export { SheetStack, useSheetStack } from './sheet-stack';
2
+ export type { SheetStackActions, SheetStackBackProps, SheetStackCloseProps, SheetStackContentProps, SheetStackDescriptionProps, SheetStackFooterProps, SheetStackHeadingLevel, SheetStackProps, SheetStackTitleProps, SheetStackTriggerProps, SheetStackVariant, } from './sheet-stack';
@@ -0,0 +1,78 @@
1
+ import { type ComponentPropsWithRef, type ReactNode } from 'react';
2
+ import { type SxProps } from '../../styling/sx';
3
+ export type SheetStackVariant = 'auto' | 'sheet' | 'dialog';
4
+ export type SheetStackHeadingLevel = 1 | 2 | 3 | 4 | 5 | 6;
5
+ export interface SheetStackProps {
6
+ /** Open sheet keys, bottom first. */
7
+ value?: readonly string[];
8
+ defaultValue?: readonly string[];
9
+ onValueChange?: (value: string[]) => void;
10
+ /** `auto` lays out as a sheet below `breakpoint` and as a centered dialog at or above it. */
11
+ variant?: SheetStackVariant;
12
+ /** Layer inline size in CSS px where `auto` switches to the dialog layout. */
13
+ breakpoint?: number;
14
+ /** Draws the layer inside the nearest positioned ancestor; modality stays document-wide. */
15
+ contained?: boolean;
16
+ children: ReactNode;
17
+ }
18
+ export interface SheetStackTriggerProps extends ComponentPropsWithRef<'button'>, SxProps {
19
+ /** Key of the sheet this trigger pushes. */
20
+ value: string;
21
+ }
22
+ export interface SheetStackContentProps extends Omit<ComponentPropsWithRef<'div'>, 'onCancel'>, SxProps {
23
+ /** Stable key, unique within the stack. */
24
+ value: string;
25
+ /** False refuses Escape, backdrop and drag dismissal; Back and Close still work. */
26
+ dismissible?: boolean;
27
+ /** Dismissal request (Escape, backdrop, drag) on this sheet while on top; `preventDefault()` vetoes it. */
28
+ onCancel?: (event: Event) => void;
29
+ /** Set false to keep structured content out of the sheet's accessible description. */
30
+ withDescription?: boolean;
31
+ }
32
+ export interface SheetStackTitleProps extends ComponentPropsWithRef<'h2'>, SxProps {
33
+ level?: SheetStackHeadingLevel;
34
+ }
35
+ export interface SheetStackDescriptionProps extends ComponentPropsWithRef<'p'>, SxProps {
36
+ }
37
+ export interface SheetStackFooterProps extends ComponentPropsWithRef<'div'>, SxProps {
38
+ }
39
+ export interface SheetStackBackProps extends Omit<ComponentPropsWithRef<'button'>, 'aria-label'>, SxProps {
40
+ /** Localized accessible name, e.g. "Back to Settings". */
41
+ label: string;
42
+ }
43
+ export interface SheetStackCloseProps extends Omit<ComponentPropsWithRef<'button'>, 'aria-label'>, SxProps {
44
+ /** Localized accessible name, e.g. "Close all". */
45
+ label: string;
46
+ }
47
+ export interface SheetStackActions {
48
+ /** The open keys, bottom first. */
49
+ value: readonly string[];
50
+ /** Opens `key` on top; an open key truncates the stack back to it. */
51
+ push: (key: string) => void;
52
+ /** Closes the top sheet. */
53
+ pop: () => void;
54
+ /** Truncates the stack back to the open `key`. */
55
+ popTo: (key: string) => void;
56
+ /** Closes every sheet. */
57
+ close: () => void;
58
+ }
59
+ /** The stack's state and actions; throws outside `<SheetStack>`. */
60
+ export declare function useSheetStack(): SheetStackActions;
61
+ declare function SheetStackRoot({ value: valueProp, defaultValue, onValueChange, variant, breakpoint, contained, children, }: SheetStackProps): import("@emotion/react/jsx-runtime").JSX.Element;
62
+ declare function SheetStackTrigger({ ref, value, onClick, className, sx, ...rest }: SheetStackTriggerProps): import("@emotion/react/jsx-runtime").JSX.Element;
63
+ declare function SheetStackContent({ ref, value, className, sx, ...props }: SheetStackContentProps): import("react").ReactPortal | null;
64
+ declare function SheetStackTitle({ ref, level, className, sx, children, ...props }: SheetStackTitleProps): import("@emotion/react/jsx-runtime").JSX.Element | null;
65
+ declare function SheetStackDescription({ ref, className, sx, children, ...props }: SheetStackDescriptionProps): import("@emotion/react/jsx-runtime").JSX.Element | null;
66
+ declare function SheetStackFooter({ ref, className, sx, ...props }: SheetStackFooterProps): import("@emotion/react/jsx-runtime").JSX.Element;
67
+ declare function SheetStackBack({ ref, label, onClick, className, sx, children, ...rest }: SheetStackBackProps): import("@emotion/react/jsx-runtime").JSX.Element;
68
+ declare function SheetStackClose({ ref, label, onClick, className, sx, children, ...rest }: SheetStackCloseProps): import("@emotion/react/jsx-runtime").JSX.Element;
69
+ export declare const SheetStack: typeof SheetStackRoot & {
70
+ Trigger: typeof SheetStackTrigger;
71
+ Content: typeof SheetStackContent;
72
+ Title: typeof SheetStackTitle;
73
+ Description: typeof SheetStackDescription;
74
+ Footer: typeof SheetStackFooter;
75
+ Back: typeof SheetStackBack;
76
+ Close: typeof SheetStackClose;
77
+ };
78
+ export {};
@@ -0,0 +1,2 @@
1
+ export { ShortcutRecorder, normalizeShortcut, matchesShortcut, formatShortcut, useShortcutPlatform, usePressedShortcutKeys, defaultShortcutMessages, } from './shortcut-recorder';
2
+ export type { ShortcutRecorderProps, ShortcutKeysProps, ShortcutListProps, ShortcutPlatform, ShortcutBinding, ShortcutListGroup, ShortcutMessages, KeyboardEventLike, } from './shortcut-recorder';
@@ -0,0 +1,117 @@
1
+ import { type ComponentPropsWithRef, type ReactNode } from 'react';
2
+ import { type SxProps } from '../../styling/sx';
3
+ import { type FieldPartProps } from '../field/field-anatomy';
4
+ export type ShortcutPlatform = 'mac' | 'other';
5
+ export interface ShortcutBinding {
6
+ shortcut: string;
7
+ label: string;
8
+ }
9
+ export interface ShortcutListGroup {
10
+ label: string;
11
+ items: readonly {
12
+ label: string;
13
+ shortcut: string;
14
+ keywords?: string;
15
+ }[];
16
+ }
17
+ export interface ShortcutMessages {
18
+ placeholder: string;
19
+ recording: string;
20
+ canceled: string;
21
+ cleared: string;
22
+ noShortcut: string;
23
+ clearLabel: string;
24
+ cancelLabel: string;
25
+ confirmLabel: string;
26
+ reset: (spoken: string) => string;
27
+ set: (spoken: string) => string;
28
+ requireModifier: (platform: ShortcutPlatform) => string;
29
+ conflict: (spoken: string, binding: ShortcutBinding, reserved: boolean) => string;
30
+ listLabel: string;
31
+ searchLabel: string;
32
+ searchPlaceholder: string;
33
+ empty: string;
34
+ results: (count: number) => string;
35
+ keyName: (id: string, platform: ShortcutPlatform) => {
36
+ label: string;
37
+ spoken: string;
38
+ };
39
+ }
40
+ export interface KeyboardEventLike {
41
+ code: string;
42
+ key: string;
43
+ ctrlKey: boolean;
44
+ altKey: boolean;
45
+ shiftKey: boolean;
46
+ metaKey: boolean;
47
+ repeat?: boolean;
48
+ isComposing?: boolean;
49
+ getModifierState?: (key: string) => boolean;
50
+ }
51
+ export declare function normalizeShortcut(shortcut: string, platform: ShortcutPlatform): string | null;
52
+ export declare function matchesShortcut(event: KeyboardEventLike, shortcut: string, platform: ShortcutPlatform): boolean;
53
+ export declare const defaultShortcutMessages: ShortcutMessages;
54
+ export declare function formatShortcut(shortcut: string, platform: ShortcutPlatform, messages?: ShortcutMessages): {
55
+ text: string;
56
+ spoken: string;
57
+ };
58
+ export declare function useShortcutPlatform(override?: ShortcutPlatform): ShortcutPlatform;
59
+ export declare function usePressedShortcutKeys(enabled?: boolean): ReadonlySet<string>;
60
+ export interface ShortcutKeysProps extends ComponentPropsWithRef<'span'>, SxProps {
61
+ shortcut: string;
62
+ platform?: ShortcutPlatform;
63
+ pressed?: ReadonlySet<string>;
64
+ size?: 'sm' | 'md';
65
+ messages?: ShortcutMessages;
66
+ locale?: Intl.LocalesArgument;
67
+ slotProps?: {
68
+ key?: FieldPartProps;
69
+ };
70
+ }
71
+ declare function ShortcutKeys({ shortcut, platform: platformProp, pressed, size, messages, locale: _locale, slotProps, className, sx, ...rest }: ShortcutKeysProps): import("@emotion/react/jsx-runtime").JSX.Element;
72
+ type RecorderSlot = 'root' | 'label' | 'control' | 'recorder' | 'actions' | 'reset' | 'clear' | 'message' | 'confirm' | 'cancel' | 'description' | 'error' | 'status' | 'key';
73
+ export interface ShortcutRecorderProps extends Omit<ComponentPropsWithRef<'button'>, 'value' | 'defaultValue'>, SxProps {
74
+ value?: string | null;
75
+ defaultValue?: string | null;
76
+ onValueChange?: (value: string | null, details: {
77
+ replaced?: ShortcutBinding;
78
+ }) => void;
79
+ recording?: boolean;
80
+ defaultRecording?: boolean;
81
+ onRecordingChange?: (recording: boolean) => void;
82
+ resetValue?: string | null;
83
+ bindings?: readonly ShortcutBinding[];
84
+ reservedBindings?: readonly ShortcutBinding[];
85
+ warnReserved?: boolean;
86
+ requireModifier?: boolean;
87
+ platform?: ShortcutPlatform;
88
+ label?: ReactNode;
89
+ description?: ReactNode;
90
+ error?: ReactNode;
91
+ hideLabel?: boolean;
92
+ size?: 'sm' | 'md' | 'lg';
93
+ locale?: Intl.LocalesArgument;
94
+ messages?: ShortcutMessages;
95
+ readOnly?: boolean;
96
+ slotProps?: Partial<Record<RecorderSlot, FieldPartProps>>;
97
+ }
98
+ declare function ShortcutRecorderRoot({ ref, value, defaultValue, onValueChange, recording, defaultRecording, onRecordingChange, resetValue, bindings, reservedBindings, warnReserved, requireModifier, platform: platformProp, label, description, error, hideLabel, size, locale, messages, readOnly, disabled, name, dir, slotProps, className, sx, onClick, onKeyDown, onKeyUp, onBlur, onFocus, 'aria-labelledby': labelledBy, 'aria-describedby': describedBy, 'aria-invalid': invalid, id, children: _children, ...rest }: ShortcutRecorderProps): import("@emotion/react/jsx-runtime").JSX.Element;
99
+ type ListSlot = 'root' | 'search' | 'groups' | 'group' | 'heading' | 'item' | 'keys' | 'empty' | 'status';
100
+ export interface ShortcutListProps extends ComponentPropsWithRef<'section'>, SxProps {
101
+ groups: readonly ShortcutListGroup[];
102
+ searchable?: boolean;
103
+ highlightPressed?: boolean;
104
+ platform?: ShortcutPlatform;
105
+ locale?: Intl.LocalesArgument;
106
+ messages?: ShortcutMessages;
107
+ inputValue?: string;
108
+ defaultInputValue?: string;
109
+ onInputChange?: (value: string) => void;
110
+ slotProps?: Partial<Record<ListSlot, FieldPartProps>>;
111
+ }
112
+ declare function ShortcutList({ groups, searchable, highlightPressed, platform, locale, messages, inputValue, defaultInputValue, onInputChange, slotProps, className, sx, ref, ...rest }: ShortcutListProps): import("@emotion/react/jsx-runtime").JSX.Element;
113
+ export declare const ShortcutRecorder: typeof ShortcutRecorderRoot & {
114
+ Keys: typeof ShortcutKeys;
115
+ List: typeof ShortcutList;
116
+ };
117
+ export {};
@@ -0,0 +1,14 @@
1
+ export declare const sliderRootStyle: import("@emotion/react").SerializedStyles;
2
+ export declare const sliderHeaderStyle: import("@emotion/react").SerializedStyles;
3
+ export declare const sliderLabelStyle: import("@emotion/react").SerializedStyles;
4
+ export declare const sliderReadoutStyle: import("@emotion/react").SerializedStyles;
5
+ export declare const sliderDescriptionStyle: import("@emotion/react").SerializedStyles;
6
+ export declare const sliderErrorStyle: import("@emotion/react").SerializedStyles;
7
+ export declare const sliderRowStyle: import("@emotion/react").SerializedStyles;
8
+ export declare const sliderControlStyle: import("@emotion/react").SerializedStyles;
9
+ export declare const sliderSizeStyles: {
10
+ sm: import("@emotion/react").SerializedStyles;
11
+ md: import("@emotion/react").SerializedStyles;
12
+ };
13
+ export declare const sliderMarksStyle: import("@emotion/react").SerializedStyles;
14
+ export declare const sliderMarkStyle: import("@emotion/react").SerializedStyles;
@@ -1,15 +1,8 @@
1
1
  import { type ComponentPropsWithRef, type ReactNode } from 'react';
2
- import { type Interpolation, type Theme } from '../../styling/css';
3
2
  import { type SxProps } from '../../styling/sx';
4
- export type SliderValue = number | readonly [number, number];
5
- export type SliderMark = number | {
6
- value: number;
7
- label?: ReactNode;
8
- };
3
+ import { type SliderMark, type SliderPart as Part } from './use-slider-interaction';
4
+ export type { SliderMark, SliderValue } from './use-slider-interaction';
9
5
  export type SliderSize = 'sm' | 'md';
10
- type Part<E extends 'div' | 'span' | 'button'> = ComponentPropsWithRef<E> & {
11
- css?: Interpolation<Theme>;
12
- };
13
6
  export interface SliderSlotProps {
14
7
  label?: Part<'span'>;
15
8
  readout?: Part<'span'>;
@@ -67,4 +60,3 @@ export declare function Slider(props: SliderProps): import("@emotion/react/jsx-r
67
60
  export declare namespace Slider {
68
61
  var displayName: string;
69
62
  }
70
- export {};
@@ -0,0 +1,79 @@
1
+ import { type ComponentPropsWithRef, type KeyboardEvent, type PointerEvent, type ReactNode, type RefCallback, type RefObject } from 'react';
2
+ import type { Interpolation, Theme } from '../../styling/css';
3
+ export type SliderValue = number | readonly [number, number];
4
+ export type SliderMark = number | {
5
+ value: number;
6
+ label?: ReactNode;
7
+ };
8
+ export type SliderPart<E extends 'div' | 'span' | 'button'> = ComponentPropsWithRef<E> & {
9
+ css?: Interpolation<Theme>;
10
+ };
11
+ /** Pointer position for one gesture sample, in domain units plus the geometry to convert them. */
12
+ export interface SliderPointerSample {
13
+ /** Unclamped domain value under the pointer (grab offset applied). */
14
+ raw: number;
15
+ /** Bounds the dragged thumb may take. */
16
+ low: number;
17
+ high: number;
18
+ /** CSS pixels per domain unit along the control. */
19
+ pxPerUnit: number;
20
+ rtl: boolean;
21
+ pointerType: string;
22
+ }
23
+ export declare function joinIds(...values: (string | false | undefined)[]): string | undefined;
24
+ export declare function hasContent(node: ReactNode): boolean;
25
+ export declare function indexedPart<E extends 'div' | 'span' | 'button'>(part: SliderPart<E> | ((index: number) => SliderPart<E>) | undefined, index: number): SliderPart<E> | undefined;
26
+ export declare function useSliderFormat(locale: Intl.LocalesArgument, formatOptions: Intl.NumberFormatOptions | undefined, formatValue: ((value: number, formatter: Intl.NumberFormat) => string) | undefined): {
27
+ formatter: Intl.NumberFormat;
28
+ format: (n: number) => string;
29
+ };
30
+ export interface SliderInteractionOptions {
31
+ /** Public component name used in configuration errors. */
32
+ component: string;
33
+ range: boolean;
34
+ value: SliderValue | undefined;
35
+ defaultValue: SliderValue | undefined;
36
+ min: number;
37
+ max: number;
38
+ step: number;
39
+ largeStep: number | undefined;
40
+ minStepsBetweenThumbs: number;
41
+ disabled: boolean;
42
+ onValueChange: (next: SliderValue) => void;
43
+ onValueCommit: (next: SliderValue) => void;
44
+ /** Visual feedback hook: runs for every accepted pointer sample, before the value request. */
45
+ onPointerSample?: (sample: SliderPointerSample) => void;
46
+ /** Maps a pointer sample to the raw domain target (e.g. magnetic detents). Defaults to `raw`. */
47
+ resolvePointer?: (sample: SliderPointerSample) => number;
48
+ /** Runs once when a gesture ends: completed (pointerup) or cancelled (cancel, lost capture, disable, reset). */
49
+ onGestureEnd?: (completed: boolean) => void;
50
+ }
51
+ export interface SliderInteraction {
52
+ id: string;
53
+ controlRef: RefObject<HTMLDivElement | null>;
54
+ current: SliderValue;
55
+ values: number[] | readonly [number, number];
56
+ active: number | null;
57
+ bounds: (index: number) => number[];
58
+ percent: (n: number) => number;
59
+ normalizeMarks: (marks: readonly SliderMark[]) => {
60
+ value: number;
61
+ label?: ReactNode;
62
+ }[];
63
+ /** Handlers for the pointer-capture control; consumer slot handlers run first and may veto. */
64
+ controlHandlers: (part: SliderPart<'div'> | undefined) => {
65
+ ref: RefCallback<HTMLDivElement>;
66
+ onPointerDown: (e: PointerEvent<HTMLDivElement>) => void;
67
+ onPointerMove: (e: PointerEvent<HTMLDivElement>) => void;
68
+ onPointerUp: (e: PointerEvent<HTMLDivElement>) => void;
69
+ onPointerCancel: (e: PointerEvent<HTMLDivElement>) => void;
70
+ onLostPointerCapture: (e: PointerEvent<HTMLDivElement>) => void;
71
+ };
72
+ /** Root `onKeyDown` tail: routes movement keys from a thumb inside this control. */
73
+ handleRootKeyDown: (event: KeyboardEvent<HTMLDivElement>) => void;
74
+ /** Activation of a mark shortcut: one change + commit for a changed request, nothing otherwise. */
75
+ selectMark: (markValue: number) => void;
76
+ /** Remembers the last focused thumb for equidistant range presses. */
77
+ noteFocus: (index: number) => void;
78
+ }
79
+ export declare function useSliderInteraction(options: SliderInteractionOptions): SliderInteraction;
@@ -2,8 +2,8 @@ import { type ComponentPropsWithRef, type ReactNode } from 'react';
2
2
  import { type Placement } from '@floating-ui/react';
3
3
  import { type SxProps } from '../../styling/sx';
4
4
  import { type ButtonProps, type ButtonSize, type ButtonTone, type ButtonVariant } from '../button';
5
- import { type MenuContentProps, type MenuItemProps, type MenuSeparatorProps } from '../menu/menu';
6
- export type SplitButtonItemTone = 'neutral' | 'danger';
5
+ import { type MenuItemTone, type MenuContentProps, type MenuItemProps, type MenuSeparatorProps } from '../menu/menu';
6
+ export type SplitButtonItemTone = MenuItemTone;
7
7
  export interface SplitButtonProps extends Omit<ComponentPropsWithRef<'div'>, 'role'>, SxProps {
8
8
  /** Appearance of the Action; the Trigger uses the matching subdued fill. */
9
9
  variant?: ButtonVariant;
@@ -0,0 +1 @@
1
+ export { StretchRefresh, type StretchRefreshProps, type StretchRefreshSlotProps, type StretchRefreshLabels, } from './stretch-refresh';
@@ -0,0 +1,49 @@
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
+ import { type ButtonProps } from '../button';
5
+ type Slot<E extends 'div' | 'header' | 'h2' | 'ul' | 'li'> = Omit<ComponentPropsWithRef<E>, 'children'> & {
6
+ css?: Interpolation<Theme>;
7
+ };
8
+ export interface StretchRefreshSlotProps<T> {
9
+ header?: Slot<'header'>;
10
+ title?: Slot<'h2'>;
11
+ subtitle?: Slot<'div'>;
12
+ feed?: Slot<'div'>;
13
+ list?: Slot<'ul'>;
14
+ item?: Slot<'li'> | ((item: T, index: number) => Slot<'li'>);
15
+ indicator?: Omit<Slot<'div'>, 'aria-hidden'>;
16
+ refreshButton?: Omit<ButtonProps, 'children' | 'type' | 'disabled' | 'loading' | 'render' | 'sx'>;
17
+ status?: Omit<Slot<'div'>, 'role' | 'aria-atomic'>;
18
+ empty?: Slot<'div'>;
19
+ }
20
+ export interface StretchRefreshLabels {
21
+ refresh?: string;
22
+ refreshing?: string;
23
+ pull?: string;
24
+ release?: string;
25
+ done?: string;
26
+ error?: string;
27
+ }
28
+ export interface StretchRefreshProps<T> extends Omit<ComponentPropsWithRef<'div'>, 'children' | 'title'>, SxProps {
29
+ title: ReactNode;
30
+ headingLevel?: 2 | 3 | 4 | 5 | 6;
31
+ subtitle?: ReactNode;
32
+ items: readonly T[];
33
+ getKey: (item: T) => string;
34
+ renderItem: (item: T, index: number) => ReactNode;
35
+ onRefresh: () => Promise<string | void>;
36
+ refreshing?: boolean;
37
+ defaultRefreshing?: boolean;
38
+ onRefreshingChange?: (refreshing: boolean) => void;
39
+ disabled?: boolean;
40
+ threshold?: number;
41
+ emptyContent?: ReactNode;
42
+ labels?: StretchRefreshLabels;
43
+ slotProps?: StretchRefreshSlotProps<T>;
44
+ }
45
+ export declare function StretchRefresh<T>({ title, headingLevel, subtitle, items, getKey, renderItem, onRefresh, refreshing, defaultRefreshing, onRefreshingChange, disabled, threshold: thresholdProp, emptyContent, labels, slotProps, ref, className, sx, onKeyDown, ...props }: StretchRefreshProps<T>): import("@emotion/react/jsx-runtime").JSX.Element;
46
+ export declare namespace StretchRefresh {
47
+ var displayName: string;
48
+ }
49
+ export {};