@mitodl/smoot-design 0.0.0-0a23f44

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 (325) hide show
  1. package/LICENSE +28 -0
  2. package/README.md +35 -0
  3. package/dist/bundles/aiDrawerManager.es.js +38832 -0
  4. package/dist/bundles/aiDrawerManager.es.js.map +1 -0
  5. package/dist/bundles/aiDrawerManager.umd.js +245 -0
  6. package/dist/bundles/aiDrawerManager.umd.js.map +1 -0
  7. package/dist/bundles/remoteTutorDrawer.es.js +38832 -0
  8. package/dist/bundles/remoteTutorDrawer.es.js.map +1 -0
  9. package/dist/bundles/remoteTutorDrawer.umd.js +245 -0
  10. package/dist/bundles/remoteTutorDrawer.umd.js.map +1 -0
  11. package/dist/cjs/VERSION.d.ts +12 -0
  12. package/dist/cjs/VERSION.js +15 -0
  13. package/dist/cjs/ai.d.ts +3 -0
  14. package/dist/cjs/ai.js +9 -0
  15. package/dist/cjs/bundles/AiDrawer/AiDrawer.d.ts +55 -0
  16. package/dist/cjs/bundles/AiDrawer/AiDrawer.js +262 -0
  17. package/dist/cjs/bundles/AiDrawer/AiDrawer.stories.d.ts +17 -0
  18. package/dist/cjs/bundles/AiDrawer/AiDrawer.stories.js +264 -0
  19. package/dist/cjs/bundles/AiDrawer/AiDrawerManager.d.ts +12 -0
  20. package/dist/cjs/bundles/AiDrawer/AiDrawerManager.js +51 -0
  21. package/dist/cjs/bundles/AiDrawer/AiDrawerManager.stories.d.ts +6 -0
  22. package/dist/cjs/bundles/AiDrawer/AiDrawerManager.stories.js +267 -0
  23. package/dist/cjs/bundles/AiDrawer/AiDrawerManager.test.d.ts +1 -0
  24. package/dist/cjs/bundles/AiDrawer/AiDrawerManager.test.js +245 -0
  25. package/dist/cjs/bundles/AiDrawer/FlashcardsScreen.d.ts +9 -0
  26. package/dist/cjs/bundles/AiDrawer/FlashcardsScreen.js +87 -0
  27. package/dist/cjs/bundles/aiDrawerManager.d.ts +6 -0
  28. package/dist/cjs/bundles/aiDrawerManager.js +44 -0
  29. package/dist/cjs/components/AiChat/AiChat.d.ts +5 -0
  30. package/dist/cjs/components/AiChat/AiChat.js +267 -0
  31. package/dist/cjs/components/AiChat/AiChat.stories.d.ts +17 -0
  32. package/dist/cjs/components/AiChat/AiChat.stories.js +194 -0
  33. package/dist/cjs/components/AiChat/AiChat.test.d.ts +1 -0
  34. package/dist/cjs/components/AiChat/AiChat.test.js +211 -0
  35. package/dist/cjs/components/AiChat/AiChatContext.d.ts +26 -0
  36. package/dist/cjs/components/AiChat/AiChatContext.js +106 -0
  37. package/dist/cjs/components/AiChat/AiChatContext.stories.d.ts +14 -0
  38. package/dist/cjs/components/AiChat/AiChatContext.stories.js +75 -0
  39. package/dist/cjs/components/AiChat/AiChatMarkdown.stories.d.ts +15 -0
  40. package/dist/cjs/components/AiChat/AiChatMarkdown.stories.js +282 -0
  41. package/dist/cjs/components/AiChat/ChatTitle.d.ts +8 -0
  42. package/dist/cjs/components/AiChat/ChatTitle.js +43 -0
  43. package/dist/cjs/components/AiChat/EllipsisIcon.d.ts +6 -0
  44. package/dist/cjs/components/AiChat/EllipsisIcon.js +17 -0
  45. package/dist/cjs/components/AiChat/EntryScreen.d.ts +11 -0
  46. package/dist/cjs/components/AiChat/EntryScreen.js +123 -0
  47. package/dist/cjs/components/AiChat/Markdown.d.ts +7 -0
  48. package/dist/cjs/components/AiChat/Markdown.js +14 -0
  49. package/dist/cjs/components/AiChat/TimLogo.d.ts +5 -0
  50. package/dist/cjs/components/AiChat/TimLogo.js +15 -0
  51. package/dist/cjs/components/AiChat/test-utils/api.d.ts +2 -0
  52. package/dist/cjs/components/AiChat/test-utils/api.js +164 -0
  53. package/dist/cjs/components/AiChat/types.d.ts +96 -0
  54. package/dist/cjs/components/AiChat/types.js +3 -0
  55. package/dist/cjs/components/AiChat/utils.d.ts +9 -0
  56. package/dist/cjs/components/AiChat/utils.js +41 -0
  57. package/dist/cjs/components/Alert/Alert.d.ts +15 -0
  58. package/dist/cjs/components/Alert/Alert.js +62 -0
  59. package/dist/cjs/components/Alert/Alert.stories.d.ts +8 -0
  60. package/dist/cjs/components/Alert/Alert.stories.js +53 -0
  61. package/dist/cjs/components/Button/ActionButton.d.ts +30 -0
  62. package/dist/cjs/components/Button/ActionButton.js +73 -0
  63. package/dist/cjs/components/Button/ActionButton.stories.d.ts +15 -0
  64. package/dist/cjs/components/Button/ActionButton.stories.js +113 -0
  65. package/dist/cjs/components/Button/Button.d.ts +58 -0
  66. package/dist/cjs/components/Button/Button.js +261 -0
  67. package/dist/cjs/components/Button/Button.stories.d.ts +18 -0
  68. package/dist/cjs/components/Button/Button.stories.js +148 -0
  69. package/dist/cjs/components/Button/Button.test.d.ts +1 -0
  70. package/dist/cjs/components/Button/Button.test.js +46 -0
  71. package/dist/cjs/components/Checkbox/Checkbox.d.ts +20 -0
  72. package/dist/cjs/components/Checkbox/Checkbox.js +85 -0
  73. package/dist/cjs/components/Checkbox/Checkbox.stories.d.ts +8 -0
  74. package/dist/cjs/components/Checkbox/Checkbox.stories.js +33 -0
  75. package/dist/cjs/components/CheckboxChoiceField/CheckboxChoiceField.d.ts +21 -0
  76. package/dist/cjs/components/CheckboxChoiceField/CheckboxChoiceField.js +43 -0
  77. package/dist/cjs/components/CheckboxChoiceField/CheckboxChoiceField.stories.d.ts +8 -0
  78. package/dist/cjs/components/CheckboxChoiceField/CheckboxChoiceField.stories.js +50 -0
  79. package/dist/cjs/components/CheckboxChoiceField/CheckboxChoiceField.test.d.ts +1 -0
  80. package/dist/cjs/components/CheckboxChoiceField/CheckboxChoiceField.test.js +52 -0
  81. package/dist/cjs/components/ImageAdapter/ImageAdapter.d.ts +23 -0
  82. package/dist/cjs/components/ImageAdapter/ImageAdapter.js +30 -0
  83. package/dist/cjs/components/Input/Input.d.ts +116 -0
  84. package/dist/cjs/components/Input/Input.js +237 -0
  85. package/dist/cjs/components/Input/Input.stories.d.ts +19 -0
  86. package/dist/cjs/components/Input/Input.stories.js +135 -0
  87. package/dist/cjs/components/Input/Input.test.d.ts +1 -0
  88. package/dist/cjs/components/Input/Input.test.js +32 -0
  89. package/dist/cjs/components/LinkAdapter/LinkAdapter.d.ts +23 -0
  90. package/dist/cjs/components/LinkAdapter/LinkAdapter.js +34 -0
  91. package/dist/cjs/components/RadioChoiceField/BooleanRadioChoiceField.stories.d.ts +6 -0
  92. package/dist/cjs/components/RadioChoiceField/BooleanRadioChoiceField.stories.js +47 -0
  93. package/dist/cjs/components/RadioChoiceField/RadioChoiceField.d.ts +45 -0
  94. package/dist/cjs/components/RadioChoiceField/RadioChoiceField.js +69 -0
  95. package/dist/cjs/components/RadioChoiceField/RadioChoiceField.stories.d.ts +6 -0
  96. package/dist/cjs/components/RadioChoiceField/RadioChoiceField.stories.js +55 -0
  97. package/dist/cjs/components/RadioChoiceField/RadioChoiceField.test.d.ts +1 -0
  98. package/dist/cjs/components/RadioChoiceField/RadioChoiceField.test.js +53 -0
  99. package/dist/cjs/components/ScrollSnap/ScrollSnap.d.ts +19 -0
  100. package/dist/cjs/components/ScrollSnap/ScrollSnap.js +59 -0
  101. package/dist/cjs/components/ScrollSnap/ScrollSnap.stories.d.ts +6 -0
  102. package/dist/cjs/components/ScrollSnap/ScrollSnap.stories.js +43 -0
  103. package/dist/cjs/components/ScrollSnap/useScrollSnap.d.ts +6 -0
  104. package/dist/cjs/components/ScrollSnap/useScrollSnap.js +36 -0
  105. package/dist/cjs/components/SrAnnouncer/SrAnnouncer.d.ts +25 -0
  106. package/dist/cjs/components/SrAnnouncer/SrAnnouncer.js +43 -0
  107. package/dist/cjs/components/SrAnnouncer/SrAnnouncer.stories.d.ts +6 -0
  108. package/dist/cjs/components/SrAnnouncer/SrAnnouncer.stories.js +44 -0
  109. package/dist/cjs/components/SrAnnouncer/SrAnnouncer.test.d.ts +1 -0
  110. package/dist/cjs/components/SrAnnouncer/SrAnnouncer.test.js +62 -0
  111. package/dist/cjs/components/TabButtons/TabButtonList.d.ts +25 -0
  112. package/dist/cjs/components/TabButtons/TabButtonList.js +97 -0
  113. package/dist/cjs/components/TabButtons/TabButtonList.stories.d.ts +24 -0
  114. package/dist/cjs/components/TabButtons/TabButtonList.stories.js +139 -0
  115. package/dist/cjs/components/TextField/TextField.d.ts +29 -0
  116. package/dist/cjs/components/TextField/TextField.js +33 -0
  117. package/dist/cjs/components/TextField/TextField.stories.d.ts +10 -0
  118. package/dist/cjs/components/TextField/TextField.stories.js +136 -0
  119. package/dist/cjs/components/TextField/TextField.test.d.ts +1 -0
  120. package/dist/cjs/components/TextField/TextField.test.js +77 -0
  121. package/dist/cjs/components/ThemeProvider/ThemeProvider.d.ts +21 -0
  122. package/dist/cjs/components/ThemeProvider/ThemeProvider.js +86 -0
  123. package/dist/cjs/components/ThemeProvider/ThemeProvider.stories.d.ts +63 -0
  124. package/dist/cjs/components/ThemeProvider/ThemeProvider.stories.js +102 -0
  125. package/dist/cjs/components/ThemeProvider/Typography.stories.d.ts +39 -0
  126. package/dist/cjs/components/ThemeProvider/Typography.stories.js +65 -0
  127. package/dist/cjs/components/ThemeProvider/breakpoints.d.ts +4 -0
  128. package/dist/cjs/components/ThemeProvider/breakpoints.js +19 -0
  129. package/dist/cjs/components/ThemeProvider/buttons.d.ts +7 -0
  130. package/dist/cjs/components/ThemeProvider/buttons.js +20 -0
  131. package/dist/cjs/components/ThemeProvider/chips.d.ts +3 -0
  132. package/dist/cjs/components/ThemeProvider/chips.js +154 -0
  133. package/dist/cjs/components/ThemeProvider/colors.d.ts +32 -0
  134. package/dist/cjs/components/ThemeProvider/colors.js +35 -0
  135. package/dist/cjs/components/ThemeProvider/typography.d.ts +18 -0
  136. package/dist/cjs/components/ThemeProvider/typography.js +173 -0
  137. package/dist/cjs/components/VisuallyHidden/VisuallyHidden.d.ts +24 -0
  138. package/dist/cjs/components/VisuallyHidden/VisuallyHidden.js +33 -0
  139. package/dist/cjs/components/VisuallyHidden/VisuallyHidden.stories.d.ts +6 -0
  140. package/dist/cjs/components/VisuallyHidden/VisuallyHidden.stories.js +13 -0
  141. package/dist/cjs/components/internal/FormHelpers/FormHelpers.d.ts +39 -0
  142. package/dist/cjs/components/internal/FormHelpers/FormHelpers.js +78 -0
  143. package/dist/cjs/components/internal/FormHelpers/FormHelpers.test.d.ts +1 -0
  144. package/dist/cjs/components/internal/FormHelpers/FormHelpers.test.js +93 -0
  145. package/dist/cjs/index.d.ts +25 -0
  146. package/dist/cjs/index.js +44 -0
  147. package/dist/cjs/jest-setup.d.ts +1 -0
  148. package/dist/cjs/jest-setup.js +18 -0
  149. package/dist/cjs/jsdom-extended.d.ts +6 -0
  150. package/dist/cjs/jsdom-extended.js +14 -0
  151. package/dist/cjs/story-utils/index.d.ts +6 -0
  152. package/dist/cjs/story-utils/index.js +17 -0
  153. package/dist/cjs/utils/composeRefs.d.ts +7 -0
  154. package/dist/cjs/utils/composeRefs.js +20 -0
  155. package/dist/cjs/utils/composeRefs.test.d.ts +1 -0
  156. package/dist/cjs/utils/composeRefs.test.js +19 -0
  157. package/dist/cjs/utils/retryingFetch.d.ts +19 -0
  158. package/dist/cjs/utils/retryingFetch.js +98 -0
  159. package/dist/cjs/utils/retryingFetch.test.d.ts +1 -0
  160. package/dist/cjs/utils/retryingFetch.test.js +48 -0
  161. package/dist/cjs/utils/useDevCheckStable.d.ts +8 -0
  162. package/dist/cjs/utils/useDevCheckStable.js +29 -0
  163. package/dist/cjs/utils/useInterval.d.ts +7 -0
  164. package/dist/cjs/utils/useInterval.js +25 -0
  165. package/dist/esm/VERSION.d.ts +12 -0
  166. package/dist/esm/VERSION.js +12 -0
  167. package/dist/esm/ai.d.ts +3 -0
  168. package/dist/esm/ai.js +2 -0
  169. package/dist/esm/bundles/AiDrawer/AiDrawer.d.ts +55 -0
  170. package/dist/esm/bundles/AiDrawer/AiDrawer.js +259 -0
  171. package/dist/esm/bundles/AiDrawer/AiDrawer.stories.d.ts +17 -0
  172. package/dist/esm/bundles/AiDrawer/AiDrawer.stories.js +261 -0
  173. package/dist/esm/bundles/AiDrawer/AiDrawerManager.d.ts +12 -0
  174. package/dist/esm/bundles/AiDrawer/AiDrawerManager.js +48 -0
  175. package/dist/esm/bundles/AiDrawer/AiDrawerManager.stories.d.ts +6 -0
  176. package/dist/esm/bundles/AiDrawer/AiDrawerManager.stories.js +264 -0
  177. package/dist/esm/bundles/AiDrawer/AiDrawerManager.test.d.ts +1 -0
  178. package/dist/esm/bundles/AiDrawer/AiDrawerManager.test.js +243 -0
  179. package/dist/esm/bundles/AiDrawer/FlashcardsScreen.d.ts +9 -0
  180. package/dist/esm/bundles/AiDrawer/FlashcardsScreen.js +83 -0
  181. package/dist/esm/bundles/aiDrawerManager.d.ts +6 -0
  182. package/dist/esm/bundles/aiDrawerManager.js +41 -0
  183. package/dist/esm/components/AiChat/AiChat.d.ts +5 -0
  184. package/dist/esm/components/AiChat/AiChat.js +263 -0
  185. package/dist/esm/components/AiChat/AiChat.stories.d.ts +17 -0
  186. package/dist/esm/components/AiChat/AiChat.stories.js +191 -0
  187. package/dist/esm/components/AiChat/AiChat.test.d.ts +1 -0
  188. package/dist/esm/components/AiChat/AiChat.test.js +209 -0
  189. package/dist/esm/components/AiChat/AiChatContext.d.ts +26 -0
  190. package/dist/esm/components/AiChat/AiChatContext.js +102 -0
  191. package/dist/esm/components/AiChat/AiChatContext.stories.d.ts +14 -0
  192. package/dist/esm/components/AiChat/AiChatContext.stories.js +72 -0
  193. package/dist/esm/components/AiChat/AiChatMarkdown.stories.d.ts +15 -0
  194. package/dist/esm/components/AiChat/AiChatMarkdown.stories.js +279 -0
  195. package/dist/esm/components/AiChat/ChatTitle.d.ts +8 -0
  196. package/dist/esm/components/AiChat/ChatTitle.js +40 -0
  197. package/dist/esm/components/AiChat/EllipsisIcon.d.ts +6 -0
  198. package/dist/esm/components/AiChat/EllipsisIcon.js +15 -0
  199. package/dist/esm/components/AiChat/EntryScreen.d.ts +11 -0
  200. package/dist/esm/components/AiChat/EntryScreen.js +120 -0
  201. package/dist/esm/components/AiChat/Markdown.d.ts +7 -0
  202. package/dist/esm/components/AiChat/Markdown.js +12 -0
  203. package/dist/esm/components/AiChat/TimLogo.d.ts +5 -0
  204. package/dist/esm/components/AiChat/TimLogo.js +13 -0
  205. package/dist/esm/components/AiChat/test-utils/api.d.ts +2 -0
  206. package/dist/esm/components/AiChat/test-utils/api.js +161 -0
  207. package/dist/esm/components/AiChat/types.d.ts +96 -0
  208. package/dist/esm/components/AiChat/types.js +2 -0
  209. package/dist/esm/components/AiChat/utils.d.ts +9 -0
  210. package/dist/esm/components/AiChat/utils.js +38 -0
  211. package/dist/esm/components/Alert/Alert.d.ts +15 -0
  212. package/dist/esm/components/Alert/Alert.js +59 -0
  213. package/dist/esm/components/Alert/Alert.stories.d.ts +8 -0
  214. package/dist/esm/components/Alert/Alert.stories.js +50 -0
  215. package/dist/esm/components/Button/ActionButton.d.ts +30 -0
  216. package/dist/esm/components/Button/ActionButton.js +68 -0
  217. package/dist/esm/components/Button/ActionButton.stories.d.ts +15 -0
  218. package/dist/esm/components/Button/ActionButton.stories.js +110 -0
  219. package/dist/esm/components/Button/Button.d.ts +58 -0
  220. package/dist/esm/components/Button/Button.js +252 -0
  221. package/dist/esm/components/Button/Button.stories.d.ts +18 -0
  222. package/dist/esm/components/Button/Button.stories.js +145 -0
  223. package/dist/esm/components/Button/Button.test.d.ts +1 -0
  224. package/dist/esm/components/Button/Button.test.js +44 -0
  225. package/dist/esm/components/Checkbox/Checkbox.d.ts +20 -0
  226. package/dist/esm/components/Checkbox/Checkbox.js +81 -0
  227. package/dist/esm/components/Checkbox/Checkbox.stories.d.ts +8 -0
  228. package/dist/esm/components/Checkbox/Checkbox.stories.js +30 -0
  229. package/dist/esm/components/CheckboxChoiceField/CheckboxChoiceField.d.ts +21 -0
  230. package/dist/esm/components/CheckboxChoiceField/CheckboxChoiceField.js +40 -0
  231. package/dist/esm/components/CheckboxChoiceField/CheckboxChoiceField.stories.d.ts +8 -0
  232. package/dist/esm/components/CheckboxChoiceField/CheckboxChoiceField.stories.js +47 -0
  233. package/dist/esm/components/CheckboxChoiceField/CheckboxChoiceField.test.d.ts +1 -0
  234. package/dist/esm/components/CheckboxChoiceField/CheckboxChoiceField.test.js +50 -0
  235. package/dist/esm/components/ImageAdapter/ImageAdapter.d.ts +23 -0
  236. package/dist/esm/components/ImageAdapter/ImageAdapter.js +27 -0
  237. package/dist/esm/components/Input/Input.d.ts +116 -0
  238. package/dist/esm/components/Input/Input.js +232 -0
  239. package/dist/esm/components/Input/Input.stories.d.ts +19 -0
  240. package/dist/esm/components/Input/Input.stories.js +132 -0
  241. package/dist/esm/components/Input/Input.test.d.ts +1 -0
  242. package/dist/esm/components/Input/Input.test.js +30 -0
  243. package/dist/esm/components/LinkAdapter/LinkAdapter.d.ts +23 -0
  244. package/dist/esm/components/LinkAdapter/LinkAdapter.js +31 -0
  245. package/dist/esm/components/RadioChoiceField/BooleanRadioChoiceField.stories.d.ts +6 -0
  246. package/dist/esm/components/RadioChoiceField/BooleanRadioChoiceField.stories.js +44 -0
  247. package/dist/esm/components/RadioChoiceField/RadioChoiceField.d.ts +45 -0
  248. package/dist/esm/components/RadioChoiceField/RadioChoiceField.js +65 -0
  249. package/dist/esm/components/RadioChoiceField/RadioChoiceField.stories.d.ts +6 -0
  250. package/dist/esm/components/RadioChoiceField/RadioChoiceField.stories.js +52 -0
  251. package/dist/esm/components/RadioChoiceField/RadioChoiceField.test.d.ts +1 -0
  252. package/dist/esm/components/RadioChoiceField/RadioChoiceField.test.js +51 -0
  253. package/dist/esm/components/ScrollSnap/ScrollSnap.d.ts +19 -0
  254. package/dist/esm/components/ScrollSnap/ScrollSnap.js +56 -0
  255. package/dist/esm/components/ScrollSnap/ScrollSnap.stories.d.ts +6 -0
  256. package/dist/esm/components/ScrollSnap/ScrollSnap.stories.js +40 -0
  257. package/dist/esm/components/ScrollSnap/useScrollSnap.d.ts +6 -0
  258. package/dist/esm/components/ScrollSnap/useScrollSnap.js +33 -0
  259. package/dist/esm/components/SrAnnouncer/SrAnnouncer.d.ts +25 -0
  260. package/dist/esm/components/SrAnnouncer/SrAnnouncer.js +40 -0
  261. package/dist/esm/components/SrAnnouncer/SrAnnouncer.stories.d.ts +6 -0
  262. package/dist/esm/components/SrAnnouncer/SrAnnouncer.stories.js +41 -0
  263. package/dist/esm/components/SrAnnouncer/SrAnnouncer.test.d.ts +1 -0
  264. package/dist/esm/components/SrAnnouncer/SrAnnouncer.test.js +60 -0
  265. package/dist/esm/components/TabButtons/TabButtonList.d.ts +25 -0
  266. package/dist/esm/components/TabButtons/TabButtonList.js +92 -0
  267. package/dist/esm/components/TabButtons/TabButtonList.stories.d.ts +24 -0
  268. package/dist/esm/components/TabButtons/TabButtonList.stories.js +136 -0
  269. package/dist/esm/components/TextField/TextField.d.ts +29 -0
  270. package/dist/esm/components/TextField/TextField.js +30 -0
  271. package/dist/esm/components/TextField/TextField.stories.d.ts +10 -0
  272. package/dist/esm/components/TextField/TextField.stories.js +133 -0
  273. package/dist/esm/components/TextField/TextField.test.d.ts +1 -0
  274. package/dist/esm/components/TextField/TextField.test.js +75 -0
  275. package/dist/esm/components/ThemeProvider/ThemeProvider.d.ts +21 -0
  276. package/dist/esm/components/ThemeProvider/ThemeProvider.js +82 -0
  277. package/dist/esm/components/ThemeProvider/ThemeProvider.stories.d.ts +63 -0
  278. package/dist/esm/components/ThemeProvider/ThemeProvider.stories.js +99 -0
  279. package/dist/esm/components/ThemeProvider/Typography.stories.d.ts +39 -0
  280. package/dist/esm/components/ThemeProvider/Typography.stories.js +62 -0
  281. package/dist/esm/components/ThemeProvider/breakpoints.d.ts +4 -0
  282. package/dist/esm/components/ThemeProvider/breakpoints.js +15 -0
  283. package/dist/esm/components/ThemeProvider/buttons.d.ts +7 -0
  284. package/dist/esm/components/ThemeProvider/buttons.js +17 -0
  285. package/dist/esm/components/ThemeProvider/chips.d.ts +3 -0
  286. package/dist/esm/components/ThemeProvider/chips.js +151 -0
  287. package/dist/esm/components/ThemeProvider/colors.d.ts +32 -0
  288. package/dist/esm/components/ThemeProvider/colors.js +32 -0
  289. package/dist/esm/components/ThemeProvider/typography.d.ts +18 -0
  290. package/dist/esm/components/ThemeProvider/typography.js +167 -0
  291. package/dist/esm/components/VisuallyHidden/VisuallyHidden.d.ts +24 -0
  292. package/dist/esm/components/VisuallyHidden/VisuallyHidden.js +30 -0
  293. package/dist/esm/components/VisuallyHidden/VisuallyHidden.stories.d.ts +6 -0
  294. package/dist/esm/components/VisuallyHidden/VisuallyHidden.stories.js +10 -0
  295. package/dist/esm/components/internal/FormHelpers/FormHelpers.d.ts +39 -0
  296. package/dist/esm/components/internal/FormHelpers/FormHelpers.js +73 -0
  297. package/dist/esm/components/internal/FormHelpers/FormHelpers.test.d.ts +1 -0
  298. package/dist/esm/components/internal/FormHelpers/FormHelpers.test.js +91 -0
  299. package/dist/esm/index.d.ts +25 -0
  300. package/dist/esm/index.js +16 -0
  301. package/dist/esm/jest-setup.d.ts +1 -0
  302. package/dist/esm/jest-setup.js +16 -0
  303. package/dist/esm/jsdom-extended.d.ts +6 -0
  304. package/dist/esm/jsdom-extended.js +12 -0
  305. package/dist/esm/story-utils/index.d.ts +6 -0
  306. package/dist/esm/story-utils/index.js +13 -0
  307. package/dist/esm/utils/composeRefs.d.ts +7 -0
  308. package/dist/esm/utils/composeRefs.js +17 -0
  309. package/dist/esm/utils/composeRefs.test.d.ts +1 -0
  310. package/dist/esm/utils/composeRefs.test.js +17 -0
  311. package/dist/esm/utils/retryingFetch.d.ts +19 -0
  312. package/dist/esm/utils/retryingFetch.js +96 -0
  313. package/dist/esm/utils/retryingFetch.test.d.ts +1 -0
  314. package/dist/esm/utils/retryingFetch.test.js +46 -0
  315. package/dist/esm/utils/useDevCheckStable.d.ts +8 -0
  316. package/dist/esm/utils/useDevCheckStable.js +26 -0
  317. package/dist/esm/utils/useInterval.d.ts +7 -0
  318. package/dist/esm/utils/useInterval.js +22 -0
  319. package/dist/tsconfig.tsbuildinfo +1 -0
  320. package/dist/type-augmentation/TypescriptDocs.mdx +17 -0
  321. package/dist/type-augmentation/imports.d.ts +3 -0
  322. package/dist/type-augmentation/index.d.ts +3 -0
  323. package/dist/type-augmentation/theme.d.ts +105 -0
  324. package/dist/type-augmentation/typography.d.ts +54 -0
  325. package/package.json +159 -0
