@passui/react 0.1.46 → 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 (429) 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 -32
  259. package/dist/types/src/components/popover/popover-fit.d.ts +0 -21
  260. package/dist/types/src/components/popover/popover-root.d.ts +0 -22
  261. package/dist/types/src/components/popover/popover-trigger.d.ts +0 -23
  262. package/dist/types/src/components/profile-image/profile-image.d.ts +0 -9
  263. package/dist/types/src/components/progress-view/progress-view.d.ts +0 -13
  264. package/dist/types/src/components/progress-view/use-liquid-progress.d.ts +0 -3
  265. package/dist/types/src/components/radio-group/radio-group.d.ts +0 -20
  266. package/dist/types/src/components/search-field/expanding-search-field.d.ts +0 -5
  267. package/dist/types/src/components/search-field/search-field.d.ts +0 -9
  268. package/dist/types/src/components/search-list/search-list.d.ts +0 -22
  269. package/dist/types/src/components/section/section.d.ts +0 -18
  270. package/dist/types/src/components/secure-field/secure-field.d.ts +0 -4
  271. package/dist/types/src/components/segmented-control/segmented-control.d.ts +0 -25
  272. package/dist/types/src/components/sheet/modal-environment.d.ts +0 -2
  273. package/dist/types/src/components/sheet/sheet-portal.d.ts +0 -5
  274. package/dist/types/src/components/sheet/sheet.d.ts +0 -26
  275. package/dist/types/src/components/sheet/use-sheet-focus.d.ts +0 -3
  276. package/dist/types/src/components/sidebar/sidebar.d.ts +0 -24
  277. package/dist/types/src/components/skeleton/skeleton.d.ts +0 -9
  278. package/dist/types/src/components/slider/slider.d.ts +0 -17
  279. package/dist/types/src/components/slosh-slider/liquid-step.d.ts +0 -6
  280. package/dist/types/src/components/slosh-slider/slosh-slider.d.ts +0 -21
  281. package/dist/types/src/components/stat-tile/index.d.ts +0 -1
  282. package/dist/types/src/components/stat-tile/stat-tile.d.ts +0 -20
  283. package/dist/types/src/components/status-indicator/status-indicator.d.ts +0 -17
  284. package/dist/types/src/components/stepper/rolling-digit.d.ts +0 -11
  285. package/dist/types/src/components/stepper/stepper.d.ts +0 -22
  286. package/dist/types/src/components/swatch-picker/swatch-picker.d.ts +0 -22
  287. package/dist/types/src/components/tab-bar/tab-bar.d.ts +0 -43
  288. package/dist/types/src/components/tab-view/tab-view.d.ts +0 -27
  289. package/dist/types/src/components/text-editor/text-editor.d.ts +0 -9
  290. package/dist/types/src/components/text-field/text-field.d.ts +0 -33
  291. package/dist/types/src/components/toast/toast-store.d.ts +0 -52
  292. package/dist/types/src/components/toggle/toggle.d.ts +0 -22
  293. package/dist/types/src/components/tooltip/tooltip-host.d.ts +0 -7
  294. package/dist/types/src/components/view-controller/index.d.ts +0 -1
  295. package/dist/types/src/components/view-controller/view-controller.d.ts +0 -21
  296. package/dist/types/src/components/wake-slider/wake-slider.d.ts +0 -15
  297. package/dist/types/src/hooks/scroll/minimize-decision.d.ts +0 -2
  298. package/dist/types/src/hooks/use-anchored-disclosure.d.ts +0 -9
  299. package/dist/types/src/hooks/use-floating-dismiss.d.ts +0 -3
  300. package/dist/types/src/hooks/viewport/types.d.ts +0 -19
  301. package/dist/types/src/hooks/viewport/viewport-metrics.d.ts +0 -3
  302. package/dist/types/src/icons/icons.d.ts +0 -616
  303. package/dist/types/src/index.d.ts +0 -73
  304. package/dist/types/src/lib/class-names.d.ts +0 -2
  305. package/dist/types/src/lib/date.d.ts +0 -50
  306. package/dist/types/src/lib/floating-layers.d.ts +0 -8
  307. package/dist/types/src/lib/range-value.d.ts +0 -4
  308. package/dist/types/src/machines/popover.machine.d.ts +0 -30
  309. package/dist/types/src/motion/transitions.d.ts +0 -170
  310. package/src/appearance/index.ts +0 -2
  311. package/src/appearance/platform.tsx +0 -102
  312. package/src/appearance/theme.tsx +0 -467
  313. package/src/components/accordion/accordion.tsx +0 -70
  314. package/src/components/ambient/ambient.tsx +0 -35
  315. package/src/components/ambient/index.ts +0 -1
  316. package/src/components/aspect-ratio/aspect-ratio.tsx +0 -27
  317. package/src/components/breadcrumb/breadcrumb.tsx +0 -73
  318. package/src/components/button/button-styles.ts +0 -49
  319. package/src/components/button/button.tsx +0 -107
  320. package/src/components/button/icon-button.tsx +0 -33
  321. package/src/components/button/pending-spinner.tsx +0 -14
  322. package/src/components/button/use-pending-indicator.ts +0 -22
  323. package/src/components/chip/chip.tsx +0 -45
  324. package/src/components/code-block/code-block.tsx +0 -48
  325. package/src/components/combo-box/combo-box.tsx +0 -13
  326. package/src/components/command/command.tsx +0 -149
  327. package/src/components/compact-date-picker/calendar-month.ts +0 -109
  328. package/src/components/compact-date-picker/compact-date-picker.tsx +0 -337
  329. package/src/components/compact-time-picker/compact-time-picker.tsx +0 -321
  330. package/src/components/compact-time-picker/time-value.ts +0 -58
  331. package/src/components/content-unavailable-view/content-unavailable-view.tsx +0 -78
  332. package/src/components/content-view/content-view.tsx +0 -215
  333. package/src/components/content-view/index.ts +0 -1
  334. package/src/components/context-menu/conceal-menu-source.ts +0 -30
  335. package/src/components/context-menu/context-menu-host.tsx +0 -459
  336. package/src/components/context-menu/context-menu-store.ts +0 -167
  337. package/src/components/context-menu/menu-navigation.ts +0 -36
  338. package/src/components/context-menu/menu-position.ts +0 -38
  339. package/src/components/context-menu/menu-reveal.ts +0 -42
  340. package/src/components/context-menu/use-context-menu.ts +0 -73
  341. package/src/components/conversation/conversation.tsx +0 -309
  342. package/src/components/conversation/index.ts +0 -1
  343. package/src/components/date-picker/date-picker.tsx +0 -106
  344. package/src/components/date-picker/date-value.ts +0 -22
  345. package/src/components/dialog/dialog-host.tsx +0 -119
  346. package/src/components/dialog/dialog-store.ts +0 -66
  347. package/src/components/dialog/dialog.tsx +0 -211
  348. package/src/components/dialog/index.ts +0 -1
  349. package/src/components/disclosure-group/disclosure-group.tsx +0 -108
  350. package/src/components/divider/divider.tsx +0 -33
  351. package/src/components/inline-disclosure/inline-disclosure.tsx +0 -53
  352. package/src/components/keyboard-shortcut/keyboard-shortcut.tsx +0 -32
  353. package/src/components/labeled-content/labeled-content.tsx +0 -84
  354. package/src/components/locale-switcher/index.ts +0 -1
  355. package/src/components/locale-switcher/locale-switcher.tsx +0 -311
  356. package/src/components/menu/menu.tsx +0 -85
  357. package/src/components/morph/index.ts +0 -2
  358. package/src/components/morph/morph.tsx +0 -258
  359. package/src/components/morph/use-morph-disclosure.ts +0 -27
  360. package/src/components/one-time-code/one-time-code.tsx +0 -234
  361. package/src/components/picker/picker-trigger.ts +0 -22
  362. package/src/components/picker/picker.tsx +0 -404
  363. package/src/components/popover/anchored-surface.tsx +0 -264
  364. package/src/components/popover/index.ts +0 -50
  365. package/src/components/popover/popover-content.tsx +0 -334
  366. package/src/components/popover/popover-fit.ts +0 -74
  367. package/src/components/popover/popover-root.tsx +0 -97
  368. package/src/components/popover/popover-trigger.tsx +0 -71
  369. package/src/components/profile-image/profile-image.tsx +0 -96
  370. package/src/components/progress-view/progress-view.tsx +0 -72
  371. package/src/components/progress-view/use-liquid-progress.ts +0 -43
  372. package/src/components/radio-group/radio-group.tsx +0 -86
  373. package/src/components/search-field/expanding-search-field.tsx +0 -197
  374. package/src/components/search-field/search-field.tsx +0 -66
  375. package/src/components/search-list/search-list.tsx +0 -276
  376. package/src/components/section/section.tsx +0 -75
  377. package/src/components/secure-field/secure-field.tsx +0 -8
  378. package/src/components/segmented-control/segmented-control.tsx +0 -157
  379. package/src/components/sheet/modal-environment.ts +0 -82
  380. package/src/components/sheet/sheet-portal.tsx +0 -62
  381. package/src/components/sheet/sheet.tsx +0 -165
  382. package/src/components/sheet/use-sheet-focus.ts +0 -109
  383. package/src/components/sidebar/sidebar.tsx +0 -102
  384. package/src/components/skeleton/skeleton.tsx +0 -38
  385. package/src/components/slider/slider.tsx +0 -134
  386. package/src/components/slosh-slider/liquid-step.ts +0 -43
  387. package/src/components/slosh-slider/slosh-slider.tsx +0 -294
  388. package/src/components/stat-tile/index.ts +0 -1
  389. package/src/components/stat-tile/stat-tile.tsx +0 -90
  390. package/src/components/status-indicator/status-indicator.tsx +0 -54
  391. package/src/components/stepper/rolling-digit.tsx +0 -91
  392. package/src/components/stepper/stepper.tsx +0 -136
  393. package/src/components/swatch-picker/swatch-picker.tsx +0 -138
  394. package/src/components/tab-bar/tab-bar.tsx +0 -182
  395. package/src/components/tab-view/tab-view.tsx +0 -155
  396. package/src/components/table/table.tsx +0 -151
  397. package/src/components/text-editor/text-editor.tsx +0 -42
  398. package/src/components/text-field/text-field.tsx +0 -200
  399. package/src/components/toast/toast-store.ts +0 -164
  400. package/src/components/toast/toaster.tsx +0 -407
  401. package/src/components/toggle/toggle.tsx +0 -320
  402. package/src/components/tooltip/tooltip-host.tsx +0 -178
  403. package/src/components/view-controller/index.ts +0 -1
  404. package/src/components/view-controller/view-controller.tsx +0 -75
  405. package/src/components/wake-slider/wake-slider.tsx +0 -260
  406. package/src/hooks/use-anchored-disclosure.ts +0 -23
  407. package/src/hooks/use-anchored-placement.ts +0 -40
  408. package/src/hooks/use-dismiss.ts +0 -44
  409. package/src/hooks/use-floating-dismiss.ts +0 -30
  410. package/src/hooks/use-media-query.ts +0 -94
  411. package/src/hooks/use-minimize-on-scroll.ts +0 -77
  412. package/src/hooks/viewport/types.ts +0 -19
  413. package/src/hooks/viewport/viewport-metrics.ts +0 -19
  414. package/src/icons/icons.tsx +0 -458
  415. package/src/index.ts +0 -107
  416. package/src/lib/anchored-placement.ts +0 -91
  417. package/src/lib/class-names.ts +0 -21
  418. package/src/lib/clipboard.ts +0 -15
  419. package/src/lib/date.ts +0 -86
  420. package/src/lib/floating-layers.ts +0 -53
  421. package/src/lib/haptics.ts +0 -23
  422. package/src/lib/language.ts +0 -16
  423. package/src/lib/range-value.ts +0 -38
  424. package/src/lib/screen-edges.ts +0 -44
  425. package/src/lib/shapes.ts +0 -59
  426. package/src/machines/popover.machine.ts +0 -51
  427. package/src/motion/transitions.ts +0 -97
  428. package/src/tokens.ts +0 -1
  429. /package/dist/{types/src/tokens.d.ts → tokens.js} +0 -0
