@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
@@ -0,0 +1,312 @@
1
+ import { attrs, createMixin, on, ref, } from '@remix-run/ui';
2
+ const ACCORDION_CHANGE_EVENT = 'rmx:accordion-change';
3
+ export class AccordionChangeEvent extends Event {
4
+ accordionType;
5
+ itemValue;
6
+ value;
7
+ constructor(value, init) {
8
+ super(ACCORDION_CHANGE_EVENT, {
9
+ bubbles: true,
10
+ });
11
+ this.accordionType = init.accordionType;
12
+ this.itemValue = init.itemValue;
13
+ this.value = value;
14
+ }
15
+ }
16
+ function isMultipleProps(props) {
17
+ return props?.type === 'multiple';
18
+ }
19
+ function getAccordionContext(handle) {
20
+ return handle.context.get(AccordionProvider);
21
+ }
22
+ function getAccordionItemContext(handle) {
23
+ return handle.context.get(AccordionItemProvider);
24
+ }
25
+ function AccordionProvider(handle) {
26
+ let rootNode = null;
27
+ let registeredItems = [];
28
+ let uncontrolledSingleValue = null;
29
+ let uncontrolledMultipleValue = [];
30
+ let hasInitializedSingle = false;
31
+ let hasInitializedMultiple = false;
32
+ function getType() {
33
+ return isMultipleProps(handle.props) ? 'multiple' : 'single';
34
+ }
35
+ function getSingleValue() {
36
+ if (isMultipleProps(handle.props)) {
37
+ return null;
38
+ }
39
+ if (handle.props.value !== undefined) {
40
+ return handle.props.value;
41
+ }
42
+ if (!hasInitializedSingle) {
43
+ uncontrolledSingleValue = handle.props.defaultValue ?? null;
44
+ hasInitializedSingle = true;
45
+ }
46
+ return uncontrolledSingleValue;
47
+ }
48
+ function getMultipleValue() {
49
+ if (!isMultipleProps(handle.props)) {
50
+ return [];
51
+ }
52
+ if (handle.props.value !== undefined) {
53
+ return handle.props.value;
54
+ }
55
+ if (!hasInitializedMultiple) {
56
+ uncontrolledMultipleValue = [...(handle.props.defaultValue ?? [])];
57
+ hasInitializedMultiple = true;
58
+ }
59
+ return uncontrolledMultipleValue;
60
+ }
61
+ function isOpen(value) {
62
+ if (getType() === 'multiple') {
63
+ return getMultipleValue().includes(value);
64
+ }
65
+ return getSingleValue() === value;
66
+ }
67
+ function dispatchChange(itemValue, value) {
68
+ rootNode?.dispatchEvent(new AccordionChangeEvent(value, {
69
+ accordionType: getType(),
70
+ itemValue,
71
+ }));
72
+ }
73
+ function toggleItem(itemValue) {
74
+ if (handle.props.disabled) {
75
+ return;
76
+ }
77
+ if (isMultipleProps(handle.props)) {
78
+ let currentValue = getMultipleValue();
79
+ let nextValue = currentValue.includes(itemValue)
80
+ ? currentValue.filter((value) => value !== itemValue)
81
+ : [...currentValue, itemValue];
82
+ if (handle.props.value === undefined) {
83
+ uncontrolledMultipleValue = nextValue;
84
+ void handle.update();
85
+ }
86
+ handle.props.onValueChange?.(nextValue);
87
+ dispatchChange(itemValue, nextValue);
88
+ return;
89
+ }
90
+ let isCurrentItemOpen = getSingleValue() === itemValue;
91
+ if (isCurrentItemOpen && !(handle.props.collapsible ?? true)) {
92
+ return;
93
+ }
94
+ let nextValue = isCurrentItemOpen ? null : itemValue;
95
+ if (handle.props.value === undefined) {
96
+ uncontrolledSingleValue = nextValue;
97
+ void handle.update();
98
+ }
99
+ handle.props.onValueChange?.(nextValue);
100
+ dispatchChange(itemValue, nextValue);
101
+ }
102
+ function focusItem(itemValue, direction) {
103
+ let items = registeredItems.filter((item) => !item.disabled && item.getTriggerNode() !== null);
104
+ if (items.length === 0) {
105
+ return;
106
+ }
107
+ let currentIndex = items.findIndex((item) => item.value === itemValue);
108
+ let targetIndex = 0;
109
+ switch (direction) {
110
+ case 'first':
111
+ targetIndex = 0;
112
+ break;
113
+ case 'last':
114
+ targetIndex = items.length - 1;
115
+ break;
116
+ case 'previous':
117
+ targetIndex = currentIndex <= 0 ? items.length - 1 : currentIndex - 1;
118
+ break;
119
+ case 'next':
120
+ targetIndex =
121
+ currentIndex === -1 || currentIndex === items.length - 1 ? 0 : currentIndex + 1;
122
+ break;
123
+ }
124
+ items[targetIndex]?.getTriggerNode()?.focus();
125
+ }
126
+ function registerItem(item) {
127
+ registeredItems.push(item);
128
+ }
129
+ function getTriggerId(value) {
130
+ return registeredItems.find((item) => item.value === value)?.getTriggerNode()?.id;
131
+ }
132
+ function getPanelId(value) {
133
+ return `${handle.id}-${value}-panel`;
134
+ }
135
+ handle.context.set({
136
+ get collapsible() {
137
+ return getType() === 'multiple'
138
+ ? true
139
+ : (handle.props.collapsible ?? true);
140
+ },
141
+ get disabled() {
142
+ return handle.props.disabled ?? false;
143
+ },
144
+ focusItem,
145
+ getPanelId,
146
+ getTriggerId,
147
+ get headingLevel() {
148
+ return handle.props.headingLevel ?? 3;
149
+ },
150
+ isOpen,
151
+ registerItem,
152
+ registerRoot(node) {
153
+ rootNode = node;
154
+ },
155
+ toggleItem,
156
+ get type() {
157
+ return getType();
158
+ },
159
+ unregisterRoot(node) {
160
+ if (rootNode === node) {
161
+ rootNode = null;
162
+ }
163
+ },
164
+ });
165
+ return () => {
166
+ registeredItems = [];
167
+ return handle.props.children;
168
+ };
169
+ }
170
+ function AccordionItemProvider(handle) {
171
+ let triggerNode = null;
172
+ let triggerId = `${handle.id}-trigger`;
173
+ let panelId = `${handle.id}-panel`;
174
+ let disabled = false;
175
+ let headingLevel = 3;
176
+ let lockedOpen = false;
177
+ let open = false;
178
+ let value = handle.props.value;
179
+ handle.context.set({
180
+ get disabled() {
181
+ return disabled;
182
+ },
183
+ get headingLevel() {
184
+ return headingLevel;
185
+ },
186
+ get lockedOpen() {
187
+ return lockedOpen;
188
+ },
189
+ get open() {
190
+ return open;
191
+ },
192
+ get panelId() {
193
+ return panelId;
194
+ },
195
+ setTriggerNode(node) {
196
+ triggerNode = node;
197
+ },
198
+ get triggerId() {
199
+ return triggerId;
200
+ },
201
+ get value() {
202
+ return value;
203
+ },
204
+ });
205
+ return () => {
206
+ let accordion = getAccordionContext(handle);
207
+ value = handle.props.value;
208
+ disabled = accordion.disabled || handle.props.disabled === true;
209
+ headingLevel = accordion.headingLevel;
210
+ open = accordion.isOpen(handle.props.value);
211
+ lockedOpen = accordion.type === 'single' && !accordion.collapsible && open;
212
+ accordion.registerItem({
213
+ disabled,
214
+ getTriggerNode: () => triggerNode,
215
+ value: handle.props.value,
216
+ });
217
+ return handle.props.children;
218
+ };
219
+ }
220
+ const rootMixin = createMixin((handle) => {
221
+ let context = getAccordionContext(handle);
222
+ let rootNode = null;
223
+ handle.queueTask((node, signal) => {
224
+ rootNode = node;
225
+ context.registerRoot(node);
226
+ signal.addEventListener('abort', () => {
227
+ if (rootNode === node) {
228
+ rootNode = null;
229
+ }
230
+ context.unregisterRoot(node);
231
+ });
232
+ });
233
+ return () => attrs({
234
+ 'data-disabled': context.disabled ? '' : undefined,
235
+ 'data-type': context.type,
236
+ });
237
+ });
238
+ const itemMixin = createMixin((handle) => {
239
+ let item = getAccordionItemContext(handle);
240
+ return () => attrs({
241
+ 'data-disabled': item.disabled ? '' : undefined,
242
+ 'data-state': item.open ? 'open' : 'closed',
243
+ });
244
+ });
245
+ const triggerMixin = createMixin((handle) => {
246
+ let accordion = getAccordionContext(handle);
247
+ let item = getAccordionItemContext(handle);
248
+ return (options, props = options) => {
249
+ options = props === options ? undefined : options;
250
+ let disabled = item.disabled || options?.disabled === true || props.disabled === true;
251
+ let toggleItem = () => {
252
+ if (disabled || item.lockedOpen) {
253
+ return;
254
+ }
255
+ accordion.toggleItem(item.value);
256
+ };
257
+ return [
258
+ attrs({
259
+ 'aria-controls': item.panelId,
260
+ 'aria-disabled': item.lockedOpen ? true : undefined,
261
+ 'aria-expanded': item.open,
262
+ 'data-state': item.open ? 'open' : 'closed',
263
+ disabled: disabled ? true : undefined,
264
+ id: item.triggerId,
265
+ }),
266
+ ref((node) => {
267
+ item.setTriggerNode(node);
268
+ }),
269
+ on('click', toggleItem),
270
+ on('keydown', (event) => {
271
+ switch (event.key) {
272
+ case 'ArrowDown':
273
+ event.preventDefault();
274
+ accordion.focusItem(item.value, 'next');
275
+ break;
276
+ case 'ArrowUp':
277
+ event.preventDefault();
278
+ accordion.focusItem(item.value, 'previous');
279
+ break;
280
+ case 'Home':
281
+ event.preventDefault();
282
+ accordion.focusItem(item.value, 'first');
283
+ break;
284
+ case 'End':
285
+ event.preventDefault();
286
+ accordion.focusItem(item.value, 'last');
287
+ break;
288
+ }
289
+ }),
290
+ ];
291
+ };
292
+ });
293
+ const contentMixin = createMixin((handle) => {
294
+ let item = getAccordionItemContext(handle);
295
+ return () => attrs({
296
+ 'aria-hidden': item.open ? undefined : true,
297
+ 'aria-labelledby': item.triggerId,
298
+ 'data-state': item.open ? 'open' : 'closed',
299
+ id: item.panelId,
300
+ inert: item.open ? undefined : true,
301
+ });
302
+ });
303
+ export const Context = AccordionProvider;
304
+ export const ItemContext = AccordionItemProvider;
305
+ export const content = contentMixin;
306
+ export const item = itemMixin;
307
+ export const root = rootMixin;
308
+ export const trigger = triggerMixin;
309
+ export function onAccordionChange(handler, captureBoolean) {
310
+ return on(ACCORDION_CHANGE_EVENT, handler, captureBoolean);
311
+ }
312
+ //# sourceMappingURL=primitives.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"primitives.js","sourceRoot":"","sources":["../../src/accordion/primitives.tsx"],"names":[],"mappings":"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"}
@@ -1,6 +1,13 @@
1
1
  type ExtendedAnchorPlacement = 'top' | 'top-start' | 'top-end' | 'bottom' | 'bottom-start' | 'bottom-end' | 'left' | 'left-start' | 'left-end' | 'right' | 'right-start' | 'right-end';