@@ -0,0 +1,81 @@
1
+ import * as React from "react";
2
+ import styled from "@emotion/styled";
3
+ import { css } from "@emotion/react";
4
+ // prettier-ignore
5
+ const hoverSprite = (theme) => css `
6
+ background-image: url("data:image/svg+xml,%3Csvg width='18' height='18' viewBox='0 0 18 18' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M1 0H17C17.5523 0 18 0.44772 18 1V17C18 17.5523 17.5523 18 17 18H1C0.44772 18 0 17.5523 0 17V1C0 0.44772 0.44772 0 1 0ZM2 2V16H16V2H2Z' fill='${encodeURIComponent(theme.custom.colors.silverGrayDark)}'/%3E%3C/svg%3E%0A");`;
7
+ // prettier-ignore
8
+ const checkedSprite = (theme) => css `
9
+ background-image: url("data:image/svg+xml,%3Csvg width='18' height='18' viewBox='0 0 18 18' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M1 0H17C17.5523 0 18 0.44772 18 1V17C18 17.5523 17.5523 18 17 18H1C0.44772 18 0 17.5523 0 17V1C0 0.44772 0.44772 0 1 0ZM8.0026 13L15.0737 5.92893L13.6595 4.51472L8.0026 10.1716L5.17421 7.3431L3.75999 8.7574L8.0026 13Z' fill='${encodeURIComponent(theme.custom.colors.red)}'/%3E%3C/svg%3E%0A");`;
10
+ /**
11
+ * Base styles for child checkboxes.
12
+ */
13
+ // prettier-ignore
14
+ const childCheckboxStyles = (theme) => css `
15
+ input[type="checkbox"] {
16
+ margin-left: 0;
17
+ margin-right: 0;
18
+ height: 24px;
19
+ width: 24px;
20
+ appearance: none;
21
+ background-image: url("data:image/svg+xml,%3Csvg width='18' height='18' viewBox='0 0 18 18' fill='none' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M1 0H17C17.5523 0 18 0.44772 18 1V17C18 17.5523 17.5523 18 17 18H1C0.44772 18 0 17.5523 0 17V1C0 0.44772 0.44772 0 1 0ZM2 2V16H16V2H2Z' fill='${encodeURIComponent(theme.custom.colors.silverGrayLight)}'/%3E%3C/svg%3E%0A");
22
+ background-repeat: no-repeat;
23
+ background-position: 3px 3px;
24
+ flex-shrink: 0;
25
+ cursor: pointer;
26
+
27
+ &:disabled {
28
+ cursor: not-allowed;
29
+ }
30
+ }
31
+
32
+ input[type="checkbox"]:checked {
33
+ ${checkedSprite(theme)}
34
+ + .checkbox-label {
35
+ color: ${theme.custom.colors.darkGray2};
36
+ }
37
+ }
38
+
39
+ /*
40
+ * This also triggers when the label is hovered.
41
+ * See https://stackoverflow.com/a/9101344/2747370
42
+ */
43
+ input[type="checkbox"]:hover:not(:disabled, :checked) {
44
+ ${hoverSprite(theme)}
45
+ & + .checkbox-label {
46
+ color: ${theme.custom.colors.darkGray2};
47
+ }
48
+ }
49
+ `;
50
+ const Container = styled.div(({ theme }) => [
51
+ {
52
+ height: 24,
53
+ label: Object.assign({ display: "flex", alignItems: "center", cursor: "pointer" }, theme.typography.body2),
54
+ 'input[type="checkbox"] + .checkbox-label': Object.assign({ color: theme.custom.colors.silverGrayDark }, theme.typography.body2),
55
+ 'input[type="checkbox"]:disabled + .checkbox-label': {
56
+ cursor: "not-allowed",
57
+ },
58
+ 'label:has(input[type="checkbox"]:disabled)': {
59
+ cursor: "not-allowed",
60
+ },
61
+ '&& input[type="checkbox"]': {
62
+ margin: 0,
63
+ marginRight: 4,
64
+ // Help avoid focus outline from being cutoff
65
+ ":focus-visible": {
66
+ outlineOffset: -1,
67
+ },
68
+ },
69
+ },
70
+ // Insert childCheckboxStyles and hoverSprite as additional css
71
+ childCheckboxStyles(theme),
72
+ ]);
73
+ /**
74
+ * A standalone checkbox. For several checkboxes together, use the `CheckboxChoiceField` component.
75
+ */
76
+ const Checkbox = ({ label, value, name, checked, onChange, className, disabled = false, }) => {
77
+ return (React.createElement(Container, { className: className }, label ? (React.createElement("label", null,
78
+ React.createElement("input", { type: "checkbox", name: name, value: value, checked: checked, onChange: onChange, disabled: disabled }),
79
+ React.createElement("span", { className: "checkbox-label" }, label))) : (React.createElement("input", { type: "checkbox", name: name, value: value, checked: checked, onChange: onChange, disabled: disabled }))));
80
+ };
81
+ export { Checkbox, childCheckboxStyles };
@@ -0,0 +1,8 @@
1
+ import type { Meta, StoryObj } from "@storybook/react";
2
+ import { Checkbox } from "./Checkbox";
3
+ declare const meta: Meta<typeof Checkbox>;
4
+ export default meta;
5
+ type Story = StoryObj<typeof Checkbox>;
6
+ export declare const Simple: Story;
7
+ export declare const WithLabel: Story;
8
+ export declare const Disabled: Story;
@@ -0,0 +1,30 @@
1
+ import * as React from "react";
2
+ import { useState } from "react";
3
+ import { Checkbox } from "./Checkbox";
4
+ const StateWrapper = (props) => {
5
+ const [checked, setChecked] = useState(!!props.checked);
6
+ const handleChange = (event) => {
7
+ var _a;
8
+ setChecked(event.target.checked);
9
+ (_a = props.onChange) === null || _a === void 0 ? void 0 : _a.call(props, event);
10
+ };
11
+ return React.createElement(Checkbox, Object.assign({}, props, { checked: checked, onChange: handleChange }));
12
+ };
13
+ const meta = {
14
+ title: "smoot-design/Checkbox",
15
+ component: Checkbox,
16
+ render: (args) => React.createElement(StateWrapper, Object.assign({}, args)),
17
+ };
18
+ export default meta;
19
+ export const Simple = {};
20
+ export const WithLabel = {
21
+ args: {
22
+ label: "Checkbox",
23
+ },
24
+ };
25
+ export const Disabled = {
26
+ args: {
27
+ label: "Disabled",
28
+ disabled: true,
29
+ },
30
+ };
@@ -0,0 +1,21 @@
1
+ import * as React from "react";
2
+ import { CheckboxProps } from "../Checkbox/Checkbox";
3
+ type CheckboxChoice = Omit<CheckboxProps, "name" | "onChange" | "checked"> & {
4
+ value: string;
5
+ };
6
+ export type CheckboxChoiceFieldProps = {
7
+ label?: React.ReactNode;
8
+ value?: string[];
9
+ name?: string;
10
+ choices: CheckboxChoice[];
11
+ values?: string[];
12
+ onChange?: (event: React.ChangeEvent<HTMLInputElement>, values: string[]) => void;
13
+ className?: string;
14
+ vertical?: boolean;
15
+ disabled?: boolean;
16
+ };
17
+ /**
18
+ * Checkboxes grouped together as a fieldset with a label.
19
+ */
20
+ declare const CheckboxChoiceField: React.FC<CheckboxChoiceFieldProps>;
21
+ export { CheckboxChoiceField };
@@ -0,0 +1,40 @@
1
+ import * as React from "react";
2
+ import { Checkbox } from "../Checkbox/Checkbox";
3
+ import FormControl from "@mui/material/FormControl";
4
+ import FormLabel from "@mui/material/FormLabel";
5
+ import styled from "@emotion/styled";
6
+ const Container = styled.div(({ theme }) => ({
7
+ display: "flex",
8
+ gap: "32px",
9
+ flexDirection: "row",
10
+ [theme.breakpoints.down("md")]: {
11
+ flexDirection: "column",
12
+ },
13
+ }));
14
+ const VerticalContainer = styled(Container)({
15
+ gap: "18px",
16
+ flexDirection: "column",
17
+ });
18
+ const Label = styled(FormLabel)(({ theme }) => (Object.assign({ marginTop: "0", marginBottom: "16px", width: "100%", color: theme.custom.colors.darkGray2 }, theme.typography.subtitle2))); // https://mui.com/material-ui/guides/typescript/?srsltid=AfmBOoo9kvRiALbxt4kAarRGiKaiJ7tbui5tstoL23DYscJPyk6UaTul#complications-with-the-component-prop
19
+ /**
20
+ * Checkboxes grouped together as a fieldset with a label.
21
+ */
22
+ const CheckboxChoiceField = ({ label, name, choices, values, onChange, className, vertical = false, disabled = false, }) => {
23
+ const isChecked = (value) => {
24
+ if (values === undefined)
25
+ return undefined;
26
+ return values.includes(value);
27
+ };
28
+ const _Container = vertical ? VerticalContainer : Container;
29
+ const handleChange = (event) => {
30
+ const fieldset = event.target.closest("fieldset");
31
+ const checked = (fieldset === null || fieldset === void 0 ? void 0 : fieldset.querySelectorAll("input[type='checkbox']:checked")) || [];
32
+ onChange === null || onChange === void 0 ? void 0 : onChange(event, Array.from(checked).map((input) => input.value));
33
+ };
34
+ return (React.createElement(FormControl, { component: "fieldset", sx: { width: "100%" }, className: className, disabled: disabled },
35
+ label && React.createElement(Label, { component: "legend" }, label),
36
+ React.createElement(_Container, null, choices.map((choice) => {
37
+ return (React.createElement(Checkbox, Object.assign({ key: choice.value, name: name, checked: isChecked(choice.value), onChange: handleChange, disabled: disabled }, choice)));
38
+ }))));
39
+ };
40
+ export { CheckboxChoiceField };
@@ -0,0 +1,8 @@
1
+ import type { Meta, StoryObj } from "@storybook/react";
2
+ import { CheckboxChoiceField } from "./CheckboxChoiceField";
3
+ declare const meta: Meta<typeof CheckboxChoiceField>;
4
+ export default meta;
5
+ type Story = StoryObj<typeof CheckboxChoiceField>;
6
+ export declare const WithoutLabel: Story;
7
+ export declare const WithLabel: Story;
8
+ export declare const Disabled: Story;
@@ -0,0 +1,47 @@
1
+ import * as React from "react";
2
+ import { CheckboxChoiceField, } from "./CheckboxChoiceField";
3
+ import Typography from "@mui/material/Typography";
4
+ import { fn } from "@storybook/test";
5
+ const CHOICES = [
6
+ { label: "Choice 1", value: "1" },
7
+ { label: "Choice 2", value: "2" },
8
+ { label: "Choice 3", value: "3", disabled: true },
9
+ { label: "Choice 4", value: "4" },
10
+ ];
11
+ const StateWrapper = (props) => {
12
+ var _a;
13
+ const [values, setValues] = React.useState((_a = props.value) !== null && _a !== void 0 ? _a : []);
14
+ const handleChange = (event, values) => {
15
+ fn()(event, values);
16
+ setValues(values);
17
+ };
18
+ return (React.createElement(React.Fragment, null,
19
+ React.createElement(CheckboxChoiceField, Object.assign({}, props, { values: values, onChange: handleChange })),
20
+ React.createElement("br", null),
21
+ React.createElement("br", null),
22
+ React.createElement(Typography, { variant: "body1" },
23
+ "Selected: ", values === null || values === void 0 ? void 0 :
24
+ values.join(", "))));
25
+ };
26
+ const meta = {
27
+ title: "smoot-design/CheckboxChoiceField",
28
+ component: CheckboxChoiceField,
29
+ render: (args) => React.createElement(StateWrapper, Object.assign({}, args)),
30
+ args: {
31
+ choices: CHOICES,
32
+ name: "checkbox-group",
33
+ },
34
+ };
35
+ export default meta;
36
+ export const WithoutLabel = {};
37
+ export const WithLabel = {
38
+ args: {
39
+ label: "CheckboxChoiceField",
40
+ },
41
+ };
42
+ export const Disabled = {
43
+ args: {
44
+ label: "CheckboxChoiceField disabled",
45
+ disabled: true,
46
+ },
47
+ };
@@ -0,0 +1,50 @@
1
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
2
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
3
+ return new (P || (P = Promise))(function (resolve, reject) {
4
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
5
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
6
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
7
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
8
+ });
9
+ };
10
+ import * as React from "react";
11
+ import { render, screen } from "@testing-library/react";
12
+ import userEvent from "@testing-library/user-event";
13
+ import { CheckboxChoiceField, } from "./CheckboxChoiceField";
14
+ import { ThemeProvider } from "../ThemeProvider/ThemeProvider";
15
+ describe("CheckboxChoiceField (Controlled)", () => {
16
+ // Test scenarios where a `values` prop is provided.
17
+ it("should call onChange with correct arguments when a checkbox is clicked", () => __awaiter(void 0, void 0, void 0, function* () {
18
+ const handleChange = jest.fn();
19
+ const choices = [
20
+ { label: "Option 1", value: "1" },
21
+ { label: "Option 2", value: "2" },
22
+ { label: "Option 3", value: "3" },
23
+ ];
24
+ render(React.createElement(CheckboxChoiceField, { name: "test-group", choices: choices, values: ["2"], onChange: handleChange }), { wrapper: ThemeProvider });
25
+ const checkbox3 = screen.getByRole("checkbox", { name: "Option 3" });
26
+ yield userEvent.click(checkbox3);
27
+ expect(handleChange).toHaveBeenCalledTimes(1);
28
+ expect(handleChange).toHaveBeenCalledWith(expect.objectContaining({ target: checkbox3 }), ["2", "3"]);
29
+ }));
30
+ });
31
+ describe("CheckboxChoiceField (Uncontrolled)", () => {
32
+ // Test scenarios where a `values` prop is not provided.
33
+ it("should call onChange with correct arguments when a checkbox is clicked", () => __awaiter(void 0, void 0, void 0, function* () {
34
+ const handleChange = jest.fn();
35
+ const choices = [
36
+ { label: "Option 1", value: "1" },
37
+ { label: "Option 2", value: "2" },
38
+ { label: "Option 3", value: "3" },
39
+ ];
40
+ render(React.createElement(CheckboxChoiceField, { name: "test-group", choices: choices, onChange: handleChange }), { wrapper: ThemeProvider });
41
+ const checkbox2 = screen.getByRole("checkbox", { name: "Option 2" });
42
+ yield userEvent.click(checkbox2);
43
+ expect(handleChange).toHaveBeenCalledTimes(1);
44
+ expect(handleChange).toHaveBeenCalledWith(expect.objectContaining({ target: checkbox2 }), ["2"]);
45
+ const checkbox3 = screen.getByRole("checkbox", { name: "Option 3" });
46
+ yield userEvent.click(checkbox3);
47
+ expect(handleChange).toHaveBeenCalledTimes(2);
48
+ expect(handleChange).toHaveBeenCalledWith(expect.objectContaining({ target: checkbox3 }), ["2", "3"]);
49
+ }));
50
+ });
@@ -0,0 +1,23 @@
1
+ import * as React from "react";
2
+ /**
3
+ * ImageAdapterPropsOverrides can be used with module augmentation to provide
4
+ * extra props to ButtonLink.
5
+ *
6
+ * For example, in a NextJS App, you might set `next/image` as your default
7
+ * image implementation, and use ImageAdapterPropsOverrides to provide
8
+ * `next/image`-specific props.
9
+ */
10
+ interface ImageAdapterPropsOverrides {
11
+ }
12
+ type ImageAdapterProps = React.ComponentProps<"img"> & {
13
+ Component?: React.ElementType;
14
+ } & ImageAdapterPropsOverrides;
15
+ /**
16
+ * Overridable Image component.
17
+ * - If `Component` is provided, renders as `Component`
18
+ * - else, if `theme.custom.ImageAdapter` is provided, renders as `theme.custom.ImageAdapter`
19
+ * - else, renders as `img` tag
20
+ */
21
+ declare const ImageAdapter: React.ForwardRefExoticComponent<Omit<ImageAdapterProps, "ref"> & React.RefAttributes<HTMLImageElement>>;
22
+ export { ImageAdapter };
23
+ export type { ImageAdapterPropsOverrides, ImageAdapterProps };
@@ -0,0 +1,27 @@
1
+ var __rest = (this && this.__rest) || function (s, e) {
2
+ var t = {};
3
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
4
+ t[p] = s[p];
5
+ if (s != null && typeof Object.getOwnPropertySymbols === "function")
6
+ for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
7
+ if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
8
+ t[p[i]] = s[p[i]];
9
+ }
10
+ return t;
11
+ };
12
+ import * as React from "react";
13
+ import { useTheme } from "@emotion/react";
14
+ /**
15
+ * Overridable Image component.
16
+ * - If `Component` is provided, renders as `Component`
17
+ * - else, if `theme.custom.ImageAdapter` is provided, renders as `theme.custom.ImageAdapter`
18
+ * - else, renders as `img` tag
19
+ */
20
+ const ImageAdapter = React.forwardRef(function ImageAdapter(_a, ref) {
21
+ var _b;
22
+ var { Component } = _a, props = __rest(_a, ["Component"]);
23
+ const theme = useTheme();
24
+ const ImgComponent = (_b = Component !== null && Component !== void 0 ? Component : theme.custom.ImgAdapter) !== null && _b !== void 0 ? _b : "img";
25
+ return React.createElement(ImgComponent, Object.assign({ ref: ref }, props));
26
+ });
27
+ export { ImageAdapter };
@@ -0,0 +1,116 @@
1
+ import * as React from "react";
2
+ import type { InputBaseProps } from "@mui/material/InputBase";
3
+ import type { Theme } from "@mui/material/styles";
4
+ type Size = "small" | "medium" | "large" | "chat" | "hero";
5
+ type CustomInputProps = {
6
+ /**
7
+ * If true, the input will display one size smaller at mobile breakpoint.
8
+ */
9
+ responsive?: boolean;
10
+ };
11
+ type MuiDocOverride = {
12
+ size?: Size;
13
+ /**
14
+ * Slot for icon adornments.
15
+ *
16
+ * If the icon is a button, use `AdornmentButton` component.
17
+ */
18
+ startAdornment?: React.ReactNode;
19
+ /**
20
+ * Slot for icon adornments.
21
+ *
22
+ * If the icon is a button, use `AdornmentButton` component.
23
+ */
24
+ endAdornment?: React.ReactNode;
25
+ };
26
+ type InputProps = CustomInputProps & MuiDocOverride & Omit<InputBaseProps, "color" | keyof MuiDocOverride>;
27
+ /**
28
+ * Base styles for Input and Select components. Includes border, color, hover effects.
29
+ */
30
+ declare const baseInputStyles: (theme: Theme) => {
31
+ backgroundColor: string;
32
+ color: string;
33
+ borderColor: string;
34
+ borderWidth: string;
35
+ borderStyle: string;
36
+ borderRadius: string;
37
+ overflow: string;
38
+ "&.Mui-disabled": {
39
+ backgroundColor: string;
40
+ };
41
+ "&:hover:not(.Mui-disabled):not(.Mui-focused)": {
42
+ borderColor: string;
43
+ };
44
+ "&.Mui-focused": {
45
+ /**
46
+ * When change border width, it affects either the elements outside of it or
47
+ * inside based on the border-box setting.
48
+ *
49
+ * Instead of changing the border width, we hide the border and change width
50
+ * using outline.
51
+ */
52
+ borderColor: string;
53
+ outline: string;
54
+ outlineOffset: string;
55
+ };
56
+ "&.Mui-error": {
57
+ borderColor: string;
58
+ outlineColor: string;
59
+ };
60
+ "& input::placeholder, textarea::placeholder": {
61
+ color: string;
62
+ opacity: number;
63
+ };
64
+ "& input:placeholder-shown, textarea:placeholder-shown": {
65
+ textOverflow: string;
66
+ };
67
+ "& textarea": {
68
+ paddingTop: string;
69
+ paddingBottom: string;
70
+ };
71
+ "&.MuiInputBase-adornedStart": {
72
+ paddingLeft: string;
73
+ input: {
74
+ paddingLeft: string;
75
+ };
76
+ };
77
+ "&.MuiInputBase-adornedEnd": {
78
+ paddingRight: string;
79
+ input: {
80
+ paddingRight: string;
81
+ };
82
+ };
83
+ };
84
+ /**
85
+ * Use `Input` for a visually unlabelled input field. If used, it should still
86
+ * have an accessible label, e.g., provided via `aria-label`.
87
+ * For a labeled input field, use `TextField`. instead.
88
+ *
89
+ * **Note:** This component is a styled version of MUI's `InputBase`. See
90
+ * MUI's documentation for full info.
91
+ *
92
+ * - [Smoot Design Input Documentation](https://mitodl.github.io/smoot-design/?path=/docs/smoot-design-input--docs)
93
+ * - [InputBase Documentation](https://mui.com/api/input-base/)
94
+ */
95
+ declare const Input: React.FC<InputProps>;
96
+ declare const AdornmentButtonStyled: import("@emotion/styled").StyledComponent<{
97
+ theme?: import("@emotion/react").Theme;
98
+ as?: React.ElementType;
99
+ }, React.DetailedHTMLProps<React.ButtonHTMLAttributes<HTMLButtonElement>, HTMLButtonElement>, {}>;
100
+ type AdornmentButtonProps = React.ComponentProps<typeof AdornmentButtonStyled>;
101
+ /**
102
+ * Button to be used with `startAdornment` and `endAdornment` props on Input and
103
+ * TextField components. AdornmentButton takes care of positioning and other
104
+ * styling concerns.
105
+ *
106
+ * NOTES:
107
+ * - It is generally expected that the content of the AdornmentButton is a
108
+ * Remix Icon component. https://remixicon.com/
109
+ * - By default, the AdornmentButton calls `preventDefault` on `mouseDown`
110
+ * events. This prevents the button from stealing focus from the input on
111
+ * click. The button is still focusable via keyboard events. You can override
112
+ * this behavior by passing your own `onMouseDown` handler.
113
+ */
114
+ declare const AdornmentButton: React.FC<AdornmentButtonProps>;
115
+ export { AdornmentButton, Input, baseInputStyles };
116
+ export type { InputProps, AdornmentButtonProps };