@@ -1,66 +0,0 @@
1
- /**
2
- * App-wide confirmation dialogs, replacing the browser's `confirm`.
3
- * `await confirmDialog({...})` resolves true when confirmed. Render one
4
- * `<DialogHost />`.
5
- */
6
- export interface ConfirmOptions {
7
- title: string;
8
- message?: string;
9
- confirmLabel?: string;
10
- cancelLabel?: string;
11
- /** Destructive actions are shown in red and are not the default button. */
12
- destructive?: boolean;
13
- }
14
-
15
- export interface PendingDialog extends ConfirmOptions {
16
- id: number;
17
- resolve: (confirmed: boolean) => void;
18
- }
19
-
20
- let current: PendingDialog | null = null;
21
- let nextId = 1;
22
- const queue: PendingDialog[] = [];
23
- let exitingId: number | null = null;
24
- const listeners = new Set<() => void>();
25
-
26
- const emit = () => {
27
- for (const listener of listeners) listener();
28
- };
29
-
30
- export function confirmDialog(options: ConfirmOptions): Promise<boolean> {
31
- return new Promise((resolve) => {
32
- const dialog = { ...options, id: nextId++, resolve };
33
- if (current || exitingId !== null) queue.push(dialog);
34
- else current = dialog;
35
- emit();
36
- });
37
- }
38
-
39
- export function settleDialog(confirmed: boolean, id?: number) {
40
- if (!current || exitingId !== null || (id !== undefined && current.id !== id))
41
- return;
42
- const settled = current;
43
- exitingId = settled.id;
44
- current = null;
45
- settled.resolve(confirmed);
46
- emit();
47
- }
48
-
49
- /** Advance queued confirmations only after the dismissed card has exited. */
50
- export function advanceDialogQueue() {
51
- if (exitingId === null) return;
52
- exitingId = null;
53
- current = queue.shift() ?? null;
54
- emit();
55
- }
56
-
57
- export function subscribeDialogs(listener: () => void) {
58
- listeners.add(listener);
59
- return () => {
60
- listeners.delete(listener);
61
- };
62
- }
63
-
64
- export function getDialog(): PendingDialog | null {
65
- return current;
66
- }
@@ -1,211 +0,0 @@
1
- import { Sheet } from "../sheet/sheet";
2
- import { AnimatePresence, motion, useReducedMotion } from "motion/react";
3
- import { Button } from "../button/button";
4
- import { cn } from "../../lib/class-names";
5
- import { contentCrossfade, spring } from "../../motion/transitions";
6
- import {
7
- createContext,
8
- useContext,
9
- useId,
10
- type FormEvent,
11
- type ReactNode,
12
- } from "react";
13
-
14
- const CloseContext = createContext<() => void>(() => {});
15
- export type DialogPresentation = "drawer" | "center" | "inline";
16
- export type DialogTone = "default" | "destructive";
17
- export type DialogSize = "sm" | "md" | "lg";
18
-
19
- const titleText: Record<DialogSize, string> = {
20
- sm: "text-subheadline",
21
- md: "text-title3",
22
- lg: "text-title2",
23
- };
24
- const descriptionText: Record<DialogSize, string> = {
25
- sm: "text-caption",
26
- md: "text-footnote",
27
- lg: "text-subheadline",
28
- };
29
- const bodySpacing: Record<DialogSize, string> = {
30
- sm: "gap-3 p-4",
31
- md: "gap-4 p-5",
32
- lg: "gap-5 p-6",
33
- };
34
- const footerSpacing: Record<DialogSize, string> = {
35
- sm: "pt-2",
36
- md: "pt-3",
37
- lg: "pt-4",
38
- };
39
-
40
- export type DialogProps = {
41
- open: boolean;
42
- onOpenChange: (open: boolean) => void;
43
- title: ReactNode;
44
- description?: ReactNode;
45
- children?: ReactNode;
46
- footer?: ReactNode;
47
- /** `drawer` (responsive sheet), `center` (floating panel), or `inline`. @default "drawer" */
48
- presentation?: DialogPresentation;
49
- /** Title, description, body and footer density. @default "md" */
50
- size?: DialogSize;
51
- className?: string;
52
- onSubmit?: (event: FormEvent<HTMLFormElement>) => void;
53
- };
54
- type ActionsProps = {
55
- submitLabel: ReactNode;
56
- cancelLabel: ReactNode;
57
- pending?: boolean;
58
- disabled?: boolean;
59
- tone?: DialogTone;
60
- onConfirm?: () => void;
61
- };
62
-
63
- export function Dialog({
64
- open,
65
- onOpenChange,
66
- title,
67
- description,
68
- children,
69
- footer,
70
- presentation = "drawer",
71
- size = "md",
72
- className,
73
- onSubmit,
74
- }: DialogProps) {
75
- const titleId = useId();
76
- const reducedMotion = useReducedMotion();
77
- const close = () => onOpenChange(false);
78
- const content = (
79
- <>
80
- {presentation !== "inline" && (
81
- <h2 id={titleId} className={cn(titleText[size], "font-semibold")}>
82
- {title}
83
- </h2>
84
- )}
85
- {description && (
86
- <div className={cn(descriptionText[size], "text-label-secondary")}>
87
- {description}
88
- </div>
89
- )}
90
- {children && <div className="flex flex-col gap-4">{children}</div>}
91
- {footer && (
92
- <div
93
- className={cn(
94
- "flex flex-wrap justify-end gap-2",
95
- footerSpacing[size],
96
- )}
97
- >
98
- {footer}
99
- </div>
100
- )}
101
- </>
102
- );
103
- const body = (
104
- <CloseContext value={close}>
105
- {onSubmit ? (
106
- <form
107
- onSubmit={onSubmit}
108
- className={cn(
109
- "flex min-h-0 flex-col overflow-y-auto",
110
- bodySpacing[size],
111
- className,
112
- )}
113
- >
114
- {content}
115
- </form>
116
- ) : (
117
- <div
118
- className={cn(
119
- "flex min-h-0 flex-col overflow-y-auto",
120
- bodySpacing[size],
121
- className,
122
- )}
123
- >
124
- {content}
125
- </div>
126
- )}
127
- </CloseContext>
128
- );
129
- if (presentation === "inline")
130
- return (
131
- <AnimatePresence initial={false}>
132
- {open && (
133
- <motion.div
134
- key={titleId}
135
- initial={{
136
- height: reducedMotion ? "auto" : 0,
137
- opacity: 0,
138
- scale: reducedMotion ? 1 : 0.97,
139
- }}
140
- animate={{
141
- height: "auto",
142
- opacity: 1,
143
- scale: 1,
144
- }}
145
- exit={{
146
- height: reducedMotion ? "auto" : 0,
147
- opacity: 0,
148
- scale: reducedMotion ? 1 : 0.98,
149
- }}
150
- transition={reducedMotion ? { duration: 0 } : spring.bouncy}
151
- className="overflow-hidden"
152
- style={{ transformOrigin: "top center" }}
153
- >
154
- <motion.div
155
- initial={reducedMotion ? false : contentCrossfade.initial}
156
- animate={reducedMotion ? undefined : contentCrossfade.animate}
157
- transition={
158
- reducedMotion ? { duration: 0 } : contentCrossfade.transition
159
- }
160
- >
161
- {body}
162
- </motion.div>
163
- </motion.div>
164
- )}
165
- </AnimatePresence>
166
- );
167
- return (
168
- <Sheet
169
- open={open}
170
- onClose={close}
171
- label=""
172
- labelledBy={titleId}
173
- placement={presentation === "center" ? "center" : "adaptive"}
174
- >
175
- {body}
176
- </Sheet>
177
- );
178
- }
179
-
180
- /** The standard footer: a primary action and a cancel that closes the dialog. */
181
- function Actions({
182
- submitLabel,
183
- cancelLabel,
184
- pending = false,
185
- disabled = false,
186
- tone = "default",
187
- onConfirm,
188
- }: ActionsProps) {
189
- const close = useContext(CloseContext);
190
- return (
191
- <>
192
- <Button
193
- type={onConfirm ? "button" : "submit"}
194
- variant={tone === "destructive" ? "ghost" : "default"}
195
- className={
196
- tone === "destructive" ? "bg-danger/10 text-danger" : undefined
197
- }
198
- isPending={pending}
199
- disabled={disabled}
200
- onClick={onConfirm}
201
- >
202
- {submitLabel}
203
- </Button>
204
- <Button type="button" variant="secondary" onClick={close}>
205
- {cancelLabel}
206
- </Button>
207
- </>
208
- );
209
- }
210
-
211
- Dialog.Actions = Actions;
@@ -1 +0,0 @@
1
- export * from "./dialog";
@@ -1,108 +0,0 @@
1
- import { Button } from "../button/button";
2
- import { type ReactNode, useId } from "react";
3
- import { ChevronDownIcon } from "../../icons/icons";
4
- import { cn } from "../../lib/class-names";
5
- import { InlineDisclosure } from "../inline-disclosure/inline-disclosure";
6
-
7
- export type DisclosureGroupSize = "sm" | "md" | "lg";
8
-
9
- const triggerSizes: Record<DisclosureGroupSize, string> = {
10
- sm: "h-auto min-h-9 w-full rounded-lg px-3 py-2 text-start text-footnote active:scale-100",
11
- md: "h-auto min-h-11 w-full rounded-xl px-4 py-3 text-start text-subheadline active:scale-100",
12
- lg: "h-auto min-h-13 w-full rounded-2xl px-5 py-4 text-start text-body active:scale-100",
13
- };
14
- const descriptionSizes: Record<DisclosureGroupSize, string> = {
15
- sm: "text-caption2 leading-caption2 font-normal break-words whitespace-normal text-label-secondary",
16
- md: "text-footnote leading-footnote font-normal break-words whitespace-normal text-label-secondary",
17
- lg: "text-subheadline leading-subheadline font-normal break-words whitespace-normal text-label-secondary",
18
- };
19
- const contentSizes: Record<DisclosureGroupSize, string> = {
20
- sm: "min-w-0 px-3 pb-3 text-footnote leading-footnote text-label-secondary [overflow-wrap:anywhere]",
21
- md: "min-w-0 px-4 pb-4 text-subheadline leading-subheadline text-label-secondary [overflow-wrap:anywhere]",
22
- lg: "min-w-0 px-5 pb-5 text-body leading-body text-label-secondary [overflow-wrap:anywhere]",
23
- };
24
- const chevronSizes: Record<DisclosureGroupSize, number> = {
25
- sm: 15,
26
- md: 17,
27
- lg: 19,
28
- };
29
-
30
- export interface DisclosureGroupProps {
31
- label: string;
32
- open: boolean;
33
- onOpenChange: (open: boolean) => void;
34
- children: ReactNode;
35
- disabled?: boolean;
36
- className?: string;
37
- /** Trigger layout when composed inside a shared surface such as Accordion. */
38
- triggerClassName?: string;
39
- /** Supporting text beneath the title. */
40
- description?: string;
41
- /** Trigger, description and content density. @default "md" */
42
- size?: DisclosureGroupSize;
43
- }
44
-
45
- /** A controlled, accessible disclosure row with the shared inline reveal. */
46
- export function DisclosureGroup({
47
- label,
48
- open,
49
- onOpenChange,
50
- children,
51
- disabled = false,
52
- className,
53
- triggerClassName,
54
- description,
55
- size = "md",
56
- }: DisclosureGroupProps) {
57
- const id = useId();
58
-
59
- return (
60
- <div className={cn("w-full min-w-0", className)}>
61
- <h3 className="m-0">
62
- <Button
63
- variant="ghost"
64
- contentClassName="w-full min-w-0 justify-between gap-3"
65
- type="button"
66
- id={`${id}-trigger`}
67
- aria-expanded={open}
68
- aria-controls={id}
69
- disabled={disabled}
70
- onClick={() => onOpenChange(!open)}
71
- className={cn(
72
- triggerSizes[size],
73
- "text-label hover:bg-fill/60 font-normal focus-visible:ring-offset-0 focus-visible:ring-inset",
74
- "focus-visible:outline-accent-text disabled:cursor-not-allowed disabled:opacity-40",
75
- triggerClassName,
76
- )}
77
- >
78
- <span className="flex min-w-0 flex-col gap-0.5">
79
- <span className="font-medium break-words whitespace-normal">
80
- {label}
81
- </span>
82
- {description && (
83
- <span className={descriptionSizes[size]}>{description}</span>
84
- )}
85
- </span>
86
- <ChevronDownIcon
87
- size={chevronSizes[size]}
88
- aria-hidden="true"
89
- className={cn(
90
- "text-label-tertiary duration-normal shrink-0 transition-transform motion-reduce:transition-none",
91
- open && "rotate-180",
92
- )}
93
- />
94
- </Button>
95
- </h3>
96
- <section
97
- id={id}
98
- aria-labelledby={`${id}-trigger`}
99
- aria-hidden={!open}
100
- inert={!open}
101
- >
102
- <InlineDisclosure open={open}>
103
- <div className={contentSizes[size]}>{children}</div>
104
- </InlineDisclosure>
105
- </section>
106
- </div>
107
- );
108
- }
@@ -1,33 +0,0 @@
1
- import type { HTMLAttributes } from "react";
2
- import { cn } from "../../lib/class-names";
3
-
4
- export type DividerOrientation = "horizontal" | "vertical";
5
-
6
- export interface DividerProps extends HTMLAttributes<HTMLHRElement> {
7
- orientation?: DividerOrientation;
8
- /** Decorative separators are omitted from the accessibility tree. @default true */
9
- decorative?: boolean;
10
- }
11
-
12
- /** A semantic separator using the shared surface color. */
13
- export function Divider({
14
- orientation = "horizontal",
15
- decorative = true,
16
- className,
17
- ...props
18
- }: DividerProps) {
19
- return (
20
- <hr
21
- {...props}
22
- role={decorative ? "none" : "separator"}
23
- aria-orientation={decorative ? undefined : orientation}
24
- className={cn(
25
- "bg-separator shrink-0 border-0",
26
- orientation === "horizontal"
27
- ? "h-px w-full"
28
- : "h-full w-px self-stretch",
29
- className,
30
- )}
31
- />
32
- );
33
- }
@@ -1,53 +0,0 @@
1
- import { AnimatePresence, motion, useReducedMotion } from "motion/react";
2
- import type { ReactNode } from "react";
3
- import { cn } from "../../lib/class-names";
4
- import { spring } from "../../motion/transitions";
5
-
6
- export interface InlineDisclosureProps {
7
- /** Whether the content is expanded. */
8
- open: boolean;
9
- children: ReactNode;
10
- className?: string;
11
- }
12
-
13
- /**
14
- * An inline, spring-driven reveal for settings editors and small details.
15
- *
16
- * Height and opacity animate together so following rows move continuously
17
- * instead of jumping. Motion is disabled when the user requests less motion.
18
- * The content unmounts after its exit animation completes.
19
- */
20
- export function InlineDisclosure({
21
- open,
22
- children,
23
- className,
24
- }: InlineDisclosureProps) {
25
- const reduceMotion = useReducedMotion();
26
-
27
- return (
28
- <AnimatePresence initial={false}>
29
- {open && (
30
- <motion.div
31
- key="inline-disclosure"
32
- initial={reduceMotion ? false : { height: 0, opacity: 0 }}
33
- animate={{ height: "auto", opacity: 1 }}
34
- exit={reduceMotion ? { opacity: 0 } : { height: 0, opacity: 0 }}
35
- transition={
36
- reduceMotion
37
- ? { duration: 0 }
38
- : {
39
- height: spring.smooth,
40
- opacity: {
41
- duration: 0.18,
42
- ease: "easeOut",
43
- },
44
- }
45
- }
46
- className={cn("overflow-hidden", className)}
47
- >
48
- {children}
49
- </motion.div>
50
- )}
51
- </AnimatePresence>
52
- );
53
- }
@@ -1,32 +0,0 @@
1
- import type { ComponentProps } from "react";
2
- import { cn } from "../../lib/class-names";
3
-
4
- export type KeyboardShortcutSize = "sm" | "md";
5
-
6
- const sizes: Record<KeyboardShortcutSize, string> = {
7
- sm: "px-1 py-0 text-caption2",
8
- md: "px-1.5 py-0.5 text-caption2",
9
- };
10
-
11
- export interface KeyboardShortcutProps extends ComponentProps<"kbd"> {
12
- /** Keycap padding density. Text stays at caption2 in both sizes. @default "md" */
13
- size?: KeyboardShortcutSize;
14
- }
15
-
16
- /** A quiet keycap for a shortcut supplied and localized by the application. */
17
- export function KeyboardShortcut({
18
- size = "md",
19
- className,
20
- ...props
21
- }: KeyboardShortcutProps) {
22
- return (
23
- <kbd
24
- {...props}
25
- className={cn(
26
- "border-separator/70 bg-fill/50 text-label-secondary inline-flex shrink-0 items-center rounded-md border font-mono leading-none",
27
- sizes[size],
28
- className,
29
- )}
30
- />
31
- );
32
- }
@@ -1,84 +0,0 @@
1
- import type { HTMLAttributes, ReactNode } from "react";
2
- import { cn } from "../../lib/class-names";
3
-
4
- export type LabeledContentSize = "sm" | "md" | "lg";
5
-
6
- const padding: Record<LabeledContentSize, string> = {
7
- sm: "px-3 py-2",
8
- md: "px-4 py-3",
9
- lg: "px-5 py-4",
10
- };
11
-
12
- export interface LabeledContentProps extends HTMLAttributes<HTMLDivElement> {
13
- /** The visible name of the row. */
14
- label: string;
15
- /** Supporting text below the label. */
16
- description?: string;
17
- /** The row's control or value. */
18
- children: ReactNode;
19
- /** Places the control below the label at every width. @default false */
20
- stacked?: boolean;
21
- /** Places a wide control below its label on phones. @default false */
22
- wide?: boolean;
23
- /** Row padding density. @default "md" */
24
- size?: LabeledContentSize;
25
- }
26
-
27
- /**
28
- * A row: a label, an optional description, and its control at the trailing
29
- * end, as SwiftUI's `LabeledContent`. Wide controls move under the label
30
- * when there is no room beside it, rather than squeezing.
31
- */
32
- export function LabeledContent({
33
- label,
34
- description,
35
- children,
36
- stacked,
37
- wide,
38
- size = "md",
39
- className,
40
- ...props
41
- }: LabeledContentProps) {
42
- return (
43
- <div
44
- className={cn(
45
- "flex flex-wrap gap-x-4 gap-y-2",
46
- padding[size],
47
- stacked
48
- ? "flex-col items-stretch"
49
- : cn(
50
- "items-center justify-between",
51
- wide && "max-sm:flex-col max-sm:items-stretch max-sm:gap-2",
52
- ),
53
- className,
54
- )}
55
- {...props}
56
- >
57
- <div
58
- className={cn(
59
- "flex min-w-0 flex-1 flex-col gap-2 break-normal",
60
- !stacked && "basis-36",
61
- wide && "max-sm:basis-auto",
62
- )}
63
- >
64
- <span className="text-subheadline text-label">{label}</span>
65
- {description && (
66
- <span className="text-footnote text-label-secondary leading-snug">
67
- {description}
68
- </span>
69
- )}
70
- </div>
71
- {/* Controls give way before the label does; a segmented control that
72
- no longer fits turns into a pop-up button by itself. */}
73
- <div
74
- className={cn(
75
- "ms-auto flex max-w-full min-w-0 shrink-0 justify-end [&>*]:max-w-full",
76
- stacked && "w-full",
77
- wide && "max-sm:w-full",
78
- )}
79
- >
80
- {children}
81
- </div>
82
- </div>
83
- );
84
- }
@@ -1 +0,0 @@
1
- export * from "./locale-switcher";