@recursica/adapter-mui-v7 1.0.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 (389) hide show
  1. package/.storybook/commonArgTypes.ts +148 -0
  2. package/ARCHITECTURE.md +18 -0
  3. package/CHANGELOG.md +582 -0
  4. package/LICENSE +21 -0
  5. package/OVERSTYLING.md +59 -0
  6. package/README.md +70 -0
  7. package/SETUP.md +92 -0
  8. package/USAGE.md +57 -0
  9. package/dist/adapter-mui-v7.cjs +292 -0
  10. package/dist/adapter-mui-v7.cjs.map +1 -0
  11. package/dist/adapter-mui-v7.css +1 -0
  12. package/dist/adapter-mui-v7.js +40757 -0
  13. package/dist/adapter-mui-v7.js.map +1 -0
  14. package/dist/index.d.ts +2350 -0
  15. package/dist/vite.svg +1 -0
  16. package/docs/PHILOSOPHY.md +39 -0
  17. package/llms.txt +76 -0
  18. package/package.json +151 -0
  19. package/recursica_brand.json +2677 -0
  20. package/recursica_tokens.json +799 -0
  21. package/recursica_ui-kit.json +14981 -0
  22. package/recursica_variables_scoped.css +30489 -0
  23. package/src/GlobalExemptions.modules.css +7 -0
  24. package/src/Introduction.stories.tsx +184 -0
  25. package/src/OverStyling.tsx +87 -0
  26. package/src/Version.tsx +37 -0
  27. package/src/components/Accordion/ACCORDION_IMPLEMENTATION_NOTES.md +107 -0
  28. package/src/components/Accordion/Accordion.module.css +362 -0
  29. package/src/components/Accordion/Accordion.stories.tsx +198 -0
  30. package/src/components/Accordion/Accordion.test.tsx +1 -0
  31. package/src/components/Accordion/Accordion.tsx +285 -0
  32. package/src/components/Accordion/USAGE.md +43 -0
  33. package/src/components/Accordion/index.ts +1 -0
  34. package/src/components/AssistiveElement/ASSISTIVEELEMENT_IMPLEMENTATION_NOTES.md +59 -0
  35. package/src/components/AssistiveElement/AssistiveElement.module.css +121 -0
  36. package/src/components/AssistiveElement/AssistiveElement.stories.tsx +68 -0
  37. package/src/components/AssistiveElement/AssistiveElement.test.tsx +1 -0
  38. package/src/components/AssistiveElement/AssistiveElement.tsx +94 -0
  39. package/src/components/AssistiveElement/USAGE.md +36 -0
  40. package/src/components/AssistiveElement/index.ts +1 -0
  41. package/src/components/AutoComplete/AutoComplete.module.css +456 -0
  42. package/src/components/AutoComplete/AutoComplete.stories.tsx +336 -0
  43. package/src/components/AutoComplete/AutoComplete.test.tsx +1 -0
  44. package/src/components/AutoComplete/AutoComplete.tsx +266 -0
  45. package/src/components/AutoComplete/IMPLEMENTATION_NOTES.md +37 -0
  46. package/src/components/AutoComplete/USAGE.md +68 -0
  47. package/src/components/AutoComplete/index.ts +1 -0
  48. package/src/components/Avatar/AVATAR_IMPLEMENTATION_NOTES.md +36 -0
  49. package/src/components/Avatar/Avatar.module.css +336 -0
  50. package/src/components/Avatar/Avatar.stories.tsx +92 -0
  51. package/src/components/Avatar/Avatar.test.tsx +1 -0
  52. package/src/components/Avatar/Avatar.tsx +88 -0
  53. package/src/components/Avatar/USAGE.md +38 -0
  54. package/src/components/Avatar/index.ts +1 -0
  55. package/src/components/Badge/Badge.module.css +115 -0
  56. package/src/components/Badge/Badge.stories.tsx +78 -0
  57. package/src/components/Badge/Badge.test.tsx +1 -0
  58. package/src/components/Badge/Badge.tsx +61 -0
  59. package/src/components/Badge/USAGE.md +40 -0
  60. package/src/components/Badge/index.ts +1 -0
  61. package/src/components/Breadcrumb/BREADCRUMB_IMPLEMENTATION_NOTES.md +51 -0
  62. package/src/components/Breadcrumb/Breadcrumb.module.css +51 -0
  63. package/src/components/Breadcrumb/Breadcrumb.stories.tsx +114 -0
  64. package/src/components/Breadcrumb/Breadcrumb.test.tsx +1 -0
  65. package/src/components/Breadcrumb/Breadcrumb.tsx +70 -0
  66. package/src/components/Breadcrumb/USAGE.md +42 -0
  67. package/src/components/Breadcrumb/index.ts +1 -0
  68. package/src/components/Button/BUTTON_IMPLEMENTATION_NOTES.md +123 -0
  69. package/src/components/Button/Button.module.css +413 -0
  70. package/src/components/Button/Button.stories.tsx +196 -0
  71. package/src/components/Button/Button.styleIsolation.dom.test.tsx +98 -0
  72. package/src/components/Button/Button.tsx +156 -0
  73. package/src/components/Button/USAGE.md +46 -0
  74. package/src/components/Button/index.ts +1 -0
  75. package/src/components/Card/CARD_IMPLEMENTATION_NOTES.md +15 -0
  76. package/src/components/Card/Card.module.css +155 -0
  77. package/src/components/Card/Card.stories.tsx +131 -0
  78. package/src/components/Card/Card.test.tsx +1 -0
  79. package/src/components/Card/Card.tsx +202 -0
  80. package/src/components/Card/USAGE.md +57 -0
  81. package/src/components/Card/index.ts +1 -0
  82. package/src/components/Checkbox/CHECKBOX_IMPLEMENTATION_NOTES.md +14 -0
  83. package/src/components/Checkbox/Checkbox.module.css +286 -0
  84. package/src/components/Checkbox/Checkbox.stories.tsx +97 -0
  85. package/src/components/Checkbox/Checkbox.test.tsx +1 -0
  86. package/src/components/Checkbox/Checkbox.tsx +259 -0
  87. package/src/components/Checkbox/CheckboxGroup.stories.tsx +139 -0
  88. package/src/components/Checkbox/CheckboxGroup.tsx +148 -0
  89. package/src/components/Checkbox/USAGE.md +36 -0
  90. package/src/components/Checkbox/index.ts +6 -0
  91. package/src/components/Chip/CHIP_IMPLEMENTATION_NOTES.md +102 -0
  92. package/src/components/Chip/Chip.module.css +283 -0
  93. package/src/components/Chip/Chip.stories.tsx +154 -0
  94. package/src/components/Chip/Chip.test.tsx +1 -0
  95. package/src/components/Chip/Chip.tsx +168 -0
  96. package/src/components/Chip/USAGE.md +55 -0
  97. package/src/components/Chip/index.ts +1 -0
  98. package/src/components/Container/Container.stories.tsx +118 -0
  99. package/src/components/Container/Container.test.tsx +1 -0
  100. package/src/components/Container/Container.tsx +51 -0
  101. package/src/components/Container/IMPLEMENTATION_NOTES.md +5 -0
  102. package/src/components/Container/USAGE.md +48 -0
  103. package/src/components/Container/index.ts +1 -0
  104. package/src/components/DatePicker/DATEPICKER_IMPLEMENTATION_NOTES.md +29 -0
  105. package/src/components/DatePicker/DatePicker.icons.tsx +35 -0
  106. package/src/components/DatePicker/DatePicker.module.css +464 -0
  107. package/src/components/DatePicker/DatePicker.stories.tsx +163 -0
  108. package/src/components/DatePicker/DatePicker.test.tsx +1 -0
  109. package/src/components/DatePicker/DatePicker.tsx +229 -0
  110. package/src/components/DatePicker/USAGE.md +49 -0
  111. package/src/components/DatePicker/index.ts +1 -0
  112. package/src/components/Dropdown/BareDropdown.tsx +168 -0
  113. package/src/components/Dropdown/DROPDOWN_IMPLEMENTATION_NOTES.md +45 -0
  114. package/src/components/Dropdown/Dropdown.icons.tsx +33 -0
  115. package/src/components/Dropdown/Dropdown.module.css +535 -0
  116. package/src/components/Dropdown/Dropdown.stories.tsx +252 -0
  117. package/src/components/Dropdown/Dropdown.test.tsx +1 -0
  118. package/src/components/Dropdown/Dropdown.tsx +319 -0
  119. package/src/components/Dropdown/USAGE.md +68 -0
  120. package/src/components/Dropdown/index.ts +1 -0
  121. package/src/components/FileInput/FILEINPUT_IMPLEMENTATION_NOTES.md +153 -0
  122. package/src/components/FileInput/FileInput.module.css +268 -0
  123. package/src/components/FileInput/FileInput.stories.tsx +313 -0
  124. package/src/components/FileInput/FileInput.test.tsx +1 -0
  125. package/src/components/FileInput/FileInput.tsx +415 -0
  126. package/src/components/FileInput/USAGE.md +145 -0
  127. package/src/components/FileInput/index.ts +1 -0
  128. package/src/components/FileUpload/FILEUPLOAD_IMPLEMENTATION_NOTES.md +249 -0
  129. package/src/components/FileUpload/FileUpload.module.css +200 -0
  130. package/src/components/FileUpload/FileUpload.stories.tsx +362 -0
  131. package/src/components/FileUpload/FileUpload.test.tsx +1 -0
  132. package/src/components/FileUpload/FileUpload.tsx +352 -0
  133. package/src/components/FileUpload/USAGE.md +199 -0
  134. package/src/components/FileUpload/index.ts +1 -0
  135. package/src/components/Flex/Flex.stories.tsx +128 -0
  136. package/src/components/Flex/Flex.test.tsx +1 -0
  137. package/src/components/Flex/Flex.tsx +89 -0
  138. package/src/components/Flex/USAGE.md +41 -0
  139. package/src/components/Flex/index.ts +1 -0
  140. package/src/components/FormControlLayout/FormControlLayout.module.css +92 -0
  141. package/src/components/FormControlLayout/FormControlLayout.stories.tsx +118 -0
  142. package/src/components/FormControlLayout/FormControlLayout.test.tsx +1 -0
  143. package/src/components/FormControlLayout/FormControlLayout.tsx +72 -0
  144. package/src/components/FormControlLayout/USAGE.md +40 -0
  145. package/src/components/FormControlLayout/index.ts +1 -0
  146. package/src/components/FormControlWrapper/FORMCONTROLWRAPPER_IMPLEMENTATION_NOTES.md +35 -0
  147. package/src/components/FormControlWrapper/FormControlWrapper.module.css +87 -0
  148. package/src/components/FormControlWrapper/FormControlWrapper.stories.tsx +129 -0
  149. package/src/components/FormControlWrapper/FormControlWrapper.test.tsx +1 -0
  150. package/src/components/FormControlWrapper/FormControlWrapper.tsx +149 -0
  151. package/src/components/FormControlWrapper/USAGE.md +40 -0
  152. package/src/components/FormControlWrapper/index.ts +1 -0
  153. package/src/components/Grid/Grid.module.css +72 -0
  154. package/src/components/Grid/Grid.stories.tsx +161 -0
  155. package/src/components/Grid/Grid.test.tsx +1 -0
  156. package/src/components/Grid/Grid.tsx +155 -0
  157. package/src/components/Grid/IMPLEMENTATION_NOTES.md +24 -0
  158. package/src/components/Grid/USAGE.md +53 -0
  159. package/src/components/Grid/index.ts +1 -0
  160. package/src/components/Group/Group.stories.tsx +120 -0
  161. package/src/components/Group/Group.test.tsx +1 -0
  162. package/src/components/Group/Group.tsx +116 -0
  163. package/src/components/Group/USAGE.md +41 -0
  164. package/src/components/Group/index.ts +1 -0
  165. package/src/components/Heading/Heading.stories.tsx +50 -0
  166. package/src/components/Heading/Heading.test.tsx +1 -0
  167. package/src/components/Heading/Heading.tsx +28 -0
  168. package/src/components/Heading/USAGE.md +36 -0
  169. package/src/components/Heading/index.ts +1 -0
  170. package/src/components/HoverCard/HoverCard.module.css +107 -0
  171. package/src/components/HoverCard/HoverCard.stories.tsx +172 -0
  172. package/src/components/HoverCard/HoverCard.test.tsx +1 -0
  173. package/src/components/HoverCard/HoverCard.tsx +145 -0
  174. package/src/components/HoverCard/USAGE.md +45 -0
  175. package/src/components/HoverCard/index.ts +1 -0
  176. package/src/components/Label/LABEL_IMPLEMENTATION_NOTES.md +27 -0
  177. package/src/components/Label/Label.module.css +169 -0
  178. package/src/components/Label/Label.stories.tsx +131 -0
  179. package/src/components/Label/Label.test.tsx +1 -0
  180. package/src/components/Label/Label.tsx +96 -0
  181. package/src/components/Label/USAGE.md +36 -0
  182. package/src/components/Label/index.ts +1 -0
  183. package/src/components/Layer/USAGE.md +50 -0
  184. package/src/components/Link/LINK_IMPLEMENTATION_NOTES.md +9 -0
  185. package/src/components/Link/Link.module.css +105 -0
  186. package/src/components/Link/Link.stories.tsx +58 -0
  187. package/src/components/Link/Link.test.tsx +1 -0
  188. package/src/components/Link/Link.tsx +45 -0
  189. package/src/components/Link/USAGE.md +40 -0
  190. package/src/components/Link/index.ts +1 -0
  191. package/src/components/Loader/LOADER_IMPLEMENTATION_NOTES.md +25 -0
  192. package/src/components/Loader/Loader.animate.dom.test.tsx +72 -0
  193. package/src/components/Loader/Loader.module.css +175 -0
  194. package/src/components/Loader/Loader.stories.tsx +123 -0
  195. package/src/components/Loader/Loader.test.tsx +1 -0
  196. package/src/components/Loader/Loader.tsx +72 -0
  197. package/src/components/Loader/USAGE.md +42 -0
  198. package/src/components/Loader/index.ts +1 -0
  199. package/src/components/Menu/IMPLEMENTATION_NOTES.md +5 -0
  200. package/src/components/Menu/Menu.module.css +283 -0
  201. package/src/components/Menu/Menu.stories.tsx +405 -0
  202. package/src/components/Menu/Menu.test.tsx +1 -0
  203. package/src/components/Menu/Menu.tsx +103 -0
  204. package/src/components/Menu/USAGE.md +53 -0
  205. package/src/components/Menu/index.ts +1 -0
  206. package/src/components/Modal/MODAL_IMPLEMENTATION_NOTES.md +31 -0
  207. package/src/components/Modal/Modal.module.css +302 -0
  208. package/src/components/Modal/Modal.stories.tsx +105 -0
  209. package/src/components/Modal/Modal.test.tsx +1 -0
  210. package/src/components/Modal/Modal.tsx +231 -0
  211. package/src/components/Modal/USAGE.md +40 -0
  212. package/src/components/Modal/index.ts +1 -0
  213. package/src/components/NumberInput/NUMBER_INPUT_IMPLEMENTATION_NOTES.md +93 -0
  214. package/src/components/NumberInput/NumberInput.module.css +303 -0
  215. package/src/components/NumberInput/NumberInput.stories.tsx +96 -0
  216. package/src/components/NumberInput/NumberInput.test.tsx +1 -0
  217. package/src/components/NumberInput/NumberInput.tsx +273 -0
  218. package/src/components/NumberInput/USAGE.md +36 -0
  219. package/src/components/NumberInput/index.ts +1 -0
  220. package/src/components/Pagination/IMPLEMENTATION_NOTES.md +40 -0
  221. package/src/components/Pagination/Pagination.icons.tsx +66 -0
  222. package/src/components/Pagination/Pagination.module.css +197 -0
  223. package/src/components/Pagination/Pagination.stories.tsx +48 -0
  224. package/src/components/Pagination/Pagination.test.tsx +1 -0
  225. package/src/components/Pagination/Pagination.tsx +123 -0
  226. package/src/components/Pagination/USAGE.md +36 -0
  227. package/src/components/Pagination/index.ts +1 -0
  228. package/src/components/Panel/PANEL_IMPLEMENTATION_NOTES.md +133 -0
  229. package/src/components/Panel/Panel.module.css +231 -0
  230. package/src/components/Panel/Panel.stories.tsx +227 -0
  231. package/src/components/Panel/Panel.test.tsx +1 -0
  232. package/src/components/Panel/Panel.tsx +186 -0
  233. package/src/components/Panel/USAGE.md +46 -0
  234. package/src/components/Panel/index.ts +1 -0
  235. package/src/components/Popover/IMPLEMENTATION_NOTES.md +22 -0
  236. package/src/components/Popover/Popover.module.css +118 -0
  237. package/src/components/Popover/Popover.stories.tsx +133 -0
  238. package/src/components/Popover/Popover.test.tsx +1 -0
  239. package/src/components/Popover/Popover.tsx +267 -0
  240. package/src/components/Popover/USAGE.md +69 -0
  241. package/src/components/Popover/index.ts +1 -0
  242. package/src/components/Radio/RADIO_IMPLEMENTATION_NOTES.md +12 -0
  243. package/src/components/Radio/Radio.module.css +247 -0
  244. package/src/components/Radio/Radio.stories.tsx +93 -0
  245. package/src/components/Radio/Radio.test.tsx +1 -0
  246. package/src/components/Radio/Radio.tsx +223 -0
  247. package/src/components/Radio/RadioGroup.stories.tsx +117 -0
  248. package/src/components/Radio/RadioGroup.tsx +122 -0
  249. package/src/components/Radio/USAGE.md +36 -0
  250. package/src/components/Radio/index.ts +2 -0
  251. package/src/components/ReadOnlyField/ReadOnlyBooleanField.tsx +21 -0
  252. package/src/components/ReadOnlyField/ReadOnlyField.module.css +54 -0
  253. package/src/components/ReadOnlyField/ReadOnlyField.stories.tsx +163 -0
  254. package/src/components/ReadOnlyField/ReadOnlyField.test.tsx +1 -0
  255. package/src/components/ReadOnlyField/ReadOnlyField.tsx +108 -0
  256. package/src/components/ReadOnlyField/ReadOnlySwitchField.tsx +21 -0
  257. package/src/components/ReadOnlyField/ReadOnlyTextField.tsx +48 -0
  258. package/src/components/ReadOnlyField/USAGE.md +36 -0
  259. package/src/components/ReadOnlyField/WithReadOnlyWrapper.tsx +93 -0
  260. package/src/components/ReadOnlyField/index.ts +2 -0
  261. package/src/components/RecursicaThemeProvider/USAGE.md +60 -0
  262. package/src/components/SegmentedControl/IMPLEMENTATION_NOTES.md +14 -0
  263. package/src/components/SegmentedControl/SegmentedControl.module.css +201 -0
  264. package/src/components/SegmentedControl/SegmentedControl.stories.tsx +106 -0
  265. package/src/components/SegmentedControl/SegmentedControl.test.tsx +1 -0
  266. package/src/components/SegmentedControl/SegmentedControl.tsx +149 -0
  267. package/src/components/SegmentedControl/USAGE.md +49 -0
  268. package/src/components/SegmentedControl/index.ts +1 -0
  269. package/src/components/Slider/IMPLEMENTATION_NOTES.md +55 -0
  270. package/src/components/Slider/Slider.module.css +635 -0
  271. package/src/components/Slider/Slider.stories.tsx +282 -0
  272. package/src/components/Slider/Slider.test.tsx +1 -0
  273. package/src/components/Slider/Slider.tsx +435 -0
  274. package/src/components/Slider/USAGE.md +56 -0
  275. package/src/components/Slider/index.ts +1 -0
  276. package/src/components/Stack/Stack.stories.tsx +108 -0
  277. package/src/components/Stack/Stack.test.tsx +1 -0
  278. package/src/components/Stack/Stack.tsx +43 -0
  279. package/src/components/Stack/USAGE.md +41 -0
  280. package/src/components/Stack/index.ts +1 -0
  281. package/src/components/Stepper/IMPLEMENTATION_NOTES.md +120 -0
  282. package/src/components/Stepper/Stepper.module.css +474 -0
  283. package/src/components/Stepper/Stepper.stories.tsx +157 -0
  284. package/src/components/Stepper/Stepper.test.tsx +1 -0
  285. package/src/components/Stepper/Stepper.tsx +240 -0
  286. package/src/components/Stepper/USAGE.md +45 -0
  287. package/src/components/Stepper/index.ts +1 -0
  288. package/src/components/Switch/SWITCH_IMPLEMENTATION_NOTES.md +147 -0
  289. package/src/components/Switch/Switch.module.css +346 -0
  290. package/src/components/Switch/Switch.stories.tsx +114 -0
  291. package/src/components/Switch/Switch.test.tsx +1 -0
  292. package/src/components/Switch/Switch.tsx +294 -0
  293. package/src/components/Switch/SwitchGroup.stories.tsx +132 -0
  294. package/src/components/Switch/SwitchGroup.tsx +156 -0
  295. package/src/components/Switch/USAGE.md +36 -0
  296. package/src/components/Switch/index.ts +2 -0
  297. package/src/components/Table/TABLE_IMPLEMENTATION_NOTES.md +75 -0
  298. package/src/components/Table/Table.module.css +462 -0
  299. package/src/components/Table/Table.stories.tsx +154 -0
  300. package/src/components/Table/Table.test.tsx +1 -0
  301. package/src/components/Table/Table.tsx +250 -0
  302. package/src/components/Table/USAGE.md +90 -0
  303. package/src/components/Table/index.ts +1 -0
  304. package/src/components/Tabs/IMPLEMENTATION_NOTES.md +76 -0
  305. package/src/components/Tabs/Tabs.module.css +801 -0
  306. package/src/components/Tabs/Tabs.stories.tsx +174 -0
  307. package/src/components/Tabs/Tabs.test.tsx +1 -0
  308. package/src/components/Tabs/Tabs.tsx +103 -0
  309. package/src/components/Tabs/USAGE.md +61 -0
  310. package/src/components/Tabs/index.ts +1 -0
  311. package/src/components/Text/TEXT_IMPLEMENTATION_NOTES.md +10 -0
  312. package/src/components/Text/Text.stories.tsx +75 -0
  313. package/src/components/Text/Text.test.tsx +1 -0
  314. package/src/components/Text/Text.tsx +19 -0
  315. package/src/components/Text/USAGE.md +40 -0
  316. package/src/components/Text/index.ts +1 -0
  317. package/src/components/TextArea/TEXTAREA_IMPLEMENTATION_NOTES.md +42 -0
  318. package/src/components/TextArea/TextArea.module.css +203 -0
  319. package/src/components/TextArea/TextArea.stories.tsx +94 -0
  320. package/src/components/TextArea/TextArea.test.tsx +1 -0
  321. package/src/components/TextArea/TextArea.tsx +162 -0
  322. package/src/components/TextArea/USAGE.md +38 -0
  323. package/src/components/TextArea/index.ts +1 -0
  324. package/src/components/TextField/TextField.module.css +271 -0
  325. package/src/components/TextField/TextField.stories.tsx +162 -0
  326. package/src/components/TextField/TextField.test.tsx +1 -0
  327. package/src/components/TextField/TextField.tsx +182 -0
  328. package/src/components/TextField/USAGE.md +38 -0
  329. package/src/components/TextField/index.ts +1 -0
  330. package/src/components/TimePicker/TIMEPICKER_IMPLEMENTATION_NOTES.md +89 -0
  331. package/src/components/TimePicker/TimePicker.module.css +262 -0
  332. package/src/components/TimePicker/TimePicker.stories.tsx +155 -0
  333. package/src/components/TimePicker/TimePicker.test.tsx +1 -0
  334. package/src/components/TimePicker/TimePicker.tsx +277 -0
  335. package/src/components/TimePicker/USAGE.md +61 -0
  336. package/src/components/TimePicker/index.ts +1 -0
  337. package/src/components/Timeline/IMPLEMENTATION_NOTES.md +42 -0
  338. package/src/components/Timeline/Timeline.module.css +363 -0
  339. package/src/components/Timeline/Timeline.stories.tsx +128 -0
  340. package/src/components/Timeline/Timeline.test.tsx +1 -0
  341. package/src/components/Timeline/Timeline.tsx +90 -0
  342. package/src/components/Timeline/TimelineItem.tsx +95 -0
  343. package/src/components/Timeline/USAGE.md +41 -0
  344. package/src/components/Timeline/index.ts +2 -0
  345. package/src/components/Toast/TOAST_IMPLEMENTATION_NOTES.md +37 -0
  346. package/src/components/Toast/Toast.module.css +193 -0
  347. package/src/components/Toast/Toast.stories.tsx +67 -0
  348. package/src/components/Toast/Toast.test.tsx +1 -0
  349. package/src/components/Toast/Toast.tsx +121 -0
  350. package/src/components/Toast/USAGE.md +42 -0
  351. package/src/components/Toast/index.ts +1 -0
  352. package/src/components/Tooltip/Tooltip.module.css +83 -0
  353. package/src/components/Tooltip/Tooltip.stories.tsx +165 -0
  354. package/src/components/Tooltip/Tooltip.test.tsx +1 -0
  355. package/src/components/Tooltip/Tooltip.tsx +78 -0
  356. package/src/components/Tooltip/USAGE.md +40 -0
  357. package/src/components/Tooltip/index.ts +1 -0
  358. package/src/components/TransferList/TRANSFERLIST_IMPLEMENTATION_NOTES.md +140 -0
  359. package/src/components/TransferList/TransferList.module.css +174 -0
  360. package/src/components/TransferList/TransferList.stories.tsx +121 -0
  361. package/src/components/TransferList/TransferList.test.tsx +1 -0
  362. package/src/components/TransferList/TransferList.tsx +419 -0
  363. package/src/components/TransferList/USAGE.md +77 -0
  364. package/src/components/TransferList/index.ts +1 -0
  365. package/src/components/Tree/IMPLEMENTATION_NOTES.md +53 -0
  366. package/src/components/Tree/Tree.module.css +272 -0
  367. package/src/components/Tree/Tree.stories.tsx +104 -0
  368. package/src/components/Tree/Tree.test.tsx +1 -0
  369. package/src/components/Tree/Tree.tsx +298 -0
  370. package/src/components/Tree/USAGE.md +99 -0
  371. package/src/components/Tree/index.ts +1 -0
  372. package/src/components/Typography/TYPOGRAPHY_IMPLEMENTATION_NOTES.md +17 -0
  373. package/src/components/Typography/Typography.module.css +13 -0
  374. package/src/components/Typography/Typography.test.tsx +1 -0
  375. package/src/components/Typography/Typography.tsx +43 -0
  376. package/src/components/Typography/USAGE.md +40 -0
  377. package/src/components/Typography/index.ts +1 -0
  378. package/src/components/index.ts +50 -0
  379. package/src/env.d.ts +7 -0
  380. package/src/index.ts +194 -0
  381. package/src/types/index.ts +9 -0
  382. package/src/types/scss-modules.d.ts +9 -0
  383. package/src/utils/ColorSchemeWrapper.tsx +23 -0
  384. package/src/utils/RequireAccessibleLabel.ts +1 -0
  385. package/src/utils/copyToClipboard.ts +36 -0
  386. package/src/utils/filterStylingProps.test.ts +85 -0
  387. package/src/utils/filterStylingProps.ts +143 -0
  388. package/src/utils/index.ts +1 -0
  389. package/src/utils/renderRichOption.tsx +51 -0
