@remix-run/ui 0.3.0 → 0.5.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 (434) hide show
  1. package/README.md +116 -157
  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/animate-layout-mixin.js +1 -1
  11. package/dist/animation/animate-layout-mixin.js.map +1 -1
  12. package/dist/animation/animate-mixins.js +2 -2
  13. package/dist/animation/animate-mixins.js.map +1 -1
  14. package/dist/animation/demos/color-interpolation.js +1 -1
  15. package/dist/animation/demos/color-interpolation.js.map +1 -1
  16. package/dist/animation/demos/drag-release.d.ts +1 -1
  17. package/dist/animation/demos/hold-to-confirm.d.ts +3 -3
  18. package/dist/animation/demos/material-ripple.js +1 -3
  19. package/dist/animation/demos/material-ripple.js.map +1 -1
  20. package/dist/animation/demos/reordering.js +9 -6
  21. package/dist/animation/demos/reordering.js.map +1 -1
  22. package/dist/animation/index.js +4 -4
  23. package/dist/animation/spring.js.map +1 -1
  24. package/dist/{components/breadcrumbs/breadcrumbs.js → breadcrumbs/index.js} +19 -19
  25. package/dist/breadcrumbs/index.js.map +1 -0
  26. package/dist/button/index.d.ts +15 -0
  27. package/dist/button/index.js +128 -0
  28. package/dist/button/index.js.map +1 -0
  29. package/dist/checkbox/index.d.ts +14 -0
  30. package/dist/checkbox/index.js +127 -0
  31. package/dist/checkbox/index.js.map +1 -0
  32. package/dist/combobox/index.d.ts +21 -0
  33. package/dist/combobox/index.js +58 -0
  34. package/dist/combobox/index.js.map +1 -0
  35. package/dist/{components/combobox/combobox.d.ts → combobox/primitives.d.ts} +4 -8
  36. package/dist/{components/combobox/combobox.js → combobox/primitives.js} +8 -61
  37. package/dist/combobox/primitives.js.map +1 -0
  38. package/dist/dev/refresh.d.ts +1 -0
  39. package/dist/dev/refresh.js +2 -0
  40. package/dist/dev/refresh.js.map +1 -0
  41. package/dist/index.d.ts +1 -1
  42. package/dist/index.js +14 -14
  43. package/dist/input/index.d.ts +13 -0
  44. package/dist/input/index.js +121 -0
  45. package/dist/input/index.js.map +1 -0
  46. package/dist/jsx-runtime.js +2 -2
  47. package/dist/listbox/flash-attribute.js.map +1 -0
  48. package/dist/{components/listbox/listbox.d.ts → listbox/index.d.ts} +2 -6
  49. package/dist/{components/listbox/listbox.js → listbox/index.js} +4 -82
  50. package/dist/listbox/index.js.map +1 -0
  51. package/dist/menu/hover-aim.js.map +1 -0
  52. package/dist/menu/index.d.ts +42 -0
  53. package/dist/menu/index.js +250 -0
  54. package/dist/menu/index.js.map +1 -0
  55. package/dist/{components/menu/menu.d.ts → menu/primitives.d.ts} +4 -33
  56. package/dist/{components/menu/menu.js → menu/primitives.js} +98 -315
  57. package/dist/menu/primitives.js.map +1 -0
  58. package/dist/{components/popover/popover.d.ts → popover/index.d.ts} +2 -4
  59. package/dist/{components/popover/popover.js → popover/index.js} +5 -48
  60. package/dist/popover/index.js.map +1 -0
  61. package/dist/{interactions/outside-click/outside-click-mixin.js → popover/outside-click.js} +1 -1
  62. package/dist/popover/outside-click.js.map +1 -0
  63. package/dist/popover/scroll-lock.d.ts +1 -0
  64. package/dist/{utils → popover}/scroll-lock.js +0 -18
  65. package/dist/popover/scroll-lock.js.map +1 -0
  66. package/dist/radio/index.d.ts +12 -0
  67. package/dist/radio/index.js +77 -0
  68. package/dist/radio/index.js.map +1 -0
  69. package/dist/runtime/client-entry-boundary.d.ts +14 -0
  70. package/dist/runtime/client-entry-boundary.js +29 -0
  71. package/dist/runtime/client-entry-boundary.js.map +1 -0
  72. package/dist/runtime/component.d.ts +19 -4
  73. package/dist/runtime/component.js +39 -9
  74. package/dist/runtime/component.js.map +1 -1
  75. package/dist/runtime/core/attributes.js +36 -3
  76. package/dist/runtime/core/attributes.js.map +1 -1
  77. package/dist/runtime/core/children.d.ts +2 -0
  78. package/dist/runtime/core/children.js +26 -2
  79. package/dist/runtime/core/children.js.map +1 -1
  80. package/dist/runtime/core/props.js +2 -2
  81. package/dist/runtime/core/vnode.d.ts +3 -3
  82. package/dist/runtime/core/vnode.js +22 -1
  83. package/dist/runtime/core/vnode.js.map +1 -1
  84. package/dist/runtime/create-element.d.ts +2 -2
  85. package/dist/runtime/create-element.js +3 -2
  86. package/dist/runtime/create-element.js.map +1 -1
  87. package/dist/runtime/diff-dom.js +294 -219
  88. package/dist/runtime/diff-dom.js.map +1 -1
  89. package/dist/runtime/diff-props.js +3 -3
  90. package/dist/runtime/dom.d.ts +12 -0
  91. package/dist/runtime/element-function.d.ts +3 -0
  92. package/dist/runtime/element-function.js +2 -0
  93. package/dist/runtime/element-function.js.map +1 -0
  94. package/dist/runtime/form-navigation.d.ts +25 -0
  95. package/dist/runtime/form-navigation.js +132 -0
  96. package/dist/runtime/form-navigation.js.map +1 -0
  97. package/dist/runtime/frame-resolution.d.ts +5 -0
  98. package/dist/runtime/frame-resolution.js +10 -0
  99. package/dist/runtime/frame-resolution.js.map +1 -0
  100. package/dist/runtime/frame.d.ts +58 -15
  101. package/dist/runtime/frame.js +367 -114
  102. package/dist/runtime/frame.js.map +1 -1
  103. package/dist/runtime/jsx.d.ts +1 -1
  104. package/dist/runtime/jsx.js +1 -1
  105. package/dist/runtime/jsx.js.map +1 -1
  106. package/dist/runtime/key.d.ts +1 -0
  107. package/dist/runtime/key.js +2 -0
  108. package/dist/runtime/key.js.map +1 -0
  109. package/dist/runtime/mixins/attrs-mixin.js +2 -2
  110. package/dist/runtime/mixins/link-mixin.js +4 -3
  111. package/dist/runtime/mixins/link-mixin.js.map +1 -1
  112. package/dist/runtime/mixins/mixin.d.ts +15 -10
  113. package/dist/runtime/mixins/mixin.js +4 -4
  114. package/dist/runtime/mixins/mixin.js.map +1 -1
  115. package/dist/runtime/mixins/on-mixin.js +1 -1
  116. package/dist/runtime/mixins/ref-mixin.js +1 -1
  117. package/dist/runtime/navigation.d.ts +4 -1
  118. package/dist/runtime/navigation.js +157 -32
  119. package/dist/runtime/navigation.js.map +1 -1
  120. package/dist/runtime/reconcile.d.ts +11 -10
  121. package/dist/runtime/reconcile.js +557 -423
  122. package/dist/runtime/reconcile.js.map +1 -1
  123. package/dist/runtime/refresh.d.ts +28 -0
  124. package/dist/runtime/refresh.js +31 -0
  125. package/dist/runtime/refresh.js.map +1 -0
  126. package/dist/runtime/render.js +1 -1
  127. package/dist/runtime/render.js.map +1 -1
  128. package/dist/runtime/run.d.ts +3 -1
  129. package/dist/runtime/run.js +15 -7
  130. package/dist/runtime/run.js.map +1 -1
  131. package/dist/runtime/scheduler.js +8 -16
  132. package/dist/runtime/scheduler.js.map +1 -1
  133. package/dist/runtime/to-vnode.d.ts +2 -2
  134. package/dist/runtime/to-vnode.js +68 -20
  135. package/dist/runtime/to-vnode.js.map +1 -1
  136. package/dist/runtime/vdom.d.ts +4 -2
  137. package/dist/runtime/vdom.js +89 -41
  138. package/dist/runtime/vdom.js.map +1 -1
  139. package/dist/runtime/vnode.d.ts +138 -67
  140. package/dist/runtime/vnode.js +17 -12
  141. package/dist/runtime/vnode.js.map +1 -1
  142. package/dist/select/index.d.ts +19 -0
  143. package/dist/select/index.js +95 -0
  144. package/dist/select/index.js.map +1 -0
  145. package/dist/select/keydown.js.map +1 -0
  146. package/dist/{components/select/select.d.ts → select/primitives.d.ts} +5 -7
  147. package/dist/{components/select/select.js → select/primitives.js} +11 -63
  148. package/dist/select/primitives.js.map +1 -0
  149. package/dist/server/stream.js +22 -29
  150. package/dist/server/stream.js.map +1 -1
  151. package/dist/shared/focus-styles.d.ts +1 -0
  152. package/dist/shared/focus-styles.js +2 -0
  153. package/dist/shared/focus-styles.js.map +1 -0
  154. package/dist/shared/icons.d.ts +9 -0
  155. package/dist/shared/icons.js +42 -0
  156. package/dist/shared/icons.js.map +1 -0
  157. package/dist/shared/listbox-popover-styles.d.ts +6 -0
  158. package/dist/shared/listbox-popover-styles.js +137 -0
  159. package/dist/shared/listbox-popover-styles.js.map +1 -0
  160. package/dist/shared/style-values.d.ts +78 -0
  161. package/dist/shared/style-values.js +88 -0
  162. package/dist/shared/style-values.js.map +1 -0
  163. package/dist/{interactions/typeahead/typeahead-mixin.js → shared/typeahead.js} +1 -1
  164. package/dist/shared/typeahead.js.map +1 -0
  165. package/dist/shared/wait-for-css-transition.js.map +1 -0
  166. package/dist/shared/wait.js.map +1 -0
  167. package/dist/style/css-mixin.js +3 -3
  168. package/dist/style/index.js +2 -2
  169. package/dist/style/style.js +25 -6
  170. package/dist/style/style.js.map +1 -1
  171. package/dist/style/stylesheet.d.ts +0 -1
  172. package/dist/style/stylesheet.js +13 -54
  173. package/dist/style/stylesheet.js.map +1 -1
  174. package/dist/tabs/index.d.ts +32 -0
  175. package/dist/tabs/index.js +157 -0
  176. package/dist/tabs/index.js.map +1 -0
  177. package/dist/tabs/primitives.d.ts +57 -0
  178. package/dist/tabs/primitives.js +238 -0
  179. package/dist/tabs/primitives.js.map +1 -0
  180. package/dist/test.js +1 -1
  181. package/dist/toggle/index.d.ts +9 -0
  182. package/dist/toggle/index.js +108 -0
  183. package/dist/toggle/index.js.map +1 -0
  184. package/dist/toggle/primitives.d.ts +29 -0
  185. package/dist/toggle/primitives.js +127 -0
  186. package/dist/toggle/primitives.js.map +1 -0
  187. package/package.json +81 -49
  188. package/src/{components/accordion → accordion}/README.md +50 -14
  189. package/src/accordion/index.tsx +285 -0
  190. package/src/accordion/primitives.tsx +512 -0
  191. package/src/{components/anchor → anchor}/README.md +37 -2
  192. package/src/animation/animate-mixins.ts +3 -3
  193. package/src/animation/demos/color-interpolation.tsx +1 -1
  194. package/src/animation/demos/reordering.tsx +9 -6
  195. package/src/{components/breadcrumbs → breadcrumbs}/README.md +4 -4
  196. package/src/{components/breadcrumbs/breadcrumbs.tsx → breadcrumbs/index.tsx} +18 -18
  197. package/src/button/README.md +44 -0
  198. package/src/button/index.ts +168 -0
  199. package/src/checkbox/README.md +59 -0
  200. package/src/checkbox/index.ts +164 -0
  201. package/src/{components/combobox → combobox}/README.md +58 -9
  202. package/src/combobox/index.tsx +112 -0
  203. package/src/{components/combobox/combobox.tsx → combobox/primitives.tsx} +5 -91
  204. package/src/dev/refresh.ts +1 -0
  205. package/src/index.ts +1 -1
  206. package/src/input/README.md +52 -0
  207. package/src/input/index.ts +147 -0
  208. package/src/{components/listbox → listbox}/README.md +9 -41
  209. package/src/{components/listbox/listbox.ts → listbox/index.ts} +2 -87
  210. package/src/{components/menu → menu}/README.md +55 -14
  211. package/src/menu/index.tsx +354 -0
  212. package/src/{components/menu/menu.tsx → menu/primitives.tsx} +99 -413
  213. package/src/{components/popover → popover}/README.md +20 -39
  214. package/src/{components/popover/popover.ts → popover/index.ts} +3 -57
  215. package/src/{utils → popover}/scroll-lock.ts +0 -28
  216. package/src/radio/README.md +53 -0
  217. package/src/radio/index.ts +101 -0
  218. package/src/runtime/client-entry-boundary.ts +54 -0
  219. package/src/runtime/component.ts +65 -16
  220. package/src/runtime/core/attributes.ts +35 -1
  221. package/src/runtime/core/children.ts +24 -2
  222. package/src/runtime/core/vnode.ts +25 -4
  223. package/src/runtime/create-element.ts +6 -5
  224. package/src/runtime/demos/readme.demo.tsx +20 -18
  225. package/src/runtime/diff-dom.ts +358 -243
  226. package/src/runtime/dom.ts +331 -214
  227. package/src/runtime/element-function.ts +1 -0
  228. package/src/runtime/event-listeners.ts +1 -1
  229. package/src/runtime/form-navigation.ts +184 -0
  230. package/src/runtime/frame-resolution.ts +13 -0
  231. package/src/runtime/frame.ts +482 -124
  232. package/src/runtime/jsx.ts +3 -5
  233. package/src/runtime/key.ts +1 -0
  234. package/src/runtime/mixins/link-mixin.ts +1 -0
  235. package/src/runtime/mixins/mixin.ts +21 -18
  236. package/src/runtime/navigation.ts +204 -30
  237. package/src/runtime/reconcile.ts +769 -760
  238. package/src/runtime/refresh.ts +46 -0
  239. package/src/runtime/run.ts +12 -2
  240. package/src/runtime/scheduler.ts +9 -29
  241. package/src/runtime/to-vnode.ts +85 -23
  242. package/src/runtime/vdom.ts +91 -69
  243. package/src/runtime/vnode.ts +192 -88
  244. package/src/{components/select → select}/README.md +29 -19
  245. package/src/select/index.tsx +159 -0
  246. package/src/{components/select/select.tsx → select/primitives.tsx} +10 -98
  247. package/src/server/stream.ts +25 -31
  248. package/src/shared/focus-styles.ts +2 -0
  249. package/src/shared/icons.tsx +62 -0
  250. package/src/shared/listbox-popover-styles.ts +146 -0
  251. package/src/shared/style-values.ts +165 -0
  252. package/src/style/style.ts +25 -6
  253. package/src/style/stylesheet.ts +32 -57
  254. package/src/tabs/README.md +141 -0
  255. package/src/tabs/index.tsx +245 -0
  256. package/src/tabs/primitives.ts +365 -0
  257. package/src/test/README.md +151 -60
  258. package/src/toggle/README.md +56 -0
  259. package/src/toggle/index.tsx +136 -0
  260. package/src/toggle/primitives.ts +192 -0
  261. package/dist/animation/demos/animation.demo.d.ts +0 -5
  262. package/dist/animation/demos/animation.demo.js +0 -92
  263. package/dist/animation/demos/animation.demo.js.map +0 -1
  264. package/dist/animation/demos/spring.demo.d.ts +0 -6
  265. package/dist/animation/demos/spring.demo.js +0 -304
  266. package/dist/animation/demos/spring.demo.js.map +0 -1
  267. package/dist/components/accordion/accordion.d.ts +0 -92
  268. package/dist/components/accordion/accordion.js +0 -335
  269. package/dist/components/accordion/accordion.js.map +0 -1
  270. package/dist/components/accordion/demos/card.demo.d.ts +0 -7
  271. package/dist/components/accordion/demos/card.demo.js +0 -59
  272. package/dist/components/accordion/demos/card.demo.js.map +0 -1
  273. package/dist/components/accordion/demos/multiple.demo.d.ts +0 -7
  274. package/dist/components/accordion/demos/multiple.demo.js +0 -20
  275. package/dist/components/accordion/demos/multiple.demo.js.map +0 -1
  276. package/dist/components/accordion/demos/overview.demo.d.ts +0 -7
  277. package/dist/components/accordion/demos/overview.demo.js +0 -20
  278. package/dist/components/accordion/demos/overview.demo.js.map +0 -1
  279. package/dist/components/anchor/anchor.js.map +0 -1
  280. package/dist/components/breadcrumbs/basic.demo.d.ts +0 -6
  281. package/dist/components/breadcrumbs/basic.demo.js +0 -15
  282. package/dist/components/breadcrumbs/basic.demo.js.map +0 -1
  283. package/dist/components/breadcrumbs/breadcrumbs.js.map +0 -1
  284. package/dist/components/breadcrumbs/separator.demo.d.ts +0 -6
  285. package/dist/components/breadcrumbs/separator.demo.js +0 -15
  286. package/dist/components/breadcrumbs/separator.demo.js.map +0 -1
  287. package/dist/components/button/button.d.ts +0 -105
  288. package/dist/components/button/button.js +0 -207
  289. package/dist/components/button/button.js.map +0 -1
  290. package/dist/components/button/demos/aliases.demo.d.ts +0 -7
  291. package/dist/components/button/demos/aliases.demo.js +0 -19
  292. package/dist/components/button/demos/aliases.demo.js.map +0 -1
  293. package/dist/components/button/demos/basic.demo.d.ts +0 -7
  294. package/dist/components/button/demos/basic.demo.js +0 -20
  295. package/dist/components/button/demos/basic.demo.js.map +0 -1
  296. package/dist/components/button/demos/states.demo.d.ts +0 -7
  297. package/dist/components/button/demos/states.demo.js +0 -30
  298. package/dist/components/button/demos/states.demo.js.map +0 -1
  299. package/dist/components/combobox/combobox.js.map +0 -1
  300. package/dist/components/combobox/overview.demo.d.ts +0 -7
  301. package/dist/components/combobox/overview.demo.js +0 -154
  302. package/dist/components/combobox/overview.demo.js.map +0 -1
  303. package/dist/components/glyph/glyph.d.ts +0 -14
  304. package/dist/components/glyph/glyph.js +0 -65
  305. package/dist/components/glyph/glyph.js.map +0 -1
  306. package/dist/components/listbox/listbox.js.map +0 -1
  307. package/dist/components/listbox/overview.demo.d.ts +0 -7
  308. package/dist/components/listbox/overview.demo.js +0 -65
  309. package/dist/components/listbox/overview.demo.js.map +0 -1
  310. package/dist/components/menu/demos/bubbling.demo.d.ts +0 -6
  311. package/dist/components/menu/demos/bubbling.demo.js +0 -16
  312. package/dist/components/menu/demos/bubbling.demo.js.map +0 -1
  313. package/dist/components/menu/demos/context-trigger.demo.d.ts +0 -7
  314. package/dist/components/menu/demos/context-trigger.demo.js +0 -87
  315. package/dist/components/menu/demos/context-trigger.demo.js.map +0 -1
  316. package/dist/components/menu/demos/overview.demo.d.ts +0 -7
  317. package/dist/components/menu/demos/overview.demo.js +0 -33
  318. package/dist/components/menu/demos/overview.demo.js.map +0 -1
  319. package/dist/components/menu/hover-aim.js.map +0 -1
  320. package/dist/components/menu/menu.js.map +0 -1
  321. package/dist/components/popover/overview.demo.d.ts +0 -7
  322. package/dist/components/popover/overview.demo.js +0 -65
  323. package/dist/components/popover/overview.demo.js.map +0 -1
  324. package/dist/components/popover/popover.js.map +0 -1
  325. package/dist/components/select/deconstructed.demo.d.ts +0 -7
  326. package/dist/components/select/deconstructed.demo.js +0 -54
  327. package/dist/components/select/deconstructed.demo.js.map +0 -1
  328. package/dist/components/select/overview.demo.d.ts +0 -6
  329. package/dist/components/select/overview.demo.js +0 -28
  330. package/dist/components/select/overview.demo.js.map +0 -1
  331. package/dist/components/select/select.js.map +0 -1
  332. package/dist/components/separator/separator.d.ts +0 -2
  333. package/dist/components/separator/separator.js +0 -15
  334. package/dist/components/separator/separator.js.map +0 -1
  335. package/dist/components/tabs/tabs.d.ts +0 -78
  336. package/dist/components/tabs/tabs.js +0 -339
  337. package/dist/components/tabs/tabs.js.map +0 -1
  338. package/dist/interactions/keydown/keydown.js.map +0 -1
  339. package/dist/interactions/outside-click/outside-click-mixin.js.map +0 -1
  340. package/dist/interactions/typeahead/typeahead-mixin.js.map +0 -1
  341. package/dist/runtime/demos/basic.demo.d.ts +0 -6
  342. package/dist/runtime/demos/basic.demo.js +0 -16
  343. package/dist/runtime/demos/basic.demo.js.map +0 -1
  344. package/dist/runtime/demos/controlled-uncontrolled-values.demo.d.ts +0 -6
  345. package/dist/runtime/demos/controlled-uncontrolled-values.demo.js +0 -77
  346. package/dist/runtime/demos/controlled-uncontrolled-values.demo.js.map +0 -1
  347. package/dist/runtime/demos/keyed-list.demo.d.ts +0 -6
  348. package/dist/runtime/demos/keyed-list.demo.js +0 -62
  349. package/dist/runtime/demos/keyed-list.demo.js.map +0 -1
  350. package/dist/runtime/demos/readme.demo.d.ts +0 -5
  351. package/dist/runtime/demos/readme.demo.js +0 -396
  352. package/dist/runtime/demos/readme.demo.js.map +0 -1
  353. package/dist/theme/contract.d.ts +0 -61
  354. package/dist/theme/contract.js +0 -131
  355. package/dist/theme/contract.js.map +0 -1
  356. package/dist/theme/glyph-contract.d.ts +0 -11
  357. package/dist/theme/glyph-contract.js +0 -34
  358. package/dist/theme/glyph-contract.js.map +0 -1
  359. package/dist/theme/presets/rmx-01/glyphs.d.ts +0 -2
  360. package/dist/theme/presets/rmx-01/glyphs.js +0 -252
  361. package/dist/theme/presets/rmx-01/glyphs.js.map +0 -1
  362. package/dist/theme/presets/rmx-01/index.d.ts +0 -4
  363. package/dist/theme/presets/rmx-01/index.js +0 -119
  364. package/dist/theme/presets/rmx-01/index.js.map +0 -1
  365. package/dist/theme/runtime.d.ts +0 -2
  366. package/dist/theme/runtime.js +0 -84
  367. package/dist/theme/runtime.js.map +0 -1
  368. package/dist/theme/theme.d.ts +0 -6
  369. package/dist/theme/theme.js +0 -5
  370. package/dist/theme/theme.js.map +0 -1
  371. package/dist/utils/flash-attribute.js.map +0 -1
  372. package/dist/utils/scroll-lock.d.ts +0 -3
  373. package/dist/utils/scroll-lock.js.map +0 -1
  374. package/dist/utils/wait-for-css-transition.js.map +0 -1
  375. package/dist/utils/wait.js.map +0 -1
  376. package/src/animation/demos/animation.demo.tsx +0 -194
  377. package/src/animation/demos/spring.demo.tsx +0 -385
  378. package/src/components/accordion/accordion.tsx +0 -565
  379. package/src/components/accordion/demos/card.demo.tsx +0 -114
  380. package/src/components/accordion/demos/multiple.demo.tsx +0 -57
  381. package/src/components/accordion/demos/overview.demo.tsx +0 -57
  382. package/src/components/breadcrumbs/basic.demo.tsx +0 -18
  383. package/src/components/breadcrumbs/separator.demo.tsx +0 -19
  384. package/src/components/button/README.md +0 -44
  385. package/src/components/button/button.tsx +0 -286
  386. package/src/components/button/demos/aliases.demo.tsx +0 -28
  387. package/src/components/button/demos/basic.demo.tsx +0 -31
  388. package/src/components/button/demos/states.demo.tsx +0 -53
  389. package/src/components/combobox/overview.demo.tsx +0 -200
  390. package/src/components/glyph/README.md +0 -72
  391. package/src/components/glyph/glyph.tsx +0 -110
  392. package/src/components/listbox/overview.demo.tsx +0 -102
  393. package/src/components/menu/demos/bubbling.demo.tsx +0 -35
  394. package/src/components/menu/demos/context-trigger.demo.tsx +0 -133
  395. package/src/components/menu/demos/overview.demo.tsx +0 -77
  396. package/src/components/popover/overview.demo.tsx +0 -144
  397. package/src/components/select/deconstructed.demo.tsx +0 -96
  398. package/src/components/select/overview.demo.tsx +0 -52
  399. package/src/components/separator/separator.ts +0 -19
  400. package/src/components/tabs/README.md +0 -105
  401. package/src/components/tabs/tabs.tsx +0 -504
  402. package/src/runtime/demos/basic.demo.tsx +0 -21
  403. package/src/runtime/demos/controlled-uncontrolled-values.demo.tsx +0 -177
  404. package/src/runtime/demos/keyed-list.demo.tsx +0 -94
  405. package/src/theme/README.md +0 -103
  406. package/src/theme/contract.ts +0 -215
  407. package/src/theme/glyph-contract.ts +0 -59
  408. package/src/theme/presets/rmx-01/glyphs.tsx +0 -308
  409. package/src/theme/presets/rmx-01/index.ts +0 -123
  410. package/src/theme/runtime.ts +0 -119
  411. package/src/theme/theme.ts +0 -15
  412. package/src/utils/scroll-lock/README.md +0 -33
  413. /package/dist/{components/anchor/anchor.d.ts → anchor/index.d.ts} +0 -0
  414. /package/dist/{components/breadcrumbs/breadcrumbs.d.ts → breadcrumbs/index.d.ts} +0 -0
  415. /package/dist/{utils → listbox}/flash-attribute.d.ts +0 -0
  416. /package/dist/{utils → listbox}/flash-attribute.js +0 -0
  417. /package/dist/{components/menu → menu}/hover-aim.d.ts +0 -0
  418. /package/dist/{components/menu → menu}/hover-aim.js +0 -0
  419. /package/dist/{interactions/outside-click/outside-click-mixin.d.ts → popover/outside-click.d.ts} +0 -0
  420. /package/dist/{interactions/keydown → select}/keydown.d.ts +0 -0
  421. /package/dist/{interactions/keydown → select}/keydown.js +0 -0
  422. /package/dist/{interactions/typeahead/typeahead-mixin.d.ts → shared/typeahead.d.ts} +0 -0
  423. /package/dist/{utils → shared}/wait-for-css-transition.d.ts +0 -0
  424. /package/dist/{utils → shared}/wait-for-css-transition.js +0 -0
  425. /package/dist/{utils → shared}/wait.d.ts +0 -0
  426. /package/dist/{utils → shared}/wait.js +0 -0
  427. /package/src/{components/anchor/anchor.ts → anchor/index.ts} +0 -0
  428. /package/src/{utils → listbox}/flash-attribute.ts +0 -0
  429. /package/src/{components/menu → menu}/hover-aim.ts +0 -0
  430. /package/src/{interactions/outside-click/outside-click-mixin.ts → popover/outside-click.ts} +0 -0
  431. /package/src/{interactions/keydown → select}/keydown.ts +0 -0
  432. /package/src/{interactions/typeahead/typeahead-mixin.ts → shared/typeahead.ts} +0 -0
  433. /package/src/{utils → shared}/wait-for-css-transition.ts +0 -0
  434. /package/src/{utils → shared}/wait.ts +0 -0
