@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
@@ -21,6 +21,26 @@ export declare function OverlayLayer({ children }: {
21
21
  export declare namespace OverlayLayer {
22
22
  var displayName: string;
23
23
  }
24
+ /**
25
+ * A layer for a menu. Its node joins the tree under the enclosing layer like any other, but the
26
+ * menu's own hooks see no parent node: useRole and useListNavigation read a parent node as a parent
27
+ * menu (a menuitem trigger, cross-axis open/close keys). The menu's content re-provides the node
28
+ * through `LayerContent`, so layers opened inside it nest under it.
29
+ */
30
+ export declare function MenuLayer({ children }: {
31
+ children: (nodeId: string | undefined) => ReactNode;
32
+ }): import("@emotion/react/jsx-runtime").JSX.Element;
33
+ export declare namespace MenuLayer {
34
+ var displayName: string;
35
+ }
36
+ /** Makes `nodeId` the parent of layers rendered inside `children`. */
37
+ export declare function LayerContent({ nodeId, children }: {
38
+ nodeId: string | undefined;
39
+ children: ReactNode;
40
+ }): import("@emotion/react/jsx-runtime").JSX.Element;
41
+ export declare namespace LayerContent {
42
+ var displayName: string;
43
+ }
24
44
  /**
25
45
  * Root boundary for an overlay that does not take part in layer nesting. Inside a layer it gets
26
46
  * its own empty tree and no parent node, so it never reads the enclosing layer as its parent.
@@ -0,0 +1,12 @@
1
+ /**
2
+ * Entrance and exit of a modal surface (Drawer, BottomSheet): critically damped, so it never
3
+ * overshoots, and at rest once within a pixel and slow, so a retained exit releases the modal promptly.
4
+ */
5
+ export declare const PRESENCE_SPRING: {
6
+ readonly type: 'spring';
7
+ readonly stiffness: 900;
8
+ readonly damping: 60;
9
+ readonly mass: 1;
10
+ readonly restDelta: 1;
11
+ readonly restSpeed: 30;
12
+ };
@@ -12,6 +12,14 @@ export interface NativeDialogHandlers {
12
12
  onClick?: MouseEventHandler<HTMLDialogElement>;
13
13
  onClose?: ReactEventHandler<HTMLDialogElement>;
14
14
  }
15
+ /** Surface motion around the native lifecycle. */
16
+ export interface NativeDialogTransition {
17
+ /** Runs after showModal() succeeds, and when a reopen interrupts a running exit. */
18
+ enter: (dialog: HTMLDialogElement) => void;
19
+ /** Runs on a logical close; the native close waits for the promise. Return nothing to close at once. */
20
+ exit: (dialog: HTMLDialogElement) => Promise<unknown> | undefined;
21
+ }
22
+ export type NativeDialogState = 'open' | 'closing' | 'closed';
15
23
  export declare function requestNativeDialogClose(dialog: HTMLDialogElement | null, setOpen: (open: boolean) => void): void;
16
24
  /** Root half: logical open requests, the repair token and the registered dialog element. */
17
25
  export declare function useNativeDialogRoot(open: boolean, requestOpenChange: (open: boolean) => void): {
@@ -31,9 +39,10 @@ export declare function omitNativeOpen<P extends object>(props: P & {
31
39
  * Content half: syncs the native dialog to the logical `open`, and returns the `ref` and
32
40
  * event handlers to spread on the <dialog> (after the consumer's props).
33
41
  */
34
- export declare function useNativeDialog({ open, setOpen, requestClose, repairToken, setDialogElement }: NativeDialogController, { onCancel, onClick, onClose }: NativeDialogHandlers, forwardedRef: Ref<HTMLDialogElement> | undefined, contentRef?: MutableRefObject<HTMLDialogElement | null>): {
42
+ export declare function useNativeDialog({ open, setOpen, requestClose, repairToken, setDialogElement }: NativeDialogController, { onCancel, onClick, onClose }: NativeDialogHandlers, forwardedRef: Ref<HTMLDialogElement> | undefined, contentRef?: MutableRefObject<HTMLDialogElement | null>, transition?: NativeDialogTransition): {
35
43
  ref: (element: HTMLDialogElement | null) => void;
36
44
  onCancel: (event: SyntheticEvent<HTMLDialogElement>) => void;
37
45
  onClick: (event: MouseEvent<HTMLDialogElement>) => void;
38
46
  onClose: (event: SyntheticEvent<HTMLDialogElement>) => void;
47
+ 'data-state': NativeDialogState;
39
48
  };
@@ -1,4 +1,4 @@
1
- import { type OpenChangeReason, type Placement, type UseFloatingReturn } from '@floating-ui/react';
1
+ import { type OpenChangeReason, type Placement, type Strategy, type UseFloatingReturn } from '@floating-ui/react';
2
2
  export interface OverlayFloatingOptions {
3
3
  open: boolean;
4
4
  onOpenChange: (open: boolean, event?: Event, reason?: OpenChangeReason) => void;
@@ -9,6 +9,13 @@ export interface OverlayFloatingOptions {
9
9
  boundary?: Element | null;
10
10
  /** Receives the space left for the surface inside the boundary after each positioning pass. */
11
11
  onAvailableSize?: (size: OverlayAvailableSize) => void;
12
+ /** CSS positioning strategy. Defaults to `absolute`. */
13
+ strategy?: Strategy;
14
+ /** Gap between the anchor and the surface, in px. Defaults to `ANCHOR_GAP`. */
15
+ gap?: number;
16
+ /** Position with `transform` (default) or with `left`/`top`, which leaves `transform` and
17
+ * `scale` free for the surface's own animation. */
18
+ transform?: boolean;
12
19
  }
13
20
  export interface OverlayAvailableSize {
14
21
  width: number;
@@ -18,4 +25,4 @@ export interface OverlayAvailableSize {
18
25
  * Shared positioning for Popover, Tooltip and Menu. `autoUpdate` only runs while both
19
26
  * elements are mounted, so a closed (unmounted) surface does no positioning work.
20
27
  */
21
- export declare function useOverlayFloating({ open, onOpenChange, placement, nodeId, boundary, onAvailableSize, }: OverlayFloatingOptions): UseFloatingReturn<HTMLButtonElement>;
28
+ export declare function useOverlayFloating({ open, onOpenChange, placement, nodeId, boundary, onAvailableSize, strategy, gap, transform, }: OverlayFloatingOptions): UseFloatingReturn<HTMLButtonElement>;
@@ -0,0 +1,24 @@
1
+ import type { CSSProperties } from 'react';
2
+ import { type JfraderTheme } from './theme';
3
+ import type { ThemeName } from './theme-scope';
4
+ type TokenOverrides<T> = {
5
+ readonly [K in keyof T]?: T[K] extends string ? string : TokenOverrides<T[K]>;
6
+ };
7
+ /** Sparse token overrides for a ThemeRoot scope, typed from the palette: any path, any depth. */
8
+ export type ThemeTokens = TokenOverrides<JfraderTheme>;
9
+ export interface CreateThemeOptions {
10
+ /** The named theme the scope wears; picks the dark or light accent derivation. */
11
+ base?: ThemeName;
12
+ /** Accent fill as `#rgb` or `#rrggbb`; the accent family is derived from it. */
13
+ accent?: string;
14
+ /** Explicit overrides; they win over the derived accent family. */
15
+ tokens?: ThemeTokens;
16
+ }
17
+ /**
18
+ * A ThemeRoot `tokens` map: the named theme's palette, then the accent family derived for `base`,
19
+ * then `tokens` (explicit wins per token path). Pass the same `base` as the ThemeRoot's `theme`.
20
+ */
21
+ export declare function createTheme({ base, accent, tokens }?: CreateThemeOptions): ThemeTokens;
22
+ /** `tokens` as inline custom-property declarations, named after the generated `var()` references. */
23
+ export declare function themeTokenStyle(tokens: ThemeTokens): CSSProperties;
24
+ export {};
@@ -1,3 +1,3 @@
1
- export { ClassNames, css, keyframes, ThemeProvider as EmotionThemeProvider, useTheme as useEmotionTheme, } from '@emotion/react';
1
+ export { CacheProvider, ClassNames, css, keyframes, ThemeProvider as EmotionThemeProvider, useTheme as useEmotionTheme, } from '@emotion/react';
2
2
  export type { ClassNamesContent, Interpolation, SerializedStyles, Theme } from '@emotion/react';
3
3
  export type { JfraderTheme } from './theme';
@@ -0,0 +1,95 @@
1
+ /** Scale a centered modal panel grows from. */
2
+ export declare const MODAL_ENTER_SCALE = 0.96;
3
+ /** A command palette comes in from a little further, for a quicker "summoned" feel. */
4
+ export declare const PALETTE_ENTER_SCALE = 0.92;
5
+ /** Timing of an entrance; exits are quicker. */
6
+ export declare const enterTransition: {
7
+ readonly transitionDuration: "var(--ui-motion-duration-base)";
8
+ readonly transitionTimingFunction: "var(--ui-motion-ease-standard)";
9
+ };
10
+ export declare const exitTransition: {
11
+ readonly transitionDuration: "var(--ui-motion-duration-fast)";
12
+ };
13
+ /** Panel inside a native <dialog> rendered with `styledDialogTransition`. */
14
+ export declare function modalPanelMotion(scale: number): {
15
+ readonly transitionDuration: "var(--ui-motion-duration-base)";
16
+ readonly transitionTimingFunction: "var(--ui-motion-ease-standard)";
17
+ readonly transitionProperty: 'opacity, scale, translate';
18
+ readonly '@starting-style': {
19
+ opacity: number;
20
+ scale: string;
21
+ translate: string;
22
+ };
23
+ readonly '[data-state="closing"] > &': {
24
+ readonly transitionDuration: "var(--ui-motion-duration-fast)";
25
+ readonly opacity: number;
26
+ readonly scale: string;
27
+ readonly translate: string;
28
+ };
29
+ readonly "@media (prefers-reduced-motion: reduce)": {
30
+ readonly '&, [data-state="closing"] > &': {
31
+ readonly transitionDuration: '0s';
32
+ };
33
+ };
34
+ };
35
+ /** The scrim of a native <dialog> fades with its panel. */
36
+ export declare const modalBackdropMotion: {
37
+ readonly '&::backdrop': {
38
+ readonly transitionDuration: "var(--ui-motion-duration-base)";
39
+ readonly transitionTimingFunction: "var(--ui-motion-ease-standard)";
40
+ readonly transitionProperty: 'opacity';
41
+ };
42
+ readonly '&[open]::backdrop': {
43
+ readonly '@starting-style': {
44
+ readonly opacity: 0;
45
+ };
46
+ };
47
+ readonly '&[data-state="closing"]::backdrop': {
48
+ readonly transitionDuration: "var(--ui-motion-duration-fast)";
49
+ readonly opacity: 0;
50
+ };
51
+ readonly '&[data-state="closing"]': {
52
+ readonly pointerEvents: 'none';
53
+ };
54
+ readonly "@media (prefers-reduced-motion: reduce)": {
55
+ readonly '&::backdrop, &[data-state="closing"]::backdrop': {
56
+ readonly transitionDuration: '0s';
57
+ };
58
+ };
59
+ };
60
+ /**
61
+ * Floating surface that slides a little from its anchor: set `data-side` to the resolved side and
62
+ * `data-state="closing"` on the surface while it exits (see `useExitPresence`).
63
+ */
64
+ export declare const floatingSurfaceMotion: {
65
+ readonly transitionDuration: "var(--ui-motion-duration-base)";
66
+ readonly transitionTimingFunction: "var(--ui-motion-ease-standard)";
67
+ readonly transitionProperty: 'opacity, translate';
68
+ readonly '@starting-style': {
69
+ readonly opacity: 0;
70
+ readonly translate: 'var(--overlay-enter-x, 0) var(--overlay-enter-y, 0)';
71
+ };
72
+ readonly '&[data-state="closing"]': {
73
+ readonly transitionDuration: "var(--ui-motion-duration-fast)";
74
+ readonly opacity: 0;
75
+ readonly translate: 'var(--overlay-enter-x, 0) var(--overlay-enter-y, 0)';
76
+ readonly pointerEvents: 'none';
77
+ };
78
+ readonly '&[data-side="bottom"]': {
79
+ readonly '--overlay-enter-y': "calc(-1 * var(--ui-space-1))";
80
+ };
81
+ readonly '&[data-side="top"]': {
82
+ readonly '--overlay-enter-y': "var(--ui-space-1)";
83
+ };
84
+ readonly '&[data-side="left"]': {
85
+ readonly '--overlay-enter-x': "var(--ui-space-1)";
86
+ };
87
+ readonly '&[data-side="right"]': {
88
+ readonly '--overlay-enter-x': "calc(-1 * var(--ui-space-1))";
89
+ };
90
+ readonly "@media (prefers-reduced-motion: reduce)": {
91
+ readonly '&, &[data-state="closing"]': {
92
+ readonly transitionDuration: '0s';
93
+ };
94
+ };
95
+ };
@@ -1,3 +1,10 @@
1
+ import type { ThemeName } from './theme-scope';
2
+ /** Surface appearance: `contrast` wears the dark theme plus the elevated-charcoal overrides. */
3
+ export type SurfaceAppearance = 'default' | 'contrast';
4
+ /** The theme a surface appearance wears; `default` keeps whatever theme is in scope. */
5
+ export declare function surfaceTheme(appearance: SurfaceAppearance): ThemeName | null;
6
+ /** Attributes a surface sets for its appearance: the theme it wears and the overrides that go with it. */
7
+ export declare function surfaceAttributes(appearance: SurfaceAppearance): Record<string, string> | null;
1
8
  /** Raised panel: surface color, hairline border and the base text setup. */
2
9
  export declare const raisedSurface: {
3
10
  readonly boxSizing: 'border-box';
@@ -1,16 +1,42 @@
1
- import { type ReactNode } from 'react';
1
+ import { type CSSProperties, type ReactNode } from 'react';
2
2
  export type ThemeName = 'dark' | 'light';
3
+ /** Surface palette in scope: `contrast` adds the elevated-charcoal overrides on the dark theme. */
4
+ export type AppearanceName = 'default' | 'contrast';
3
5
  export interface ThemeScope {
4
6
  theme: ThemeName;
7
+ appearance: AppearanceName;
5
8
  /** `undefined` keeps default portal routing; `null` holds portals until the host exists. */
6
9
  portalContainer: HTMLElement | null | undefined;
10
+ /** The scope root's `tokens` as inline custom properties, re-declared wherever `theme` is. */
11
+ tokenStyle: CSSProperties | undefined;
7
12
  }
8
13
  export declare const ThemeScopeContext: import("react").Context<ThemeScope | null>;
9
- /** The nearest ThemeRoot's scope, or `null` outside any ThemeRoot (page theme applies). */
14
+ /** The nearest theme scope (ThemeRoot or contrast surface), or `null` outside any. */
10
15
  export declare function useThemeScope(): ThemeScope | null;
16
+ /**
17
+ * The enclosing scope's `tokens` for an element that re-declares `theme`: kept when it names the
18
+ * same theme, dropped for another (they were derived for the enclosing one) or for `null`.
19
+ */
20
+ export declare function carriedTokenStyle(parent: ThemeScope | null, theme: ThemeName | null): CSSProperties | undefined;
21
+ /** Inline `style` for a scope element: carried tokens first, the consumer's own `style` last. */
22
+ export declare function scopeStyle(tokenStyle: CSSProperties | undefined, style: CSSProperties | undefined): CSSProperties | undefined;
23
+ /** `style` for a surface that re-declares `theme` (`null`: it re-declares nothing) inside the scope. */
24
+ export declare function useSurfaceStyle(theme: ThemeName | null, style: CSSProperties | undefined): CSSProperties | undefined;
25
+ /** The appearance a surface wears: its own value, else the enclosing scope's, else the theme's own. */
26
+ export declare function useSurfaceAppearance(appearance?: AppearanceName): AppearanceName;
11
27
  /** What a `data-theme` scope root sets besides the attribute: inherited text color and color-scheme. */
12
28
  export declare const themeScopeStyle: import("@emotion/react").SerializedStyles;
13
- /** Re-applies the nearest ThemeRoot's theme around portaled content; renders children bare outside one. */
29
+ /**
30
+ * Publishes a surface's theme and appearance to its subtree without taking over the enclosing
31
+ * `portalContainer`, so overlays opened inside a contrast surface keep its palette through their
32
+ * portal. `theme: null` keeps the enclosing theme; publishes only when the pair changes the scope.
33
+ */
34
+ export declare function AppearanceScope({ theme, appearance, children, }: {
35
+ theme: ThemeName | null;
36
+ appearance: AppearanceName;
37
+ children?: ReactNode;
38
+ }): string | number | bigint | boolean | import("@emotion/react/jsx-runtime").JSX.Element | Iterable<ReactNode> | Promise<string | number | bigint | boolean | Iterable<ReactNode> | import("react").ReactElement<unknown, string | import("react").JSXElementConstructor<any>> | import("react").ReactPortal | null | undefined> | null | undefined;
39
+ /** Re-applies the nearest scope (theme, appearance and tokens) around portaled content. */
14
40
  export declare function ThemeBoundary({ children }: {
15
41
  children?: ReactNode;
16
42
  }): string | number | bigint | boolean | import("@emotion/react/jsx-runtime").JSX.Element | Iterable<ReactNode> | Promise<string | number | bigint | boolean | Iterable<ReactNode> | import("react").ReactElement<unknown, string | import("react").JSXElementConstructor<any>> | import("react").ReactPortal | null | undefined> | null | undefined;
@@ -102,6 +102,11 @@ export declare const theme: {
102
102
  };
103
103
  readonly easeStandard: "var(--ui-motion-ease-standard)";
104
104
  };
105
+ readonly size: {
106
+ readonly sheetStackBreakpoint: "var(--ui-size-sheet-stack-breakpoint)";
107
+ readonly sheetStackSheetPeek: "var(--ui-size-sheet-stack-sheet-peek)";
108
+ readonly sheetStackDialogPeek: "var(--ui-size-sheet-stack-dialog-peek)";
109
+ };
105
110
  };
106
111
  export type JfraderTheme = typeof theme;
107
112
  declare module '@emotion/react' {