@passui/react 0.1.47 → 0.2.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 (427) hide show
  1. package/README.md +29 -109
  2. package/THIRD_PARTY_NOTICES.md +29 -0
  3. package/dist/accordion.d.ts +15 -0
  4. package/dist/accordion.js +93 -0
  5. package/dist/alert-dialog.d.ts +26 -0
  6. package/dist/alert-dialog.js +142 -0
  7. package/dist/alert.d.ts +10 -0
  8. package/dist/alert.js +28 -0
  9. package/dist/{types/src/components/ambient/ambient.d.ts → ambient.d.ts} +4 -4
  10. package/dist/ambient.js +22 -0
  11. package/dist/{types/src/appearance → appearance}/platform.d.ts +3 -3
  12. package/dist/appearance/platform.js +43 -0
  13. package/dist/appearance/theme.d.ts +71 -0
  14. package/dist/appearance/theme.js +236 -0
  15. package/dist/appearance.d.ts +3 -0
  16. package/dist/appearance.js +3 -0
  17. package/dist/{types/src/components/aspect-ratio/aspect-ratio.d.ts → aspect-ratio.d.ts} +4 -4
  18. package/dist/aspect-ratio.js +17 -0
  19. package/dist/avatar.d.ts +5 -0
  20. package/dist/avatar.js +43 -0
  21. package/dist/badge.d.ts +8 -0
  22. package/dist/badge.js +21 -0
  23. package/dist/breadcrumb.d.ts +13 -0
  24. package/dist/breadcrumb.js +63 -0
  25. package/dist/button-group.d.ts +5 -0
  26. package/dist/button-group.js +14 -0
  27. package/dist/button.d.ts +21 -0
  28. package/dist/button.js +58 -0
  29. package/dist/calendar.d.ts +35 -0
  30. package/dist/calendar.js +225 -0
  31. package/dist/card.d.ts +9 -0
  32. package/dist/card.js +54 -0
  33. package/dist/chart.d.ts +30 -0
  34. package/dist/chart.js +226 -0
  35. package/dist/checkbox.d.ts +13 -0
  36. package/dist/checkbox.js +53 -0
  37. package/dist/{types/src/lib/clipboard.d.ts → clipboard.d.ts} +1 -1
  38. package/dist/clipboard.js +16 -0
  39. package/dist/cn.d.ts +2 -0
  40. package/dist/cn.js +10 -0
  41. package/dist/code-block.d.ts +34 -0
  42. package/dist/code-block.js +87 -0
  43. package/dist/collapsible.d.ts +13 -0
  44. package/dist/collapsible.js +49 -0
  45. package/dist/combobox.d.ts +25 -0
  46. package/dist/combobox.js +112 -0
  47. package/dist/command.d.ts +22 -0
  48. package/dist/command.js +129 -0
  49. package/dist/components/toast/toast-store.d.ts +60 -0
  50. package/dist/components/toast/toast-store.js +96 -0
  51. package/dist/{types/src/components → components}/toast/toaster.d.ts +4 -4
  52. package/dist/components/toast/toaster.js +345 -0
  53. package/dist/context-menu.d.ts +2 -0
  54. package/dist/context-menu.js +2 -0
  55. package/dist/conversation.d.ts +48 -0
  56. package/dist/conversation.js +202 -0
  57. package/dist/date-time-picker.d.ts +50 -0
  58. package/dist/date-time-picker.js +235 -0
  59. package/dist/date.d.ts +50 -0
  60. package/dist/date.js +77 -0
  61. package/dist/dialog.d.ts +21 -0
  62. package/dist/dialog.js +113 -0
  63. package/dist/drawer.d.ts +30 -0
  64. package/dist/drawer.js +140 -0
  65. package/dist/dropdown-menu.d.ts +56 -0
  66. package/dist/dropdown-menu.js +295 -0
  67. package/dist/empty.d.ts +11 -0
  68. package/dist/empty.js +51 -0
  69. package/dist/field.d.ts +16 -0
  70. package/dist/field.js +47 -0
  71. package/{src/hooks/scroll/minimize-decision.ts → dist/hooks/scroll/minimize-decision.js} +3 -5
  72. package/dist/{types/src/hooks → hooks}/use-anchored-placement.d.ts +2 -2
  73. package/dist/hooks/use-anchored-placement.js +33 -0
  74. package/dist/{types/src/hooks → hooks}/use-minimize-on-scroll.d.ts +1 -1
  75. package/dist/hooks/use-minimize-on-scroll.js +59 -0
  76. package/dist/{types/src/hooks → hooks}/use-visual-viewport.d.ts +2 -2
  77. package/{src/hooks/use-visual-viewport.ts → dist/hooks/use-visual-viewport.js} +20 -35
  78. package/dist/hooks/viewport/types.d.ts +7 -0
  79. package/dist/hooks/viewport/viewport-metrics.js +13 -0
  80. package/dist/index.d.ts +84 -0
  81. package/dist/index.js +80 -0
  82. package/dist/input-group.d.ts +17 -0
  83. package/dist/input-group.js +55 -0
  84. package/dist/input-otp.d.ts +13 -0
  85. package/dist/input-otp.js +36 -0
  86. package/dist/input.d.ts +4 -0
  87. package/dist/input.js +14 -0
  88. package/dist/item.d.ts +49 -0
  89. package/dist/item.js +142 -0
  90. package/dist/kbd.d.ts +4 -0
  91. package/dist/kbd.js +86 -0
  92. package/dist/label.d.ts +3 -0
  93. package/dist/label.js +12 -0
  94. package/dist/labeled-content.d.ts +24 -0
  95. package/dist/labeled-content.js +41 -0
  96. package/dist/{types/src/lib/language.d.ts → language.d.ts} +1 -1
  97. package/dist/language.js +11 -0
  98. package/dist/layout.d.ts +24 -0
  99. package/dist/layout.js +36 -0
  100. package/dist/{types/src/lib → lib}/anchored-placement.d.ts +27 -27
  101. package/dist/lib/anchored-placement.js +42 -0
  102. package/dist/lib/calendar-month.js +90 -0
  103. package/dist/lib/cx.js +6 -0
  104. package/dist/lib/drawer.math.js +29 -0
  105. package/dist/lib/floating-layers.d.ts +3 -0
  106. package/dist/lib/floating-layers.js +25 -0
  107. package/dist/{types/src/lib → lib}/haptics.d.ts +1 -1
  108. package/dist/lib/haptics.js +13 -0
  109. package/dist/lib/liquid-step.js +33 -0
  110. package/dist/lib/page-scale.js +58 -0
  111. package/dist/lib/portal.js +12 -0
  112. package/dist/lib/presence.js +53 -0
  113. package/dist/lib/range-value.js +25 -0
  114. package/dist/lib/render.d.ts +8 -0
  115. package/dist/lib/render.js +42 -0
  116. package/dist/lib/rolling-digit.js +83 -0
  117. package/dist/{types/src/lib → lib}/screen-edges.d.ts +5 -5
  118. package/dist/lib/screen-edges.js +30 -0
  119. package/dist/lib/swipe-touch-action.js +34 -0
  120. package/dist/lib/visual-viewport.js +27 -0
  121. package/dist/lib/water-drop.js +412 -0
  122. package/dist/lib/wheel.js +125 -0
  123. package/dist/list.d.ts +26 -0
  124. package/dist/list.js +80 -0
  125. package/dist/locales.d.ts +18 -0
  126. package/dist/locales.js +36 -0
  127. package/dist/marker.d.ts +13 -0
  128. package/dist/marker.js +33 -0
  129. package/dist/motion/transitions.d.ts +170 -0
  130. package/dist/motion/transitions.js +156 -0
  131. package/dist/pagination.d.ts +30 -0
  132. package/dist/pagination.js +117 -0
  133. package/dist/popover.d.ts +26 -0
  134. package/dist/popover.js +101 -0
  135. package/dist/progress.d.ts +9 -0
  136. package/dist/progress.js +24 -0
  137. package/dist/questionnaire.d.ts +46 -0
  138. package/dist/questionnaire.js +133 -0
  139. package/dist/radio-group.d.ts +21 -0
  140. package/dist/radio-group.js +67 -0
  141. package/dist/search-field.d.ts +18 -0
  142. package/dist/search-field.js +45 -0
  143. package/dist/segmented-control.d.ts +16 -0
  144. package/dist/segmented-control.js +25 -0
  145. package/dist/select.d.ts +24 -0
  146. package/dist/select.js +107 -0
  147. package/dist/separator.d.ts +9 -0
  148. package/dist/separator.js +17 -0
  149. package/dist/{types/src/lib/shapes.d.ts → shapes.d.ts} +2 -2
  150. package/dist/shapes.js +65 -0
  151. package/dist/sheet.d.ts +24 -0
  152. package/dist/sheet.js +141 -0
  153. package/dist/sidebar.d.ts +32 -0
  154. package/dist/sidebar.js +85 -0
  155. package/dist/skeleton.d.ts +3 -0
  156. package/dist/skeleton.js +13 -0
  157. package/dist/slider.d.ts +9 -0
  158. package/dist/slider.js +42 -0
  159. package/dist/slosh-slider.d.ts +21 -0
  160. package/dist/slosh-slider.js +205 -0
  161. package/dist/spinner.d.ts +3 -0
  162. package/dist/spinner.js +20 -0
  163. package/dist/stat-tile.d.ts +20 -0
  164. package/dist/stat-tile.js +53 -0
  165. package/dist/stepper.d.ts +22 -0
  166. package/dist/stepper.js +98 -0
  167. package/dist/swatch-picker.d.ts +22 -0
  168. package/dist/swatch-picker.js +70 -0
  169. package/dist/switch.d.ts +10 -0
  170. package/dist/switch.js +44 -0
  171. package/dist/tab-bar.d.ts +15 -0
  172. package/dist/tab-bar.js +34 -0
  173. package/dist/{types/src/components/table/table.d.ts → table.d.ts} +3 -3
  174. package/dist/table.js +93 -0
  175. package/dist/tabs.d.ts +32 -0
  176. package/dist/tabs.js +131 -0
  177. package/dist/text.d.ts +25 -0
  178. package/dist/text.js +44 -0
  179. package/dist/textarea.d.ts +3 -0
  180. package/dist/textarea.js +13 -0
  181. package/dist/toast.d.ts +3 -0
  182. package/dist/toast.js +3 -0
  183. package/dist/toggle-group.d.ts +20 -0
  184. package/dist/toggle-group.js +68 -0
  185. package/dist/toggle.d.ts +24 -0
  186. package/dist/toggle.js +37 -0
  187. package/dist/tokens.d.ts +1 -0
  188. package/dist/tooltip.d.ts +21 -0
  189. package/dist/tooltip.js +61 -0
  190. package/dist/trace.d.ts +14 -0
  191. package/dist/trace.js +54 -0
  192. package/dist/{types/src/hooks/use-dismiss.d.ts → use-dismiss.d.ts} +3 -3
  193. package/dist/use-dismiss.js +38 -0
  194. package/dist/{types/src/hooks/use-media-query.d.ts → use-media-query.d.ts} +12 -12
  195. package/dist/use-media-query.js +56 -0
  196. package/dist/use-os.d.ts +12 -0
  197. package/dist/use-os.js +17 -0
  198. package/dist/wake-slider.d.ts +15 -0
  199. package/dist/wake-slider.js +174 -0
  200. package/package.json +122 -253
  201. package/src/styles/code-block.css +4 -0
  202. package/src/styles/globals.css +5 -0
  203. package/src/styles/motion-controls.css +10 -0
  204. package/src/styles/page-scale.css +27 -0
  205. package/src/styles/styles.css +4 -2
  206. package/dist/types/src/appearance/index.d.ts +0 -2
  207. package/dist/types/src/appearance/theme.d.ts +0 -71
  208. package/dist/types/src/components/accordion/accordion.d.ts +0 -23
  209. package/dist/types/src/components/ambient/index.d.ts +0 -1
  210. package/dist/types/src/components/breadcrumb/breadcrumb.d.ts +0 -19
  211. package/dist/types/src/components/button/button-styles.d.ts +0 -12
  212. package/dist/types/src/components/button/button.d.ts +0 -32
  213. package/dist/types/src/components/button/icon-button.d.ts +0 -10
  214. package/dist/types/src/components/button/pending-spinner.d.ts +0 -5
  215. package/dist/types/src/components/button/use-pending-indicator.d.ts +0 -2
  216. package/dist/types/src/components/chip/chip.d.ts +0 -10
  217. package/dist/types/src/components/code-block/code-block.d.ts +0 -13
  218. package/dist/types/src/components/combo-box/combo-box.d.ts +0 -9
  219. package/dist/types/src/components/command/command.d.ts +0 -18
  220. package/dist/types/src/components/compact-date-picker/calendar-month.d.ts +0 -25
  221. package/dist/types/src/components/compact-date-picker/compact-date-picker.d.ts +0 -30
  222. package/dist/types/src/components/compact-time-picker/compact-time-picker.d.ts +0 -29
  223. package/dist/types/src/components/compact-time-picker/time-value.d.ts +0 -18
  224. package/dist/types/src/components/content-unavailable-view/content-unavailable-view.d.ts +0 -12
  225. package/dist/types/src/components/content-view/content-view.d.ts +0 -51
  226. package/dist/types/src/components/content-view/index.d.ts +0 -1
  227. package/dist/types/src/components/context-menu/conceal-menu-source.d.ts +0 -2
  228. package/dist/types/src/components/context-menu/context-menu-host.d.ts +0 -2
  229. package/dist/types/src/components/context-menu/context-menu-store.d.ts +0 -62
  230. package/dist/types/src/components/context-menu/menu-navigation.d.ts +0 -6
  231. package/dist/types/src/components/context-menu/menu-position.d.ts +0 -21
  232. package/dist/types/src/components/context-menu/menu-reveal.d.ts +0 -26
  233. package/dist/types/src/components/context-menu/use-context-menu.d.ts +0 -14
  234. package/dist/types/src/components/conversation/conversation.d.ts +0 -48
  235. package/dist/types/src/components/conversation/index.d.ts +0 -1
  236. package/dist/types/src/components/date-picker/date-picker.d.ts +0 -19
  237. package/dist/types/src/components/date-picker/date-value.d.ts +0 -2
  238. package/dist/types/src/components/dialog/dialog-host.d.ts +0 -6
  239. package/dist/types/src/components/dialog/dialog-store.d.ts +0 -23
  240. package/dist/types/src/components/dialog/dialog.d.ts +0 -33
  241. package/dist/types/src/components/dialog/index.d.ts +0 -1
  242. package/dist/types/src/components/disclosure-group/disclosure-group.d.ts +0 -18
  243. package/dist/types/src/components/divider/divider.d.ts +0 -9
  244. package/dist/types/src/components/inline-disclosure/inline-disclosure.d.ts +0 -15
  245. package/dist/types/src/components/keyboard-shortcut/keyboard-shortcut.d.ts +0 -8
  246. package/dist/types/src/components/labeled-content/labeled-content.d.ts +0 -22
  247. package/dist/types/src/components/locale-switcher/index.d.ts +0 -1
  248. package/dist/types/src/components/locale-switcher/locale-switcher.d.ts +0 -13
  249. package/dist/types/src/components/menu/menu.d.ts +0 -16
  250. package/dist/types/src/components/morph/index.d.ts +0 -2
  251. package/dist/types/src/components/morph/morph.d.ts +0 -32
  252. package/dist/types/src/components/morph/use-morph-disclosure.d.ts +0 -13
  253. package/dist/types/src/components/one-time-code/one-time-code.d.ts +0 -26
  254. package/dist/types/src/components/picker/picker-trigger.d.ts +0 -3
  255. package/dist/types/src/components/picker/picker.d.ts +0 -46
  256. package/dist/types/src/components/popover/anchored-surface.d.ts +0 -17
  257. package/dist/types/src/components/popover/index.d.ts +0 -41
  258. package/dist/types/src/components/popover/popover-content.d.ts +0 -38
  259. package/dist/types/src/components/popover/popover-root.d.ts +0 -22
  260. package/dist/types/src/components/popover/popover-trigger.d.ts +0 -23
  261. package/dist/types/src/components/profile-image/profile-image.d.ts +0 -9
  262. package/dist/types/src/components/progress-view/progress-view.d.ts +0 -13
  263. package/dist/types/src/components/progress-view/use-liquid-progress.d.ts +0 -3
  264. package/dist/types/src/components/radio-group/radio-group.d.ts +0 -20
  265. package/dist/types/src/components/search-field/expanding-search-field.d.ts +0 -5
  266. package/dist/types/src/components/search-field/search-field.d.ts +0 -9
  267. package/dist/types/src/components/search-list/search-list.d.ts +0 -22
  268. package/dist/types/src/components/section/section.d.ts +0 -18
  269. package/dist/types/src/components/secure-field/secure-field.d.ts +0 -4
  270. package/dist/types/src/components/segmented-control/segmented-control.d.ts +0 -25
  271. package/dist/types/src/components/sheet/modal-environment.d.ts +0 -2
  272. package/dist/types/src/components/sheet/sheet-portal.d.ts +0 -5
  273. package/dist/types/src/components/sheet/sheet.d.ts +0 -26
  274. package/dist/types/src/components/sheet/use-sheet-focus.d.ts +0 -3
  275. package/dist/types/src/components/sidebar/sidebar.d.ts +0 -24
  276. package/dist/types/src/components/skeleton/skeleton.d.ts +0 -9
  277. package/dist/types/src/components/slider/slider.d.ts +0 -17
  278. package/dist/types/src/components/slosh-slider/liquid-step.d.ts +0 -6
  279. package/dist/types/src/components/slosh-slider/slosh-slider.d.ts +0 -21
  280. package/dist/types/src/components/stat-tile/index.d.ts +0 -1
  281. package/dist/types/src/components/stat-tile/stat-tile.d.ts +0 -20
  282. package/dist/types/src/components/status-indicator/status-indicator.d.ts +0 -17
  283. package/dist/types/src/components/stepper/rolling-digit.d.ts +0 -11
  284. package/dist/types/src/components/stepper/stepper.d.ts +0 -22
  285. package/dist/types/src/components/swatch-picker/swatch-picker.d.ts +0 -22
  286. package/dist/types/src/components/tab-bar/tab-bar.d.ts +0 -43
  287. package/dist/types/src/components/tab-view/tab-view.d.ts +0 -27
  288. package/dist/types/src/components/text-editor/text-editor.d.ts +0 -9
  289. package/dist/types/src/components/text-field/text-field.d.ts +0 -33
  290. package/dist/types/src/components/toast/toast-store.d.ts +0 -52
  291. package/dist/types/src/components/toggle/toggle.d.ts +0 -22
  292. package/dist/types/src/components/tooltip/tooltip-host.d.ts +0 -7
  293. package/dist/types/src/components/view-controller/index.d.ts +0 -1
  294. package/dist/types/src/components/view-controller/view-controller.d.ts +0 -21
  295. package/dist/types/src/components/wake-slider/wake-slider.d.ts +0 -15
  296. package/dist/types/src/hooks/scroll/minimize-decision.d.ts +0 -2
  297. package/dist/types/src/hooks/use-anchored-disclosure.d.ts +0 -9
  298. package/dist/types/src/hooks/use-floating-dismiss.d.ts +0 -3
  299. package/dist/types/src/hooks/viewport/types.d.ts +0 -19
  300. package/dist/types/src/hooks/viewport/viewport-metrics.d.ts +0 -3
  301. package/dist/types/src/icons/icons.d.ts +0 -616
  302. package/dist/types/src/index.d.ts +0 -73
  303. package/dist/types/src/lib/class-names.d.ts +0 -2
  304. package/dist/types/src/lib/date.d.ts +0 -50
  305. package/dist/types/src/lib/floating-layers.d.ts +0 -8
  306. package/dist/types/src/lib/range-value.d.ts +0 -4
  307. package/dist/types/src/machines/popover.machine.d.ts +0 -30
  308. package/dist/types/src/motion/transitions.d.ts +0 -170
  309. package/src/appearance/index.ts +0 -2
  310. package/src/appearance/platform.tsx +0 -102
  311. package/src/appearance/theme.tsx +0 -467
  312. package/src/components/accordion/accordion.tsx +0 -70
  313. package/src/components/ambient/ambient.tsx +0 -35
  314. package/src/components/ambient/index.ts +0 -1
  315. package/src/components/aspect-ratio/aspect-ratio.tsx +0 -27
  316. package/src/components/breadcrumb/breadcrumb.tsx +0 -73
  317. package/src/components/button/button-styles.ts +0 -49
  318. package/src/components/button/button.tsx +0 -107
  319. package/src/components/button/icon-button.tsx +0 -33
  320. package/src/components/button/pending-spinner.tsx +0 -14
  321. package/src/components/button/use-pending-indicator.ts +0 -22
  322. package/src/components/chip/chip.tsx +0 -45
  323. package/src/components/code-block/code-block.tsx +0 -48
  324. package/src/components/combo-box/combo-box.tsx +0 -13
  325. package/src/components/command/command.tsx +0 -149
  326. package/src/components/compact-date-picker/calendar-month.ts +0 -109
  327. package/src/components/compact-date-picker/compact-date-picker.tsx +0 -337
  328. package/src/components/compact-time-picker/compact-time-picker.tsx +0 -321
  329. package/src/components/compact-time-picker/time-value.ts +0 -58
  330. package/src/components/content-unavailable-view/content-unavailable-view.tsx +0 -78
  331. package/src/components/content-view/content-view.tsx +0 -215
  332. package/src/components/content-view/index.ts +0 -1
  333. package/src/components/context-menu/conceal-menu-source.ts +0 -30
  334. package/src/components/context-menu/context-menu-host.tsx +0 -459
  335. package/src/components/context-menu/context-menu-store.ts +0 -167
  336. package/src/components/context-menu/menu-navigation.ts +0 -36
  337. package/src/components/context-menu/menu-position.ts +0 -38
  338. package/src/components/context-menu/menu-reveal.ts +0 -42
  339. package/src/components/context-menu/use-context-menu.ts +0 -73
  340. package/src/components/conversation/conversation.tsx +0 -309
  341. package/src/components/conversation/index.ts +0 -1
  342. package/src/components/date-picker/date-picker.tsx +0 -106
  343. package/src/components/date-picker/date-value.ts +0 -22
  344. package/src/components/dialog/dialog-host.tsx +0 -119
  345. package/src/components/dialog/dialog-store.ts +0 -66
  346. package/src/components/dialog/dialog.tsx +0 -211
  347. package/src/components/dialog/index.ts +0 -1
  348. package/src/components/disclosure-group/disclosure-group.tsx +0 -108
  349. package/src/components/divider/divider.tsx +0 -33
  350. package/src/components/inline-disclosure/inline-disclosure.tsx +0 -53
  351. package/src/components/keyboard-shortcut/keyboard-shortcut.tsx +0 -32
  352. package/src/components/labeled-content/labeled-content.tsx +0 -84
  353. package/src/components/locale-switcher/index.ts +0 -1
  354. package/src/components/locale-switcher/locale-switcher.tsx +0 -310
  355. package/src/components/menu/menu.tsx +0 -85
  356. package/src/components/morph/index.ts +0 -2
  357. package/src/components/morph/morph.tsx +0 -258
  358. package/src/components/morph/use-morph-disclosure.ts +0 -27
  359. package/src/components/one-time-code/one-time-code.tsx +0 -234
  360. package/src/components/picker/picker-trigger.ts +0 -22
  361. package/src/components/picker/picker.tsx +0 -404
  362. package/src/components/popover/anchored-surface.tsx +0 -264
  363. package/src/components/popover/index.ts +0 -50
  364. package/src/components/popover/popover-content.tsx +0 -374
  365. package/src/components/popover/popover-root.tsx +0 -97
  366. package/src/components/popover/popover-trigger.tsx +0 -71
  367. package/src/components/profile-image/profile-image.tsx +0 -96
  368. package/src/components/progress-view/progress-view.tsx +0 -72
  369. package/src/components/progress-view/use-liquid-progress.ts +0 -43
  370. package/src/components/radio-group/radio-group.tsx +0 -86
  371. package/src/components/search-field/expanding-search-field.tsx +0 -197
  372. package/src/components/search-field/search-field.tsx +0 -66
  373. package/src/components/search-list/search-list.tsx +0 -276
  374. package/src/components/section/section.tsx +0 -75
  375. package/src/components/secure-field/secure-field.tsx +0 -8
  376. package/src/components/segmented-control/segmented-control.tsx +0 -157
  377. package/src/components/sheet/modal-environment.ts +0 -82
  378. package/src/components/sheet/sheet-portal.tsx +0 -62
  379. package/src/components/sheet/sheet.tsx +0 -165
  380. package/src/components/sheet/use-sheet-focus.ts +0 -109
  381. package/src/components/sidebar/sidebar.tsx +0 -102
  382. package/src/components/skeleton/skeleton.tsx +0 -38
  383. package/src/components/slider/slider.tsx +0 -134
  384. package/src/components/slosh-slider/liquid-step.ts +0 -43
  385. package/src/components/slosh-slider/slosh-slider.tsx +0 -294
  386. package/src/components/stat-tile/index.ts +0 -1
  387. package/src/components/stat-tile/stat-tile.tsx +0 -90
  388. package/src/components/status-indicator/status-indicator.tsx +0 -54
  389. package/src/components/stepper/rolling-digit.tsx +0 -91
  390. package/src/components/stepper/stepper.tsx +0 -136
  391. package/src/components/swatch-picker/swatch-picker.tsx +0 -138
  392. package/src/components/tab-bar/tab-bar.tsx +0 -182
  393. package/src/components/tab-view/tab-view.tsx +0 -155
  394. package/src/components/table/table.tsx +0 -151
  395. package/src/components/text-editor/text-editor.tsx +0 -42
  396. package/src/components/text-field/text-field.tsx +0 -200
  397. package/src/components/toast/toast-store.ts +0 -164
  398. package/src/components/toast/toaster.tsx +0 -407
  399. package/src/components/toggle/toggle.tsx +0 -320
  400. package/src/components/tooltip/tooltip-host.tsx +0 -178
  401. package/src/components/view-controller/index.ts +0 -1
  402. package/src/components/view-controller/view-controller.tsx +0 -75
  403. package/src/components/wake-slider/wake-slider.tsx +0 -260
  404. package/src/hooks/use-anchored-disclosure.ts +0 -23
  405. package/src/hooks/use-anchored-placement.ts +0 -40
  406. package/src/hooks/use-dismiss.ts +0 -44
  407. package/src/hooks/use-floating-dismiss.ts +0 -30
  408. package/src/hooks/use-media-query.ts +0 -94
  409. package/src/hooks/use-minimize-on-scroll.ts +0 -77
  410. package/src/hooks/viewport/types.ts +0 -19
  411. package/src/hooks/viewport/viewport-metrics.ts +0 -19
  412. package/src/icons/icons.tsx +0 -458
  413. package/src/index.ts +0 -107
  414. package/src/lib/anchored-placement.ts +0 -91
  415. package/src/lib/class-names.ts +0 -21
  416. package/src/lib/clipboard.ts +0 -15
  417. package/src/lib/date.ts +0 -86
  418. package/src/lib/floating-layers.ts +0 -53
  419. package/src/lib/haptics.ts +0 -23
  420. package/src/lib/language.ts +0 -16
  421. package/src/lib/range-value.ts +0 -38
  422. package/src/lib/screen-edges.ts +0 -44
  423. package/src/lib/shapes.ts +0 -59
  424. package/src/machines/popover.machine.ts +0 -51
  425. package/src/motion/transitions.ts +0 -97
  426. package/src/tokens.ts +0 -1
  427. /package/dist/{types/src/tokens.d.ts → tokens.js} +0 -0