@@ -1,565 +0,0 @@
1
- import {
2
- css,
3
- createElement,
4
- on,
5
- ref,
6
- type CSSMixinDescriptor,
7
- type Handle,
8
- type Props,
9
- type RemixNode,
10
- type Dispatched,
11
- } from '@remix-run/ui'
12
-
13
- import { spring } from '@remix-run/ui/animation'
14
- import { Glyph } from '../glyph/glyph.tsx'
15
- import { theme } from '../../theme/theme.ts'
16
-
17
- const ACCORDION_CHANGE_EVENT = 'rmx:accordion-change' as const
18
-
19
- type AccordionChangeHandler<target extends HTMLElement> = (
20
- event: Dispatched<AccordionChangeEvent, target>,
21
- signal: AbortSignal,
22
- ) => void | Promise<void>
23
-
24
- declare global {
25
- interface HTMLElementEventMap {
26
- [ACCORDION_CHANGE_EVENT]: AccordionChangeEvent
27
- }
28
- }
29
-
30
- export class AccordionChangeEvent extends Event {
31
- accordionType: AccordionType
32
- itemValue: string
33
- value: string | null | string[]
34
-
35
- constructor(
36
- value: string | null | string[],
37
- init: {
38
- accordionType: AccordionType
39
- itemValue: string
40
- },
41
- ) {
42
- super(ACCORDION_CHANGE_EVENT, {
43
- bubbles: true,
44
- })
45
- this.accordionType = init.accordionType
46
- this.itemValue = init.itemValue
47
- this.value = value
48
- }
49
- }
50
-
51
- type AccordionType = 'single' | 'multiple'
52
- type HeadingLevel = 1 | 2 | 3 | 4 | 5 | 6
53
-
54
- type AccordionBaseProps = Omit<Props<'div'>, 'children'> & {
55
- children?: RemixNode
56
- disabled?: boolean
57
- headingLevel?: HeadingLevel
58
- }
59
-
60
- export type AccordionSingleProps = AccordionBaseProps & {
61
- type?: 'single'
62
- value?: string | null
63
- defaultValue?: string | null
64
- onValueChange?: (value: string | null) => void
65
- collapsible?: boolean
66
- }
67
-
68
- export type AccordionMultipleProps = AccordionBaseProps & {
69
- type: 'multiple'
70
- value?: string[]
71
- defaultValue?: string[]
72
- onValueChange?: (value: string[]) => void
73
- }
74
-
75
- export type AccordionProps = AccordionSingleProps | AccordionMultipleProps
76
-
77
- export type AccordionItemProps = Omit<Props<'div'>, 'children'> & {
78
- children?: RemixNode
79
- disabled?: boolean
80
- value: string
81
- }
82
-
83
- export type AccordionTriggerProps = Omit<Props<'button'>, 'children' | 'type'> & {
84
- children?: RemixNode
85
- indicator?: RemixNode | null
86
- type?: 'button' | 'submit' | 'reset'
87
- }
88
-
89
- export type AccordionContentProps = Omit<Props<'div'>, 'children'> & {
90
- children?: RemixNode
91
- }
92
-
93
- type RegisteredItem = {
94
- disabled: boolean
95
- getTriggerNode(): HTMLButtonElement | null
96
- value: string
97
- }
98
-
99
- type AccordionContext = {
100
- collapsible: boolean
101
- disabled: boolean
102
- focusItem(value: string, direction: FocusDirection): void
103
- getPanelId(value: string): string | undefined
104
- getTriggerId(value: string): string | undefined
105
- headingLevel: HeadingLevel
106
- isOpen(value: string): boolean
107
- registerItem(item: RegisteredItem): void
108
- toggleItem(value: string): void
109
- type: AccordionType
110
- }
111
-
112
- type AccordionItemContext = {
113
- disabled: boolean
114
- headingLevel: HeadingLevel
115
- lockedOpen: boolean
116
- open: boolean
117
- panelId: string
118
- setTriggerNode(node: HTMLButtonElement | null): void
119
- triggerId: string
120
- value: string
121
- }
122
-
123
- type FocusDirection = 'first' | 'last' | 'next' | 'previous'
124
-
125
- const accordionPanelClipCss = css({
126
- minHeight: 0,
127
- overflow: 'hidden',
128
- })
129
-
130
- const accordionTransition = spring()
131
-
132
- const accordionRootCss: CSSMixinDescriptor = css({
133
- display: 'flex',
134
- flexDirection: 'column',
135
- minWidth: 0,
136
- })
137
-
138
- const accordionItemCss: CSSMixinDescriptor = css({
139
- minWidth: 0,
140
- })
141
-
142
- const accordionTriggerCss: CSSMixinDescriptor = css({
143
- all: 'unset',
144
- boxSizing: 'border-box',
145
- cursor: 'revert',
146
- display: 'grid',
147
- gridTemplateColumns: 'minmax(0, 1fr) auto',
148
- alignItems: 'center',
149
- gap: theme.space.md,
150
- width: '100%',
151
- minHeight: theme.control.height.lg,
152
- padding: `${theme.space.md} 0`,
153
- color: theme.colors.text.primary,
154
- fontFamily: theme.fontFamily.sans,
155
- fontSize: theme.fontSize.sm,
156
- lineHeight: theme.lineHeight.normal,
157
- fontWeight: theme.fontWeight.medium,
158
- textAlign: 'left',
159
- '&:hover:not(:disabled)': {
160
- backgroundColor: theme.surface.lvl1,
161
- },
162
- '&:focus-visible': {
163
- outline: `2px solid ${theme.colors.focus.ring}`,
164
- outlineOffset: '2px',
165
- },
166
- '&:disabled': {
167
- opacity: 0.55,
168
- },
169
- '& > span:first-child': {
170
- minWidth: 0,
171
- },
172
- })
173
-
174
- const accordionIndicatorCss: CSSMixinDescriptor = css({
175
- display: 'inline-flex',
176
- alignItems: 'center',
177
- justifyContent: 'center',
178
- width: theme.fontSize.sm,
179
- height: theme.fontSize.sm,
180
- color: theme.colors.text.muted,
181
- transition: `transform ${accordionTransition}`,
182
- '& > svg': {
183
- display: 'block',
184
- width: '100%',
185
- height: '100%',
186
- },
187
- '&[data-state="open"]': {
188
- transform: 'rotate(90deg)',
189
- },
190
- })
191
-
192
- const accordionPanelCss: CSSMixinDescriptor = css({
193
- display: 'grid',
194
- gridTemplateRows: '0fr',
195
- transition: `grid-template-rows ${accordionTransition}`,
196
- '&[data-state="open"]': {
197
- gridTemplateRows: '1fr',
198
- },
199
- '&[data-state="closed"]': {
200
- pointerEvents: 'none',
201
- },
202
- '@media (prefers-reduced-motion: reduce)': {
203
- transition: 'none',
204
- },
205
- })
206
-
207
- const accordionBodyCss: CSSMixinDescriptor = css({
208
- display: 'flow-root',
209
- minHeight: 0,
210
- paddingBottom: theme.space.md,
211
- color: theme.colors.text.secondary,
212
- fontSize: theme.fontSize.sm,
213
- lineHeight: theme.lineHeight.relaxed,
214
- '& > :first-child': {
215
- marginTop: 0,
216
- },
217
- '& > :last-child': {
218
- marginBottom: 0,
219
- },
220
- })
221
-
222
- export const rootStyle = accordionRootCss
223
- export const itemStyle = accordionItemCss
224
- export const triggerStyle = accordionTriggerCss
225
- export const indicatorStyle = accordionIndicatorCss
226
- export const panelStyle = accordionPanelCss
227
- export const bodyStyle = accordionBodyCss
228
-
229
- function isMultipleProps(props: AccordionProps | null): props is AccordionMultipleProps {
230
- return props?.type === 'multiple'
231
- }
232
-
233
- function AccordionImpl(handle: Handle<AccordionProps, AccordionContext>): () => RemixNode {
234
- let rootNode: HTMLElement | null = null
235
- let registeredItems: RegisteredItem[] = []
236
- let uncontrolledSingleValue: string | null = null
237
- let uncontrolledMultipleValue: string[] = []
238
- let hasInitializedSingle = false
239
- let hasInitializedMultiple = false
240
-
241
- let getType = () => (isMultipleProps(handle.props) ? 'multiple' : 'single')
242
-
243
- let getSingleValue = () => {
244
- if (isMultipleProps(handle.props)) {
245
- return null
246
- }
247
-
248
- if (handle.props.value !== undefined) {
249
- return handle.props.value
250
- }
251
-
252
- if (!hasInitializedSingle) {
253
- uncontrolledSingleValue = handle.props.defaultValue ?? null
254
- hasInitializedSingle = true
255
- }
256
-
257
- return uncontrolledSingleValue
258
- }
259
-
260
- let getMultipleValue = () => {
261
- if (!isMultipleProps(handle.props)) {
262
- return []
263
- }
264
-
265
- if (handle.props.value !== undefined) {
266
- return handle.props.value
267
- }
268
-
269
- if (!hasInitializedMultiple) {
270
- uncontrolledMultipleValue = [...(handle.props.defaultValue ?? [])]
271
- hasInitializedMultiple = true
272
- }
273
-
274
- return uncontrolledMultipleValue
275
- }
276
-
277
- let isOpen = (value: string) => {
278
- if (getType() === 'multiple') {
279
- return getMultipleValue().includes(value)
280
- }
281
-
282
- return getSingleValue() === value
283
- }
284
-
285
- let dispatchChange = (itemValue: string, value: string | null | string[]) => {
286
- rootNode?.dispatchEvent(
287
- new AccordionChangeEvent(value, {
288
- accordionType: getType(),
289
- itemValue,
290
- }),
291
- )
292
- }
293
-
294
- let toggleItem = (itemValue: string) => {
295
- if (handle.props.disabled) {
296
- return
297
- }
298
-
299
- if (isMultipleProps(handle.props)) {
300
- let currentValue = getMultipleValue()
301
- let nextValue = currentValue.includes(itemValue)
302
- ? currentValue.filter((value) => value !== itemValue)
303
- : [...currentValue, itemValue]
304
-
305
- if (handle.props.value === undefined) {
306
- uncontrolledMultipleValue = nextValue
307
- void handle.update()
308
- }
309
-
310
- handle.props.onValueChange?.(nextValue)
311
- dispatchChange(itemValue, nextValue)
312
- return
313
- }
314
-
315
- let isCurrentItemOpen = getSingleValue() === itemValue
316
- if (isCurrentItemOpen && !(handle.props.collapsible ?? true)) {
317
- return
318
- }
319
-
320
- let nextValue = isCurrentItemOpen ? null : itemValue
321
-
322
- if (handle.props.value === undefined) {
323
- uncontrolledSingleValue = nextValue
324
- void handle.update()
325
- }
326
-
327
- handle.props.onValueChange?.(nextValue)
328
- dispatchChange(itemValue, nextValue)
329
- }
330
-
331
- let focusItem = (itemValue: string, direction: FocusDirection) => {
332
- let items = registeredItems.filter((item) => !item.disabled && item.getTriggerNode() !== null)
333
- if (items.length === 0) {
334
- return
335
- }
336
-
337
- let currentIndex = items.findIndex((item) => item.value === itemValue)
338
- let targetIndex = 0
339
-
340
- switch (direction) {
341
- case 'first':
342
- targetIndex = 0
343
- break
344
- case 'last':
345
- targetIndex = items.length - 1
346
- break
347
- case 'previous':
348
- targetIndex = currentIndex <= 0 ? items.length - 1 : currentIndex - 1
349
- break
350
- case 'next':
351
- targetIndex =
352
- currentIndex === -1 || currentIndex === items.length - 1 ? 0 : currentIndex + 1
353
- break
354
- }
355
-
356
- items[targetIndex]?.getTriggerNode()?.focus()
357
- }
358
-
359
- let registerItem = (item: RegisteredItem) => {
360
- registeredItems.push(item)
361
- }
362
-
363
- let getTriggerId = (value: string) =>
364
- registeredItems.find((item) => item.value === value)?.getTriggerNode()?.id
365
-
366
- let getPanelId = (value: string) => `${handle.id}-${value}-panel`
367
-
368
- return () => {
369
- let collapsible = 'collapsible' in handle.props ? handle.props.collapsible : undefined
370
- let {
371
- children,
372
- defaultValue,
373
- disabled,
374
- headingLevel,
375
- mix,
376
- onValueChange,
377
- type,
378
- value,
379
- ...divProps
380
- } = handle.props
381
- void defaultValue
382
- void onValueChange
383
- void value
384
- registeredItems = []
385
-
386
- handle.context.set({
387
- collapsible: type === 'multiple' ? true : (collapsible ?? true),
388
- disabled: disabled ?? false,
389
- focusItem,
390
- getPanelId,
391
- getTriggerId,
392
- headingLevel: headingLevel ?? 3,
393
- isOpen,
394
- registerItem,
395
- toggleItem,
396
- type: type ?? 'single',
397
- })
398
-
399
- return (
400
- <div
401
- {...divProps}
402
- data-disabled={disabled ? '' : undefined}
403
- data-type={type ?? 'single'}
404
- mix={[
405
- rootStyle,
406
- ref((node) => {
407
- rootNode = node as HTMLElement
408
- }),
409
- ...(mix ?? []),
410
- ]}
411
- >
412
- {children}
413
- </div>
414
- )
415
- }
416
- }
417
-
418
- export function onAccordionChange<target extends HTMLElement>(
419
- handler: AccordionChangeHandler<target>,
420
- captureBoolean?: boolean,
421
- ): ReturnType<typeof on<target, typeof ACCORDION_CHANGE_EVENT>> {
422
- return on(ACCORDION_CHANGE_EVENT, handler, captureBoolean)
423
- }
424
-
425
- export const Accordion = AccordionImpl
426
-
427
- export function AccordionItem(
428
- handle: Handle<AccordionItemProps, AccordionItemContext>,
429
- ): () => RemixNode {
430
- let triggerNode: HTMLButtonElement | null = null
431
- let triggerId = `${handle.id}-trigger`
432
- let panelId = `${handle.id}-panel`
433
-
434
- return () => {
435
- let { children, disabled: itemDisabled, mix, value, ...divProps } = handle.props
436
- let accordion = handle.context.get(Accordion)
437
- let disabled = accordion.disabled || itemDisabled === true
438
- let open = accordion.isOpen(value)
439
- let lockedOpen = accordion.type === 'single' && !accordion.collapsible && open
440
-
441
- accordion.registerItem({
442
- disabled,
443
- getTriggerNode: () => triggerNode,
444
- value,
445
- })
446
-
447
- handle.context.set({
448
- disabled,
449
- headingLevel: accordion.headingLevel,
450
- lockedOpen,
451
- open,
452
- panelId,
453
- setTriggerNode(node) {
454
- triggerNode = node
455
- },
456
- triggerId,
457
- value,
458
- })
459
-
460
- return (
461
- <div
462
- {...divProps}
463
- data-disabled={disabled ? '' : undefined}
464
- data-state={open ? 'open' : 'closed'}
465
- mix={[itemStyle, ...(mix ?? [])]}
466
- >
467
- {children}
468
- </div>
469
- )
470
- }
471
- }
472
-
473
- export function AccordionTrigger(handle: Handle<AccordionTriggerProps>): () => RemixNode {
474
- return () => {
475
- let accordion = handle.context.get(Accordion)
476
- let item = handle.context.get(AccordionItem)
477
- let headingTag = `h${item.headingLevel}` as keyof JSX.IntrinsicElements
478
- let { children, indicator, mix, type, ...buttonProps } = handle.props
479
- let disabled = item.disabled || handle.props.disabled === true
480
- let toggleItem = () => {
481
- if (disabled || item.lockedOpen) {
482
- return
483
- }
484
-
485
- accordion.toggleItem(item.value)
486
- }
487
-
488
- let button = (
489
- <button
490
- {...buttonProps}
491
- aria-controls={item.panelId}
492
- aria-disabled={item.lockedOpen ? true : undefined}
493
- aria-expanded={item.open}
494
- data-state={item.open ? 'open' : 'closed'}
495
- disabled={disabled ? true : undefined}
496
- id={item.triggerId}
497
- mix={[
498
- triggerStyle,
499
- ref((node) => {
500
- item.setTriggerNode(node as HTMLButtonElement)
501
- }),
502
- on('click', toggleItem),
503
- on('keydown', (event) => {
504
- switch (event.key) {
505
- case 'ArrowDown':
506
- event.preventDefault()
507
- accordion.focusItem(item.value, 'next')
508
- break
509
- case 'ArrowUp':
510
- event.preventDefault()
511
- accordion.focusItem(item.value, 'previous')
512
- break
513
- case 'Home':
514
- event.preventDefault()
515
- accordion.focusItem(item.value, 'first')
516
- break
517
- case 'End':
518
- event.preventDefault()
519
- accordion.focusItem(item.value, 'last')
520
- break
521
- }
522
- }),
523
- mix,
524
- ]}
525
- type={type ?? 'button'}
526
- >
527
- <span>{children}</span>
528
- {indicator === null ? null : (
529
- <span
530
- data-rmx-accordion-indicator=""
531
- data-state={item.open ? 'open' : 'closed'}
532
- mix={indicatorStyle}
533
- >
534
- {indicator ?? <Glyph name="chevronRight" />}
535
- </span>
536
- )}
537
- </button>
538
- )
539
-
540
- return createElement(headingTag, {}, button)
541
- }
542
- }
543
-
544
- export function AccordionContent(handle: Handle<AccordionContentProps>): () => RemixNode {
545
- return () => {
546
- let item = handle.context.get(AccordionItem)
547
- let { children, mix, ...panelProps } = handle.props
548
-
549
- return (
550
- <div
551
- {...panelProps}
552
- aria-hidden={item.open ? undefined : true}
553
- aria-labelledby={item.triggerId}
554
- data-state={item.open ? 'open' : 'closed'}
555
- id={item.panelId}
556
- inert={item.open ? undefined : true}
557
- mix={[panelStyle, mix ?? []]}
558
- >
559
- <div mix={accordionPanelClipCss}>
560
- <div mix={bodyStyle}>{children}</div>
561
- </div>
562
- </div>
563
- )
564
- }
565
- }
@@ -1,114 +0,0 @@
1
- import { css } from '@remix-run/ui'
2
- import {
3
- Accordion,
4
- AccordionContent,
5
- AccordionItem,
6
- AccordionTrigger,
7
- } from '@remix-run/ui/accordion'
8
- import { theme } from '@remix-run/ui/theme'
9
-
10
- /**
11
- * @name Accordion in a Card
12
- * @description The Accordion can sit inside a card when the surrounding surface needs stronger grouping.
13
- * @layout center
14
- * @order 3
15
- */
16
- export default function Example() {
17
- return () => (
18
- <article mix={cardCss}>
19
- <div mix={cardHeaderCss}>
20
- <p mix={eyebrowCss}>Project settings</p>
21
- <h3 mix={titleCss}>Deployment policies</h3>
22
- <p mix={descriptionCss}>
23
- The Accordion can sit inside a card when the surrounding surface needs stronger grouping.
24
- </p>
25
- </div>
26
-
27
- <div mix={accordionInsetCss}>
28
- <Accordion defaultValue="reviews">
29
- <AccordionItem value="reviews">
30
- <AccordionTrigger>Required approvals</AccordionTrigger>
31
- <AccordionContent>
32
- <p mix={bodyTextCss}>
33
- Require one reviewer for routine changes and two reviewers for dependency, auth, or
34
- billing-related changes.
35
- </p>
36
- </AccordionContent>
37
- </AccordionItem>
38
-
39
- <AccordionItem value="windows">
40
- <AccordionTrigger>Release windows</AccordionTrigger>
41
- <AccordionContent>
42
- <p mix={bodyTextCss}>
43
- Schedule production deploys on weekdays before 3 PM so incidents and rollback work
44
- stay inside staffed hours.
45
- </p>
46
- </AccordionContent>
47
- </AccordionItem>
48
-
49
- <AccordionItem value="rollback">
50
- <AccordionTrigger>Rollback policy</AccordionTrigger>
51
- <AccordionContent>
52
- <p mix={bodyTextCss}>
53
- Keep a rollback target ready for every release and treat rollback preparation as
54
- part of the normal change checklist.
55
- </p>
56
- </AccordionContent>
57
- </AccordionItem>
58
- </Accordion>
59
- </div>
60
- </article>
61
- )
62
- }
63
-
64
- const cardCss = css({
65
- display: 'flex',
66
- flexDirection: 'column',
67
- gap: theme.space.md,
68
- padding: theme.space.lg,
69
- border: `1px solid ${theme.colors.border.subtle}`,
70
- borderRadius: theme.radius.lg,
71
- backgroundColor: theme.surface.lvl0,
72
- boxShadow: theme.shadow.xs,
73
- })
74
-
75
- const cardHeaderCss = css({
76
- display: 'flex',
77
- flexDirection: 'column',
78
- gap: theme.space.sm,
79
- })
80
-
81
- const accordionInsetCss = css({
82
- paddingInline: theme.space.lg,
83
- })
84
-
85
- const eyebrowCss = css({
86
- margin: 0,
87
- fontSize: theme.fontSize.xxxs,
88
- fontWeight: theme.fontWeight.semibold,
89
- letterSpacing: theme.letterSpacing.meta,
90
- textTransform: 'uppercase',
91
- color: theme.colors.text.muted,
92
- })
93
-
94
- const titleCss = css({
95
- margin: 0,
96
- fontSize: theme.fontSize.lg,
97
- lineHeight: theme.lineHeight.tight,
98
- fontWeight: theme.fontWeight.semibold,
99
- color: theme.colors.text.primary,
100
- })
101
-
102
- const descriptionCss = css({
103
- margin: 0,
104
- fontSize: theme.fontSize.sm,
105
- lineHeight: theme.lineHeight.relaxed,
106
- color: theme.colors.text.secondary,
107
- })
108
-
109
- const bodyTextCss = css({
110
- margin: 0,
111
- fontSize: theme.fontSize.sm,
112
- lineHeight: theme.lineHeight.relaxed,
113
- color: theme.colors.text.secondary,
114
- })