@remix-run/ui 0.3.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 (308) 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.js → anchor/index.js} +1 -1
  9. package/dist/anchor/index.js.map +1 -0
  10. package/dist/animation/demos/reordering.js +9 -6
  11. package/dist/animation/demos/reordering.js.map +1 -1
  12. package/dist/{components/breadcrumbs/breadcrumbs.js → breadcrumbs/index.js} +19 -19
  13. package/dist/breadcrumbs/index.js.map +1 -0
  14. package/dist/button/index.d.ts +15 -0
  15. package/dist/button/index.js +128 -0
  16. package/dist/button/index.js.map +1 -0
  17. package/dist/checkbox/index.d.ts +14 -0
  18. package/dist/checkbox/index.js +125 -0
  19. package/dist/checkbox/index.js.map +1 -0
  20. package/dist/combobox/index.d.ts +21 -0
  21. package/dist/combobox/index.js +58 -0
  22. package/dist/combobox/index.js.map +1 -0
  23. package/dist/{components/combobox/combobox.d.ts → combobox/primitives.d.ts} +3 -7
  24. package/dist/{components/combobox/combobox.js → combobox/primitives.js} +8 -61
  25. package/dist/combobox/primitives.js.map +1 -0
  26. package/dist/input/index.d.ts +13 -0
  27. package/dist/input/index.js +121 -0
  28. package/dist/input/index.js.map +1 -0
  29. package/dist/listbox/flash-attribute.js.map +1 -0
  30. package/dist/{components/listbox/listbox.d.ts → listbox/index.d.ts} +2 -6
  31. package/dist/{components/listbox/listbox.js → listbox/index.js} +4 -82
  32. package/dist/listbox/index.js.map +1 -0
  33. package/dist/menu/hover-aim.js.map +1 -0
  34. package/dist/menu/index.d.ts +42 -0
  35. package/dist/menu/index.js +250 -0
  36. package/dist/menu/index.js.map +1 -0
  37. package/dist/{components/menu/menu.d.ts → menu/primitives.d.ts} +3 -32
  38. package/dist/{components/menu/menu.js → menu/primitives.js} +97 -314
  39. package/dist/menu/primitives.js.map +1 -0
  40. package/dist/{components/popover/popover.d.ts → popover/index.d.ts} +2 -4
  41. package/dist/{components/popover/popover.js → popover/index.js} +5 -48
  42. package/dist/popover/index.js.map +1 -0
  43. package/dist/{interactions/outside-click/outside-click-mixin.js → popover/outside-click.js} +1 -1
  44. package/dist/popover/outside-click.js.map +1 -0
  45. package/dist/popover/scroll-lock.d.ts +1 -0
  46. package/dist/{utils → popover}/scroll-lock.js +0 -18
  47. package/dist/popover/scroll-lock.js.map +1 -0
  48. package/dist/radio/index.d.ts +12 -0
  49. package/dist/radio/index.js +77 -0
  50. package/dist/radio/index.js.map +1 -0
  51. package/dist/runtime/reconcile.js +11 -5
  52. package/dist/runtime/reconcile.js.map +1 -1
  53. package/dist/runtime/vdom.js +3 -0
  54. package/dist/runtime/vdom.js.map +1 -1
  55. package/dist/select/index.d.ts +19 -0
  56. package/dist/select/index.js +95 -0
  57. package/dist/select/index.js.map +1 -0
  58. package/dist/select/keydown.js.map +1 -0
  59. package/dist/{components/select/select.d.ts → select/primitives.d.ts} +4 -6
  60. package/dist/{components/select/select.js → select/primitives.js} +11 -63
  61. package/dist/select/primitives.js.map +1 -0
  62. package/dist/server/stream.js +2 -2
  63. package/dist/server/stream.js.map +1 -1
  64. package/dist/shared/focus-styles.d.ts +1 -0
  65. package/dist/shared/focus-styles.js +2 -0
  66. package/dist/shared/focus-styles.js.map +1 -0
  67. package/dist/shared/icons.d.ts +9 -0
  68. package/dist/shared/icons.js +42 -0
  69. package/dist/shared/icons.js.map +1 -0
  70. package/dist/shared/listbox-popover-styles.d.ts +6 -0
  71. package/dist/shared/listbox-popover-styles.js +137 -0
  72. package/dist/shared/listbox-popover-styles.js.map +1 -0
  73. package/dist/shared/style-values.d.ts +78 -0
  74. package/dist/{theme/presets/rmx-01/index.js → shared/style-values.js} +3 -34
  75. package/dist/shared/style-values.js.map +1 -0
  76. package/dist/{interactions/typeahead/typeahead-mixin.js → shared/typeahead.js} +1 -1
  77. package/dist/shared/typeahead.js.map +1 -0
  78. package/dist/shared/wait-for-css-transition.js.map +1 -0
  79. package/dist/shared/wait.js.map +1 -0
  80. package/dist/tabs/index.d.ts +32 -0
  81. package/dist/tabs/index.js +157 -0
  82. package/dist/tabs/index.js.map +1 -0
  83. package/dist/tabs/primitives.d.ts +57 -0
  84. package/dist/tabs/primitives.js +238 -0
  85. package/dist/tabs/primitives.js.map +1 -0
  86. package/dist/toggle/index.d.ts +9 -0
  87. package/dist/toggle/index.js +108 -0
  88. package/dist/toggle/index.js.map +1 -0
  89. package/dist/toggle/primitives.d.ts +29 -0
  90. package/dist/toggle/primitives.js +127 -0
  91. package/dist/toggle/primitives.js.map +1 -0
  92. package/package.json +73 -44
  93. package/src/{components/accordion → accordion}/README.md +50 -14
  94. package/src/accordion/index.tsx +285 -0
  95. package/src/accordion/primitives.tsx +512 -0
  96. package/src/{components/anchor → anchor}/README.md +37 -2
  97. package/src/animation/demos/reordering.tsx +9 -6
  98. package/src/{components/breadcrumbs → breadcrumbs}/README.md +4 -4
  99. package/src/{components/breadcrumbs/breadcrumbs.tsx → breadcrumbs/index.tsx} +18 -18
  100. package/src/button/README.md +44 -0
  101. package/src/button/index.ts +168 -0
  102. package/src/checkbox/README.md +59 -0
  103. package/src/checkbox/index.ts +162 -0
  104. package/src/{components/combobox → combobox}/README.md +58 -9
  105. package/src/combobox/index.tsx +112 -0
  106. package/src/{components/combobox/combobox.tsx → combobox/primitives.tsx} +5 -91
  107. package/src/input/README.md +52 -0
  108. package/src/input/index.ts +147 -0
  109. package/src/{components/listbox → listbox}/README.md +9 -41
  110. package/src/{components/listbox/listbox.ts → listbox/index.ts} +2 -87
  111. package/src/{components/menu → menu}/README.md +55 -14
  112. package/src/menu/index.tsx +354 -0
  113. package/src/{components/menu/menu.tsx → menu/primitives.tsx} +99 -413
  114. package/src/{components/popover → popover}/README.md +20 -39
  115. package/src/{components/popover/popover.ts → popover/index.ts} +3 -57
  116. package/src/{utils → popover}/scroll-lock.ts +0 -28
  117. package/src/radio/README.md +53 -0
  118. package/src/radio/index.ts +100 -0
  119. package/src/runtime/demos/readme.demo.tsx +16 -14
  120. package/src/runtime/reconcile.ts +11 -5
  121. package/src/runtime/vdom.ts +3 -0
  122. package/src/{components/select → select}/README.md +29 -19
  123. package/src/select/index.tsx +159 -0
  124. package/src/{components/select/select.tsx → select/primitives.tsx} +10 -98
  125. package/src/server/stream.ts +3 -3
  126. package/src/shared/focus-styles.ts +2 -0
  127. package/src/shared/icons.tsx +62 -0
  128. package/src/shared/listbox-popover-styles.ts +146 -0
  129. package/src/shared/style-values.ts +165 -0
  130. package/src/tabs/README.md +141 -0
  131. package/src/tabs/index.tsx +244 -0
  132. package/src/tabs/primitives.ts +365 -0
  133. package/src/toggle/README.md +56 -0
  134. package/src/toggle/index.tsx +134 -0
  135. package/src/toggle/primitives.ts +192 -0
  136. package/dist/animation/demos/animation.demo.d.ts +0 -5
  137. package/dist/animation/demos/animation.demo.js +0 -92
  138. package/dist/animation/demos/animation.demo.js.map +0 -1
  139. package/dist/animation/demos/spring.demo.d.ts +0 -6
  140. package/dist/animation/demos/spring.demo.js +0 -304
  141. package/dist/animation/demos/spring.demo.js.map +0 -1
  142. package/dist/components/accordion/accordion.d.ts +0 -92
  143. package/dist/components/accordion/accordion.js +0 -335
  144. package/dist/components/accordion/accordion.js.map +0 -1
  145. package/dist/components/accordion/demos/card.demo.d.ts +0 -7
  146. package/dist/components/accordion/demos/card.demo.js +0 -59
  147. package/dist/components/accordion/demos/card.demo.js.map +0 -1
  148. package/dist/components/accordion/demos/multiple.demo.d.ts +0 -7
  149. package/dist/components/accordion/demos/multiple.demo.js +0 -20
  150. package/dist/components/accordion/demos/multiple.demo.js.map +0 -1
  151. package/dist/components/accordion/demos/overview.demo.d.ts +0 -7
  152. package/dist/components/accordion/demos/overview.demo.js +0 -20
  153. package/dist/components/accordion/demos/overview.demo.js.map +0 -1
  154. package/dist/components/anchor/anchor.js.map +0 -1
  155. package/dist/components/breadcrumbs/basic.demo.d.ts +0 -6
  156. package/dist/components/breadcrumbs/basic.demo.js +0 -15
  157. package/dist/components/breadcrumbs/basic.demo.js.map +0 -1
  158. package/dist/components/breadcrumbs/breadcrumbs.js.map +0 -1
  159. package/dist/components/breadcrumbs/separator.demo.d.ts +0 -6
  160. package/dist/components/breadcrumbs/separator.demo.js +0 -15
  161. package/dist/components/breadcrumbs/separator.demo.js.map +0 -1
  162. package/dist/components/button/button.d.ts +0 -105
  163. package/dist/components/button/button.js +0 -207
  164. package/dist/components/button/button.js.map +0 -1
  165. package/dist/components/button/demos/aliases.demo.d.ts +0 -7
  166. package/dist/components/button/demos/aliases.demo.js +0 -19
  167. package/dist/components/button/demos/aliases.demo.js.map +0 -1
  168. package/dist/components/button/demos/basic.demo.d.ts +0 -7
  169. package/dist/components/button/demos/basic.demo.js +0 -20
  170. package/dist/components/button/demos/basic.demo.js.map +0 -1
  171. package/dist/components/button/demos/states.demo.d.ts +0 -7
  172. package/dist/components/button/demos/states.demo.js +0 -30
  173. package/dist/components/button/demos/states.demo.js.map +0 -1
  174. package/dist/components/combobox/combobox.js.map +0 -1
  175. package/dist/components/combobox/overview.demo.d.ts +0 -7
  176. package/dist/components/combobox/overview.demo.js +0 -154
  177. package/dist/components/combobox/overview.demo.js.map +0 -1
  178. package/dist/components/glyph/glyph.d.ts +0 -14
  179. package/dist/components/glyph/glyph.js +0 -65
  180. package/dist/components/glyph/glyph.js.map +0 -1
  181. package/dist/components/listbox/listbox.js.map +0 -1
  182. package/dist/components/listbox/overview.demo.d.ts +0 -7
  183. package/dist/components/listbox/overview.demo.js +0 -65
  184. package/dist/components/listbox/overview.demo.js.map +0 -1
  185. package/dist/components/menu/demos/bubbling.demo.d.ts +0 -6
  186. package/dist/components/menu/demos/bubbling.demo.js +0 -16
  187. package/dist/components/menu/demos/bubbling.demo.js.map +0 -1
  188. package/dist/components/menu/demos/context-trigger.demo.d.ts +0 -7
  189. package/dist/components/menu/demos/context-trigger.demo.js +0 -87
  190. package/dist/components/menu/demos/context-trigger.demo.js.map +0 -1
  191. package/dist/components/menu/demos/overview.demo.d.ts +0 -7
  192. package/dist/components/menu/demos/overview.demo.js +0 -33
  193. package/dist/components/menu/demos/overview.demo.js.map +0 -1
  194. package/dist/components/menu/hover-aim.js.map +0 -1
  195. package/dist/components/menu/menu.js.map +0 -1
  196. package/dist/components/popover/overview.demo.d.ts +0 -7
  197. package/dist/components/popover/overview.demo.js +0 -65
  198. package/dist/components/popover/overview.demo.js.map +0 -1
  199. package/dist/components/popover/popover.js.map +0 -1
  200. package/dist/components/select/deconstructed.demo.d.ts +0 -7
  201. package/dist/components/select/deconstructed.demo.js +0 -54
  202. package/dist/components/select/deconstructed.demo.js.map +0 -1
  203. package/dist/components/select/overview.demo.d.ts +0 -6
  204. package/dist/components/select/overview.demo.js +0 -28
  205. package/dist/components/select/overview.demo.js.map +0 -1
  206. package/dist/components/select/select.js.map +0 -1
  207. package/dist/components/separator/separator.d.ts +0 -2
  208. package/dist/components/separator/separator.js +0 -15
  209. package/dist/components/separator/separator.js.map +0 -1
  210. package/dist/components/tabs/tabs.d.ts +0 -78
  211. package/dist/components/tabs/tabs.js +0 -339
  212. package/dist/components/tabs/tabs.js.map +0 -1
  213. package/dist/interactions/keydown/keydown.js.map +0 -1
  214. package/dist/interactions/outside-click/outside-click-mixin.js.map +0 -1
  215. package/dist/interactions/typeahead/typeahead-mixin.js.map +0 -1
  216. package/dist/runtime/demos/basic.demo.d.ts +0 -6
  217. package/dist/runtime/demos/basic.demo.js +0 -16
  218. package/dist/runtime/demos/basic.demo.js.map +0 -1
  219. package/dist/runtime/demos/controlled-uncontrolled-values.demo.d.ts +0 -6
  220. package/dist/runtime/demos/controlled-uncontrolled-values.demo.js +0 -77
  221. package/dist/runtime/demos/controlled-uncontrolled-values.demo.js.map +0 -1
  222. package/dist/runtime/demos/keyed-list.demo.d.ts +0 -6
  223. package/dist/runtime/demos/keyed-list.demo.js +0 -62
  224. package/dist/runtime/demos/keyed-list.demo.js.map +0 -1
  225. package/dist/runtime/demos/readme.demo.d.ts +0 -5
  226. package/dist/runtime/demos/readme.demo.js +0 -396
  227. package/dist/runtime/demos/readme.demo.js.map +0 -1
  228. package/dist/theme/contract.d.ts +0 -61
  229. package/dist/theme/contract.js +0 -131
  230. package/dist/theme/contract.js.map +0 -1
  231. package/dist/theme/glyph-contract.d.ts +0 -11
  232. package/dist/theme/glyph-contract.js +0 -34
  233. package/dist/theme/glyph-contract.js.map +0 -1
  234. package/dist/theme/presets/rmx-01/glyphs.d.ts +0 -2
  235. package/dist/theme/presets/rmx-01/glyphs.js +0 -252
  236. package/dist/theme/presets/rmx-01/glyphs.js.map +0 -1
  237. package/dist/theme/presets/rmx-01/index.d.ts +0 -4
  238. package/dist/theme/presets/rmx-01/index.js.map +0 -1
  239. package/dist/theme/runtime.d.ts +0 -2
  240. package/dist/theme/runtime.js +0 -84
  241. package/dist/theme/runtime.js.map +0 -1
  242. package/dist/theme/theme.d.ts +0 -6
  243. package/dist/theme/theme.js +0 -5
  244. package/dist/theme/theme.js.map +0 -1
  245. package/dist/utils/flash-attribute.js.map +0 -1
  246. package/dist/utils/scroll-lock.d.ts +0 -3
  247. package/dist/utils/scroll-lock.js.map +0 -1
  248. package/dist/utils/wait-for-css-transition.js.map +0 -1
  249. package/dist/utils/wait.js.map +0 -1
  250. package/src/animation/demos/animation.demo.tsx +0 -194
  251. package/src/animation/demos/spring.demo.tsx +0 -385
  252. package/src/components/accordion/accordion.tsx +0 -565
  253. package/src/components/accordion/demos/card.demo.tsx +0 -114
  254. package/src/components/accordion/demos/multiple.demo.tsx +0 -57
  255. package/src/components/accordion/demos/overview.demo.tsx +0 -57
  256. package/src/components/breadcrumbs/basic.demo.tsx +0 -18
  257. package/src/components/breadcrumbs/separator.demo.tsx +0 -19
  258. package/src/components/button/README.md +0 -44
  259. package/src/components/button/button.tsx +0 -286
  260. package/src/components/button/demos/aliases.demo.tsx +0 -28
  261. package/src/components/button/demos/basic.demo.tsx +0 -31
  262. package/src/components/button/demos/states.demo.tsx +0 -53
  263. package/src/components/combobox/overview.demo.tsx +0 -200
  264. package/src/components/glyph/README.md +0 -72
  265. package/src/components/glyph/glyph.tsx +0 -110
  266. package/src/components/listbox/overview.demo.tsx +0 -102
  267. package/src/components/menu/demos/bubbling.demo.tsx +0 -35
  268. package/src/components/menu/demos/context-trigger.demo.tsx +0 -133
  269. package/src/components/menu/demos/overview.demo.tsx +0 -77
  270. package/src/components/popover/overview.demo.tsx +0 -144
  271. package/src/components/select/deconstructed.demo.tsx +0 -96
  272. package/src/components/select/overview.demo.tsx +0 -52
  273. package/src/components/separator/separator.ts +0 -19
  274. package/src/components/tabs/README.md +0 -105
  275. package/src/components/tabs/tabs.tsx +0 -504
  276. package/src/runtime/demos/basic.demo.tsx +0 -21
  277. package/src/runtime/demos/controlled-uncontrolled-values.demo.tsx +0 -177
  278. package/src/runtime/demos/keyed-list.demo.tsx +0 -94
  279. package/src/theme/README.md +0 -103
  280. package/src/theme/contract.ts +0 -215
  281. package/src/theme/glyph-contract.ts +0 -59
  282. package/src/theme/presets/rmx-01/glyphs.tsx +0 -308
  283. package/src/theme/presets/rmx-01/index.ts +0 -123
  284. package/src/theme/runtime.ts +0 -119
  285. package/src/theme/theme.ts +0 -15
  286. package/src/utils/scroll-lock/README.md +0 -33
  287. /package/dist/{components/anchor/anchor.d.ts → anchor/index.d.ts} +0 -0
  288. /package/dist/{components/breadcrumbs/breadcrumbs.d.ts → breadcrumbs/index.d.ts} +0 -0
  289. /package/dist/{utils → listbox}/flash-attribute.d.ts +0 -0
  290. /package/dist/{utils → listbox}/flash-attribute.js +0 -0
  291. /package/dist/{components/menu → menu}/hover-aim.d.ts +0 -0
  292. /package/dist/{components/menu → menu}/hover-aim.js +0 -0
  293. /package/dist/{interactions/outside-click/outside-click-mixin.d.ts → popover/outside-click.d.ts} +0 -0
  294. /package/dist/{interactions/keydown → select}/keydown.d.ts +0 -0
  295. /package/dist/{interactions/keydown → select}/keydown.js +0 -0
  296. /package/dist/{interactions/typeahead/typeahead-mixin.d.ts → shared/typeahead.d.ts} +0 -0
  297. /package/dist/{utils → shared}/wait-for-css-transition.d.ts +0 -0
  298. /package/dist/{utils → shared}/wait-for-css-transition.js +0 -0
  299. /package/dist/{utils → shared}/wait.d.ts +0 -0
  300. /package/dist/{utils → shared}/wait.js +0 -0
  301. /package/src/{components/anchor/anchor.ts → anchor/index.ts} +0 -0
  302. /package/src/{utils → listbox}/flash-attribute.ts +0 -0
  303. /package/src/{components/menu → menu}/hover-aim.ts +0 -0
  304. /package/src/{interactions/outside-click/outside-click-mixin.ts → popover/outside-click.ts} +0 -0
  305. /package/src/{interactions/keydown → select}/keydown.ts +0 -0
  306. /package/src/{interactions/typeahead/typeahead-mixin.ts → shared/typeahead.ts} +0 -0
  307. /package/src/{utils → shared}/wait-for-css-transition.ts +0 -0
  308. /package/src/{utils → shared}/wait.ts +0 -0