package/CHANGELOG.md ADDED
@@ -0,0 +1,582 @@
1
+ # @recursica/adapter-mui-v7
2
+
3
+ ## 0.39.3
4
+
5
+ ### Patch Changes
6
+
7
+ - 13bc7b1: CheckboxGroup/RadioGroup: no longer apply the per-item max-width token to the group's whole label+field row — was squeezing the group's own label in side-by-side layout. Group row now sizes naturally, matching SwitchGroup.
8
+ - Updated dependencies [12eaece]
9
+ - @recursica/adapter-common@0.29.0
10
+
11
+ ## 0.39.2
12
+
13
+ ### Patch Changes
14
+
15
+ - 46b123a: Breadcrumb now marks its last child `aria-current="page"` and, if it looks interactive (has `href`/`onClick`), strips both and drops it from the tab order — best-effort, not a guarantee for custom Link components with their own internal navigation. Backed by a CSS reset (no color/underline/pointer-events) and the current item now picks up Link's font-family. New shared `markCurrentPageItem` util in adapter-common. adapter-mui-v7's story also gets parity with mantine-adapter's: the last crumb renders as plain text, not a `Link`.
16
+ - 39de7b2: adapter-mui-v7: Dropdown now renders its `placeholder` prop and gains a matching `.placeholder` style; Autocomplete's open menu now has the same input-to-menu gap as mantine; TimePicker's leading icon is no longer offset too far right.
17
+ mantine-adapter: DatePicker's read-only value is now formatted via `valueFormat` instead of a raw `Date.toString()`; TimePicker's leading icon no longer overlaps the field text.
18
+ - 46b123a: Link now replaces the browser's native focus outline with the recursica focus ring (`--recursica_brand_states_focus_*`), matching Button/every other interactive component instead of falling back to the browser default. Fixes the same incorrect ring on Breadcrumb, since its items are typically Links.
19
+ - 39de7b2: Fix Accordion chevron not rotating on expand, Modal centering instead of anchoring near top, and Toast showing a default icon it shouldn't. Add missing Accordion LayerOne story and exclude the intentional Grid span/size naming divergence from story parity. Fix NumberInput's default MUI focus ring/non-numeric input/icon spacing-color/height/border-radius, and TextArea's oversized autosize height.
20
+ - 39de7b2: adapter-mui-v7: Stepper's connector gap, description content, and button spacing now match mantine; Stepper vertical spacing now matches mantine; Timeline's connector now reaches the next bullet; Tree's chevron-to-label gap now uses the right token; Pagination is now fully wired up (circle size/colors/outline, chevron colors/hover, ripple removed, ellipsis centering, text labels).
21
+ mantine-adapter: Stepper's completed/current label and description colors now apply (were silently falling back to Mantine's own default gray/black).
22
+ - 39de7b2: adapter-mui-v7: Switch's read-only label and static-variations spacing now match mantine; Label's right-alignment and optional-text parentheses now work; Button's loading state shows only a centered loader (no label); Text's static-variations spacing matches mantine; Tabs' `inverted` variant now actually renders the tab list below the content.
23
+ mantine-adapter: Button's loader color now matches its label text color; Tabs' `inverted` variant now actually renders the tab list below the content; Grid gains a `ResponsiveSizes` story mirroring adapter-mui-v7's.
24
+ - Updated dependencies [46b123a]
25
+ - @recursica/adapter-common@0.28.2
26
+
27
+ ## 0.39.1
28
+
29
+ ### Patch Changes
30
+
31
+ - a104e8a: Removed `searchable` from `Dropdown`'s shared contract — not a supported feature (that's `AutoComplete`'s job). mantine-adapter now strips it at runtime like its other unsupported native props; adapter-mui-v7 never wired it up.
32
+ - a104e8a: Fixed `Panel`'s `wrapHeaderText` default (was `false`, contract documents `true`) in both adapters.
33
+ - Updated dependencies [a104e8a]
34
+ - Updated dependencies [a104e8a]
35
+ - @recursica/adapter-common@0.28.1
36
+
37
+ ## 0.39.0
38
+
39
+ ### Minor Changes
40
+
41
+ - cb3796a: Added an `animate` prop to `Loader` (default `true`) — set `false` to freeze its CSS animation for a deterministic render, e.g. a visual-regression snapshot. The `Static*` Loader stories now use it, and the animated `Default`/`LayerTwoOval` stories are excluded from adapter-tester's visual regression.
42
+
43
+ ### Patch Changes
44
+
45
+ - cb3796a: Fixed `Table` currency columns so header and footer cells right-align to match value cells. `Table.Th`/`Table.Cell` header context now supports `variant="currency"`.
46
+ - cb3796a: Added `leftSection` support to `TimePicker` for an optional leading icon, matching `TextField`'s convention.
47
+ - Updated dependencies [cb3796a]
48
+ - Updated dependencies [cb3796a]
49
+ - Updated dependencies [cb3796a]
50
+ - @recursica/adapter-common@0.28.0
51
+
52
+ ## 0.38.0
53
+
54
+ ### Minor Changes
55
+
56
+ - c31d5ae: Added an `animate` prop to `Loader` (default `true`) — set `false` to freeze its CSS animation for a deterministic render, e.g. a visual-regression snapshot. The `Static*` Loader stories now use it, and the animated `Default`/`LayerTwoOval` stories are excluded from adapter-tester's visual regression.
57
+
58
+ ### Patch Changes
59
+
60
+ - c31d5ae: Fixed `Table` currency columns so header and footer cells right-align to match value cells. `Table.Th`/`Table.Cell` header context now supports `variant="currency"`.
61
+ - c31d5ae: Added `leftSection` support to `TimePicker` for an optional leading icon, matching `TextField`'s convention.
62
+ - Updated dependencies [c31d5ae]
63
+ - Updated dependencies [c31d5ae]
64
+ - Updated dependencies [c31d5ae]
65
+ - @recursica/adapter-common@0.27.0
66
+
67
+ ## 0.37.0
68
+
69
+ ### Minor Changes
70
+
71
+ - 786d870: Version bumped
72
+
73
+ ## 0.36.0
74
+
75
+ ### Minor Changes
76
+
77
+ - f618b38: Renamed the `Title` component to `Heading` (and `RecursicaTitleProps` to `RecursicaHeadingProps`) to match designers' semantic vocabulary. `Text` is unchanged. Breaking: update imports from `Title`/`TitleProps` to `Heading`/`HeadingProps`.
78
+
79
+ ### Patch Changes
80
+
81
+ - Updated dependencies [f618b38]
82
+ - @recursica/adapter-common@0.26.0
83
+
84
+ ## 0.35.0
85
+
86
+ ### Minor Changes
87
+
88
+ - ae939ef: Latest adapters and tester
89
+
90
+ ### Patch Changes
91
+
92
+ - ae939ef: Fixed descender clipping (e.g. the "g" in a long label) on single-line ellipsis truncation across Accordion, AutoComplete/Autocomplete, Button, Dropdown, Modal, and Panel — switched `overflow: hidden` to `overflow: clip; overflow-clip-margin: 0.35em`.
93
+ - ae939ef: Added `text-wrap: balance` to `Text` and `Title` so wrapped multi-line text (headings and paragraphs) gets more even line lengths.
94
+
95
+ ## 0.34.4
96
+
97
+ ### Patch Changes
98
+
99
+ - d48149c: Chip's selected checkmark now overlays the leading icon instead of sitting to its left, matching MUI's native behavior (adapter-mui-v7 already did this; mantine-adapter now matches).
100
+
101
+ ## 0.34.3
102
+
103
+ ### Patch Changes
104
+
105
+ - d0e6275: Fixed stories to remove layer
106
+ - 662c591: Layout components (Flex, Stack, Group, Grid) no longer share a formal Recursica prop contract from `adapter-common` — removed `RecursicaFlexProps`/`RecursicaStackProps`/`RecursicaGroupProps`/`RecursicaGridProps`/`RecursicaGridColProps`. Each adapter's layout components now simply pass through the underlying kit's own props, plus `rec-*` spacing token support.
107
+
108
+ - mantine-adapter: Flex/Stack/Group unchanged at the API level (Mantine's own props already matched). **Grid's `gap` prop reverts to Mantine's native `gutter`**; `Grid.Col`'s responsive breakpoint objects use Mantine's own `xs` (not the invented `base`) as the smallest key.
109
+ - adapter-mui-v7: Flex/Group keep their Mantine-shaped props (MUI has no native equivalent). **Stack now passes through MUI's own `spacing`/`alignItems`/`justifyContent` directly** (fixes a bug where passing native `alignItems`/`justifyContent` was silently clobbered). **Grid is rebuilt on MUI's own vocabulary** (`spacing`, `size`, `offset`, `order`, `xs`/`sm`/`md`/`lg`/`xl`) instead of mirroring Mantine's `gap`/`span`/`base`; container-level `grow` is dropped in favor of MUI's native per-column `size="grow"`.
110
+
111
+ - 4fdd1af: Wired vitest into `npm test` (unit tests for utils). Added a Button/kit CSS-isolation DOM test, run separately via `npm run test:dom` (not part of `npm test`/CI). Added empty test scaffolds per component.
112
+ - Updated dependencies [662c591]
113
+ - @recursica/adapter-common@0.25.1
114
+
115
+ ## 0.34.2
116
+
117
+ ### Patch Changes
118
+
119
+ - df9d189: Fixed Button ignoring a constraining parent width — it now shrinks and truncates the label with an ellipsis instead of overflowing.
120
+
121
+ ## 0.34.1
122
+
123
+ ### Patch Changes
124
+
125
+ - f34665a: Modal close button now matches the Button component's styling (radius, padding, color tokens, hover/focus states, icon sizing).
126
+ - f34665a: Modal title now truncates with an ellipsis instead of wrapping when it's too long, and mantine-adapter's Modal width scales with content again instead of being pinned at 440px. Added an open-by-default `LongTitle` story to both adapters.
127
+
128
+ ## 0.34.0
129
+
130
+ ### Minor Changes
131
+
132
+ - 2369301: Add optional `maxHeight` prop to Menu, overriding the token-driven dropdown max-height with an explicit pixel value.
133
+
134
+ ### Patch Changes
135
+
136
+ - Updated dependencies [2369301]
137
+ - @recursica/adapter-common@0.25.0
138
+
139
+ ## 0.33.0
140
+
141
+ ### Minor Changes
142
+
143
+ - bc70636: Add optional `leadingIcon`/`supportingText` fields to Autocomplete/Dropdown `data` items, rendered inside the option row by default. Add a `wrapItemText` prop (default `false`) to wrap label/supportingText instead of truncating with an ellipsis.
144
+
145
+ ### Patch Changes
146
+
147
+ - bc70636: Fix Dropdown/Autocomplete selected-option background highlight. mantine-adapter was keying off `data-combobox-selected` (Mantine's transient keyboard-nav highlight) instead of `data-combobox-active` (the real "matches current value" attribute), so the highlight only showed while arrow-key navigating. adapter-mui-v7's Autocomplete had no selected-state rule at all; now keys off MUI's own `aria-selected`.
148
+ - Updated dependencies [bc70636]
149
+ - @recursica/adapter-common@0.24.0
150
+
151
+ ## 0.32.1
152
+
153
+ ### Patch Changes
154
+
155
+ - 5369e5b: Hide the FileInput chip row's native horizontal scrollbar while keeping it scrollable.
156
+
157
+ ## 0.32.0
158
+
159
+ ### Minor Changes
160
+
161
+ - b7f76d8: Slider: added two-thumb range mode via a `[number, number]` value/onChange, fixed `trailingIcon` rendering after the numeric input instead of before it, and fixed marks (mantine) and mark labels (mantine, mui) rendering off Mantine/MUI internal defaults instead of recursica tokens, leaving marks vertically off-center and label spacing too tight.
162
+
163
+ ### Patch Changes
164
+
165
+ - d8a0da1: Fix Tree's chevron button stealing DOM focus on click while `aria-hidden`, which browsers flag as an accessibility violation.
166
+ - Updated dependencies [b7f76d8]
167
+ - @recursica/adapter-common@0.23.0
168
+
169
+ ## 0.31.0
170
+
171
+ ### Minor Changes
172
+
173
+ - e4759d1: Slider: fixed the raw numeric value duplicating next to the track when `tooltipLabel` is a formatter (now reuses the same formatter), added `minLabel`/`maxLabel` overrides for the track's end labels, and added a `trailingIcon` prop alongside the existing leading `icon`.
174
+
175
+ ### Patch Changes
176
+
177
+ - Updated dependencies [e4759d1]
178
+ - @recursica/adapter-common@0.22.0
179
+
180
+ ## 0.30.0
181
+
182
+ ### Minor Changes
183
+
184
+ - 0bb2dab: **Breaking:** `Chip`'s `onRemove` prop is renamed to `onDelete` in both adapters, matching MUI's own `onDelete` naming and removing the previous internal aliasing between the two. Update any `Chip` usage passing `onRemove` to `onDelete` — the behavior (rendering the remove/X icon and firing on click or Enter/Space) is unchanged. `FileInput` and `FileUpload`'s own public props are unaffected; they only consume `Chip` internally.
185
+ - 0bb2dab: Updated props with breaking changes
186
+
187
+ ### Patch Changes
188
+
189
+ - Updated dependencies [0bb2dab]
190
+ - Updated dependencies [0bb2dab]
191
+ - @recursica/adapter-common@0.21.0
192
+
193
+ ## 0.29.0
194
+
195
+ ### Minor Changes
196
+
197
+ - bcac5c7: Updated to latest css and fixed link
198
+ - 40832c5: Updated Table
199
+
200
+ ### Patch Changes
201
+
202
+ - 8376651: Pin internal `@recursica/*` dependencies to real semver ranges instead of `*`. Published packages previously depended on internal packages (e.g. `@recursica/adapter-common`, `@recursica/official-release`, `@recursica/schemas`, `@recursica/recursica-postcss-vars`) with an unconstrained `*` version range, meaning a fresh install could pull in any future major version, including breaking changes. These now use `^<current-version>` ranges, which Changesets will keep in sync automatically via `updateInternalDependencies: "patch"` on future releases. No effect on local monorepo development — npm workspaces links sibling packages by name regardless of the declared range.
203
+ - Updated dependencies [bcac5c7]
204
+ - Updated dependencies [bcac5c7]
205
+ - Updated dependencies [40832c5]
206
+ - @recursica/official-release@2.8.0
207
+ - @recursica/adapter-common@0.20.0
208
+
209
+ ## 0.28.0
210
+
211
+ ### Minor Changes
212
+
213
+ - adab23c: Revised Dropwdown, Menu, Breadcrumb
214
+
215
+ ## 0.27.0
216
+
217
+ ### Minor Changes
218
+
219
+ - d171a96: Update revision to latest
220
+
221
+ ### Patch Changes
222
+
223
+ - Updated dependencies [d171a96]
224
+ - @recursica/adapter-common@0.19.0
225
+
226
+ ## 0.26.0
227
+
228
+ ### Minor Changes
229
+
230
+ - 015c809: Implemented DatePicker (was a non-functional placeholder stub). Wraps MUI X's `DatePicker` with the same token mapping as the mantine-adapter's DatePicker: tokenized field border/background/text, a default token-styled calendar popover (hover, today, disabled/outside days, selected-day fill, header nav/month-label as Recursica text buttons), default `MM/DD/YY` format, and a default calendar icon that opens the picker (overridable via `slots.openPickerIcon`). `value`/`defaultValue`/`onChange` use plain `Date`, matching the mantine-adapter's convention.
231
+
232
+ ### Patch Changes
233
+
234
+ - 56e0d63: Remove all `recursica-ignore` exemption comments so the token analyzer report reflects true unused/unimplemented Figma variables. No runtime behavior change.
235
+
236
+ ## 0.25.0
237
+
238
+ ### Minor Changes
239
+
240
+ - e0f5643: Implement `TransferList` (dual listbox) in both adapters, replacing the "coming soon" stub. Composes `FormControlWrapper`, `TextField`, `Checkbox`/`CheckboxGroup`, `Badge`, and `Button` — supports controlled/uncontrolled `data`, per-item grouping, per-pane search, and `stacked`/`side-by-side` form layout.
241
+ - 2fb7069: Add `Popover` component (click-controlled dropdown with beak/arrow, composable `Popover.Target`/`Popover.Dropdown`), bringing adapter-mui-v7 in parity with mantine-adapter's Popover.
242
+ - 2fb7069: Fix `Popover`: gap now matches Mantine (Mui's built-in per-placement tooltip margin was stacking on top of our offset), and the beak now has a visible border matching the dropdown body. Fix `Button`: line-height now applies via `labelText` per size (matching Mantine) instead of being dropped from the small-size token.
243
+ - 2fb7069: Fix `SegmentedControl` height (MUI's default `ToggleButton` box model was stacking on top of the token-driven label height) and selected-state styling (`Mui-selected` wasn't wrapped in `:global()`, so CSS Modules silently dropped the selector).
244
+ Also default to the first item selected when uncontrolled, matching mantine.
245
+ - 2fb7069: Fix `SegmentedControl` labels rendering all-caps in MUI (its `ToggleButton` uppercase default was leaking through an invalid text-transform token). Labels now match Mantine's original casing.
246
+ - 2fb7069: Fix `Slider`'s `Disabled` story (was passing `disabled: false` in both adapters). In `adapter-mui-v7`, also fix the disabled track showing red instead of grey, make the thumb focus ring keyboard-only (no glow on click/drag) to match Mantine, render assistive text as a `<span>`, and align mark label color/position with Mantine (which now applies its own mark label color token too).
247
+ - 2fb7069: Fix `Stepper`: use MUI's `alternativeLabel` so horizontal labels center under the icon and the connector centers on it, render the completed check mark as our own token-colored glyph instead of MUI's default blue `CheckCircle` SVG, and draw the vertical connecting line as a stretch-aware rail so it reaches the next step's circle regardless of description height.
248
+ - 2fb7069: Fix `Tabs` showing a MUI click ripple that Mantine's tabs don't have. `Tab` now passes `disableRipple`.
249
+ - 2fb7069: Fix `Tabs`: `outline` variant's selected tab now shows a connected border box (matching Mantine) with no stray bottom border line. `default` variant no longer shifts sibling tabs when selecting one (a stray ripple element was being pulled into flex layout). `vertical` orientation no longer stretches the tablist to the full row width, and its divider now runs the full height with the selection indicator aligned on it instead of offset to the side.
250
+ - 2fb7069: Fix `TextArea`: error state border now uses the recursica error color (was never triggering in either adapter). MUI disabled background/border, focus ring color, and default height now match Mantine instead of MUI's own defaults.
251
+ - 2fb7069: Fix `Timeline`: rebuild `Timeline.Item` on Mui's `TimelineSeparator`/`TimelineDot`/`TimelineConnector`/`TimelineContent` primitives so the bullet marker, connecting line, active state, and bullet variants render (and left-align) like the Mantine adapter instead of not rendering at all.
252
+
253
+ ### Patch Changes
254
+
255
+ - 1616144: Fix `FileInput`'s clear-all button: pressing Enter or Space while it was focused opened the native file picker instead of clearing the selection (a regression from switching the control to the shared `Button` component, which dropped the keydown handler the previous bespoke element had).
256
+ - 3ff5821: Fix `TransferList` checkboxes not toggling/showing checked state in either adapter (grouping-for-layout was silently overriding item selection). Add `readOnly` support and a `ReadOnly` story.
257
+ - Updated dependencies [e0f5643]
258
+ - Updated dependencies [1616144]
259
+ - Updated dependencies [3ff5821]
260
+ - @recursica/adapter-common@0.18.0
261
+
262
+ ## 0.24.0
263
+
264
+ ### Minor Changes
265
+
266
+ - 3d75770: Implement the `FileInput` component (single-line, `TextField`-shaped file picker with a native drag-and-drop drop target, single- and multiple-file modes, and a trailing clear icon) in `mantine-adapter` and `adapter-mui-v7`, replacing the "coming soon" stub, with a shared `RecursicaFileInputProps` contract in `adapter-common` reusing `FileUpload`'s `RecursicaFileUploadItem`/validation interface (`accept`/`maxSize`/`maxFiles`/`readOnly`). Also adds `FileInput` to `RECURSICA_COMPONENTS` and moves `adapter-mui-v7`'s export of it into the standard `wrapComponent` set (it was previously exported unwrapped, alongside the polymorphic layout primitives, as a leftover from its stub form).
267
+
268
+ ### Patch Changes
269
+
270
+ - b86ca2b: `FileInput` now renders every selected file as a removable `Chip` in a horizontally scrollable row, in both single- and multiple-file mode (previously single-file mode showed plain filename text with no remove affordance). The trailing clear-all control is now a real shared `Button` (icon-only, "text" variant) instead of a bespoke `<span role="button">`.
271
+ - Updated dependencies [3d75770]
272
+ - Updated dependencies [b86ca2b]
273
+ - @recursica/adapter-common@0.17.0
274
+
275
+ ## 0.23.0
276
+
277
+ ### Minor Changes
278
+
279
+ - 1c317a3: Implement the `FileUpload` component (drag-and-drop dropzone, browse-button fallback, removable file-chip list) in `mantine-adapter` and `adapter-mui-v7`, replacing the "coming soon" stub, with a shared `RecursicaFileUploadProps`/`RecursicaFileUploadItem` contract in `adapter-common`. Also fixes `adapter-mui-v7`'s `Chip` component's public type to allow `children` (a pre-existing type-only gap; the component already accepted them at runtime).
280
+
281
+ ### Patch Changes
282
+
283
+ - 1c317a3: `FileUpload` now surfaces a built-in error message ("File type not accepted", overridable via the new `invalidFileTypeMessage` prop) when a dropped/picked file doesn't match `accept`, shown through the standard assistive-text error slot instead of requiring the integrator to wire up `onFilesRejected` themselves. Also reverts `FileUpload`'s assistive/error rendering back to `FormControlWrapper` (file list renders above the assistive/error text again, matching every other form control).
284
+
285
+ Fixes `Chip` clipping the descender (e.g. the "g" in "image.png") off long labels — `overflow: hidden` was clipping vertically as well as horizontally, cutting off glyph ink whenever the line-height token was tighter than the font's natural ascent+descent.
286
+
287
+ - 1c317a3: `FileUpload` now supports a `maxFiles` prop (with an overridable `maxFilesMessage`, defaulting to "Maximum of {maxFiles} files allowed") that rejects files past a total-count cap the same way `accept`/`maxSize` already do.
288
+
289
+ Fixes `Chip` rendered without a real handler (`onRemove`/`onClick`/`onChange`) — such as `FileUpload`'s `readOnly` file list — still showing a pointer cursor on hover and picking up a phantom, un-styled keyboard Tab stop on its truncated label text. Both were general `Chip` bugs, not specific to `FileUpload`.
290
+
291
+ - 1c317a3: Fix `Button` showing the native browser focus outline instead of the recursica focus ring, and fix `Chip` losing its remove (X) icon behind an overflowing long label instead of truncating with an ellipsis. Adds optional `removeTabIndex`/`removeIconRef` props to `Chip` for building keyboard-navigable chip groups. Also fixes the remove icon's own focus ring rendering in the chip's neutral border color instead of the recursica focus-ring color, making it barely visible.
292
+ - Updated dependencies [1c317a3]
293
+ - Updated dependencies [1c317a3]
294
+ - Updated dependencies [1c317a3]
295
+ - Updated dependencies [1c317a3]
296
+ - @recursica/adapter-common@0.16.0
297
+
298
+ ## 0.22.0
299
+
300
+ ### Minor Changes
301
+
302
+ - 106bc34: Accordion: closed silent prop-contract conflicts where native `expanded`/`onChange`/`expandIcon`/`icon` could override Recursica's own computed state, made `variant` a real predefined union instead of a bare string, and formally supported a per-item `disabled` prop in both adapters.
303
+ Also documented `children` across all Accordion sub-components in `RecursicaAccordionProps.ts`, including a new `RecursicaAccordionPanelProps` interface for the Panel.
304
+ - 106bc34: AssistiveElement: `assistiveVariant="error"` now defaults `role="alert"` in both adapters so
305
+ error text is announced by assistive tech as it appears or changes (an explicit `role` still
306
+ wins). Also (MUI only) closed a prop-contract conflict where native `error`/`component` could
307
+ silently override Recursica's own computed values, added the missing `RecursicaOverStyled`
308
+ wrapper, and hardened a CSS specificity tie against MUI's own `.Mui-error` color. Documented
309
+ `children` in `RecursicaAssistiveElementProps.ts` and added implementation notes to both adapters.
310
+
311
+ ### Patch Changes
312
+
313
+ - 106bc34: Autocomplete (MUI): fixed four bugs, all traced to `renderInput` discarding MUI's `InputProps` (dropping the `classes.inputRoot` className, the anchor ref, and adornment slots). Restored `InputProps` so the design-system border/padding actually applies instead of MUI's default underline chrome; wired `leftSection`/`rightSection` into `startAdornment`/`endAdornment` (previously destructured but never rendered, so icons never showed); and stopped coercing `error` to a boolean before the wrapper, which was discarding the error message string (ErrorState story showed no assistive text).
314
+ - 106bc34: Avatar (MUI): fixed `variant` being fed into MUI's native shape prop instead of a color treatment, making it a silent no-op. Also documented `children` in the shared prop types and added missing adapter-mui-v7 implementation notes.
315
+ - 106bc34: Checkbox (MUI): fixed the checkmark never appearing on click — `checked` was always
316
+ forced onto MUI's native input even for plain uncontrolled usage (no `checked`/only
317
+ `defaultChecked`), pinning it to a value that never updates after the initial render.
318
+ Now only forced when grouped (CheckboxGroup owns state) or the caller explicitly passes
319
+ `checked`, matching the existing `Switch` pattern. Also fixed the label rendering
320
+ vertically offset from the checkbox (`.labelWrapper` needed `display: flex` to blockify
321
+ the native inline `<label>`, mirroring Mantine's own wrapper) and the checkmark icon
322
+ rendering off-center inside the box in both standalone Checkbox and CheckboxGroup
323
+ (`.input` now centers its icon child directly).
324
+ - 106bc34: Disabled Checkbox/Switch's MUI-default click ripple (not present in Mantine) and made their description/error text mutually exclusive (error wins), matching the same fixes just made to Radio.
325
+ - 106bc34: Chip (MUI): fixed three visual bugs vs `mantine-adapter` — extra right padding on short-text chips (duplicate `min-width`/`max-width` applied on both `.root` and `.label`, now only on `.root`), delete/leading icon color and spacing leaking MUI's own default styles (fixed via CSS specificity match on `.leadingIcon`/`.removeIconWrapper`), and a missing icon-text gap on the leading icon (accidental blanket `margin: 0` collapsed it — restored `margin-right` for the gap, matching the selected-state check icon).
326
+ - 106bc34: FormControlWrapper (MUI): fixed ARIA wiring to match the Mantine adapter — a self-generated
327
+ `id` fallback (via `useId`) now fires by default instead of only when a caller supplies their
328
+ own `id`, and help/error text each get their own id (`aria-describedby`/`aria-errormessage`)
329
+ instead of sharing one. Neither attribute is set if the child already has its own explicit
330
+ value.
331
+ - 106bc34: Label (MUI): fixed focused descendant controls (e.g. a grouped Switch/Checkbox) bleeding MUI's default blue into the label text, mirroring the existing `.Mui-error` override with a matching `.Mui-focused` one.
332
+ - 106bc34: Label (MUI): fixed optional text rendering inline next to the label instead of on its own line — `innerLayout` now wraps and `optionalText` is forced onto a full-width row, matching `mantine-adapter`.
333
+ - 106bc34: Audited every component for the "spread after computed props" ordering bug (caller props silently overriding internal className/classes/icon/sx/onChange) and reordered spread-first in ~25 components. See COMPONENT_DEV_GUIDE.md §3.2 (adapter-common) for the rule.
334
+ - 106bc34: Removed leftover literal Mantine references from adapter-mui-v7 CSS/types (dead `:global(.mantine-*)` selectors, unused classes wiring, a stray `@mantine/core` type augmentation) and swapped a hardcoded Mantine red for the real error-text token in Radio/Checkbox/Switch.
335
+ - 106bc34: Radio/Checkbox/Switch description and error text now render through the shared `AssistiveElement` component instead of locally styled divs, removing the last hardcoded hex values (Mantine's default dimmed gray) from adapter-mui-v7 CSS.
336
+ - 106bc34: Fixed Radio rendering no visible circle (only the label) — `classes` was being read as `classNames` with Mantine-shaped slot names MUI doesn't support, so the circle's styling was silently dropped. Also fixed the label rendering vertically offset from the circle, disabled MUI's default click ripple, made description/error mutually exclusive (error wins), and reordered the props spread so it can no longer silently override the render-critical props placed after it.
337
+ - 106bc34: Fixed RadioGroup selection not updating in adapter-mui-v7 — its onChange was typed and wired as MUI's native `(event, value)`, but Mantine's RadioGroup (the cross-adapter source of truth) only ever calls back with `(value)`. Normalized the shared contract and adapter-mui-v7's wiring to single-argument.
338
+ - 106bc34: Switch: attached `SwitchGroup` as the `Switch.Group` compound export (it existed standalone but was never attached), and tightened `RecursicaSwitchGroupProps` value types from `unknown[]` to `string[]`.
339
+ - 106bc34: Switch (MUI): `SwitchGroup` now actually controls its children via a `SwitchGroupContext` (same pattern as `Checkbox`/`CheckboxGroup`) — previously `value`/`defaultValue`/`onChange` were destructured and discarded, so grouped switches never checked or updated.
340
+ - 106bc34: SwitchGroup: fixed `side-by-side` layout always rendering as if stacked — the group was capped to the switch-item label's own 200px max-width, narrower than the mandatory 224px label column, guaranteeing a wrap.
341
+ - 106bc34: Switch (MUI): fixed track/thumb geometry, checked-state color and opacity, thumb icon, disabled-state opacity, the focus ring target/color, and a `classes`/`classNames` prop bug — bringing it to visual parity with `mantine-adapter`.
342
+ - 106bc34: Tabs (MUI): fixed missing `value` on `Tabs` (never read `TabContext`, so no tab was ever selected), the panel rendering beside instead of below the tab list, and dead `.Mui-selected`/`.panel` CSS selectors.
343
+ - Updated dependencies [106bc34]
344
+ - Updated dependencies [106bc34]
345
+ - Updated dependencies [106bc34]
346
+ - Updated dependencies [106bc34]
347
+ - Updated dependencies [106bc34]
348
+ - @recursica/adapter-common@0.15.0
349
+
350
+ ## 0.21.1
351
+
352
+ ### Patch Changes
353
+
354
+ - 778151b: Bundle `@recursica/adapter-common`'s types into each adapter's published `.d.ts` (via `vite-plugin-dts`'s `rollupTypes` + `bundledPackages`). Previously the generated declaration files re-exported and referenced `@recursica/adapter-common` by bare package specifier, which meant consumers' TypeScript needed `@recursica/adapter-common` resolvable even though the runtime JS and CSS were already fully self-contained. No public API changes — type names and shapes are unchanged, they're just inlined now instead of imported from the dependency.
355
+
356
+ ## 0.21.0
357
+
358
+ ### Minor Changes
359
+
360
+ - 8322c0a: Updated Tree component
361
+
362
+ ### Patch Changes
363
+
364
+ - Updated dependencies [8322c0a]
365
+ - @recursica/adapter-common@0.14.0
366
+
367
+ ## 0.20.0
368
+
369
+ ### Minor Changes
370
+
371
+ - a4a45ff: Implement `TimePicker` (previously a stub) in both adapters, using `@mantine/dates`'s own `TimePicker` and `@mui/x-date-pickers`'s `TimePicker` respectively. Defaults to 12-hour format with a dedicated AM/PM selector (Recursica-specific); pass the new `hideAmPm` prop for a plain 24-hour input.
372
+
373
+ ### Patch Changes
374
+
375
+ - Updated dependencies [a4a45ff]
376
+ - @recursica/adapter-common@0.13.1
377
+
378
+ ## 0.19.1
379
+
380
+ ### Patch Changes
381
+
382
+ - 5c10166: Split shared contributor docs (`COMPONENT_DEV_GUIDE.md`, `COMPONENT_STORYBOOK_GUIDE.md`) into a canonical version in `adapter-common` plus thin per-adapter deltas, and publish `docs/PHILOSOPHY.md` to npm.
383
+
384
+ ## 0.19.0
385
+
386
+ ### Minor Changes
387
+
388
+ - 6e99afc: Versioned all for refresh
389
+ - dc583f5: Add the `Tree` component (mantine-adapter wraps `@mantine/core`'s `Tree`; adapter-mui-v7 wraps the new `@mui/x-tree-view` peer dependency). Adds shared `RecursicaTreeProps`/`RecursicaTreeNode` to adapter-common.
390
+
391
+ ### Patch Changes
392
+
393
+ - c8b21dd: Fix broken/renamed CSS token references and wire up previously-unused tokens across ~30 components, using `@recursica/mantine-adapter` as the reference.
394
+ - Updated dependencies [560874f]
395
+ - Updated dependencies [6e99afc]
396
+ - Updated dependencies [560874f]
397
+ - Updated dependencies [dc583f5]
398
+ - @recursica/official-release@2.7.0
399
+ - @recursica/adapter-common@0.13.0
400
+
401
+ ## 0.18.1
402
+
403
+ ### Patch Changes
404
+
405
+ - 70ad4df: `RecursicaThemeProvider` now automatically wraps its children in a base `<Layer layer={0}>` by default (new `initLayer0` prop, defaults to `true`), so page-level surface/border/elevation CSS variables resolve out of the box instead of requiring an undocumented manual `<Layer layer={0}>` wrapper. Opt out with `initLayer0={false}` to place the base layer yourself. Also documented `Layer` and `RecursicaThemeProvider` (previously referenced by nearly every other component's USAGE.md but undocumented themselves) with dedicated USAGE.md pages and llms.txt entries in both adapters, and updated the shared Storybook theme decorator to opt out of the new default (each adapter's preview already places its own configurable per-story Layer).
406
+ - Updated dependencies [70ad4df]
407
+ - @recursica/adapter-common@0.12.0
408
+
409
+ ## 0.18.0
410
+
411
+ ### Minor Changes
412
+
413
+ - c49adb9: Added a Grid component (Grid, Grid.Col) to both the mantine-adapter and adapter-mui-v7, sharing RecursicaGridProps/RecursicaGridColProps from adapter-common so both adapters expose the exact same prop API. mantine-adapter wraps Mantine's native Grid/Grid.Col directly; adapter-mui-v7 hand-composes the same API from MUI's single merged Grid component, since MUI has no separate container/item split.
414
+
415
+ ### Patch Changes
416
+
417
+ - Updated dependencies [c49adb9]
418
+ - @recursica/adapter-common@0.11.0
419
+
420
+ ## 0.17.0
421
+
422
+ ### Minor Changes
423
+
424
+ - f52662b: Updated docs and layout. Added Table
425
+
426
+ ## 0.16.0
427
+
428
+ ### Minor Changes
429
+
430
+ - db7701f: Updated layout of docs and mcp
431
+
432
+ ## 0.15.0
433
+
434
+ ### Minor Changes
435
+
436
+ - e0f2fc5: Update to latest official version
437
+
438
+ ### Patch Changes
439
+
440
+ - Updated dependencies [e0f2fc5]
441
+ - @recursica/official-release@2.6.0
442
+
443
+ ## 0.14.0
444
+
445
+ ### Minor Changes
446
+
447
+ - 584208e: Updated official release
448
+
449
+ ## 0.13.0
450
+
451
+ ### Minor Changes
452
+
453
+ - c7051d2: Fixed official release and rev'd all package
454
+
455
+ ### Patch Changes
456
+
457
+ - Updated dependencies [c7051d2]
458
+ - @recursica/adapter-common@0.10.0
459
+ - @recursica/official-release@2.3.0
460
+
461
+ ## 0.12.0
462
+
463
+ ### Minor Changes
464
+
465
+ - f4036cf: Updated official release and added Tree component
466
+
467
+ ### Patch Changes
468
+
469
+ - f45006a: Fixed linting and typescript errors
470
+ - Updated dependencies [f4036cf]
471
+ - Updated dependencies [f4036cf]
472
+ - Updated dependencies [f45006a]
473
+ - @recursica/official-release@2.2.0
474
+ - @recursica/adapter-common@0.9.1
475
+
476
+ ## 0.11.0
477
+
478
+ ### Minor Changes
479
+
480
+ - 8a1ecc5: Updated overStyled and fixed exports
481
+
482
+ ### Patch Changes
483
+
484
+ - Updated dependencies [8a1ecc5]
485
+ - @recursica/adapter-common@0.9.0
486
+
487
+ ## 0.10.0
488
+
489
+ ### Minor Changes
490
+
491
+ - 2f237f7: Revised component props with integration issues
492
+
493
+ ### Patch Changes
494
+
495
+ - Updated dependencies [2f237f7]
496
+ - @recursica/adapter-common@0.8.0
497
+
498
+ ## 0.9.1
499
+
500
+ ### Patch Changes
501
+
502
+ - 8151cb1: Fixed export of adapter-common from adapters
503
+
504
+ ## 0.9.0
505
+
506
+ ### Minor Changes
507
+
508
+ - ccf7d19: Updated to cause a new version release
509
+
510
+ ### Patch Changes
511
+
512
+ - Updated dependencies [ccf7d19]
513
+ - @recursica/official-release@0.3.0
514
+
515
+ ## 0.8.0
516
+
517
+ ### Minor Changes
518
+
519
+ - 4329756: Added official release and update mcp
520
+
521
+ ### Patch Changes
522
+
523
+ - 8897f92: Updated agent instructions for MCP
524
+ - 4329756: Initialize `@recursica/official-release` package to version and distribute design tokens, configure automatic postinstall copying logic, and integrate fallback setup checks.
525
+ - Updated dependencies [4329756]
526
+ - Updated dependencies [4329756]
527
+ - @recursica/official-release@0.2.0
528
+
529
+ ## 0.7.0
530
+
531
+ ### Minor Changes
532
+
533
+ - 4031b12: Updated docs and finalized MCP
534
+
535
+ ## 0.6.0
536
+
537
+ ### Minor Changes
538
+
539
+ - a407c6f: More complete mui components
540
+ - 93df8e2: Added form components
541
+ - fe9d24a: Added adapter tester and updated adapters
542
+ - 93df8e2: Added form controls
543
+
544
+ ## 0.5.0
545
+
546
+ ### Minor Changes
547
+
548
+ - 0ead0d7: Updated with adapter-mui-v7 changes
549
+
550
+ ## 0.4.0
551
+
552
+ ### Minor Changes
553
+
554
+ - cdd7b9d: Added Loader and Button and uploaded Button loading state
555
+
556
+ ## 0.3.0
557
+
558
+ ### Minor Changes
559
+
560
+ - 3756d7b: Cleaned up stories and added layout stories to adapter-mui-v7
561
+
562
+ ## 0.2.0
563
+
564
+ ### Minor Changes
565
+
566
+ - 72174fc: Add MUI adapter, reworked storybook for adapter switching
567
+
568
+ ### Patch Changes
569
+
570
+ - 72174fc: Updated docs and README.md links
571
+
572
+ ## 0.2.0
573
+
574
+ ### Minor Changes
575
+
576
+ - 0f7ca8b: Scaffolding and Box component
577
+
578
+ ## 0.0.1
579
+
580
+ ### Patch Changes
581
+
582
+ - c6973c2: first publish
package/LICENSE ADDED
@@ -0,0 +1,21 @@
1
+ MIT License
2
+
3
+ Copyright (c) 2024 Border LLC
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in all
13
+ copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21
+ SOFTWARE.