2
2
  export type AnchorPlacement = 'top' | 'bottom' | 'left' | 'right' | 'top-start' | 'top-end' | 'bottom-start' | 'bottom-end';
3
3
  type AnchorOffsetValue = number | ((floating: HTMLElement) => number);
4
+ export interface AnchorPoint {
5
+ height?: number;
6
+ width?: number;
7
+ x: number;
8
+ y: number;
9
+ }
10
+ export type AnchorTarget = HTMLElement | AnchorPoint;
4
11
  export type AnchorOptions = {
5
12
  placement?: ExtendedAnchorPlacement;
6
13
  inset?: boolean;
@@ -9,5 +16,5 @@ export type AnchorOptions = {
9
16
  offsetX?: AnchorOffsetValue;
10
17
  offsetY?: AnchorOffsetValue;
11
18
  };
12
- export declare function anchor(floating: HTMLElement, anchorElement: HTMLElement, options?: AnchorOptions): () => void;
19
+ export declare function anchor(floating: HTMLElement, anchorTarget: AnchorTarget, options?: AnchorOptions): () => void;
13
20
  export {};
@@ -65,6 +65,26 @@ function resolveOffsetValue(offset, floating) {
65
65
  }
66
66
  return offset ?? 0;
67
67
  }
68
+ function isAnchorPoint(value) {
69
+ if (typeof value !== 'object' || value === null) {
70
+ return false;
71
+ }
72
+ if (!('x' in value) || !('y' in value)) {
73
+ return false;
74
+ }
75
+ let width = 'width' in value ? value.width : undefined;
76
+ let height = 'height' in value ? value.height : undefined;
77
+ return (typeof value.x === 'number' &&
78
+ typeof value.y === 'number' &&
79
+ (width === undefined || typeof width === 'number') &&
80
+ (height === undefined || typeof height === 'number'));
81
+ }
82
+ function readAnchorRect(anchorTarget) {
83
+ if (anchorTarget instanceof HTMLElement) {
84
+ return anchorTarget.getBoundingClientRect();
85
+ }
86
+ return new DOMRect(anchorTarget.x, anchorTarget.y, anchorTarget.width ?? 0, anchorTarget.height ?? 0);
87
+ }
68
88
  function calculatePosition(placement, anchorRect, floatingWidth, floatingHeight, inset = false) {
69
89
  let top = anchorRect.bottom;
70
90
  let left = anchorRect.left + (anchorRect.width - floatingWidth) / 2;
@@ -306,11 +326,9 @@ function getPlacementScore(placement, anchorRect, placementWidth, placementHeigh
306
326
  perfect: total === 4,
307
327
  };
308
328
  }
