@remix-run/ui 0.2.0 → 0.4.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 (395) hide show
  1. package/README.md +50 -164
  2. package/dist/accordion/index.d.ts +46 -0
  3. package/dist/accordion/index.js +142 -0
  4. package/dist/accordion/index.js.map +1 -0
  5. package/dist/accordion/primitives.d.ts +104 -0
  6. package/dist/accordion/primitives.js +312 -0
  7. package/dist/accordion/primitives.js.map +1 -0
  8. package/dist/{components/anchor/anchor.d.ts → anchor/index.d.ts} +8 -1
  9. package/dist/{components/anchor/anchor.js → anchor/index.js} +31 -12
  10. package/dist/anchor/index.js.map +1 -0
  11. package/dist/animation/demos/aspect-ratio.d.ts +2 -0
  12. package/dist/animation/demos/aspect-ratio.js +69 -0
  13. package/dist/animation/demos/aspect-ratio.js.map +1 -0
  14. package/dist/animation/demos/bouncy-switch.d.ts +2 -0
  15. package/dist/animation/demos/bouncy-switch.js +36 -0
  16. package/dist/animation/demos/bouncy-switch.js.map +1 -0
  17. package/dist/animation/demos/color-interpolation.d.ts +1 -0
  18. package/dist/animation/demos/color-interpolation.js +53 -0
  19. package/dist/animation/demos/color-interpolation.js.map +1 -0
  20. package/dist/animation/demos/cube.d.ts +2 -0
  21. package/dist/animation/demos/cube.js +86 -0
  22. package/dist/animation/demos/cube.js.map +1 -0
  23. package/dist/animation/demos/default-animate.d.ts +2 -0
  24. package/dist/animation/demos/default-animate.js +89 -0
  25. package/dist/animation/demos/default-animate.js.map +1 -0
  26. package/dist/animation/demos/drag-release.d.ts +24 -0
  27. package/dist/animation/demos/drag-release.js +96 -0
  28. package/dist/animation/demos/drag-release.js.map +1 -0
  29. package/dist/animation/demos/enter.d.ts +1 -0
  30. package/dist/animation/demos/enter.js +19 -0
  31. package/dist/animation/demos/enter.js.map +1 -0
  32. package/dist/animation/demos/exit.d.ts +2 -0
  33. package/dist/animation/demos/exit.js +58 -0
  34. package/dist/animation/demos/exit.js.map +1 -0
  35. package/dist/animation/demos/flip-toggle.d.ts +2 -0
  36. package/dist/animation/demos/flip-toggle.js +37 -0
  37. package/dist/animation/demos/flip-toggle.js.map +1 -0
  38. package/dist/animation/demos/hold-to-confirm.d.ts +13 -0
  39. package/dist/animation/demos/hold-to-confirm.js +211 -0
  40. package/dist/animation/demos/hold-to-confirm.js.map +1 -0
  41. package/dist/animation/demos/html-content.d.ts +2 -0
  42. package/dist/animation/demos/html-content.js +30 -0
  43. package/dist/animation/demos/html-content.js.map +1 -0
  44. package/dist/animation/demos/interruptible-keyframes.d.ts +1 -0
  45. package/dist/animation/demos/interruptible-keyframes.js +48 -0
  46. package/dist/animation/demos/interruptible-keyframes.js.map +1 -0
  47. package/dist/animation/demos/keyframes.d.ts +1 -0
  48. package/dist/animation/demos/keyframes.js +24 -0
  49. package/dist/animation/demos/keyframes.js.map +1 -0
  50. package/dist/animation/demos/material-ripple.d.ts +2 -0
  51. package/dist/animation/demos/material-ripple.js +127 -0
  52. package/dist/animation/demos/material-ripple.js.map +1 -0
  53. package/dist/animation/demos/mixin-presence-list.d.ts +2 -0
  54. package/dist/animation/demos/mixin-presence-list.js +88 -0
  55. package/dist/animation/demos/mixin-presence-list.js.map +1 -0
  56. package/dist/animation/demos/mixin-reclaim.d.ts +2 -0
  57. package/dist/animation/demos/mixin-reclaim.js +90 -0
  58. package/dist/animation/demos/mixin-reclaim.js.map +1 -0
  59. package/dist/animation/demos/multi-state-badge.d.ts +2 -0
  60. package/dist/animation/demos/multi-state-badge.js +231 -0
  61. package/dist/animation/demos/multi-state-badge.js.map +1 -0
  62. package/dist/animation/demos/press.d.ts +2 -0
  63. package/dist/animation/demos/press.js +63 -0
  64. package/dist/animation/demos/press.js.map +1 -0
  65. package/dist/animation/demos/reordering.d.ts +2 -0
  66. package/dist/animation/demos/reordering.js +53 -0
  67. package/dist/animation/demos/reordering.js.map +1 -0
  68. package/dist/animation/demos/rolling-square.d.ts +2 -0
  69. package/dist/animation/demos/rolling-square.js +42 -0
  70. package/dist/animation/demos/rolling-square.js.map +1 -0
  71. package/dist/animation/demos/rotate.d.ts +1 -0
  72. package/dist/animation/demos/rotate.js +18 -0
  73. package/dist/animation/demos/rotate.js.map +1 -0
  74. package/dist/animation/demos/shared-layout.d.ts +2 -0
  75. package/dist/animation/demos/shared-layout.js +114 -0
  76. package/dist/animation/demos/shared-layout.js.map +1 -0
  77. package/dist/animation/demos/transition-options.d.ts +1 -0
  78. package/dist/animation/demos/transition-options.js +21 -0
  79. package/dist/animation/demos/transition-options.js.map +1 -0
  80. package/dist/animation/spring.d.ts +22 -0
  81. package/dist/animation/spring.js +22 -0
  82. package/dist/animation/spring.js.map +1 -1
  83. package/dist/{components/breadcrumbs/breadcrumbs.js → breadcrumbs/index.js} +19 -19
  84. package/dist/breadcrumbs/index.js.map +1 -0
  85. package/dist/button/index.d.ts +15 -0
  86. package/dist/button/index.js +128 -0
  87. package/dist/button/index.js.map +1 -0
  88. package/dist/checkbox/index.d.ts +14 -0
  89. package/dist/checkbox/index.js +125 -0
  90. package/dist/checkbox/index.js.map +1 -0
  91. package/dist/combobox/index.d.ts +21 -0
  92. package/dist/combobox/index.js +58 -0
  93. package/dist/combobox/index.js.map +1 -0
  94. package/dist/{components/combobox/combobox.d.ts → combobox/primitives.d.ts} +3 -7
  95. package/dist/{components/combobox/combobox.js → combobox/primitives.js} +8 -61
  96. package/dist/combobox/primitives.js.map +1 -0
  97. package/dist/input/index.d.ts +13 -0
  98. package/dist/input/index.js +121 -0
  99. package/dist/input/index.js.map +1 -0
  100. package/dist/listbox/flash-attribute.js.map +1 -0
  101. package/dist/{components/listbox/listbox.d.ts → listbox/index.d.ts} +2 -6
  102. package/dist/{components/listbox/listbox.js → listbox/index.js} +4 -82
  103. package/dist/listbox/index.js.map +1 -0
  104. package/dist/menu/hover-aim.js.map +1 -0
  105. package/dist/menu/index.d.ts +42 -0
  106. package/dist/menu/index.js +250 -0
  107. package/dist/menu/index.js.map +1 -0
  108. package/dist/{components/menu/menu.d.ts → menu/primitives.d.ts} +6 -32
  109. package/dist/{components/menu/menu.js → menu/primitives.js} +117 -279
  110. package/dist/menu/primitives.js.map +1 -0
  111. package/dist/{components/popover/popover.d.ts → popover/index.d.ts} +3 -5
  112. package/dist/{components/popover/popover.js → popover/index.js} +15 -51
  113. package/dist/popover/index.js.map +1 -0
  114. package/dist/{interactions/outside-click/outside-click-mixin.js → popover/outside-click.js} +1 -1
  115. package/dist/popover/outside-click.js.map +1 -0
  116. package/dist/popover/scroll-lock.d.ts +1 -0
  117. package/dist/{utils → popover}/scroll-lock.js +0 -18
  118. package/dist/popover/scroll-lock.js.map +1 -0
  119. package/dist/radio/index.d.ts +12 -0
  120. package/dist/radio/index.js +77 -0
  121. package/dist/radio/index.js.map +1 -0
  122. package/dist/runtime/client-entries.d.ts +1 -2
  123. package/dist/runtime/client-entries.js.map +1 -1
  124. package/dist/runtime/component.d.ts +2 -2
  125. package/dist/runtime/component.js +1 -1
  126. package/dist/runtime/component.js.map +1 -1
  127. package/dist/runtime/diff-dom.js +194 -21
  128. package/dist/runtime/diff-dom.js.map +1 -1
  129. package/dist/runtime/frame.d.ts +7 -0
  130. package/dist/runtime/frame.js +176 -41
  131. package/dist/runtime/frame.js.map +1 -1
  132. package/dist/runtime/jsx.d.ts +2 -3
  133. package/dist/runtime/jsx.js.map +1 -1
  134. package/dist/runtime/reconcile.js +11 -5
  135. package/dist/runtime/reconcile.js.map +1 -1
  136. package/dist/runtime/vdom.js +3 -0
  137. package/dist/runtime/vdom.js.map +1 -1
  138. package/dist/select/index.d.ts +19 -0
  139. package/dist/select/index.js +95 -0
  140. package/dist/select/index.js.map +1 -0
  141. package/dist/select/keydown.js.map +1 -0
  142. package/dist/{components/select/select.d.ts → select/primitives.d.ts} +4 -6
  143. package/dist/{components/select/select.js → select/primitives.js} +12 -64
  144. package/dist/select/primitives.js.map +1 -0
  145. package/dist/server/stream.js +5 -4
  146. package/dist/server/stream.js.map +1 -1
  147. package/dist/shared/focus-styles.d.ts +1 -0
  148. package/dist/shared/focus-styles.js +2 -0
  149. package/dist/shared/focus-styles.js.map +1 -0
  150. package/dist/shared/icons.d.ts +9 -0
  151. package/dist/shared/icons.js +42 -0
  152. package/dist/shared/icons.js.map +1 -0
  153. package/dist/shared/listbox-popover-styles.d.ts +6 -0
  154. package/dist/shared/listbox-popover-styles.js +137 -0
  155. package/dist/shared/listbox-popover-styles.js.map +1 -0
  156. package/dist/shared/style-values.d.ts +78 -0
  157. package/dist/{theme/presets/rmx-01/index.js → shared/style-values.js} +3 -34
  158. package/dist/shared/style-values.js.map +1 -0
  159. package/dist/{interactions/typeahead/typeahead-mixin.js → shared/typeahead.js} +1 -1
  160. package/dist/shared/typeahead.js.map +1 -0
  161. package/dist/shared/wait-for-css-transition.js.map +1 -0
  162. package/dist/shared/wait.js.map +1 -0
  163. package/dist/style/style.js +27 -10
  164. package/dist/style/style.js.map +1 -1
  165. package/dist/tabs/index.d.ts +32 -0
  166. package/dist/tabs/index.js +157 -0
  167. package/dist/tabs/index.js.map +1 -0
  168. package/dist/tabs/primitives.d.ts +57 -0
  169. package/dist/tabs/primitives.js +238 -0
  170. package/dist/tabs/primitives.js.map +1 -0
  171. package/dist/toggle/index.d.ts +9 -0
  172. package/dist/toggle/index.js +108 -0
  173. package/dist/toggle/index.js.map +1 -0
  174. package/dist/toggle/primitives.d.ts +29 -0
  175. package/dist/toggle/primitives.js +127 -0
  176. package/dist/toggle/primitives.js.map +1 -0
  177. package/package.json +74 -45
  178. package/src/{components/accordion → accordion}/README.md +50 -14
  179. package/src/accordion/index.tsx +285 -0
  180. package/src/accordion/primitives.tsx +512 -0
  181. package/src/{components/anchor → anchor}/README.md +48 -5
  182. package/src/{components/anchor/anchor.ts → anchor/index.ts} +53 -12
  183. package/src/animation/demos/aspect-ratio.tsx +120 -0
  184. package/src/animation/demos/bouncy-switch.tsx +47 -0
  185. package/src/animation/demos/color-interpolation.tsx +73 -0
  186. package/src/animation/demos/cube.tsx +116 -0
  187. package/src/animation/demos/default-animate.tsx +129 -0
  188. package/src/animation/demos/drag-release.ts +118 -0
  189. package/src/animation/demos/enter.tsx +22 -0
  190. package/src/animation/demos/exit.tsx +79 -0
  191. package/src/animation/demos/flip-toggle.tsx +46 -0
  192. package/src/animation/demos/hold-to-confirm.tsx +317 -0
  193. package/src/animation/demos/html-content.tsx +41 -0
  194. package/src/animation/demos/interruptible-keyframes.tsx +62 -0
  195. package/src/animation/demos/keyframes.tsx +29 -0
  196. package/src/animation/demos/material-ripple.tsx +158 -0
  197. package/src/animation/demos/mixin-presence-list.tsx +121 -0
  198. package/src/animation/demos/mixin-reclaim.tsx +125 -0
  199. package/src/animation/demos/multi-state-badge.tsx +426 -0
  200. package/src/animation/demos/press.tsx +67 -0
  201. package/src/animation/demos/reordering.tsx +68 -0
  202. package/src/animation/demos/rolling-square.tsx +57 -0
  203. package/src/animation/demos/rotate.tsx +21 -0
  204. package/src/animation/demos/shared-layout.tsx +211 -0
  205. package/src/animation/demos/transition-options.tsx +24 -0
  206. package/src/animation/spring.ts +22 -0
  207. package/src/{components/breadcrumbs → breadcrumbs}/README.md +4 -4
  208. package/src/{components/breadcrumbs/breadcrumbs.tsx → breadcrumbs/index.tsx} +18 -18
  209. package/src/button/README.md +44 -0
  210. package/src/button/index.ts +168 -0
  211. package/src/checkbox/README.md +59 -0
  212. package/src/checkbox/index.ts +162 -0
  213. package/src/{components/combobox → combobox}/README.md +58 -9
  214. package/src/combobox/index.tsx +112 -0
  215. package/src/{components/combobox/combobox.tsx → combobox/primitives.tsx} +5 -91
  216. package/src/input/README.md +52 -0
  217. package/src/input/index.ts +147 -0
  218. package/src/{components/listbox → listbox}/README.md +9 -41
  219. package/src/{components/listbox/listbox.ts → listbox/index.ts} +2 -87
  220. package/src/menu/README.md +161 -0
  221. package/src/menu/index.tsx +354 -0
  222. package/src/{components/menu/menu.tsx → menu/primitives.tsx} +117 -359
  223. package/src/{components/popover → popover}/README.md +20 -39
  224. package/src/{components/popover/popover.ts → popover/index.ts} +16 -61
  225. package/src/{utils → popover}/scroll-lock.ts +0 -28
  226. package/src/radio/README.md +53 -0
  227. package/src/radio/index.ts +100 -0
  228. package/src/runtime/client-entries.ts +1 -5
  229. package/src/runtime/component.ts +3 -3
  230. package/src/runtime/demos/readme.demo.tsx +704 -0
  231. package/src/runtime/diff-dom.ts +270 -20
  232. package/src/runtime/frame.ts +218 -41
  233. package/src/runtime/jsx.ts +6 -10
  234. package/src/runtime/reconcile.ts +11 -5
  235. package/src/runtime/vdom.ts +3 -0
  236. package/src/{components/select → select}/README.md +29 -19
  237. package/src/select/index.tsx +159 -0
  238. package/src/{components/select/select.tsx → select/primitives.tsx} +11 -99
  239. package/src/server/stream.ts +10 -5
  240. package/src/shared/focus-styles.ts +2 -0
  241. package/src/shared/icons.tsx +62 -0
  242. package/src/shared/listbox-popover-styles.ts +146 -0
  243. package/src/shared/style-values.ts +165 -0
  244. package/src/style/style.ts +29 -10
  245. package/src/tabs/README.md +141 -0
  246. package/src/tabs/index.tsx +244 -0
  247. package/src/tabs/primitives.ts +365 -0
  248. package/src/toggle/README.md +56 -0
  249. package/src/toggle/index.tsx +134 -0
  250. package/src/toggle/primitives.ts +192 -0
  251. package/dist/components/accordion/accordion.d.ts +0 -92
  252. package/dist/components/accordion/accordion.js +0 -335
  253. package/dist/components/accordion/accordion.js.map +0 -1
  254. package/dist/components/accordion/demos/card.demo.d.ts +0 -6
  255. package/dist/components/accordion/demos/card.demo.js +0 -58
  256. package/dist/components/accordion/demos/card.demo.js.map +0 -1
  257. package/dist/components/accordion/demos/multiple.demo.d.ts +0 -6
  258. package/dist/components/accordion/demos/multiple.demo.js +0 -19
  259. package/dist/components/accordion/demos/multiple.demo.js.map +0 -1
  260. package/dist/components/accordion/demos/overview.demo.d.ts +0 -6
  261. package/dist/components/accordion/demos/overview.demo.js +0 -19
  262. package/dist/components/accordion/demos/overview.demo.js.map +0 -1
  263. package/dist/components/anchor/anchor.js.map +0 -1
  264. package/dist/components/breadcrumbs/breadcrumbs.js.map +0 -1
  265. package/dist/components/breadcrumbs/demos/basic.demo.d.ts +0 -5
  266. package/dist/components/breadcrumbs/demos/basic.demo.js +0 -14
  267. package/dist/components/breadcrumbs/demos/basic.demo.js.map +0 -1
  268. package/dist/components/breadcrumbs/demos/separator.demo.d.ts +0 -5
  269. package/dist/components/breadcrumbs/demos/separator.demo.js +0 -14
  270. package/dist/components/breadcrumbs/demos/separator.demo.js.map +0 -1
  271. package/dist/components/button/button.d.ts +0 -105
  272. package/dist/components/button/button.js +0 -207
  273. package/dist/components/button/button.js.map +0 -1
  274. package/dist/components/button/demos/aliases.demo.d.ts +0 -6
  275. package/dist/components/button/demos/aliases.demo.js +0 -18
  276. package/dist/components/button/demos/aliases.demo.js.map +0 -1
  277. package/dist/components/button/demos/basic.demo.d.ts +0 -6
  278. package/dist/components/button/demos/basic.demo.js +0 -19
  279. package/dist/components/button/demos/basic.demo.js.map +0 -1
  280. package/dist/components/button/demos/states.demo.d.ts +0 -6
  281. package/dist/components/button/demos/states.demo.js +0 -29
  282. package/dist/components/button/demos/states.demo.js.map +0 -1
  283. package/dist/components/combobox/combobox.js.map +0 -1
  284. package/dist/components/combobox/demos/overview.demo.d.ts +0 -6
  285. package/dist/components/combobox/demos/overview.demo.js +0 -153
  286. package/dist/components/combobox/demos/overview.demo.js.map +0 -1
  287. package/dist/components/glyph/glyph.d.ts +0 -14
  288. package/dist/components/glyph/glyph.js +0 -65
  289. package/dist/components/glyph/glyph.js.map +0 -1
  290. package/dist/components/listbox/demos/overview.demo.d.ts +0 -6
  291. package/dist/components/listbox/demos/overview.demo.js +0 -64
  292. package/dist/components/listbox/demos/overview.demo.js.map +0 -1
  293. package/dist/components/listbox/listbox.js.map +0 -1
  294. package/dist/components/menu/demos/bubbling.demo.d.ts +0 -5
  295. package/dist/components/menu/demos/bubbling.demo.js +0 -15
  296. package/dist/components/menu/demos/bubbling.demo.js.map +0 -1
  297. package/dist/components/menu/demos/overview.demo.d.ts +0 -6
  298. package/dist/components/menu/demos/overview.demo.js +0 -32
  299. package/dist/components/menu/demos/overview.demo.js.map +0 -1
  300. package/dist/components/menu/hover-aim.js.map +0 -1
  301. package/dist/components/menu/menu.js.map +0 -1
  302. package/dist/components/popover/demos/overview.demo.d.ts +0 -6
  303. package/dist/components/popover/demos/overview.demo.js +0 -64
  304. package/dist/components/popover/demos/overview.demo.js.map +0 -1
  305. package/dist/components/popover/popover.js.map +0 -1
  306. package/dist/components/select/demos/deconstructed.demo.d.ts +0 -6
  307. package/dist/components/select/demos/deconstructed.demo.js +0 -53
  308. package/dist/components/select/demos/deconstructed.demo.js.map +0 -1
  309. package/dist/components/select/demos/overview.demo.d.ts +0 -5
  310. package/dist/components/select/demos/overview.demo.js +0 -27
  311. package/dist/components/select/demos/overview.demo.js.map +0 -1
  312. package/dist/components/select/select.js.map +0 -1
  313. package/dist/components/separator/separator.d.ts +0 -2
  314. package/dist/components/separator/separator.js +0 -15
  315. package/dist/components/separator/separator.js.map +0 -1
  316. package/dist/components/tabs/tabs.d.ts +0 -78
  317. package/dist/components/tabs/tabs.js +0 -339
  318. package/dist/components/tabs/tabs.js.map +0 -1
  319. package/dist/interactions/keydown/keydown.js.map +0 -1
  320. package/dist/interactions/outside-click/outside-click-mixin.js.map +0 -1
  321. package/dist/interactions/typeahead/typeahead-mixin.js.map +0 -1
  322. package/dist/theme/contract.d.ts +0 -61
  323. package/dist/theme/contract.js +0 -131
  324. package/dist/theme/contract.js.map +0 -1
  325. package/dist/theme/glyph-contract.d.ts +0 -11
  326. package/dist/theme/glyph-contract.js +0 -34
  327. package/dist/theme/glyph-contract.js.map +0 -1
  328. package/dist/theme/presets/rmx-01/glyphs.d.ts +0 -2
  329. package/dist/theme/presets/rmx-01/glyphs.js +0 -252
  330. package/dist/theme/presets/rmx-01/glyphs.js.map +0 -1
  331. package/dist/theme/presets/rmx-01/index.d.ts +0 -4
  332. package/dist/theme/presets/rmx-01/index.js.map +0 -1
  333. package/dist/theme/runtime.d.ts +0 -2
  334. package/dist/theme/runtime.js +0 -84
  335. package/dist/theme/runtime.js.map +0 -1
  336. package/dist/theme/theme.d.ts +0 -6
  337. package/dist/theme/theme.js +0 -5
  338. package/dist/theme/theme.js.map +0 -1
  339. package/dist/utils/flash-attribute.js.map +0 -1
  340. package/dist/utils/scroll-lock.d.ts +0 -3
  341. package/dist/utils/scroll-lock.js.map +0 -1
  342. package/dist/utils/wait-for-css-transition.js.map +0 -1
  343. package/dist/utils/wait.js.map +0 -1
  344. package/src/components/accordion/accordion.tsx +0 -565
  345. package/src/components/accordion/demos/card.demo.tsx +0 -113
  346. package/src/components/accordion/demos/multiple.demo.tsx +0 -56
  347. package/src/components/accordion/demos/overview.demo.tsx +0 -56
  348. package/src/components/breadcrumbs/demos/basic.demo.tsx +0 -17
  349. package/src/components/breadcrumbs/demos/separator.demo.tsx +0 -18
  350. package/src/components/button/README.md +0 -44
  351. package/src/components/button/button.tsx +0 -286
  352. package/src/components/button/demos/aliases.demo.tsx +0 -27
  353. package/src/components/button/demos/basic.demo.tsx +0 -30
  354. package/src/components/button/demos/states.demo.tsx +0 -52
  355. package/src/components/combobox/demos/overview.demo.tsx +0 -199
  356. package/src/components/glyph/README.md +0 -72
  357. package/src/components/glyph/glyph.tsx +0 -110
  358. package/src/components/listbox/demos/overview.demo.tsx +0 -101
  359. package/src/components/menu/README.md +0 -96
  360. package/src/components/menu/demos/bubbling.demo.tsx +0 -34
  361. package/src/components/menu/demos/overview.demo.tsx +0 -76
  362. package/src/components/popover/demos/overview.demo.tsx +0 -143
  363. package/src/components/select/demos/deconstructed.demo.tsx +0 -95
  364. package/src/components/select/demos/overview.demo.tsx +0 -51
  365. package/src/components/separator/separator.ts +0 -19
  366. package/src/components/tabs/README.md +0 -105
  367. package/src/components/tabs/tabs.tsx +0 -504
  368. package/src/theme/README.md +0 -103
  369. package/src/theme/contract.ts +0 -215
  370. package/src/theme/glyph-contract.ts +0 -59
  371. package/src/theme/presets/rmx-01/glyphs.tsx +0 -308
  372. package/src/theme/presets/rmx-01/index.ts +0 -123
  373. package/src/theme/runtime.ts +0 -119
  374. package/src/theme/theme.ts +0 -15
  375. package/src/utils/scroll-lock/README.md +0 -33
  376. /package/dist/{components/breadcrumbs/breadcrumbs.d.ts → breadcrumbs/index.d.ts} +0 -0
  377. /package/dist/{utils → listbox}/flash-attribute.d.ts +0 -0
  378. /package/dist/{utils → listbox}/flash-attribute.js +0 -0
  379. /package/dist/{components/menu → menu}/hover-aim.d.ts +0 -0
  380. /package/dist/{components/menu → menu}/hover-aim.js +0 -0
  381. /package/dist/{interactions/outside-click/outside-click-mixin.d.ts → popover/outside-click.d.ts} +0 -0
  382. /package/dist/{interactions/keydown → select}/keydown.d.ts +0 -0
  383. /package/dist/{interactions/keydown → select}/keydown.js +0 -0
  384. /package/dist/{interactions/typeahead/typeahead-mixin.d.ts → shared/typeahead.d.ts} +0 -0
  385. /package/dist/{utils → shared}/wait-for-css-transition.d.ts +0 -0
  386. /package/dist/{utils → shared}/wait-for-css-transition.js +0 -0
  387. /package/dist/{utils → shared}/wait.d.ts +0 -0
  388. /package/dist/{utils → shared}/wait.js +0 -0
  389. /package/src/{utils → listbox}/flash-attribute.ts +0 -0
  390. /package/src/{components/menu → menu}/hover-aim.ts +0 -0
  391. /package/src/{interactions/outside-click/outside-click-mixin.ts → popover/outside-click.ts} +0 -0
  392. /package/src/{interactions/keydown → select}/keydown.ts +0 -0
  393. /package/src/{interactions/typeahead/typeahead-mixin.ts → shared/typeahead.ts} +0 -0
  394. /package/src/{utils → shared}/wait-for-css-transition.ts +0 -0
  395. /package/src/{utils → shared}/wait.ts +0 -0