@@ -1,6 +0,0 @@
1
- import { type Handle } from '@remix-run/ui';
2
- /**
3
- * @name Controlled and Uncontrolled Values
4
- * @description Compares controlled props with uncontrolled DOM values across rerenders and remounts.
5
- */
6
- export default function App(handle: Handle): () => import("@remix-run/ui").RemixElement;
@@ -1,77 +0,0 @@
1
- import { jsx as _jsx, jsxs as _jsxs } from "@remix-run/ui/jsx-runtime";
2
- import { on } from '@remix-run/ui';
3
- /**
4
- * @name Controlled and Uncontrolled Values
5
- * @description Compares controlled props with uncontrolled DOM values across rerenders and remounts.
6
- */
7
- export default function App(handle) {
8
- let controlledText = 'hello';
9
- let controlledChecked = true;
10
- let controlledChoice = 'alpha';
11
- let uncontrolledTextSnapshot = 'type to update this';
12
- let uncontrolledCheckedSnapshot = true;
13
- let renderCount = 0;
14
- let uncontrolledVersion = 0;
15
- let rerender = () => {
16
- renderCount++;
17
- handle.update();
18
- };
19
- let resetControlled = () => {
20
- controlledText = 'hello';
21
- controlledChecked = true;
22
- controlledChoice = 'alpha';
23
- rerender();
24
- };
25
- let remountUncontrolled = () => {
26
- uncontrolledVersion++;
27
- uncontrolledTextSnapshot = 'type to update this';
28
- uncontrolledCheckedSnapshot = true;
29
- rerender();
30
- };
31
- return () => (_jsxs("main", { style: {
32
- fontFamily: 'system-ui, sans-serif',
33
- maxWidth: '860px',
34
- margin: '24px auto',
35
- padding: '0 16px',
36
- lineHeight: 1.45,
37
- }, children: [_jsx("h1", { children: "Controlled vs Uncontrolled Values" }), _jsxs("p", { children: ["Render count: ", _jsx("strong", { children: renderCount })] }), _jsxs("div", { style: { display: 'flex', gap: '10px', marginBottom: '18px' }, children: [_jsx("button", { mix: [on('click', rerender)], children: "Force Re-render" }), _jsx("button", { mix: [on('click', resetControlled)], children: "Reset Controlled" }), _jsx("button", { mix: [on('click', remountUncontrolled)], children: "Remount Uncontrolled" })] }), _jsxs("section", { style: {
38
- border: '1px solid #d0d7de',
39
- borderRadius: '8px',
40
- padding: '12px',
41
- marginBottom: '12px',
42
- }, children: [_jsx("h2", { children: "Controlled" }), _jsx("p", { children: "These values come from component state. The text input allows everything except digits, and invalid input does not call update." }), _jsxs("label", { style: { display: 'block', marginBottom: '8px' }, children: ["Text:", _jsx("input", { style: { marginLeft: '8px' }, value: controlledText, mix: [
43
- on('input', (event) => {
44
- let nextValue = event.currentTarget.value;
45
- if (/\d/.test(nextValue)) {
46
- return;
47
- }
48
- controlledText = nextValue;
49
- rerender();
50
- }),
51
- ] })] }), _jsxs("label", { style: { display: 'block', marginBottom: '8px' }, children: [_jsx("input", { type: "checkbox", checked: controlledChecked, mix: [
52
- on('change', (event) => {
53
- controlledChecked = event.currentTarget.checked;
54
- rerender();
55
- }),
56
- ] }), ' ', "Checked"] }), _jsxs("label", { style: { display: 'block', marginBottom: '8px' }, children: ["Choice:", _jsxs("select", { style: { marginLeft: '8px' }, value: controlledChoice, mix: [
57
- on('change', (event) => {
58
- controlledChoice = event.currentTarget.value;
59
- rerender();
60
- }),
61
- ], children: [_jsx("option", { value: "alpha", children: "Alpha" }), _jsx("option", { value: "beta", children: "Beta" }), _jsx("option", { value: "gamma", children: "Gamma" })] })] }), _jsxs("div", { children: ["State snapshot: text=", _jsx("code", { children: JSON.stringify(controlledText) }), ", checked=", _jsx("code", { children: String(controlledChecked) }), ", choice=", _jsx("code", { children: JSON.stringify(controlledChoice) })] })] }), _jsxs("section", { style: {
62
- border: '1px solid #d0d7de',
63
- borderRadius: '8px',
64
- padding: '12px',
65
- }, children: [_jsx("h2", { children: "Uncontrolled" }), _jsxs("p", { children: ["These initialize from ", _jsx("code", { children: "defaultValue/defaultChecked" }), " once and then keep their own DOM state."] }), _jsxs("label", { style: { display: 'block', marginBottom: '8px' }, children: ["Text:", _jsx("input", { style: { marginLeft: '8px' }, defaultValue: "type to update this", mix: [
66
- on('input', (event) => {
67
- uncontrolledTextSnapshot = event.currentTarget.value;
68
- rerender();
69
- }),
70
- ] })] }), _jsxs("label", { style: { display: 'block', marginBottom: '8px' }, children: [_jsx("input", { type: "checkbox", defaultChecked: true, mix: [
71
- on('change', (event) => {
72
- uncontrolledCheckedSnapshot = event.currentTarget.checked;
73
- rerender();
74
- }),
75
- ] }), ' ', "Checked"] }), _jsxs("div", { children: ["Last DOM snapshot: text=", _jsx("code", { children: JSON.stringify(uncontrolledTextSnapshot) }), ", checked=", _jsx("code", { children: String(uncontrolledCheckedSnapshot) })] })] }, `uncontrolled-${uncontrolledVersion}`)] }));
76
- }
77
- //# sourceMappingURL=controlled-uncontrolled-values.demo.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"controlled-uncontrolled-values.demo.js","sourceRoot":"","sources":["../../../src/runtime/demos/controlled-uncontrolled-values.demo.tsx"],"names":[],"mappings":"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"}
@@ -1,6 +0,0 @@
1
- import { type Handle } from '@remix-run/ui';
2
- /**
3
- * @name Keyed List
4
- * @description Exercises keyed DOM reconciliation with shuffling, reversing, and per-item controls.
5
- */
6
- export default function App(handle: Handle): () => import("@remix-run/ui").RemixElement;
@@ -1,62 +0,0 @@
1
- import { jsx as _jsx, jsxs as _jsxs } from "@remix-run/ui/jsx-runtime";
2
- import { on } from '@remix-run/ui';
3
- /**
4
- * @name Keyed List
5
- * @description Exercises keyed DOM reconciliation with shuffling, reversing, and per-item controls.
6
- */
7
- export default function App(handle) {
8
- let items = [
9
- { id: 'a', label: 'Item A' },
10
- { id: 'b', label: 'Item B' },
11
- { id: 'c', label: 'Item C' },
12
- { id: 'd', label: 'Item D' },
13
- ];
14
- let shuffleInterval = null;
15
- let moveUp = (index) => {
16
- if (index === 0)
17
- return;
18
- let newItems = [...items];
19
- [newItems[index - 1], newItems[index]] = [newItems[index], newItems[index - 1]];
20
- items = newItems;
21
- handle.update();
22
- };
23
- let moveDown = (index) => {
24
- if (index === items.length - 1)
25
- return;
26
- let newItems = [...items];
27
- [newItems[index], newItems[index + 1]] = [newItems[index + 1], newItems[index]];
28
- items = newItems;
29
- handle.update();
30
- };
31
- let reverse = () => {
32
- items = [...items].reverse();
33
- handle.update();
34
- };
35
- let shuffle = () => {
36
- let newItems = [...items];
37
- for (let i = newItems.length - 1; i > 0; i--) {
38
- let j = Math.floor(Math.random() * (i + 1));
39
- [newItems[i], newItems[j]] = [newItems[j], newItems[i]];
40
- }
41
- items = newItems;
42
- handle.update();
43
- };
44
- let toggleAutoShuffle = () => {
45
- if (shuffleInterval !== null) {
46
- clearInterval(shuffleInterval);
47
- shuffleInterval = null;
48
- }
49
- else {
50
- shuffleInterval = setInterval(() => {
51
- shuffle();
52
- }, 1000);
53
- }
54
- handle.update();
55
- };
56
- return () => (_jsxs("div", { children: [_jsxs("div", { className: "controls", children: [_jsx("button", { mix: [on('click', reverse)], children: "Reverse List" }), _jsx("button", { mix: [on('click', shuffle)], children: "Shuffle List" }), _jsx("button", { mix: [on('click', toggleAutoShuffle)], children: shuffleInterval !== null ? 'Stop Auto-Shuffle' : 'Start Auto-Shuffle' })] }), items.map((item, index) => (_jsxs("div", { className: "list-item", children: [_jsx("input", { type: "text", placeholder: item.label, defaultValue: item.label }), _jsx("button", {
57
- // disabled={index === 0}
58
- mix: [on('click', () => moveUp(index))], children: "\u2191" }), _jsx("button", {
59
- // disabled={index === items.length - 1}
60
- mix: [on('click', () => moveDown(index))], children: "\u2193" })] }, item.id)))] }));
61
- }
62
- //# sourceMappingURL=keyed-list.demo.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"keyed-list.demo.js","sourceRoot":"","sources":["../../../src/runtime/demos/keyed-list.demo.tsx"],"names":[],"mappings":"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"}
@@ -1,5 +0,0 @@
1
- /**
2
- * @name README Examples
3
- * @description A gallery of small examples that mirror the package README snippets.
4
- */
5
- export default function DemoApp(): () => import("@remix-run/ui").RemixElement;
@@ -1,396 +0,0 @@
1
- import { jsxs as _jsxs, jsx as _jsx, Fragment as _Fragment } from "@remix-run/ui/jsx-runtime";
2
- import { addEventListeners, css, on, ref, TypedEventTarget, } from '@remix-run/ui';
3
- // ============================================================================
4
- // Getting Started - Basic App Example
5
- // ============================================================================
6
- function App(handle) {
7
- let count = 0;
8
- return () => (_jsxs("button", { mix: [
9
- on('click', () => {
10
- count++;
11
- handle.update();
12
- }),
13
- ], children: ["Count: ", count] }));
14
- }
15
- // ============================================================================
16
- // Component State and Updates - Counter
17
- // ============================================================================
18
- function Counter(handle) {
19
- let count = 0;
20
- return () => (_jsxs("div", { children: [_jsxs("span", { children: ["Count: ", count] }), _jsx("button", { mix: [
21
- on('click', () => {
22
- count++;
23
- handle.update();
24
- }),
25
- ], children: "Increment" })] }));
26
- }
27
- // ============================================================================
28
- // Components - Greeting
29
- // ============================================================================
30
- function Greeting(handle) {
31
- return () => _jsxs("h1", { children: ["Hello, ", handle.props.name, "!"] });
32
- }
33
- // ============================================================================
34
- // Stateful Components - CounterWithSetup
35
- // ============================================================================
36
- function CounterWithSetup(handle) {
37
- // Component function: runs once
38
- let count = handle.props.initialCount;
39
- // Return render function: runs on every update
40
- return () => (_jsxs("div", { children: [handle.props.label || 'Count', ": ", count, _jsx("button", { mix: [
41
- on('click', () => {
42
- count++;
43
- handle.update();
44
- }),
45
- ], children: "Increment" })] }));
46
- }
47
- // ============================================================================
48
- // Setup Prop vs Props - CounterWithLabel
49
- // ============================================================================
50
- function CounterWithLabel(handle) {
51
- let count = handle.props.initialCount;
52
- return () => (_jsxs("div", { children: [handle.props.label, ": ", count, _jsx("button", { mix: [
53
- on('click', () => {
54
- count++;
55
- handle.update();
56
- }),
57
- ], children: "+" })] }));
58
- }
59
- // ============================================================================
60
- // Events - SearchInput
61
- // ============================================================================
62
- function SearchInput(handle) {
63
- let query = '';
64
- let results = [];
65
- let loading = false;
66
- return () => (_jsxs("div", { children: [_jsx("input", { type: "text", value: query, placeholder: "Type to search...", mix: [
67
- on('input', (event, signal) => {
68
- query = event.currentTarget.value;
69
- loading = true;
70
- handle.update();
71
- // Simulated search with timeout
72
- setTimeout(() => {
73
- if (signal.aborted)
74
- return;
75
- results = query ? [`Result for "${query}" 1`, `Result for "${query}" 2`] : [];
76
- loading = false;
77
- handle.update();
78
- }, 300);
79
- }),
80
- ] }), loading && _jsx("div", { children: "Loading..." }), !loading && results.length > 0 && (_jsx("ul", { children: results.map((r) => (_jsx("li", { children: r }))) }))] }));
81
- }
82
- // ============================================================================
83
- // Controlled Input - Slug Form
84
- // ============================================================================
85
- function SlugForm(handle) {
86
- let slug = '';
87
- let generatedSlug = '';
88
- return () => (_jsxs("form", { children: [_jsxs("label", { mix: [css({ display: 'flex', alignItems: 'center', gap: '8px' })], children: [_jsx("input", { type: "checkbox", mix: [
89
- on('change', (event) => {
90
- if (event.currentTarget.checked) {
91
- generatedSlug = crypto.randomUUID().slice(0, 8);
92
- }
93
- else {
94
- generatedSlug = '';
95
- }
96
- handle.update();
97
- }),
98
- ] }), "Auto-generate slug"] }), _jsxs("label", { mix: [css({ display: 'flex', flexDirection: 'column', gap: '4px' })], children: ["Slug", _jsx("input", { type: "text", value: generatedSlug || slug, disabled: !!generatedSlug, mix: [
99
- on('input', (event) => {
100
- slug = event.currentTarget.value;
101
- handle.update();
102
- }),
103
- ] })] })] }));
104
- }
105
- // ============================================================================
106
- // Global Events - KeyboardTracker
107
- // ============================================================================
108
- function KeyboardTracker(handle) {
109
- let keys = [];
110
- addEventListeners(document, handle.signal, {
111
- keydown: (event) => {
112
- keys.push(event.key);
113
- if (keys.length > 10)
114
- keys.shift();
115
- handle.update();
116
- },
117
- });
118
- return () => _jsxs("div", { children: ["Keys: ", keys.join(', ') || '(press some keys)'] });
119
- }
120
- // ============================================================================
121
- // CSS Prop - Button (Basic)
122
- // ============================================================================
123
- function ButtonBasic() {
124
- return () => (_jsx("button", { mix: [
125
- css({
126
- color: 'white',
127
- backgroundColor: 'rgb(54, 113, 246)',
128
- border: 'none',
129
- padding: '8px 16px',
130
- borderRadius: '4px',
131
- cursor: 'pointer',
132
- '&:hover': {
133
- backgroundColor: 'rgb(37, 90, 210)',
134
- },
135
- '&:active': {
136
- transform: 'scale(0.98)',
137
- },
138
- }),
139
- ], children: "Click me" }));
140
- }
141
- // ============================================================================
142
- // CSS Prop - Button (Advanced with nested rules)
143
- // ============================================================================
144
- function ButtonAdvanced() {
145
- return () => (_jsxs("button", { mix: [
146
- css({
147
- color: 'white',
148
- backgroundColor: 'rgb(54, 113, 246)',
149
- border: 'none',
150
- padding: '10px 20px',
151
- borderRadius: '6px',
152
- cursor: 'pointer',
153
- position: 'relative',
154
- display: 'inline-flex',
155
- alignItems: 'center',
156
- gap: '8px',
157
- '&:hover': {
158
- backgroundColor: 'rgb(37, 90, 210)',
159
- },
160
- '&::before': {
161
- content: '""',
162
- position: 'absolute',
163
- inset: '-2px',
164
- borderRadius: '8px',
165
- background: 'linear-gradient(45deg, rgb(54, 113, 246), rgb(99, 179, 255))',
166
- zIndex: -1,
167
- opacity: 0,
168
- transition: 'opacity 0.2s',
169
- },
170
- '&:hover::before': {
171
- opacity: 1,
172
- },
173
- '.icon': {
174
- width: '16px',
175
- height: '16px',
176
- },
177
- }),
178
- ], children: [_jsx("span", { className: "icon", children: "\u2605" }), "Click me"] }));
179
- }
180
- // ============================================================================
181
- // Ref Mixin - Form (Basic)
182
- // ============================================================================
183
- function FormBasic() {
184
- let inputRef;
185
- return () => (_jsxs("div", { children: [_jsx("input", { type: "text", placeholder: "Click the button to select this",
186
- // capture the input node
187
- mix: [ref((node) => (inputRef = node)), css({ marginRight: '8px', padding: '4px 8px' })] }), _jsx("button", { mix: [
188
- css({ padding: '4px 12px' }),
189
- on('click', () => {
190
- // Select it from other parts of the form
191
- inputRef.select();
192
- }),
193
- ], children: "Select Input" })] }));
194
- }
195
- // ============================================================================
196
- // Ref Mixin with AbortSignal - ResizeObserver Component
197
- // ============================================================================
198
- function ResizeComponent(handle) {
199
- let dimensions = { width: 0, height: 0 };
200
- return () => (_jsxs("div", { mix: [
201
- ref((node, signal) => {
202
- // Set up something that needs cleanup
203
- let observer = new ResizeObserver((entries) => {
204
- let entry = entries[0];
205
- if (entry) {
206
- dimensions.width = Math.round(entry.contentRect.width);
207
- dimensions.height = Math.round(entry.contentRect.height);
208
- handle.update();
209
- }
210
- });
211
- observer.observe(node);
212
- // Clean up when element is removed
213
- signal.addEventListener('abort', () => {
214
- observer.disconnect();
215
- });
216
- }),
217
- css({
218
- padding: '20px',
219
- backgroundColor: 'rgba(255, 255, 255, 0.1)',
220
- borderRadius: '8px',
221
- resize: 'both',
222
- overflow: 'auto',
223
- minWidth: '100px',
224
- minHeight: '60px',
225
- border: '1px solid rgb(209, 213, 219)',
226
- }),
227
- ], children: ["Resize me! (", dimensions.width, " \u00D7 ", dimensions.height, ")"] }));
228
- }
229
- // ============================================================================
230
- // handle.update() - Player
231
- // ============================================================================
232
- function Player(handle) {
233
- let isPlaying = false;
234
- let playButton;
235
- let stopButton;
236
- return () => (_jsxs("div", { mix: [css({ display: 'flex', gap: '8px' })], children: [_jsx("button", { disabled: isPlaying, mix: [
237
- ref((node) => (playButton = node)),
238
- css({
239
- padding: '8px 16px',
240
- opacity: isPlaying ? 0.5 : 1,
241
- }),
242
- on('click', async () => {
243
- isPlaying = true;
244
- await handle.update();
245
- // Focus the enabled button after update completes
246
- stopButton.focus();
247
- }),
248
- ], children: "\u25B6 Play" }), _jsx("button", { disabled: !isPlaying, mix: [
249
- ref((node) => (stopButton = node)),
250
- css({
251
- padding: '8px 16px',
252
- opacity: !isPlaying ? 0.5 : 1,
253
- }),
254
- on('click', async () => {
255
- isPlaying = false;
256
- await handle.update();
257
- // Focus the enabled button after update completes
258
- playButton.focus();
259
- }),
260
- ], children: "\u23F9 Stop" })] }));
261
- }
262
- // ============================================================================
263
- // handle.queueTask - Form with scroll
264
- // ============================================================================
265
- function FormWithScroll(handle) {
266
- let showDetails = false;
267
- let detailsSection;
268
- return () => (_jsxs("div", { children: [_jsxs("label", { mix: [css({ display: 'flex', alignItems: 'center', gap: '8px', cursor: 'pointer' })], children: [_jsx("input", { type: "checkbox", checked: showDetails, mix: [
269
- on('change', (event) => {
270
- showDetails = event.currentTarget.checked;
271
- handle.update();
272
- if (showDetails) {
273
- // Scroll to the expanded section after it renders
274
- handle.queueTask(() => {
275
- detailsSection.scrollIntoView({ behavior: 'smooth', block: 'start' });
276
- });
277
- }
278
- }),
279
- ] }), "Show additional details"] }), showDetails && (_jsxs("section", { mix: [
280
- ref((node) => (detailsSection = node)),
281
- css({
282
- marginTop: '1rem',
283
- padding: '1rem',
284
- border: '1px solid rgba(255, 255, 255, 0.2)',
285
- borderRadius: '8px',
286
- backgroundColor: 'rgba(255, 255, 255, 0.05)',
287
- }),
288
- ], children: [_jsx("h3", { mix: [css({ margin: '0 0 0.5rem 0' })], children: "Additional Details" }), _jsx("p", { mix: [css({ margin: 0 })], children: "This section appears when the checkbox is checked." })] }))] }));
289
- }
290
- // ============================================================================
291
- // handle.signal - Clock
292
- // ============================================================================
293
- function Clock(handle) {
294
- let interval = setInterval(() => {
295
- // clear the interval when the component is disconnected
296
- if (handle.signal.aborted) {
297
- clearInterval(interval);
298
- return;
299
- }
300
- handle.update();
301
- }, 1000);
302
- return () => _jsx("span", { children: new Date().toLocaleTimeString() });
303
- }
304
- // ============================================================================
305
- // handle.id - LabeledInput
306
- // ============================================================================
307
- function LabeledInput(handle) {
308
- return () => (_jsxs("div", { mix: [css({ display: 'flex', flexDirection: 'column', gap: '4px' })], children: [_jsx("label", { htmlFor: handle.id, children: "Name" }), _jsx("input", { id: handle.id, type: "text", mix: [
309
- css({
310
- padding: '4px 8px',
311
- borderRadius: '4px',
312
- border: '1px solid rgba(255,255,255,0.3)',
313
- }),
314
- ] })] }));
315
- }
316
- // ============================================================================
317
- // Context API - Theme Provider and Consumer
318
- // ============================================================================
319
- function ThemeProvider(handle) {
320
- handle.context.set({ theme: 'dark' });
321
- return () => (_jsx("div", { mix: [css({ display: 'flex', flexDirection: 'column', gap: '8px' })], children: _jsx(ThemedHeader, {}) }));
322
- }
323
- function ThemedHeader(handle) {
324
- // Consume context from ThemeProvider
325
- let { theme } = handle.context.get(ThemeProvider);
326
- return () => (_jsx("header", { mix: [
327
- css({
328
- backgroundColor: theme === 'dark' ? '#000' : '#fff',
329
- color: theme === 'dark' ? '#fff' : '#000',
330
- }),
331
- ], children: "Header" }));
332
- }
333
- // ============================================================================
334
- // Context API with EventTarget - Advanced Theme
335
- // ============================================================================
336
- class Theme extends TypedEventTarget {
337
- #value = 'light';
338
- get value() {
339
- return this.#value;
340
- }
341
- setValue(value) {
342
- this.#value = value;
343
- this.dispatchEvent(new Event('change'));
344
- }
345
- }
346
- function ThemeProviderAdvanced(handle) {
347
- let theme = new Theme();
348
- handle.context.set(theme);
349
- return () => (_jsxs("div", { mix: [css({ display: 'flex', flexDirection: 'column', gap: '8px' })], children: [_jsx("button", { mix: [
350
- css({ padding: '8px 16px', alignSelf: 'flex-start' }),
351
- on('click', () => {
352
- // no updates in the parent component
353
- theme.setValue(theme.value === 'light' ? 'dark' : 'light');
354
- }),
355
- ], children: "Toggle Theme (EventTarget)" }), _jsx(ThemedContent, {})] }));
356
- }
357
- function ThemedContent(handle) {
358
- let theme = handle.context.get(ThemeProviderAdvanced);
359
- // Subscribe to theme changes and update when it changes
360
- addEventListeners(theme, handle.signal, {
361
- change() {
362
- handle.update();
363
- },
364
- });
365
- return () => (_jsxs("div", { mix: [
366
- css({
367
- padding: '12px',
368
- borderRadius: '6px',
369
- backgroundColor: theme.value === 'dark' ? '#1a1a1a' : '#f0f0f0',
370
- color: theme.value === 'dark' ? '#fff' : '#000',
371
- }),
372
- ], children: ["Current theme: ", theme.value] }));
373
- }
374
- // ============================================================================
375
- // Fragments - List
376
- // ============================================================================
377
- function ListWithFragment() {
378
- return () => (_jsx("ul", { mix: [css({ margin: 0, paddingLeft: '20px' })], children: _jsxs(_Fragment, { children: [_jsx("li", { children: "Item 1" }), _jsx("li", { children: "Item 2" }), _jsx("li", { children: "Item 3" })] }) }));
379
- }
380
- // ============================================================================
381
- // Example Container Component
382
- // ============================================================================
383
- function Example(handle) {
384
- return () => (_jsxs("div", { className: "example", children: [_jsx("h2", { children: handle.props.title }), _jsx("div", { className: "example-content", children: handle.props.children })] }));
385
- }
386
- // ============================================================================
387
- // Main Demo App
388
- // ============================================================================
389
- /**
390
- * @name README Examples
391
- * @description A gallery of small examples that mirror the package README snippets.
392
- */
393
- export default function DemoApp() {
394
- return () => (_jsxs("div", { className: "examples-grid", children: [_jsx(Example, { title: "Getting Started - Counter", children: _jsx(App, {}) }), _jsx(Example, { title: "Component State - Counter", children: _jsx(Counter, {}) }), _jsx(Example, { title: "Greeting", children: _jsx(Greeting, { name: "World" }) }), _jsx(Example, { title: "Counter with Setup", children: _jsx(CounterWithSetup, { initialCount: 10, label: "Total" }) }), _jsx(Example, { title: "Setup vs Props", children: _jsx(CounterWithLabel, { initialCount: 5, label: "Score" }) }), _jsx(Example, { title: "Events - Search Input", children: _jsx(SearchInput, {}) }), _jsx(Example, { title: "Controlled Input - Slug Form", children: _jsx(SlugForm, {}) }), _jsx(Example, { title: "Global Events - Keyboard Tracker", children: _jsx(KeyboardTracker, {}) }), _jsx(Example, { title: "CSS Prop - Basic Button", children: _jsx(ButtonBasic, {}) }), _jsx(Example, { title: "CSS Prop - Advanced Button", children: _jsx(ButtonAdvanced, {}) }), _jsx(Example, { title: "Ref Mixin - Form", children: _jsx(FormBasic, {}) }), _jsx(Example, { title: "Ref with AbortSignal - Resize Observer", children: _jsx(ResizeComponent, {}) }), _jsx(Example, { title: "handle.update() - Player", children: _jsx(Player, {}) }), _jsx(Example, { title: "handle.queueTask - Scroll to Section", children: _jsx(FormWithScroll, {}) }), _jsx(Example, { title: "handle.signal - Clock", children: _jsx(Clock, {}) }), _jsx(Example, { title: "handle.id - Labeled Input", children: _jsx(LabeledInput, {}) }), _jsx(Example, { title: "Context API - Theme Provider", children: _jsx(ThemeProvider, {}) }), _jsx(Example, { title: "Context with EventTarget", children: _jsx(ThemeProviderAdvanced, {}) }), _jsx(Example, { title: "Fragments - List", children: _jsx(ListWithFragment, {}) })] }));
395
- }
396
- //# sourceMappingURL=readme.demo.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"readme.demo.js","sourceRoot":"","sources":["../../../src/runtime/demos/readme.demo.tsx"],"names":[],"mappings":"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"}