309
- function getFlippedPlacement(placement, anchorRect, placementWidth, placementHeight, collisionWidth, collisionHeight, anchor, inset, offset, offsetX, offsetY, relativeOffsetX, relativeOffsetY) {
310
- let computedStyle = getComputedStyle(anchor);
311
- let isAbsolutePositioned = computedStyle.position !== 'fixed';
329
+ function getFlippedPlacement(placement, anchorRect, placementWidth, placementHeight, collisionWidth, collisionHeight, anchorIsAbsolutePositioned, inset, offset, offsetX, offsetY, relativeOffsetX, relativeOffsetY) {
312
330
  let hasScroll = window.scrollY > 0;
313
- if (placement.startsWith('top') && isAbsolutePositioned && hasScroll) {
331
+ if (placement.startsWith('top') && anchorIsAbsolutePositioned && hasScroll) {
314
332
  if (anchorRect.top - placementHeight < 0) {
315
333
  return placement;
316
334
  }
@@ -388,19 +406,20 @@ function solveRelativeAlignmentAxis(options) {
388
406
  scroll,
389
407
  };
390
408
  }
391
- export function anchor(floating, anchorElement, options = {}) {
409
+ export function anchor(floating, anchorTarget, options = {}) {
392
410
  let lastAnchorRect;
393
411
  let lastFloatingDimensions;
394
412
  if (!(floating instanceof HTMLElement)) {
395
413
  throw new TypeError('anchor() expected a floating HTMLElement');
396
414
  }
397
- if (!(anchorElement instanceof HTMLElement)) {
398
- throw new TypeError('anchor() expected an anchor HTMLElement');
415
+ if (!(anchorTarget instanceof HTMLElement) && !isAnchorPoint(anchorTarget)) {
416
+ throw new TypeError('anchor() expected an anchor HTMLElement or coordinates');
399
417
  }
400
418
  let { placement = 'bottom', inset = false, relativeTo, offset: rawOffset = 0, offsetX: rawOffsetX = 0, offsetY: rawOffsetY = 0, } = options;
401
- let isFixed = floating.hasAttribute('popover') || getComputedStyle(anchorElement).position === 'fixed';
419
+ let anchorIsAbsolutePositioned = anchorTarget instanceof HTMLElement && getComputedStyle(anchorTarget).position !== 'fixed';
420
+ let isFixed = floating.hasAttribute('popover') || !anchorIsAbsolutePositioned;
402
421
  let animationFrameId = 0;
403
- function updatePosition(anchorRect = anchorElement.getBoundingClientRect(), naturalDimensions = getFloatingDimensions(floating, relativeTo, {
422
+ function updatePosition(anchorRect = readAnchorRect(anchorTarget), naturalDimensions = getFloatingDimensions(floating, relativeTo, {
404
423
  ignoreInlineMaxSize: true,
405
424
  })) {
406
425
  let offset = resolveOffsetValue(rawOffset, floating);
@@ -413,7 +432,7 @@ export function anchor(floating, anchorElement, options = {}) {
413
432
  let placementHeight = relativeTo && naturalDimensions.relativeHeight
414
433
  ? naturalDimensions.relativeHeight
415
434
  : naturalDimensions.height;
416
- let finalPlacement = getFlippedPlacement(placement, anchorRect, placementWidth, placementHeight, naturalDimensions.width, naturalDimensions.height, anchorElement, inset, offset, offsetX, offsetY, naturalDimensions.relativeOffsetX, naturalDimensions.relativeOffsetY);
435
+ let finalPlacement = getFlippedPlacement(placement, anchorRect, placementWidth, placementHeight, naturalDimensions.width, naturalDimensions.height, anchorIsAbsolutePositioned, inset, offset, offsetX, offsetY, naturalDimensions.relativeOffsetX, naturalDimensions.relativeOffsetY);
417
436
  floating.setAttribute('data-anchor-placement', finalPlacement);
418
437
  let position = calculateDocumentPosition(finalPlacement, anchorRect, placementWidth, placementHeight, inset, offset, offsetX, offsetY, isFixed, naturalDimensions.scrollContainerOffsetX, naturalDimensions.scrollContainerOffsetY, naturalDimensions.relativeOffsetX, naturalDimensions.relativeOffsetY);
419
438
  let availableWidth = Math.max(getAvailableWidthForPlacement(finalPlacement, position.left, naturalDimensions.width, viewport), 0);
@@ -532,7 +551,7 @@ export function anchor(floating, anchorElement, options = {}) {
532
551
  }
533
552
  updatePosition();
534
553
  function pollForPositionChanges() {
535
- let currentRect = anchorElement.getBoundingClientRect();
554
+ let currentRect = readAnchorRect(anchorTarget);
536
555
  let currentDimensions = getFloatingDimensions(floating, relativeTo);
537
556
  if (hasRectChanged(currentRect, lastAnchorRect) ||
538
557
  hasFloatingDimensionsChanged(currentDimensions, lastFloatingDimensions)) {
@@ -555,4 +574,4 @@ export function anchor(floating, anchorElement, options = {}) {
555
574
  window.removeEventListener('resize', handleResize);
556
575
  };
557
576
  }
558
- //# sourceMappingURL=anchor.js.map
577
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/anchor/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ import { type Handle } from '@remix-run/ui';
2
+ export declare function AspectRatio(handle: Handle): () => import("@remix-run/ui").RemixElement;
@@ -0,0 +1,69 @@
1
+ import { jsx as _jsx, jsxs as _jsxs } from "@remix-run/ui/jsx-runtime";
2
+ import {} from '@remix-run/ui';
3
+ import { css, on } from '@remix-run/ui';
4
+ import { spring } from '@remix-run/ui/animation';
5
+ export function AspectRatio(handle) {
6
+ let aspectRatio = 1;
7
+ let width = 100;
8
+ return () => (_jsxs("div", { mix: [
9
+ css({
10
+ display: 'flex',
11
+ alignItems: 'center',
12
+ flexDirection: 'column',
13
+ gap: 20,
14
+ }),
15
+ ], children: [_jsx("div", { mix: [
16
+ css({
17
+ display: 'flex',
18
+ justifyContent: 'center',
19
+ alignItems: 'center',
20
+ width: 180,
21
+ height: 180,
22
+ }),
23
+ ], children: _jsx("div", { mix: [
24
+ css({
25
+ backgroundColor: '#8df0cc',
26
+ borderRadius: 10,
27
+ transition: spring.transition(['width', 'aspect-ratio'], 'bouncy'),
28
+ }),
29
+ ], style: {
30
+ width,
31
+ aspectRatio,
32
+ } }) }), _jsxs("div", { mix: [css({ display: 'flex', flexDirection: 'column', gap: 12, width: '100%' })], children: [_jsxs("label", { mix: [
33
+ css({
34
+ display: 'flex',
35
+ alignItems: 'center',
36
+ gap: 10,
37
+ fontSize: 13,
38
+ color: '#666',
39
+ }),
40
+ ], children: [_jsx("span", { mix: [css({ width: 50, flexShrink: 0 })], children: "Ratio" }), _jsx("input", { type: "range", value: aspectRatio, min: 0.2, max: 3, step: 0.1, mix: [
41
+ css(rangeInputCss),
42
+ on('input', (event) => {
43
+ let value = event.currentTarget.value;
44
+ aspectRatio = parseFloat(value);
45
+ handle.update();
46
+ }),
47
+ ] }), _jsx("span", { mix: [css({ width: 32, textAlign: 'right', fontVariantNumeric: 'tabular-nums' })], children: aspectRatio.toFixed(1) })] }), _jsxs("label", { mix: [
48
+ css({
49
+ display: 'flex',
50
+ alignItems: 'center',
51
+ gap: 10,
52
+ fontSize: 13,
53
+ color: '#666',
54
+ }),
55
+ ], children: [_jsx("span", { mix: [css({ width: 50, flexShrink: 0 })], children: "Width" }), _jsx("input", { type: "range", value: width, min: 20, max: 160, step: 5, mix: [
56
+ css(rangeInputCss),
57
+ on('input', (event) => {
58
+ let value = event.currentTarget.value;
59
+ width = parseFloat(value);
60
+ handle.update();
61
+ }),
62
+ ] }), _jsx("span", { mix: [css({ width: 32, textAlign: 'right', fontVariantNumeric: 'tabular-nums' })], children: width })] })] })] }));
63
+ }
64
+ const rangeInputCss = {
65
+ flex: 1,
66
+ accentColor: '#8df0cc',
67
+ cursor: 'pointer',
68
+ };
69
+ //# sourceMappingURL=aspect-ratio.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"aspect-ratio.js","sourceRoot":"","sources":["../../../src/animation/demos/aspect-ratio.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ import { type Handle } from '@remix-run/ui';
2
+ export declare function BouncySwitch(handle: Handle): () => import("@remix-run/ui").RemixElement;
@@ -0,0 +1,36 @@
1
+ import { jsx as _jsx } from "@remix-run/ui/jsx-runtime";
2
+ import {} from '@remix-run/ui';
3
+ import { css, on } from '@remix-run/ui';
4
+ import { spring } from '@remix-run/ui/animation';
5
+ const bounceEasing = `linear(0, 0.258 12%, 0.424 18.3%, 0.633 24.4%, 0.999 33.3%, 0.783 39.8%, 0.733 42.5%, 0.716 45.1%, 0.731 47.6%, 0.777 50.2%, 0.999 57.7%, 0.906 61.7%, 0.883 63.5%, 0.876 65.2%, 0.901 68.7%, 0.999 74.5%, 0.964 77.4%, 0.953 80.1%, 0.961 82.6%, 1 88.2%, 0.99 91.9%, 1)`;
6
+ export function BouncySwitch(handle) {
7
+ let isOn = true;
8
+ return () => (_jsx("div", { mix: [
9
+ css({
10
+ height: 160,
11
+ backgroundColor: '#ff6b35',
12
+ display: 'flex',
13
+ flexDirection: 'column',
14
+ justifyContent: 'flex-end',
15
+ borderRadius: 50,
16
+ padding: 10,
17
+ cursor: 'pointer',
18
+ }),
19
+ on('click', () => {
20
+ isOn = !isOn;
21
+ handle.update();
22
+ }),
23
+ ], children: _jsx("div", { mix: [
24
+ css({
25
+ width: 60,
26
+ height: 60,
27
+ backgroundColor: 'white',
28
+ borderRadius: 30,
29
+ willChange: 'transform',
30
+ }),
31
+ ], style: {
32
+ transform: isOn ? 'translateY(-100px)' : 'translateY(0)',
33
+ transition: isOn ? `transform ${spring()}` : `transform 800ms ${bounceEasing}`,
34
+ } }) }));
35
+ }
36
+ //# sourceMappingURL=bouncy-switch.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bouncy-switch.js","sourceRoot":"","sources":["../../../src/animation/demos/bouncy-switch.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAe,MAAM,eAAe,CAAA;AAC3C,OAAO,EAAE,GAAG,EAAE,EAAE,EAAE,MAAM,eAAe,CAAA;AAEvC,OAAO,EAAE,MAAM,EAAE,MAAM,yBAAyB,CAAA;AAEhD,MAAM,YAAY,GAAG,2QAA2Q,CAAA;AAEhS,MAAM,UAAU,YAAY,CAAC,MAAc;IACzC,IAAI,IAAI,GAAG,IAAI,CAAA;IAEf,OAAO,GAAG,EAAE,CAAC,CACX,cACE,GAAG,EAAE;YACH,GAAG,CAAC;gBACF,MAAM,EAAE,GAAG;gBACX,eAAe,EAAE,SAAS;gBAC1B,OAAO,EAAE,MAAM;gBACf,aAAa,EAAE,QAAQ;gBACvB,cAAc,EAAE,UAAU;gBAC1B,YAAY,EAAE,EAAE;gBAChB,OAAO,EAAE,EAAE;gBACX,MAAM,EAAE,SAAS;aAClB,CAAC;YACF,EAAE,CAAC,OAAO,EAAE,GAAG,EAAE;gBACf,IAAI,GAAG,CAAC,IAAI,CAAA;gBACZ,MAAM,CAAC,MAAM,EAAE,CAAA;YACjB,CAAC,CAAC;SACH,YAED,cACE,GAAG,EAAE;gBACH,GAAG,CAAC;oBACF,KAAK,EAAE,EAAE;oBACT,MAAM,EAAE,EAAE;oBACV,eAAe,EAAE,OAAO;oBACxB,YAAY,EAAE,EAAE;oBAChB,UAAU,EAAE,WAAW;iBACxB,CAAC;aACH,EACD,KAAK,EAAE;gBACL,SAAS,EAAE,IAAI,CAAC,CAAC,CAAC,oBAAoB,CAAC,CAAC,CAAC,eAAe;gBACxD,UAAU,EAAE,IAAI,CAAC,CAAC,CAAC,aAAa,MAAM,EAAE,EAAE,CAAC,CAAC,CAAC,mBAAmB,YAAY,EAAE;aAC/E,GACD,GACE,CACP,CAAA;AACH,CAAC"}
@@ -0,0 +1 @@
1
+ export declare function ColorInterpolation(): () => import("@remix-run/ui").RemixElement;