@@ -1,143 +0,0 @@
1
- import { css, on, type Handle } from '@remix-run/ui'
2
- import { Button } from '@remix-run/ui/button'
3
- import { Glyph } from '@remix-run/ui/glyph'
4
- import * as popover from '@remix-run/ui/popover'
5
- import { Option, Select } from '@remix-run/ui/select'
6
- import { theme } from '@remix-run/ui/theme'
7
-
8
- /**
9
- * @name Popover Overview
10
- * @description A popover panel anchored to a trigger button, containing form controls and a close action.
11
- */
12
- export default function Example(handle: Handle) {
13
- let open = false
14
-
15
- function closePopover() {
16
- open = false
17
- void handle.update()
18
- }
19
-
20
- return () => (
21
- <popover.Context>
22
- <div mix={buttonRowCss}>
23
- <Button
24
- endIcon={<Glyph name="chevronDown" />}
25
- mix={[
26
- popover.anchor({ placement: 'bottom' }),
27
- popover.focusOnHide(),
28
- on('click', () => {
29
- open = !open
30
- void handle.update()
31
- }),
32
- ]}
33
- tone="secondary"
34
- >
35
- View options
36
- </Button>
37
- </div>
38
-
39
- <div
40
- mix={[
41
- popover.surfaceStyle,
42
- popover.surface({
43
- closeOnAnchorClick: false,
44
- open,
45
- onHide() {
46
- closePopover()
47
- },
48
- }),
49
- ]}
50
- >
51
- <div mix={[popover.contentStyle, panelCss]}>
52
- <div mix={fieldCss}>
53
- <label for={`${handle.id}-grouping`} mix={labelCss}>
54
- Grouping
55
- </label>
56
- <Select
57
- id={`${handle.id}-grouping`}
58
- defaultLabel="No grouping"
59
- defaultValue="none"
60
- mix={[fieldSelectCss, popover.focusOnShow()]}
61
- >
62
- <Option label="No grouping" value="none" />
63
- <Option label="Status" value="status" />
64
- <Option label="Priority" value="priority" />
65
- </Select>
66
- </div>
67
-
68
- <div mix={fieldCss}>
69
- <label for={`${handle.id}-ordering`} mix={labelCss}>
70
- Ordering
71
- </label>
72
- <Select
73
- id={`${handle.id}-ordering`}
74
- defaultLabel="Manual"
75
- defaultValue="manual"
76
- mix={fieldSelectCss}
77
- >
78
- <Option label="Manual" value="manual" />
79
- <Option label="Newest first" value="newest" />
80
- <Option label="Oldest first" value="oldest" />
81
- </Select>
82
- </div>
83
-
84
- <div mix={fieldCss}>
85
- <label for={`${handle.id}-closed-projects`} mix={labelCss}>
86
- Show closed projects
87
- </label>
88
- <Select
89
- id={`${handle.id}-closed-projects`}
90
- defaultLabel="All"
91
- defaultValue="all"
92
- mix={fieldSelectCss}
93
- >
94
- <Option label="All" value="all" />
95
- <Option label="Open only" value="open" />
96
- <Option label="Closed only" value="closed" />
97
- </Select>
98
- </div>
99
-
100
- <div mix={actionsCss}>
101
- <Button mix={on('click', closePopover)} tone="ghost">
102
- Done
103
- </Button>
104
- </div>
105
- </div>
106
- </div>
107
- </popover.Context>
108
- )
109
- }
110
-
111
- const buttonRowCss = css({
112
- display: 'flex',
113
- justifyContent: 'flex-start',
114
- })
115
-
116
- const panelCss = css({
117
- display: 'grid',
118
- gap: theme.space.md,
119
- width: '22rem',
120
- padding: theme.space.lg,
121
- })
122
-
123
- const fieldCss = css({
124
- display: 'grid',
125
- gap: theme.space.px,
126
- })
127
-
128
- const labelCss = css({
129
- margin: 0,
130
- fontSize: theme.fontSize.xs,
131
- fontWeight: theme.fontWeight.semibold,
132
- color: theme.colors.text.primary,
133
- })
134
-
135
- const fieldSelectCss = css({
136
- width: '100%',
137
- })
138
-
139
- const actionsCss = css({
140
- display: 'flex',
141
- justifyContent: 'flex-end',
142
- paddingTop: theme.space.xs,
143
- })
@@ -1,95 +0,0 @@
1
- import { css, type Handle } from '@remix-run/ui'
2
- import * as button from '@remix-run/ui/button'
3
- import { Glyph } from '@remix-run/ui/glyph'
4
- import * as listbox from '@remix-run/ui/listbox'
5
- import * as popover from '@remix-run/ui/popover'
6
- import * as select from '@remix-run/ui/select'
7
- import { theme } from '@remix-run/ui/theme'
8
-
9
- /**
10
- * @name Select Deconstructed
11
- * @description Build a fully custom select by composing the select, popover, and listbox primitives directly.
12
- */
13
- export default function Example(handle: Handle) {
14
- let label = 'Local'
15
- let value = 'local'
16
- let triggerId = `${handle.id}-trigger`
17
-
18
- return () => (
19
- <div
20
- mix={[
21
- stackCss,
22
- select.onSelectChange((event) => {
23
- label = event.label ?? 'Select an environment'
24
- value = event.value ?? 'null'
25
- void handle.update()
26
- }),
27
- ]}
28
- >
29
- <p mix={labelCss}>Environment</p>
30
-
31
- <select.Context defaultLabel="Local" defaultValue="local" name="environment">
32
- <button
33
- id={triggerId}
34
- type="button"
35
- mix={[button.baseStyle, select.triggerStyle, select.trigger(), selectCss]}
36
- >
37
- <span mix={button.labelStyle}>{label}</span>
38
- <Glyph mix={button.iconStyle} name="chevronVertical" />
39
- </button>
40
-
41
- <popover.Context>
42
- <div mix={[popover.surfaceStyle, select.popover()]}>
43
- <div
44
- aria-labelledby={triggerId}
45
- mix={[popover.contentStyle, listbox.listStyle, select.list()]}
46
- >
47
- {environmentOptions.map((option) => (
48
- <div key={option.value} mix={[listbox.optionStyle, select.option(option)]}>
49
- <Glyph mix={listbox.glyphStyle} name="check" />
50
- <span mix={listbox.labelStyle}>{option.label}</span>
51
- </div>
52
- ))}
53
- </div>
54
- </div>
55
- </popover.Context>
56
-
57
- <input mix={select.hiddenInput()} />
58
- </select.Context>
59
-
60
- <p mix={valueCss}>{`value=${value}`}</p>
61
- </div>
62
- )
63
- }
64
-
65
- const environmentOptions = [
66
- { label: 'Local', value: 'local' },
67
- { label: 'Staging', value: 'staging' },
68
- { label: 'Production', value: 'production' },
69
- { disabled: true, label: 'Archived', value: 'archived' },
70
- ] as const
71
-
72
- const selectCss = css({
73
- width: '16rem',
74
- })
75
-
76
- const stackCss = css({
77
- display: 'flex',
78
- flexDirection: 'column',
79
- gap: theme.space.sm,
80
- width: '100%',
81
- })
82
-
83
- const labelCss = css({
84
- margin: 0,
85
- fontSize: theme.fontSize.xs,
86
- fontWeight: theme.fontWeight.semibold,
87
- color: theme.colors.text.primary,
88
- })
89
-
90
- const valueCss = css({
91
- margin: 0,
92
- fontFamily: theme.fontFamily.mono,
93
- fontSize: theme.fontSize.xs,
94
- color: theme.colors.text.secondary,
95
- })
@@ -1,51 +0,0 @@
1
- import { css } from '@remix-run/ui'
2
- import { Option, Select } from '@remix-run/ui/select'
3
- import { theme } from '@remix-run/ui/theme'
4
-
5
- /**
6
- * @name Select Overview
7
- * @description A styled select control with a searchable dropdown and accessible label.
8
- */
9
- export default function Example() {
10
- return () => (
11
- <div mix={stackCss}>
12
- <label for="fruit-select" mix={labelCss}>
13
- Choose a fruit
14
- </label>
15
- <Select
16
- id="fruit-select"
17
- defaultLabel="Banana"
18
- defaultValue="banana"
19
- name="fruit"
20
- mix={selectCss}
21
- >
22
- <Option label="Apple" value="apple" />
23
- <Option label="Apricot" value="apricot" />
24
- <Option label="Banana" value="banana" />
25
- <Option label="Blackberry" value="blackberry" />
26
- <Option label="Blackcurrant" value="blackcurrant" />
27
- <Option label="Blueberry" value="blueberry" />
28
- <Option label="Boysenberry" value="boysenberry" />
29
- <Option label="Cantaloupe" value="cantaloupe" />
30
- </Select>
31
- </div>
32
- )
33
- }
34
-
35
- const selectCss = css({
36
- width: '16rem',
37
- })
38
-
39
- const stackCss = css({
40
- display: 'flex',
41
- flexDirection: 'column',
42
- gap: theme.space.sm,
43
- width: '100%',
44
- })
45
-
46
- const labelCss = css({
47
- margin: 0,
48
- fontSize: theme.fontSize.xs,
49
- fontWeight: theme.fontWeight.semibold,
50
- color: theme.colors.text.primary,
51
- })
@@ -1,19 +0,0 @@
1
- import { css, type CSSMixinDescriptor } from '@remix-run/ui'
2
-
3
- import { theme } from '../../theme/theme.ts'
4
-
5
- const itemInset = `var(--rmx-ui-item-inset, ${theme.space.sm})`
6
- const itemIndicatorHalfInset =
7
- 'calc((var(--rmx-ui-item-indicator-width, 0px) + var(--rmx-ui-item-indicator-gap, 0px)) / 2)'
8
-
9
- const separatorCss: CSSMixinDescriptor = css({
10
- flexShrink: 0,
11
- margin: 0,
12
- marginBlock: theme.space.xs,
13
- marginInlineStart: `calc(${itemInset} + ${itemIndicatorHalfInset})`,
14
- marginInlineEnd: itemInset,
15
- border: 0,
16
- borderTop: `1px solid ${theme.colors.border.subtle}`,
17
- })
18
-
19
- export const separatorStyle = separatorCss
@@ -1,105 +0,0 @@
1
- # Tabs
2
-
3
- `tabs` is a primitive for building accessible tabs with automatic activation and simple default styling.
4
-
5
- Use it when you need a tablist, tab triggers, and tab panels. `tabs.listStyle` and `tabs.triggerStyle` style the tab row and triggers, but panel presentation stays app-owned.
6
-
7
- ## Usage
8
-
9
- ```tsx
10
- import { css, type Handle } from 'remix/ui'
11
- import { Tab, Tabs, TabsList, TabsPanel } from 'remix/ui/tabs'
12
-
13
- let panel = css({
14
- padding: '16px',
15
- border: '1px solid #d6d6d6',
16
- borderRadius: '16px',
17
- })
18
-
19
- export function ProjectTabs(_handle: Handle) {
20
- return () => (
21
- <Tabs defaultValue="overview">
22
- <TabsList aria-label="Project sections">
23
- <Tab value="overview">Overview</Tab>
24
- <Tab value="analytics">Analytics</Tab>
25
- <Tab value="reports">Reports</Tab>
26
- <Tab value="settings">Settings</Tab>
27
- </TabsList>
28
-
29
- <TabsPanel mix={panel} value="overview">
30
- View your key metrics and recent project activity.
31
- </TabsPanel>
32
- <TabsPanel mix={panel} value="analytics">
33
- Track trends and compare performance over time.
34
- </TabsPanel>
35
- <TabsPanel mix={panel} value="reports">
36
- Export and review your latest reports.
37
- </TabsPanel>
38
- <TabsPanel mix={panel} value="settings">
39
- Manage project preferences and defaults.
40
- </TabsPanel>
41
- </Tabs>
42
- )
43
- }
44
- ```
45
-
46
- ## `tabs.*`
47
-
48
- ### `tabs.Context`
49
-
50
- Provides the shared coordinator for one tabs instance.
51
-
52
- - Owns the selected tab value for uncontrolled usage.
53
- - Accepts controlled `value` plus `onValueChange` when the app owns selection state.
54
- - Accepts `orientation="vertical"` when the tablist should use `ArrowUp` and `ArrowDown`.
55
-
56
- ### `tabs.list()`
57
-
58
- Turns the host into the tablist.
59
-
60
- - Wires `role="tablist"`.
61
- - Adds `aria-orientation="vertical"` when needed.
62
-
63
- ### `tabs.trigger({ value, disabled })`
64
-
65
- Registers one tab trigger.
66
-
67
- - Wires `role="tab"`, `aria-selected`, `aria-controls`, and roving `tabIndex`.
68
- - Selects on press.
69
- - Supports `ArrowLeft` and `ArrowRight` for horizontal lists.
70
- - Supports `ArrowUp` and `ArrowDown` for vertical lists.
71
- - Supports `Home` and `End`.
72
-
73
- ### `tabs.panel({ value })`
74
-
75
- Turns the host into the panel for one tab value.
76
-
77
- - Wires `role="tabpanel"` and `aria-labelledby`.
78
- - Hides inactive panels with `hidden`.
79
-
80
- ### `onTabsChange(...)`
81
-
82
- The listener mixin for bubbled tab selection changes.
83
-
84
- - `event.value` is the newly selected tab value.
85
- - `event.previousValue` is the previously selected value, or `null`.
86
-
87
- ## Convenience Components
88
-
89
- - `Tabs` is a thin wrapper around `tabs.Context`.
90
- - `TabsList` applies `tabs.list()` with `tabs.listStyle`.
91
- - `Tab` applies `tabs.trigger(...)` with `button.baseStyle` and `tabs.triggerStyle`.
92
- - `TabsPanel` applies `tabs.panel(...)` without adding panel styling.
93
-
94
- ## Behavior Notes
95
-
96
- - When you do not provide `defaultValue` or controlled `value`, the first enabled tab becomes selected automatically.
97
- - Arrow-key navigation wraps and skips disabled tabs.
98
- - Selection follows focus during arrow-key navigation.
99
- - The default panel contract is behavioral only. Apps own spacing, borders, backgrounds, and layout for tab panels.
100
-
101
- ## When To Use Something Else
102
-
103
- - Use `accordion` when sections should expand and collapse independently instead of switching a single active panel.
104
- - Use `select` or `listbox` when the control chooses a form value instead of changing visible page sections.
105
- - Use `menu` for action lists and command surfaces.