@@ -1,407 +0,0 @@
1
- import { AnimatePresence, motion, useReducedMotion } from "motion/react";
2
- import {
3
- useEffect,
4
- useId,
5
- useLayoutEffect,
6
- useRef,
7
- useState,
8
- useSyncExternalStore,
9
- } from "react";
10
- import { CheckIcon, CloseIcon } from "../../icons/icons";
11
- import { cn } from "../../lib/class-names";
12
- import { spring } from "../../motion/transitions";
13
- import {
14
- getToasts,
15
- subscribeToasts,
16
- type Toast,
17
- type ToastSize,
18
- type ToastTone,
19
- toast as toastApi,
20
- toastLimits,
21
- } from "./toast-store";
22
-
23
- const PILL: Record<ToastSize, number> = { sm: 32, md: 40, lg: 48 };
24
-
25
- const contentClasses: Record<ToastSize, string> = {
26
- sm: "absolute top-0 left-0 flex w-max max-w-[min(420px,calc(100vw-24px))] items-start gap-2 py-2 pr-3 pl-2 text-on-inverse",
27
- md: "absolute top-0 left-0 flex w-max max-w-[min(420px,calc(100vw-24px))] items-start gap-2.5 py-[10px] pr-4 pl-[10px] text-on-inverse",
28
- lg: "absolute top-0 left-0 flex w-max max-w-[min(420px,calc(100vw-24px))] items-start gap-3 py-3 pr-5 pl-3 text-on-inverse",
29
- };
30
- const titleClasses: Record<ToastSize, string> = {
31
- sm: "text-footnote leading-4 font-semibold",
32
- md: "text-subheadline leading-5 font-semibold",
33
- lg: "text-body leading-6 font-semibold",
34
- };
35
- const descriptionClasses: Record<ToastSize, string> = {
36
- sm: "text-caption2 leading-snug text-on-inverse/70",
37
- md: "text-footnote leading-snug text-on-inverse/70",
38
- lg: "text-subheadline leading-snug text-on-inverse/70",
39
- };
40
- const actionClasses: Record<ToastSize, string> = {
41
- sm: "ml-1 shrink-0 self-center rounded-full bg-on-inverse/12 px-2.5 py-0.5 text-caption2 font-semibold text-on-inverse transition-colors hover:bg-on-inverse/20",
42
- md: "ml-1 shrink-0 self-center rounded-full bg-on-inverse/12 px-3 py-1 text-footnote font-semibold text-on-inverse transition-colors hover:bg-on-inverse/20",
43
- lg: "ml-1 shrink-0 self-center rounded-full bg-on-inverse/12 px-3.5 py-1.5 text-subheadline font-semibold text-on-inverse transition-colors hover:bg-on-inverse/20",
44
- };
45
- const toneIconClasses: Record<ToastSize, string> = {
46
- sm: "flex size-4 shrink-0 items-center justify-center rounded-full",
47
- md: "flex size-5 shrink-0 items-center justify-center rounded-full",
48
- lg: "flex size-6 shrink-0 items-center justify-center rounded-full",
49
- };
50
- const EMPTY: Toast[] = [];
51
- /** A little loose, so the body overshoots and settles like a drop of honey. */
52
- const BODY_SPRING = {
53
- type: "spring",
54
- stiffness: 260,
55
- damping: 19,
56
- mass: 0.9,
57
- } as const;
58
-
59
- /**
60
- * Toasts drop from the top centre like an island: a small pill carrying the
61
- * icon, out of which the message flows. Both shapes sit under an SVG "goo"
62
- * filter, so where they meet looks liquid while they grow, morph between
63
- * states and shrink away. Text is drawn above the filter to stay crisp.
64
- */
65
- export function Toaster({
66
- className,
67
- label = "Notifications",
68
- }: {
69
- className?: string;
70
- label?: string;
71
- }) {
72
- const toasts = useSyncExternalStore(subscribeToasts, getToasts, () => EMPTY);
73
- const filterId = useId();
74
- const reducedMotion = useReducedMotion();
75
- const [hovered, setHovered] = useState(false);
76
- const visible = toasts.slice(0, toastLimits.visible);
77
-
78
- return (
79
- <>
80
- <GooFilter id={filterId} />
81
- <section
82
- aria-label={label}
83
- aria-live="polite"
84
- className={cn(
85
- "pointer-events-none fixed inset-x-0 top-[max(10px,env(safe-area-inset-top))] z-[60] flex justify-center px-3",
86
- className,
87
- )}
88
- >
89
- <ol
90
- className="relative flex w-full max-w-[420px] flex-col items-center"
91
- onMouseEnter={() => setHovered(true)}
92
- onMouseLeave={() => setHovered(false)}
93
- >
94
- <AnimatePresence initial={false}>
95
- {visible.map((item, index) => (
96
- <ToastItem
97
- key={item.id}
98
- toast={item}
99
- index={index}
100
- expanded={hovered}
101
- paused={hovered}
102
- filterId={filterId}
103
- reducedMotion={Boolean(reducedMotion)}
104
- />
105
- ))}
106
- </AnimatePresence>
107
- </ol>
108
- </section>
109
- </>
110
- );
111
- }
112
-
113
- function GooFilter({ id }: { id: string }) {
114
- return (
115
- <svg aria-hidden="true" className="pointer-events-none absolute size-0">
116
- <defs>
117
- <filter id={id}>
118
- <feGaussianBlur in="SourceGraphic" stdDeviation="7" result="blur" />
119
- <feColorMatrix
120
- in="blur"
121
- mode="matrix"
122
- values="1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 22 -10"
123
- result="goo"
124
- />
125
- <feComposite in="SourceGraphic" in2="goo" operator="atop" />
126
- </filter>
127
- </defs>
128
- </svg>
129
- );
130
- }
131
-
132
- function ToastItem({
133
- toast,
134
- index,
135
- expanded,
136
- paused,
137
- filterId,
138
- reducedMotion,
139
- }: {
140
- toast: Toast;
141
- index: number;
142
- expanded: boolean;
143
- paused: boolean;
144
- filterId: string;
145
- reducedMotion: boolean;
146
- }) {
147
- const pill = PILL[toast.size];
148
- const content = useRef<HTMLDivElement>(null);
149
- const [size, setSize] = useState({
150
- width: pill,
151
- height: pill,
152
- });
153
- const [open, setOpen] = useState(false);
154
-
155
- // The body flows out of the pill a beat after it lands.
156
- useEffect(() => {
157
- const timer = setTimeout(() => setOpen(true), reducedMotion ? 0 : 140);
158
- return () => clearTimeout(timer);
159
- }, [reducedMotion]);
160
-
161
- useLayoutEffect(() => {
162
- const element = content.current;
163
- if (!element) return;
164
- const measure = () =>
165
- setSize({
166
- width: Math.ceil(element.offsetWidth),
167
- height: Math.ceil(element.offsetHeight),
168
- });
169
- measure();
170
- const observer = new ResizeObserver(measure);
171
- observer.observe(element);
172
- return () => observer.disconnect();
173
- }, []);
174
-
175
- useEffect(() => {
176
- if (toast.duration === null || paused) return;
177
- const timer = setTimeout(() => toastApi.dismiss(toast.id), toast.duration);
178
- return () => clearTimeout(timer);
179
- }, [toast.id, toast.duration, paused]);
180
-
181
- const width = open ? size.width : pill;
182
- const height = open ? size.height : pill;
183
- // Older toasts tuck in behind the newest, and fan out on hover.
184
- const stacked = !expanded && index > 0;
185
-
186
- return (
187
- <motion.li
188
- layout={!reducedMotion}
189
- className="pointer-events-none absolute inset-x-0 top-0 flex justify-center"
190
- style={{ zIndex: 10 - index }}
191
- initial={reducedMotion ? false : { opacity: 0, y: -24, scale: 0.6 }}
192
- animate={{
193
- opacity: stacked ? 1 - index * 0.25 : 1,
194
- y: stacked ? index * 9 : index * (pill + 14) + index * 6,
195
- scale: stacked ? 1 - index * 0.05 : 1,
196
- }}
197
- exit={
198
- reducedMotion
199
- ? { opacity: 0 }
200
- : {
201
- opacity: 0,
202
- y: -18,
203
- scale: 0.6,
204
- transition: spring.snappy,
205
- }
206
- }
207
- transition={reducedMotion ? { duration: 0 } : spring.bouncy}
208
- drag={reducedMotion ? false : "y"}
209
- dragConstraints={{ top: 0, bottom: 0 }}
210
- dragElastic={{ top: 0.6, bottom: 0.1 }}
211
- onDragEnd={(_, info) => {
212
- if (info.offset.y < -30 || info.velocity.y < -300)
213
- toastApi.dismiss(toast.id);
214
- }}
215
- >
216
- <motion.div
217
- role="status"
218
- className="pointer-events-auto relative"
219
- initial={{ width: pill, height: pill }}
220
- animate={{ width, height }}
221
- transition={reducedMotion ? { duration: 0 } : BODY_SPRING}
222
- >
223
- {/* Shapes, under the goo filter; padded so the blur isn't clipped. */}
224
- <div
225
- aria-hidden="true"
226
- className="absolute -inset-3"
227
- style={{
228
- filter: reducedMotion ? undefined : `url(#${filterId})`,
229
- }}
230
- >
231
- <motion.span
232
- className="bg-inverse absolute top-3 left-3 rounded-full shadow-xl"
233
- style={{ width: pill, height: pill }}
234
- animate={{ scale: open ? 1 : 1.06 }}
235
- transition={reducedMotion ? { duration: 0 } : spring.bouncy}
236
- />
237
- <motion.span
238
- className="bg-inverse absolute top-3 left-3"
239
- initial={{
240
- width: pill,
241
- height: pill,
242
- borderRadius: pill / 2,
243
- }}
244
- animate={{
245
- width,
246
- height,
247
- borderRadius: Math.min(pill / 2, height / 2, 22),
248
- }}
249
- transition={reducedMotion ? { duration: 0 } : BODY_SPRING}
250
- />
251
- </div>
252
-
253
- {/* Content, crisp above the shapes. */}
254
- <motion.div
255
- ref={content}
256
- className={contentClasses[toast.size]}
257
- style={{ minHeight: pill }}
258
- animate={{ opacity: open ? 1 : 0 }}
259
- transition={
260
- reducedMotion
261
- ? { duration: 0 }
262
- : {
263
- duration: open ? 0.22 : 0.1,
264
- delay: open ? 0.08 : 0,
265
- }
266
- }
267
- >
268
- <ToneIcon
269
- tone={toast.tone}
270
- size={toast.size}
271
- reducedMotion={reducedMotion}
272
- />
273
- <div className="flex min-w-0 flex-col py-px">
274
- <AnimatePresence mode="popLayout" initial={false}>
275
- <motion.span
276
- key={toast.title}
277
- className={titleClasses[toast.size]}
278
- initial={
279
- reducedMotion
280
- ? false
281
- : {
282
- opacity: 0,
283
- y: 6,
284
- filter: "blur(4px)",
285
- }
286
- }
287
- animate={{
288
- opacity: 1,
289
- y: 0,
290
- filter: "blur(0px)",
291
- }}
292
- exit={
293
- reducedMotion
294
- ? { opacity: 0 }
295
- : {
296
- opacity: 0,
297
- y: -6,
298
- filter: "blur(4px)",
299
- }
300
- }
301
- transition={reducedMotion ? { duration: 0 } : spring.snappy}
302
- >
303
- {toast.title}
304
- </motion.span>
305
- </AnimatePresence>
306
- {toast.description && (
307
- <span className={descriptionClasses[toast.size]}>
308
- {toast.description}
309
- </span>
310
- )}
311
- </div>
312
- {toast.action && (
313
- <button
314
- type="button"
315
- onClick={() => {
316
- toast.action?.onClick();
317
- toastApi.dismiss(toast.id);
318
- }}
319
- className={actionClasses[toast.size]}
320
- >
321
- {toast.action.label}
322
- </button>
323
- )}
324
- </motion.div>
325
- </motion.div>
326
- </motion.li>
327
- );
328
- }
329
-
330
- const toneColors: Record<ToastTone, string> = {
331
- neutral: "bg-transparent",
332
- success: "bg-success text-white",
333
- error: "bg-danger text-white",
334
- loading: "bg-on-inverse/15 text-on-inverse",
335
- };
336
-
337
- function ToneIcon({
338
- tone,
339
- size,
340
- reducedMotion,
341
- }: {
342
- tone: ToastTone;
343
- size: ToastSize;
344
- reducedMotion: boolean;
345
- }) {
346
- return (
347
- <AnimatePresence mode="popLayout" initial={false}>
348
- <motion.span
349
- key={tone}
350
- className={cn(toneIconClasses[size], toneColors[tone])}
351
- initial={
352
- reducedMotion
353
- ? false
354
- : {
355
- scale: 0.3,
356
- opacity: 0,
357
- rotate: -40,
358
- }
359
- }
360
- animate={{ scale: 1, opacity: 1, rotate: 0 }}
361
- exit={{ scale: 0.3, opacity: 0 }}
362
- transition={reducedMotion ? { duration: 0 } : spring.bouncy}
363
- >
364
- {tone === "success" && <CheckIcon size={13} strokeWidth={3} />}
365
- {tone === "error" && <CloseIcon size={12} strokeWidth={3} />}
366
- {/* The full stop from the Notables mark. */}
367
- {tone === "neutral" && (
368
- <span className="size-2 rounded-full bg-[#EE8A2A]" />
369
- )}
370
- {tone === "loading" && <Spinner reducedMotion={reducedMotion} />}
371
- </motion.span>
372
- </AnimatePresence>
373
- );
374
- }
375
-
376
- function Spinner({ reducedMotion }: { reducedMotion: boolean }) {
377
- return (
378
- <motion.svg
379
- viewBox="0 0 20 20"
380
- className="size-4"
381
- animate={reducedMotion ? undefined : { rotate: 360 }}
382
- transition={{
383
- repeat: Number.POSITIVE_INFINITY,
384
- duration: 0.8,
385
- ease: "linear",
386
- }}
387
- aria-hidden="true"
388
- >
389
- <circle
390
- cx="10"
391
- cy="10"
392
- r="7"
393
- fill="none"
394
- stroke="currentColor"
395
- strokeOpacity="0.25"
396
- strokeWidth="2.4"
397
- />
398
- <path
399
- d="M10 3a7 7 0 0 1 7 7"
400
- fill="none"
401
- stroke="currentColor"
402
- strokeWidth="2.4"
403
- strokeLinecap="round"
404
- />
405
- </motion.svg>
406
- );
407
- }