@passui/react 0.1.17 → 0.1.20

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 (408) hide show
  1. package/README.md +140 -1
  2. package/THIRD_PARTY_NOTICES.md +25 -0
  3. package/dist/types/src/appearance/index.d.ts +2 -0
  4. package/dist/types/src/appearance/platform.d.ts +9 -0
  5. package/dist/types/src/appearance/theme.d.ts +71 -0
  6. package/dist/types/src/components/accordion/accordion.d.ts +19 -0
  7. package/dist/types/src/components/ambient/ambient.d.ts +12 -0
  8. package/dist/types/src/components/ambient/index.d.ts +1 -0
  9. package/dist/types/src/components/aspect-ratio/aspect-ratio.d.ts +7 -0
  10. package/dist/types/src/components/breadcrumb/breadcrumb.d.ts +16 -0
  11. package/dist/types/src/components/button/button-styles.d.ts +12 -0
  12. package/dist/types/src/components/button/button.d.ts +32 -0
  13. package/dist/types/src/components/button/icon-button.d.ts +10 -0
  14. package/dist/types/src/components/button/pending-spinner.d.ts +5 -0
  15. package/dist/types/src/components/button/use-pending-indicator.d.ts +2 -0
  16. package/dist/types/src/components/chip/chip.d.ts +7 -0
  17. package/dist/types/src/components/code-block/code-block.d.ts +10 -0
  18. package/dist/types/src/components/combo-box/combo-box.d.ts +9 -0
  19. package/dist/types/src/components/command/command.d.ts +18 -0
  20. package/dist/types/src/components/compact-date-picker/calendar-month.d.ts +25 -0
  21. package/dist/types/src/components/compact-date-picker/compact-date-picker.d.ts +27 -0
  22. package/dist/types/src/components/compact-time-picker/compact-time-picker.d.ts +26 -0
  23. package/dist/types/src/components/compact-time-picker/time-value.d.ts +18 -0
  24. package/dist/types/src/components/content-unavailable-view/content-unavailable-view.d.ts +9 -0
  25. package/dist/types/src/components/content-view/content-view.d.ts +48 -0
  26. package/dist/types/src/components/content-view/index.d.ts +1 -0
  27. package/dist/types/src/components/context-menu/conceal-menu-source.d.ts +2 -0
  28. package/dist/types/src/components/context-menu/context-menu-host.d.ts +2 -0
  29. package/dist/types/src/components/context-menu/context-menu-store.d.ts +57 -0
  30. package/dist/types/src/components/context-menu/menu-navigation.d.ts +6 -0
  31. package/dist/types/src/components/context-menu/menu-position.d.ts +21 -0
  32. package/dist/types/src/components/context-menu/menu-reveal.d.ts +17 -0
  33. package/dist/types/src/components/context-menu/use-context-menu.d.ts +14 -0
  34. package/dist/types/src/components/conversation/conversation.d.ts +43 -0
  35. package/dist/types/src/components/conversation/index.d.ts +1 -0
  36. package/dist/types/src/components/date-picker/date-picker.d.ts +16 -0
  37. package/dist/types/src/components/date-picker/date-value.d.ts +2 -0
  38. package/dist/types/src/components/dialog/dialog-host.d.ts +6 -0
  39. package/dist/types/src/components/dialog/dialog-store.d.ts +23 -0
  40. package/dist/types/src/components/dialog/dialog.d.ts +30 -0
  41. package/dist/types/src/components/dialog/index.d.ts +1 -0
  42. package/dist/types/src/components/disclosure-group/disclosure-group.d.ts +15 -0
  43. package/dist/types/src/components/divider/divider.d.ts +9 -0
  44. package/dist/types/src/components/inline-disclosure/inline-disclosure.d.ts +15 -0
  45. package/dist/types/src/components/keyboard-shortcut/keyboard-shortcut.d.ts +5 -0
  46. package/dist/types/src/components/labeled-content/labeled-content.d.ts +19 -0
  47. package/dist/types/src/components/locale-switcher/index.d.ts +1 -0
  48. package/dist/types/src/components/locale-switcher/locale-switcher.d.ts +10 -0
  49. package/dist/types/src/components/menu/menu.d.ts +16 -0
  50. package/dist/types/src/components/one-time-code/one-time-code.d.ts +18 -0
  51. package/dist/types/src/components/picker/picker-trigger.d.ts +2 -0
  52. package/dist/types/src/components/picker/picker.d.ts +43 -0
  53. package/dist/types/src/components/popover/anchored-surface.d.ts +13 -0
  54. package/dist/types/src/components/popover/popover-fit.d.ts +21 -0
  55. package/dist/types/src/components/popover/popover.d.ts +18 -0
  56. package/dist/types/src/components/profile-image/profile-image.d.ts +4 -0
  57. package/dist/types/src/components/progress-view/progress-view.d.ts +13 -0
  58. package/dist/types/src/components/progress-view/use-liquid-progress.d.ts +3 -0
  59. package/dist/types/src/components/radio-group/radio-group.d.ts +17 -0
  60. package/dist/types/src/components/search-field/expanding-search-field.d.ts +5 -0
  61. package/dist/types/src/components/search-field/search-field.d.ts +6 -0
  62. package/dist/types/src/components/search-list/search-list.d.ts +19 -0
  63. package/dist/types/src/components/section/section.d.ts +15 -0
  64. package/dist/types/src/components/secure-field/secure-field.d.ts +4 -0
  65. package/dist/types/src/components/segmented-control/segmented-control.d.ts +20 -0
  66. package/dist/types/src/components/sheet/modal-environment.d.ts +2 -0
  67. package/dist/types/src/components/sheet/sheet-portal.d.ts +5 -0
  68. package/dist/types/src/components/sheet/sheet.d.ts +21 -0
  69. package/dist/types/src/components/sheet/use-sheet-focus.d.ts +3 -0
  70. package/dist/types/src/components/sidebar/sidebar.d.ts +19 -0
  71. package/dist/types/src/components/skeleton/skeleton.d.ts +6 -0
  72. package/dist/types/src/components/slider/slider.d.ts +14 -0
  73. package/dist/types/src/components/slosh-slider/liquid-step.d.ts +6 -0
  74. package/dist/types/src/components/slosh-slider/slosh-slider.d.ts +18 -0
  75. package/dist/types/src/components/stat-tile/index.d.ts +1 -0
  76. package/dist/types/src/components/stat-tile/stat-tile.d.ts +15 -0
  77. package/dist/types/src/components/status-indicator/status-indicator.d.ts +14 -0
  78. package/dist/types/src/components/stepper/rolling-digit.d.ts +11 -0
  79. package/dist/types/src/components/stepper/stepper.d.ts +19 -0
  80. package/dist/types/src/components/swatch-picker/swatch-picker.d.ts +17 -0
  81. package/dist/types/src/components/tab-bar/tab-bar.d.ts +40 -0
  82. package/dist/types/src/components/tab-view/tab-view.d.ts +24 -0
  83. package/dist/types/src/components/table/table.d.ts +10 -0
  84. package/dist/types/src/components/text-editor/text-editor.d.ts +2 -0
  85. package/dist/types/src/components/text-field/text-field.d.ts +20 -0
  86. package/dist/types/src/components/toast/toast-store.d.ts +47 -0
  87. package/dist/types/src/components/toast/toaster.d.ts +10 -0
  88. package/dist/types/src/components/toggle/toggle.d.ts +17 -0
  89. package/dist/types/src/components/tooltip/tooltip-host.d.ts +6 -0
  90. package/dist/types/src/components/view-controller/index.d.ts +1 -0
  91. package/dist/types/src/components/view-controller/view-controller.d.ts +21 -0
  92. package/dist/types/src/components/wake-slider/wake-slider.d.ts +12 -0
  93. package/dist/types/src/hooks/scroll/minimize-decision.d.ts +2 -0
  94. package/dist/types/src/hooks/use-anchored-disclosure.d.ts +9 -0
  95. package/dist/types/src/hooks/use-anchored-placement.d.ts +7 -0
  96. package/dist/types/src/hooks/use-dismiss.d.ts +9 -0
  97. package/dist/types/src/hooks/use-floating-dismiss.d.ts +3 -0
  98. package/dist/types/src/hooks/use-media-query.d.ts +21 -0
  99. package/dist/types/src/hooks/use-minimize-on-scroll.d.ts +6 -0
  100. package/dist/types/src/hooks/use-visual-viewport.d.ts +4 -0
  101. package/dist/types/src/hooks/viewport/types.d.ts +19 -0
  102. package/dist/types/src/hooks/viewport/viewport-metrics.d.ts +3 -0
  103. package/dist/types/src/icons/icons.d.ts +612 -0
  104. package/dist/types/src/index.d.ts +71 -0
  105. package/dist/types/src/lib/anchored-placement.d.ts +39 -0
  106. package/dist/types/src/lib/class-names.d.ts +2 -0
  107. package/dist/types/src/lib/clipboard.d.ts +6 -0
  108. package/dist/types/src/lib/date.d.ts +50 -0
  109. package/dist/types/src/lib/floating-layers.d.ts +8 -0
  110. package/dist/types/src/lib/haptics.d.ts +8 -0
  111. package/dist/types/src/lib/language.d.ts +4 -0
  112. package/dist/types/src/lib/range-value.d.ts +4 -0
  113. package/dist/types/src/lib/screen-edges.d.ts +12 -0
  114. package/dist/types/src/lib/shapes.d.ts +17 -0
  115. package/dist/types/src/motion/transitions.d.ts +97 -0
  116. package/dist/types/src/tokens.d.ts +1 -0
  117. package/package.json +248 -40
  118. package/src/appearance/platform.tsx +10 -47
  119. package/src/appearance/theme.tsx +42 -142
  120. package/src/components/accordion/accordion.tsx +48 -0
  121. package/src/components/ambient/ambient.tsx +2 -10
  122. package/src/components/aspect-ratio/aspect-ratio.tsx +22 -0
  123. package/src/components/breadcrumb/breadcrumb.tsx +53 -0
  124. package/src/components/button/button-styles.ts +13 -31
  125. package/src/components/button/button.tsx +24 -15
  126. package/src/components/button/icon-button.tsx +14 -56
  127. package/src/components/button/use-pending-indicator.ts +2 -7
  128. package/src/components/chip/chip.tsx +8 -13
  129. package/src/components/code-block/code-block.tsx +41 -0
  130. package/src/components/combo-box/combo-box.tsx +13 -0
  131. package/src/components/command/command.tsx +119 -0
  132. package/src/components/compact-date-picker/calendar-month.ts +13 -57
  133. package/src/components/compact-date-picker/compact-date-picker.tsx +72 -195
  134. package/src/components/compact-time-picker/compact-time-picker.tsx +74 -195
  135. package/src/components/compact-time-picker/time-value.ts +4 -16
  136. package/src/components/content-unavailable-view/content-unavailable-view.tsx +37 -0
  137. package/src/components/content-view/content-view.tsx +13 -56
  138. package/src/components/context-menu/conceal-menu-source.ts +1 -4
  139. package/src/components/context-menu/context-menu-host.tsx +132 -198
  140. package/src/components/context-menu/context-menu-store.ts +5 -14
  141. package/src/components/context-menu/menu-navigation.ts +29 -0
  142. package/src/components/context-menu/menu-position.ts +6 -27
  143. package/src/components/context-menu/menu-reveal.ts +14 -52
  144. package/src/components/context-menu/use-context-menu.ts +6 -30
  145. package/src/components/conversation/conversation.tsx +26 -72
  146. package/src/components/date-picker/date-picker.tsx +8 -37
  147. package/src/components/date-picker/date-value.ts +5 -30
  148. package/src/components/dialog/dialog-host.tsx +37 -76
  149. package/src/components/dialog/dialog-store.ts +16 -7
  150. package/src/components/dialog/dialog.tsx +23 -80
  151. package/src/components/disclosure-group/disclosure-group.tsx +79 -0
  152. package/src/components/divider/divider.tsx +31 -0
  153. package/src/components/inline-disclosure/inline-disclosure.tsx +49 -0
  154. package/src/components/keyboard-shortcut/keyboard-shortcut.tsx +17 -0
  155. package/src/components/labeled-content/labeled-content.tsx +24 -18
  156. package/src/components/locale-switcher/locale-switcher.tsx +20 -70
  157. package/src/components/menu/menu.tsx +68 -0
  158. package/src/components/one-time-code/one-time-code.tsx +168 -0
  159. package/src/components/picker/picker-trigger.ts +10 -0
  160. package/src/components/picker/picker.tsx +165 -283
  161. package/src/components/popover/anchored-surface.tsx +223 -0
  162. package/src/components/popover/popover-fit.ts +69 -0
  163. package/src/components/popover/popover.tsx +209 -63
  164. package/src/components/profile-image/profile-image.tsx +6 -28
  165. package/src/components/progress-view/progress-view.tsx +70 -0
  166. package/src/components/progress-view/use-liquid-progress.ts +43 -0
  167. package/src/components/radio-group/radio-group.tsx +63 -0
  168. package/src/components/search-field/expanding-search-field.tsx +183 -0
  169. package/src/components/search-field/search-field.tsx +25 -7
  170. package/src/components/search-list/search-list.tsx +58 -75
  171. package/src/components/section/section.tsx +18 -17
  172. package/src/components/secure-field/secure-field.tsx +5 -7
  173. package/src/components/segmented-control/segmented-control.tsx +20 -29
  174. package/src/components/sheet/modal-environment.ts +16 -54
  175. package/src/components/sheet/sheet-portal.tsx +10 -42
  176. package/src/components/sheet/sheet.tsx +17 -25
  177. package/src/components/sheet/use-sheet-focus.ts +15 -51
  178. package/src/components/sidebar/sidebar.tsx +44 -38
  179. package/src/components/skeleton/skeleton.tsx +19 -0
  180. package/src/components/slider/slider.tsx +76 -0
  181. package/src/components/slosh-slider/liquid-step.ts +42 -0
  182. package/src/components/slosh-slider/slosh-slider.tsx +251 -0
  183. package/src/components/stat-tile/stat-tile.tsx +9 -30
  184. package/src/components/status-indicator/status-indicator.tsx +12 -19
  185. package/src/components/stepper/rolling-digit.tsx +77 -0
  186. package/src/components/stepper/stepper.tsx +101 -0
  187. package/src/components/swatch-picker/swatch-picker.tsx +19 -15
  188. package/src/components/tab-bar/tab-bar.tsx +59 -59
  189. package/src/components/tab-view/tab-view.tsx +52 -57
  190. package/src/components/table/table.tsx +14 -62
  191. package/src/components/text-editor/text-editor.tsx +2 -12
  192. package/src/components/text-field/text-field.tsx +53 -44
  193. package/src/components/toast/toast-store.ts +9 -30
  194. package/src/components/toast/toaster.tsx +90 -104
  195. package/src/components/toggle/toggle.tsx +165 -44
  196. package/src/components/tooltip/tooltip-host.tsx +70 -67
  197. package/src/components/view-controller/view-controller.tsx +4 -21
  198. package/src/components/wake-slider/wake-slider.tsx +237 -0
  199. package/src/hooks/scroll/minimize-decision.ts +1 -5
  200. package/src/hooks/use-anchored-disclosure.ts +23 -0
  201. package/src/hooks/use-anchored-placement.ts +7 -14
  202. package/src/hooks/use-dismiss.ts +5 -23
  203. package/src/hooks/use-floating-dismiss.ts +28 -0
  204. package/src/hooks/use-media-query.ts +12 -31
  205. package/src/hooks/use-minimize-on-scroll.ts +10 -34
  206. package/src/hooks/use-visual-viewport.ts +5 -14
  207. package/src/hooks/viewport/viewport-metrics.ts +4 -16
  208. package/src/icons/icons.tsx +229 -183
  209. package/src/index.ts +27 -1
  210. package/src/lib/anchored-placement.ts +12 -18
  211. package/src/lib/class-names.ts +1 -2
  212. package/src/lib/clipboard.ts +14 -0
  213. package/src/lib/date.ts +4 -15
  214. package/src/lib/floating-layers.ts +18 -8
  215. package/src/lib/haptics.ts +1 -3
  216. package/src/lib/language.ts +2 -7
  217. package/src/lib/range-value.ts +32 -0
  218. package/src/lib/screen-edges.ts +2 -6
  219. package/src/lib/shapes.ts +5 -20
  220. package/src/motion/transitions.ts +18 -12
  221. package/src/styles/code-block.css +33 -0
  222. package/src/styles/motion-controls.css +189 -0
  223. package/src/styles/styles.css +3 -0
  224. package/src/components/ambient/ambient.docs.tsx +0 -68
  225. package/src/components/ambient/examples/ambient-images.tsx +0 -30
  226. package/src/components/ambient/examples/ambient-now-playing.tsx +0 -55
  227. package/src/components/ambient/examples/ambient-showcase.tsx +0 -33
  228. package/src/components/ambient/examples/ambient-usage.tsx +0 -19
  229. package/src/components/button/button.docs.tsx +0 -116
  230. package/src/components/button/examples/button-disabled.tsx +0 -19
  231. package/src/components/button/examples/button-icon.tsx +0 -39
  232. package/src/components/button/examples/button-link.tsx +0 -12
  233. package/src/components/button/examples/button-pending.tsx +0 -27
  234. package/src/components/button/examples/button-showcase.tsx +0 -115
  235. package/src/components/button/examples/button-sizes.tsx +0 -12
  236. package/src/components/button/examples/button-usage.tsx +0 -12
  237. package/src/components/button/examples/button-variants.tsx +0 -15
  238. package/src/components/button/examples/button-with-icon.tsx +0 -32
  239. package/src/components/button/examples/icon-button-player.tsx +0 -38
  240. package/src/components/button/examples/icon-button-showcase.tsx +0 -83
  241. package/src/components/button/examples/icon-button-usage.tsx +0 -11
  242. package/src/components/button/examples/icon-button-variants.tsx +0 -39
  243. package/src/components/button/icon-button.docs.tsx +0 -68
  244. package/src/components/chip/chip.docs.tsx +0 -37
  245. package/src/components/chip/examples/chip-in-rows.tsx +0 -19
  246. package/src/components/chip/examples/chip-showcase.tsx +0 -51
  247. package/src/components/chip/examples/chip-tones.tsx +0 -13
  248. package/src/components/chip/examples/chip-usage.tsx +0 -5
  249. package/src/components/compact-date-picker/compact-date-picker.docs.tsx +0 -81
  250. package/src/components/compact-date-picker/examples/compact-date-picker-showcase.tsx +0 -35
  251. package/src/components/compact-date-picker/examples/compact-date-picker-usage.tsx +0 -22
  252. package/src/components/compact-time-picker/compact-time-picker.docs.tsx +0 -80
  253. package/src/components/compact-time-picker/examples/compact-time-picker-showcase.tsx +0 -31
  254. package/src/components/compact-time-picker/examples/compact-time-picker-usage.tsx +0 -21
  255. package/src/components/content-view/content-view.docs.tsx +0 -61
  256. package/src/components/content-view/examples/content-view-header-action.tsx +0 -33
  257. package/src/components/content-view/examples/content-view-showcase.tsx +0 -65
  258. package/src/components/content-view/examples/content-view-stats.tsx +0 -35
  259. package/src/components/content-view/examples/content-view-usage.tsx +0 -14
  260. package/src/components/context-menu/context-menu.docs.tsx +0 -92
  261. package/src/components/context-menu/examples/context-menu-checked.tsx +0 -37
  262. package/src/components/context-menu/examples/context-menu-list.tsx +0 -85
  263. package/src/components/context-menu/examples/context-menu-showcase.tsx +0 -56
  264. package/src/components/context-menu/examples/context-menu-toolbar.tsx +0 -63
  265. package/src/components/context-menu/examples/context-menu-usage.tsx +0 -24
  266. package/src/components/conversation/conversation.docs.tsx +0 -88
  267. package/src/components/conversation/examples/conversation-composer.tsx +0 -36
  268. package/src/components/conversation/examples/conversation-days.tsx +0 -48
  269. package/src/components/conversation/examples/conversation-showcase.tsx +0 -71
  270. package/src/components/conversation/examples/conversation-usage.tsx +0 -28
  271. package/src/components/date-picker/date-picker.docs.tsx +0 -88
  272. package/src/components/date-picker/examples/date-picker-locales.tsx +0 -41
  273. package/src/components/date-picker/examples/date-picker-past-only.tsx +0 -29
  274. package/src/components/date-picker/examples/date-picker-showcase.tsx +0 -49
  275. package/src/components/date-picker/examples/date-picker-usage.tsx +0 -22
  276. package/src/components/dialog/dialog.docs.tsx +0 -114
  277. package/src/components/dialog/examples/dialog-confirm.tsx +0 -24
  278. package/src/components/dialog/examples/dialog-form.tsx +0 -46
  279. package/src/components/dialog/examples/dialog-inline.tsx +0 -48
  280. package/src/components/dialog/examples/dialog-showcase.tsx +0 -53
  281. package/src/components/dialog/examples/dialog-usage.tsx +0 -31
  282. package/src/components/labeled-content/examples/labeled-content-descriptions.tsx +0 -37
  283. package/src/components/labeled-content/examples/labeled-content-showcase.tsx +0 -54
  284. package/src/components/labeled-content/examples/labeled-content-usage.tsx +0 -22
  285. package/src/components/labeled-content/examples/labeled-content-values.tsx +0 -26
  286. package/src/components/labeled-content/examples/labeled-content-wide.tsx +0 -46
  287. package/src/components/labeled-content/labeled-content.docs.tsx +0 -69
  288. package/src/components/locale-switcher/examples/locale-switcher-native-names.tsx +0 -30
  289. package/src/components/locale-switcher/examples/locale-switcher-showcase.tsx +0 -46
  290. package/src/components/locale-switcher/examples/locale-switcher-translated-page.tsx +0 -35
  291. package/src/components/locale-switcher/examples/locale-switcher-usage.tsx +0 -20
  292. package/src/components/locale-switcher/locale-switcher.docs.tsx +0 -91
  293. package/src/components/picker/examples/picker-details.tsx +0 -44
  294. package/src/components/picker/examples/picker-searchable.tsx +0 -48
  295. package/src/components/picker/examples/picker-showcase.tsx +0 -66
  296. package/src/components/picker/examples/picker-usage.tsx +0 -20
  297. package/src/components/picker/picker.docs.tsx +0 -68
  298. package/src/components/popover/examples/popover-help.tsx +0 -57
  299. package/src/components/popover/examples/popover-menu.tsx +0 -51
  300. package/src/components/popover/examples/popover-showcase.tsx +0 -61
  301. package/src/components/popover/examples/popover-usage.tsx +0 -31
  302. package/src/components/popover/popover.docs.tsx +0 -84
  303. package/src/components/profile-image/examples/profile-image-fallbacks.tsx +0 -29
  304. package/src/components/profile-image/examples/profile-image-group.tsx +0 -34
  305. package/src/components/profile-image/examples/profile-image-showcase.tsx +0 -30
  306. package/src/components/profile-image/examples/profile-image-usage.tsx +0 -14
  307. package/src/components/profile-image/profile-image.docs.tsx +0 -81
  308. package/src/components/search-field/examples/search-field-filter.tsx +0 -53
  309. package/src/components/search-field/examples/search-field-showcase.tsx +0 -56
  310. package/src/components/search-field/examples/search-field-toolbar.tsx +0 -27
  311. package/src/components/search-field/examples/search-field-usage.tsx +0 -18
  312. package/src/components/search-field/search-field.docs.tsx +0 -58
  313. package/src/components/search-list/examples/search-list-dropdown.tsx +0 -53
  314. package/src/components/search-list/examples/search-list-groups.tsx +0 -64
  315. package/src/components/search-list/examples/search-list-showcase.tsx +0 -67
  316. package/src/components/search-list/examples/search-list-usage.tsx +0 -27
  317. package/src/components/search-list/search-list.docs.tsx +0 -87
  318. package/src/components/section/examples/section-actions.tsx +0 -35
  319. package/src/components/section/examples/section-groups.tsx +0 -41
  320. package/src/components/section/examples/section-showcase.tsx +0 -63
  321. package/src/components/section/examples/section-usage.tsx +0 -19
  322. package/src/components/section/section.docs.tsx +0 -51
  323. package/src/components/secure-field/examples/secure-field-new-password.tsx +0 -56
  324. package/src/components/secure-field/examples/secure-field-reveal.tsx +0 -20
  325. package/src/components/secure-field/examples/secure-field-showcase.tsx +0 -62
  326. package/src/components/secure-field/examples/secure-field-usage.tsx +0 -19
  327. package/src/components/secure-field/secure-field.docs.tsx +0 -72
  328. package/src/components/segmented-control/examples/segmented-control-overflow.tsx +0 -28
  329. package/src/components/segmented-control/examples/segmented-control-showcase.tsx +0 -59
  330. package/src/components/segmented-control/examples/segmented-control-usage.tsx +0 -20
  331. package/src/components/segmented-control/examples/segmented-control-views.tsx +0 -32
  332. package/src/components/segmented-control/segmented-control.docs.tsx +0 -61
  333. package/src/components/sheet/examples/sheet-choices.tsx +0 -58
  334. package/src/components/sheet/examples/sheet-share.tsx +0 -51
  335. package/src/components/sheet/examples/sheet-showcase.tsx +0 -74
  336. package/src/components/sheet/examples/sheet-usage.tsx +0 -32
  337. package/src/components/sheet/sheet.docs.tsx +0 -75
  338. package/src/components/sidebar/examples/sidebar-groups.tsx +0 -133
  339. package/src/components/sidebar/examples/sidebar-showcase.tsx +0 -123
  340. package/src/components/sidebar/examples/sidebar-unread.tsx +0 -66
  341. package/src/components/sidebar/examples/sidebar-usage.tsx +0 -52
  342. package/src/components/sidebar/sidebar.docs.tsx +0 -135
  343. package/src/components/stat-tile/examples/stat-tile-filters.tsx +0 -32
  344. package/src/components/stat-tile/examples/stat-tile-grid.tsx +0 -21
  345. package/src/components/stat-tile/examples/stat-tile-showcase.tsx +0 -52
  346. package/src/components/stat-tile/examples/stat-tile-usage.tsx +0 -13
  347. package/src/components/stat-tile/stat-tile.docs.tsx +0 -60
  348. package/src/components/status-indicator/examples/status-indicator-live.tsx +0 -34
  349. package/src/components/status-indicator/examples/status-indicator-showcase.tsx +0 -39
  350. package/src/components/status-indicator/examples/status-indicator-states.tsx +0 -17
  351. package/src/components/status-indicator/examples/status-indicator-usage.tsx +0 -9
  352. package/src/components/status-indicator/status-indicator.docs.tsx +0 -43
  353. package/src/components/swatch-picker/examples/swatch-picker-accents.tsx +0 -42
  354. package/src/components/swatch-picker/examples/swatch-picker-labels.tsx +0 -45
  355. package/src/components/swatch-picker/examples/swatch-picker-showcase.tsx +0 -70
  356. package/src/components/swatch-picker/examples/swatch-picker-usage.tsx +0 -39
  357. package/src/components/swatch-picker/swatch-picker.docs.tsx +0 -60
  358. package/src/components/tab-bar/examples/tab-bar-five-tabs.tsx +0 -66
  359. package/src/components/tab-bar/examples/tab-bar-minimize.tsx +0 -71
  360. package/src/components/tab-bar/examples/tab-bar-showcase.tsx +0 -82
  361. package/src/components/tab-bar/examples/tab-bar-usage.tsx +0 -54
  362. package/src/components/tab-bar/tab-bar.docs.tsx +0 -136
  363. package/src/components/tab-view/examples/tab-view-keyboard.tsx +0 -39
  364. package/src/components/tab-view/examples/tab-view-settings.tsx +0 -56
  365. package/src/components/tab-view/examples/tab-view-showcase.tsx +0 -53
  366. package/src/components/tab-view/examples/tab-view-usage.tsx +0 -23
  367. package/src/components/tab-view/tab-view.docs.tsx +0 -77
  368. package/src/components/table/examples/table-empty.tsx +0 -53
  369. package/src/components/table/examples/table-invoices.tsx +0 -102
  370. package/src/components/table/examples/table-selection.tsx +0 -150
  371. package/src/components/table/examples/table-showcase.tsx +0 -115
  372. package/src/components/table/examples/table-usage.tsx +0 -67
  373. package/src/components/table/examples/table-wide.tsx +0 -75
  374. package/src/components/table/table.docs.tsx +0 -131
  375. package/src/components/text-editor/examples/text-editor-comment.tsx +0 -48
  376. package/src/components/text-editor/examples/text-editor-count.tsx +0 -38
  377. package/src/components/text-editor/examples/text-editor-showcase.tsx +0 -58
  378. package/src/components/text-editor/examples/text-editor-usage.tsx +0 -25
  379. package/src/components/text-editor/text-editor.docs.tsx +0 -61
  380. package/src/components/text-field/examples/text-field-icons.tsx +0 -72
  381. package/src/components/text-field/examples/text-field-showcase.tsx +0 -50
  382. package/src/components/text-field/examples/text-field-usage.tsx +0 -18
  383. package/src/components/text-field/examples/text-field-validation.tsx +0 -27
  384. package/src/components/text-field/text-field.docs.tsx +0 -118
  385. package/src/components/toast/examples/toast-action.tsx +0 -32
  386. package/src/components/toast/examples/toast-promise.tsx +0 -45
  387. package/src/components/toast/examples/toast-showcase.tsx +0 -49
  388. package/src/components/toast/examples/toast-usage.tsx +0 -13
  389. package/src/components/toast/toast.docs.tsx +0 -79
  390. package/src/components/toggle/examples/toggle-checkboxes.tsx +0 -43
  391. package/src/components/toggle/examples/toggle-settings.tsx +0 -31
  392. package/src/components/toggle/examples/toggle-showcase.tsx +0 -59
  393. package/src/components/toggle/examples/toggle-usage.tsx +0 -13
  394. package/src/components/toggle/toggle.docs.tsx +0 -69
  395. package/src/components/tooltip/examples/tooltip-icon-buttons.tsx +0 -27
  396. package/src/components/tooltip/examples/tooltip-shortcuts.tsx +0 -38
  397. package/src/components/tooltip/examples/tooltip-showcase.tsx +0 -44
  398. package/src/components/tooltip/examples/tooltip-usage.tsx +0 -13
  399. package/src/components/tooltip/tooltip.docs.tsx +0 -56
  400. package/src/components/view-controller/examples/view-controller-action.tsx +0 -27
  401. package/src/components/view-controller/examples/view-controller-settings.tsx +0 -31
  402. package/src/components/view-controller/examples/view-controller-showcase.tsx +0 -45
  403. package/src/components/view-controller/examples/view-controller-usage.tsx +0 -19
  404. package/src/components/view-controller/view-controller.docs.tsx +0 -71
  405. package/src/docs/index.ts +0 -3
  406. package/src/docs/registry.ts +0 -113
  407. package/src/docs/snippet.ts +0 -17
  408. package/src/docs/types.ts +0 -180
@@ -0,0 +1,21 @@
1
+ import { type ReactNode } from "react";
2
+ export type SheetPlacement = "adaptive" | "center";
3
+ export interface SheetProps {
4
+ /** Controls whether the sheet is presented. */
5
+ open: boolean;
6
+ /** Called on Escape or an outside press. */
7
+ onClose: () => void;
8
+ /** Read out by screen readers as the sheet's name. */
9
+ label: string;
10
+ /** ID of a visible heading to use instead of label for the accessible name. */
11
+ labelledBy?: string;
12
+ /** `adaptive` rises from the bottom on phones; `center` always floats. @default "adaptive" */
13
+ placement?: SheetPlacement;
14
+ className?: string;
15
+ children: ReactNode;
16
+ }
17
+ /**
18
+ * A modal card: rises from the bottom edge on phones and floats in the
19
+ * middle on larger screens. Escape or a tap outside closes it.
20
+ */
21
+ export declare function Sheet({ open, ...props }: SheetProps): import("react").JSX.Element;
@@ -0,0 +1,3 @@
1
+ import { type RefObject } from "react";
2
+ /** Keeps keyboard focus in the foremost sheet, including its floating pickers. */
3
+ export declare function useSheetFocus(panel: RefObject<HTMLDivElement | null>, onClose: () => void): void;
@@ -0,0 +1,19 @@
1
+ import { type ReactNode } from "react";
2
+ export interface SidebarSectionProps {
3
+ /** Visible heading for this group of navigation rows. */
4
+ title: string;
5
+ children: ReactNode;
6
+ }
7
+ export interface SidebarItemContentProps {
8
+ icon?: ReactNode;
9
+ /** Optional trailing count. */
10
+ count?: number;
11
+ /** Matches the router link's active state. */
12
+ active?: boolean;
13
+ children: ReactNode;
14
+ }
15
+ export declare function SidebarSection({ title, children }: SidebarSectionProps): import("react").JSX.Element;
16
+ /** Classes for a sidebar row; apply to the app's router link. */
17
+ export type SidebarDensity = "regular" | "compact";
18
+ export declare function sidebarItemClass(active?: boolean, density?: SidebarDensity): string;
19
+ export declare function SidebarItemContent({ icon, count, active, children }: SidebarItemContentProps): import("react").JSX.Element;
@@ -0,0 +1,6 @@
1
+ import type { ComponentProps } from "react";
2
+ export interface SkeletonProps extends ComponentProps<"div"> {
3
+ label?: string;
4
+ }
5
+ /** A loading placeholder that becomes still when Reduce Motion is enabled. */
6
+ export declare function Skeleton({ label, className, ...props }: SkeletonProps): import("react").JSX.Element;
@@ -0,0 +1,14 @@
1
+ import { type ComponentProps } from "react";
2
+ export interface SliderProps extends Omit<ComponentProps<"input">, "type" | "value" | "defaultValue" | "onChange" | "min" | "max" | "step"> {
3
+ value: number;
4
+ onChange: (value: number) => void;
5
+ label: string;
6
+ min?: number;
7
+ max?: number;
8
+ step?: number;
9
+ description?: string;
10
+ /** Provides a localized, spoken description of the current value. */
11
+ formatValue?: (value: number) => string;
12
+ }
13
+ /** Native keyboard, touch and pointer behavior with Passui's control treatment. */
14
+ export declare function Slider({ value, onChange, label, min, max, step, description, formatValue, id: suppliedId, className, disabled, ...props }: SliderProps): import("react").JSX.Element;
@@ -0,0 +1,6 @@
1
+ export interface LiquidState {
2
+ fill: number;
3
+ velocity: number;
4
+ }
5
+ /** Bencho's frame-normalized liquid spring. See THIRD_PARTY_NOTICES.md. */
6
+ export declare function stepLiquid(state: LiquidState, target: number, viscosity: number, dt: number): LiquidState;
@@ -0,0 +1,18 @@
1
+ export interface SloshSliderProps {
2
+ label: string;
3
+ value?: number;
4
+ defaultValue?: number;
5
+ onChange?: (value: number) => void;
6
+ /** 0 is rigid; 100 is loose liquid. @default 15 */
7
+ viscosity?: number;
8
+ /** How far the handle coasts after release, 0–100. @default 55 */
9
+ momentum?: number;
10
+ /** Lean of the liquid's leading edge, 0–100. @default 45 */
11
+ tilt?: number;
12
+ /** Track corner, from square to a pill, 0–20. @default 20 */
13
+ corner?: number;
14
+ disabled?: boolean;
15
+ className?: string;
16
+ formatValue?: (value: number) => string;
17
+ }
18
+ export declare function SloshSlider({ label, value, defaultValue, onChange, viscosity, momentum, tilt, corner, disabled, className, formatValue, }: SloshSliderProps): import("react").JSX.Element;
@@ -0,0 +1 @@
1
+ export * from "./stat-tile";
@@ -0,0 +1,15 @@
1
+ import type { ReactNode } from "react";
2
+ export type StatTileTone = "critical";
3
+ export interface StatTileProps {
4
+ label: string;
5
+ value: number;
6
+ /** A quiet line under the number, like "3 signed in now". */
7
+ caption?: ReactNode;
8
+ /** Turns the number red once it's above zero. */
9
+ tone?: StatTileTone;
10
+ /** Makes the tile a toggle, e.g. a filter. */
11
+ onClick?: () => void;
12
+ active?: boolean;
13
+ }
14
+ /** One number with its label, optionally a toggle. */
15
+ export declare function StatTile({ label, value, caption, tone, onClick, active }: StatTileProps): import("react").JSX.Element;
@@ -0,0 +1,14 @@
1
+ import type { HTMLAttributes, ReactNode } from "react";
2
+ declare const dots: {
3
+ readonly saved: "bg-success";
4
+ readonly syncing: "bg-warning animate-pulse";
5
+ readonly offline: "bg-label-tertiary";
6
+ };
7
+ export type StatusIndicatorState = keyof typeof dots;
8
+ export interface StatusIndicatorProps extends HTMLAttributes<HTMLSpanElement> {
9
+ /** Visual treatment of the status dot. */
10
+ state: StatusIndicatorState;
11
+ children: ReactNode;
12
+ }
13
+ export declare function StatusIndicator({ state, children, className, ...props }: StatusIndicatorProps): import("react").JSX.Element;
14
+ export {};
@@ -0,0 +1,11 @@
1
+ /** Counts at a place retain carries: the tens column of 1284 targets 128. */
2
+ export declare function digitAt(count: number): number;
3
+ export declare function advanceDigit(position: number, velocity: number, target: number, frames: number): {
4
+ position: number;
5
+ velocity: number;
6
+ };
7
+ /** Three recycled cells keep the strip continuous through either side of zero. */
8
+ export declare function RollingDigit({ count, place }: {
9
+ count: number;
10
+ place: number;
11
+ }): import("react").JSX.Element;
@@ -0,0 +1,19 @@
1
+ export interface StepperProps {
2
+ value: number;
3
+ onChange: (value: number) => void;
4
+ label: string;
5
+ /** Localized accessible names for each action. */
6
+ labels: {
7
+ decrement: string;
8
+ increment: string;
9
+ };
10
+ min?: number;
11
+ max?: number;
12
+ step?: number;
13
+ disabled?: boolean;
14
+ className?: string;
15
+ /** Formats the displayed value. */
16
+ formatValue?: (value: number) => string;
17
+ }
18
+ /** Discrete increments with disabled boundary actions and a spoken value. */
19
+ export declare function Stepper({ value, onChange, label, labels, min, max, step, disabled, className, formatValue, }: StepperProps): import("react").JSX.Element;
@@ -0,0 +1,17 @@
1
+ export interface SwatchPickerOption<T extends string> {
2
+ value: T;
3
+ label: string;
4
+ /** Swatch background color. */
5
+ color: string;
6
+ /** Color of the selected checkmark. */
7
+ ink: string;
8
+ }
9
+ export interface SwatchPickerProps<T extends string> {
10
+ value: T;
11
+ options: ReadonlyArray<SwatchPickerOption<T>>;
12
+ onChange: (value: T) => void;
13
+ /** Accessible name for the group. */
14
+ label: string;
15
+ }
16
+ /** Colour swatches with a check on the chosen one. */
17
+ export declare function SwatchPicker<T extends string>({ value, options, onChange, label, }: SwatchPickerProps<T>): import("react").JSX.Element;
@@ -0,0 +1,40 @@
1
+ import { type ReactNode } from "react";
2
+ export interface TabBarTab<Id extends string = string> {
3
+ id: Id;
4
+ label: string;
5
+ icon: ReactNode;
6
+ }
7
+ /** What a tab's link receives; spread it onto the router's own link. */
8
+ export interface TabBarLinkProps {
9
+ className: string;
10
+ "aria-current": "page" | undefined;
11
+ onClick: () => void;
12
+ children: ReactNode;
13
+ }
14
+ export type TabBarMinimizeBehavior = "platform" | "scroll" | "never";
15
+ export interface TabBarProps<Tab extends TabBarTab> {
16
+ /** `platform` follows the platform, `scroll` always minimizes, `never` stays expanded. @default "platform" */
17
+ minimizeBehavior?: TabBarMinimizeBehavior;
18
+ tabs: readonly Tab[];
19
+ /** Active tab ID, or null for a destination outside the bar. */
20
+ active: Tab["id"] | null;
21
+ /** Renders your router's link with the supplied appearance and accessibility props. */
22
+ renderLink: (tab: Tab, props: TabBarLinkProps) => ReactNode;
23
+ search?: {
24
+ label: string;
25
+ onPress: () => void;
26
+ };
27
+ /** Accessible name for the navigation. */
28
+ label: string;
29
+ className?: string;
30
+ }
31
+ /**
32
+ * The app's main places a thumb's reach away, drawn as iOS 26 draws them: a
33
+ * floating glass capsule of tabs, with Search as its own round button at the
34
+ * trailing end. Scrolling down through content shrinks the capsule to the
35
+ * current tab; scrolling back up, or a tap, restores it. Android shares the
36
+ * glass, but its bar stays full size, as Android's own bars do.
37
+ *
38
+ * Links stay the app's own (`renderLink`), so the bar works with any router.
39
+ */
40
+ export declare function TabBar<Tab extends TabBarTab>({ tabs, active, renderLink, search, label, className, minimizeBehavior, }: TabBarProps<Tab>): import("react").JSX.Element;
@@ -0,0 +1,24 @@
1
+ import { type ReactNode } from "react";
2
+ export type TabViewAlign = "start" | "center";
3
+ export interface TabViewProps<Value extends string> {
4
+ /** Available tabs, in keyboard navigation order. */
5
+ options: readonly {
6
+ value: Value;
7
+ label: string;
8
+ disabled?: boolean;
9
+ }[];
10
+ /** Initial selection when value is not controlled. */
11
+ defaultValue: Value;
12
+ /** Controlled selection; omit to keep selection inside TabView. */
13
+ value?: Value;
14
+ onValueChange?: (value: Value) => void;
15
+ /** Tab alignment: `start` or `center`. @default "center" */
16
+ align?: TabViewAlign;
17
+ /** Accessible name for the tab list. */
18
+ label: string;
19
+ /** Renders the selected tab's panel. */
20
+ children: (value: Value) => ReactNode;
21
+ className?: string;
22
+ }
23
+ /** Content tabs with native buttons, roving focus and automatic keyboard activation. */
24
+ export declare function TabView<Value extends string>({ options, defaultValue, value: controlledValue, onValueChange, align, label, children, className, }: TabViewProps<Value>): import("react").JSX.Element | null;
@@ -0,0 +1,10 @@
1
+ import type * as React from "react";
2
+ declare function Table({ className, ...props }: React.ComponentProps<"table">): React.JSX.Element;
3
+ declare function TableHeader({ className, ...props }: React.ComponentProps<"thead">): React.JSX.Element;
4
+ declare function TableBody({ className, ...props }: React.ComponentProps<"tbody">): React.JSX.Element;
5
+ declare function TableFooter({ className, ...props }: React.ComponentProps<"tfoot">): React.JSX.Element;
6
+ declare function TableRow({ className, ...props }: React.ComponentProps<"tr">): React.JSX.Element;
7
+ declare function TableHead({ className, ...props }: React.ComponentProps<"th">): React.JSX.Element;
8
+ declare function TableCell({ className, ...props }: React.ComponentProps<"td">): React.JSX.Element;
9
+ declare function TableCaption({ className, ...props }: React.ComponentProps<"caption">): React.JSX.Element;
10
+ export { Table, TableBody, TableCaption, TableCell, TableFooter, TableHead, TableHeader, TableRow };
@@ -0,0 +1,2 @@
1
+ import type { ComponentProps } from "react";
2
+ export declare function TextEditor({ className, ...props }: ComponentProps<"textarea">): import("react").JSX.Element;
@@ -0,0 +1,20 @@
1
+ import { type ComponentProps, type ReactNode } from "react";
2
+ export declare const textControlClasses: string;
3
+ export type TextFieldProps = ComponentProps<"input"> & {
4
+ label: string;
5
+ description?: ReactNode;
6
+ errors?: string[];
7
+ /** A decorative icon before the text, such as a mail glyph. */
8
+ icon?: ReactNode;
9
+ /** A decorative icon after the text, such as a unit or a check. */
10
+ trailingIcon?: ReactNode;
11
+ /** An interactive control after the text, such as a clear button. Size it to the field: an `xs` or `icon-xs` button, never the default. */
12
+ action?: ReactNode;
13
+ revealLabels?: {
14
+ show: string;
15
+ hide: string;
16
+ };
17
+ /** Float the label into the outline on focus or when filled. @default "above" */
18
+ labelPlacement?: "above" | "floating";
19
+ };
20
+ export declare function TextField({ label, description, errors, icon, trailingIcon, action, revealLabels, labelPlacement, placeholder, type, id: suppliedId, className, ...props }: TextFieldProps): import("react").JSX.Element;
@@ -0,0 +1,47 @@
1
+ /**
2
+ * App-wide toasts: short messages that confirm, report progress or explain
3
+ * a failure. Call `toast` from anywhere; render one `<Toaster />`.
4
+ */
5
+ export type ToastTone = "neutral" | "success" | "error" | "loading";
6
+ export interface ToastAction {
7
+ label: string;
8
+ onClick: () => void;
9
+ }
10
+ export interface Toast {
11
+ id: number;
12
+ tone: ToastTone;
13
+ title: string;
14
+ description?: string;
15
+ action?: ToastAction;
16
+ /** Milliseconds before it leaves on its own; `null` stays until dismissed. */
17
+ duration: number | null;
18
+ createdAt: number;
19
+ }
20
+ export interface ToastOptions {
21
+ description?: string;
22
+ action?: ToastAction;
23
+ duration?: number | null;
24
+ }
25
+ /** Changes a toast in place; it morphs to its new state. */
26
+ declare function update(id: number, tone: ToastTone, title: string, options?: ToastOptions): number;
27
+ declare function dismiss(id: number): void;
28
+ interface PromiseMessages<T> {
29
+ loading: string;
30
+ success: string | ((value: T) => string);
31
+ error: string | ((error: unknown) => string);
32
+ }
33
+ export declare const toast: ((title: string, options?: ToastOptions) => number) & {
34
+ success: (title: string, options?: ToastOptions) => number;
35
+ error: (title: string, options?: ToastOptions) => number;
36
+ loading: (title: string, options?: ToastOptions) => number;
37
+ update: typeof update;
38
+ dismiss: typeof dismiss;
39
+ /** Shows progress, then morphs into the outcome. Returns the promise. */
40
+ promise<T>(promise: Promise<T>, messages: PromiseMessages<T>): Promise<T>;
41
+ };
42
+ export declare function subscribeToasts(listener: () => void): () => void;
43
+ export declare function getToasts(): Toast[];
44
+ export declare const toastLimits: {
45
+ readonly visible: 3;
46
+ };
47
+ export {};
@@ -0,0 +1,10 @@
1
+ /**
2
+ * Toasts drop from the top centre like an island: a small pill carrying the
3
+ * icon, out of which the message flows. Both shapes sit under an SVG "goo"
4
+ * filter, so where they meet looks liquid while they grow, morph between
5
+ * states and shrink away. Text is drawn above the filter to stay crisp.
6
+ */
7
+ export declare function Toaster({ className, label, }: {
8
+ className?: string;
9
+ label?: string;
10
+ }): import("react").JSX.Element;
@@ -0,0 +1,17 @@
1
+ export type ToggleStyle = "switch" | "checkbox";
2
+ export interface ToggleProps {
3
+ /** Current on or off state. */
4
+ checked: boolean;
5
+ /** Called with the next checked state. */
6
+ onChange: (checked: boolean) => void;
7
+ /** Accessible name, including when the visible label is hidden. */
8
+ label: string;
9
+ disabled?: boolean;
10
+ /** `switch` for a setting, `checkbox` for a selection. @default "switch" */
11
+ style?: ToggleStyle;
12
+ /** Reports a mixed selection to assistive technology. @default false */
13
+ mixed?: boolean;
14
+ /** Keeps the accessible name while hiding the visible label. @default false */
15
+ labelHidden?: boolean;
16
+ }
17
+ export declare function Toggle({ checked, onChange, label, disabled, style, mixed, labelHidden, }: ToggleProps): import("react").JSX.Element;
@@ -0,0 +1,6 @@
1
+ /**
2
+ * Tooltips for any element with `data-tooltip`, on devices that can hover.
3
+ * One listener for the whole app: a short delay before the first, then
4
+ * instant while moving between controls, as on macOS.
5
+ */
6
+ export declare function TooltipHost(): import("react").JSX.Element;
@@ -0,0 +1 @@
1
+ export * from "./view-controller";
@@ -0,0 +1,21 @@
1
+ import type { PropsWithChildren, ReactNode } from "react";
2
+ type ViewControllerProps = PropsWithChildren<{
3
+ heading: ReactNode;
4
+ className?: string;
5
+ }>;
6
+ type HeadingProps = {
7
+ title: ReactNode;
8
+ description?: ReactNode;
9
+ action?: ReactNode;
10
+ size?: keyof typeof titleSizes;
11
+ };
12
+ declare const titleSizes: {
13
+ readonly default: "text-3xl md:text-4xl";
14
+ readonly compact: "text-[1.75rem] font-semibold tracking-tight";
15
+ };
16
+ export declare function ViewController({ heading, className, children }: ViewControllerProps): import("react").JSX.Element;
17
+ export declare namespace ViewController {
18
+ export { Heading };
19
+ }
20
+ declare function Heading({ title, description, action, size }: HeadingProps): import("react").JSX.Element;
21
+ export {};
@@ -0,0 +1,12 @@
1
+ export interface WakeSliderProps {
2
+ label: string;
3
+ value?: number;
4
+ defaultValue?: number;
5
+ onChange?: (value: number) => void;
6
+ bars?: number;
7
+ wake?: number;
8
+ disabled?: boolean;
9
+ className?: string;
10
+ formatValue?: (value: number) => string;
11
+ }
12
+ export declare function WakeSlider({ label, value: controlledValue, defaultValue, onChange, disabled, className, formatValue, bars, wake, }: WakeSliderProps): import("react").JSX.Element;
@@ -0,0 +1,2 @@
1
+ /** Programmatic restoration does not collapse chrome; reaching the top always restores it. */
2
+ export declare function minimizeDecision(top: number, anchor: number, userDriven: boolean): boolean | null;
@@ -0,0 +1,9 @@
1
+ /** Keep the panel mounted until its material has returned to the trigger. */
2
+ export declare function useAnchoredDisclosure(disabled?: boolean): {
3
+ open: boolean;
4
+ mounted: boolean;
5
+ show: () => void;
6
+ toggle: () => void;
7
+ close: () => void;
8
+ onExited: () => void;
9
+ };
@@ -0,0 +1,7 @@
1
+ import { type AnchoredPlacement } from "../lib/anchored-placement";
2
+ /**
3
+ * Places a panel of `width` and `needed` height under its anchor and
4
+ * keeps it there: re-places while the viewport resizes or anything
5
+ * scrolls, so it never hangs off the screen.
6
+ */
7
+ export declare function useAnchoredPlacement(anchor: HTMLElement, width: number, needed: number, overlap?: boolean): AnchoredPlacement;
@@ -0,0 +1,9 @@
1
+ import { type RefObject } from "react";
2
+ /** Marks a floating layer (a pop-up list, a menu) whose clicks belong to what opened it. */
3
+ export { FLOATING_LAYER } from "../lib/floating-layers";
4
+ /**
5
+ * Calls `onDismiss` when the user presses Escape or clicks outside `ref`
6
+ * while `active`, for menus, popovers and sheets. Clicks in a floating
7
+ * layer opened from inside, such as a pop-up button's list, don't count.
8
+ */
9
+ export declare function useDismiss(ref: RefObject<HTMLElement | null>, active: boolean, onDismiss: () => void): void;
@@ -0,0 +1,3 @@
1
+ import { type RefObject } from "react";
2
+ /** Dismiss an anchored portal without stealing focus from outside pointer interactions. */
3
+ export declare function useFloatingDismiss(surface: RefObject<HTMLElement | null>, anchor: HTMLElement, onDismiss: (restoreFocus: boolean) => void): void;
@@ -0,0 +1,21 @@
1
+ declare const BREAKPOINTS: {
2
+ readonly "2xl": 1536;
3
+ readonly "3xl": 1600;
4
+ readonly "4xl": 2000;
5
+ readonly lg: 1024;
6
+ readonly md: 800;
7
+ readonly sm: 640;
8
+ readonly xl: 1280;
9
+ };
10
+ export type Breakpoint = keyof typeof BREAKPOINTS;
11
+ export type BreakpointQuery = Breakpoint | `max-${Breakpoint}` | `${Breakpoint}:max-${Breakpoint}`;
12
+ export type MediaQueryInput = {
13
+ min?: Breakpoint | number;
14
+ max?: Breakpoint | number;
15
+ /** Touch-like input (finger). Use "fine" for mouse/trackpad. */
16
+ pointer?: PointerPrecision;
17
+ };
18
+ export type PointerPrecision = "coarse" | "fine";
19
+ export declare function useMediaQuery(query: BreakpointQuery | MediaQueryInput | (string & {})): boolean;
20
+ export declare function useIsMobile(): boolean;
21
+ export {};
@@ -0,0 +1,6 @@
1
+ /**
2
+ * Minimized while you scroll down through content, restored when you scroll
3
+ * back up or reach the top: iOS 26's `tabBarMinimizeBehavior(.onScrollDown)`.
4
+ * Listens to every scroll container, since each screen scrolls its own pane.
5
+ */
6
+ export declare function useMinimizeOnScroll(): readonly [boolean, import("react").Dispatch<import("react").SetStateAction<boolean>>];
@@ -0,0 +1,4 @@
1
+ import type { ViewportMetrics } from "./viewport/types";
2
+ export type { ViewportMetrics } from "./viewport/types";
3
+ /** Measures once per frame, including Android resize and Safari viewport panning. */
4
+ export declare function useVisualViewport(): ViewportMetrics | null;
@@ -0,0 +1,19 @@
1
+ export type ViewportInput = {
2
+ width: number;
3
+ height: number;
4
+ top: number;
5
+ left: number;
6
+ layoutHeight: number;
7
+ editing: boolean;
8
+ };
9
+ export type ViewportMetrics = {
10
+ width: number;
11
+ height: number;
12
+ top: number;
13
+ left: number;
14
+ keyboardOpen: boolean;
15
+ };
16
+ export type ViewportBaseline = {
17
+ width: number;
18
+ height: number;
19
+ };
@@ -0,0 +1,3 @@
1
+ import type { ViewportBaseline, ViewportInput, ViewportMetrics } from "./types";
2
+ /** A resized WebView and Safari's overlaid keyboard share one visible rectangle. */
3
+ export declare function viewportMetrics(input: ViewportInput, baseline: ViewportBaseline): ViewportMetrics;