@recursica/adapter-mantine-v8 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 (362) hide show
  1. package/.storybook/commonArgTypes.ts +148 -0
  2. package/ARCHITECTURE.md +18 -0
  3. package/CHANGELOG.md +688 -0
  4. package/LICENSE +21 -0
  5. package/OVERSTYLING.md +56 -0
  6. package/README.md +70 -0
  7. package/SETUP.md +93 -0
  8. package/USAGE.md +57 -0
  9. package/dist/adapter-mantine-v8.cjs +12 -0
  10. package/dist/adapter-mantine-v8.cjs.map +1 -0
  11. package/dist/adapter-mantine-v8.css +1 -0
  12. package/dist/adapter-mantine-v8.js +5759 -0
  13. package/dist/adapter-mantine-v8.js.map +1 -0
  14. package/dist/index.d.ts +2095 -0
  15. package/dist/test.html +1 -0
  16. package/dist/vite.svg +1 -0
  17. package/docs/PHILOSOPHY.md +39 -0
  18. package/llms.txt +74 -0
  19. package/package.json +131 -0
  20. package/recursica_brand.json +2677 -0
  21. package/recursica_tokens.json +799 -0
  22. package/recursica_ui-kit.json +14981 -0
  23. package/recursica_variables_scoped.css +30489 -0
  24. package/src/GlobalExemptions.modules.css +7 -0
  25. package/src/Introduction.stories.tsx +154 -0
  26. package/src/OverStyling.tsx +79 -0
  27. package/src/Version.tsx +44 -0
  28. package/src/components/Accordion/ACCORDION_IMPLEMENTATION_NOTES.md +72 -0
  29. package/src/components/Accordion/Accordion.module.css +367 -0
  30. package/src/components/Accordion/Accordion.stories.tsx +189 -0
  31. package/src/components/Accordion/Accordion.test.tsx +1 -0
  32. package/src/components/Accordion/Accordion.tsx +220 -0
  33. package/src/components/Accordion/USAGE.md +51 -0
  34. package/src/components/Accordion/index.ts +1 -0
  35. package/src/components/AssistiveElement/ASSISTIVEELEMENT_IMPLEMENTATION_NOTES.md +45 -0
  36. package/src/components/AssistiveElement/AssistiveElement.module.css +111 -0
  37. package/src/components/AssistiveElement/AssistiveElement.stories.tsx +68 -0
  38. package/src/components/AssistiveElement/AssistiveElement.test.tsx +1 -0
  39. package/src/components/AssistiveElement/AssistiveElement.tsx +93 -0
  40. package/src/components/AssistiveElement/USAGE.md +36 -0
  41. package/src/components/AutoComplete/AUTOCOMPLETE_IMPLEMENTATION_NOTES.md +42 -0
  42. package/src/components/AutoComplete/AutoComplete.module.css +430 -0
  43. package/src/components/AutoComplete/AutoComplete.stories.tsx +336 -0
  44. package/src/components/AutoComplete/AutoComplete.test.tsx +1 -0
  45. package/src/components/AutoComplete/AutoComplete.tsx +179 -0
  46. package/src/components/AutoComplete/USAGE.md +80 -0
  47. package/src/components/Avatar/AVATAR_IMPLEMENTATION_NOTES.md +34 -0
  48. package/src/components/Avatar/Avatar.module.css +336 -0
  49. package/src/components/Avatar/Avatar.stories.tsx +92 -0
  50. package/src/components/Avatar/Avatar.test.tsx +1 -0
  51. package/src/components/Avatar/Avatar.tsx +108 -0
  52. package/src/components/Avatar/USAGE.md +38 -0
  53. package/src/components/Avatar/index.ts +1 -0
  54. package/src/components/Badge/BADGE_IMPLEMENTATION_NOTES.md +18 -0
  55. package/src/components/Badge/Badge.module.css +127 -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 +64 -0
  59. package/src/components/Badge/USAGE.md +56 -0
  60. package/src/components/Breadcrumb/BREADCRUMB_IMPLEMENTATION_NOTES.md +47 -0
  61. package/src/components/Breadcrumb/Breadcrumb.module.css +48 -0
  62. package/src/components/Breadcrumb/Breadcrumb.stories.tsx +114 -0
  63. package/src/components/Breadcrumb/Breadcrumb.test.tsx +1 -0
  64. package/src/components/Breadcrumb/Breadcrumb.tsx +85 -0
  65. package/src/components/Breadcrumb/USAGE.md +55 -0
  66. package/src/components/Breadcrumb/markCurrentPageItem.test.ts +49 -0
  67. package/src/components/Button/Button.module.css +446 -0
  68. package/src/components/Button/Button.stories.tsx +196 -0
  69. package/src/components/Button/Button.styleIsolation.dom.test.tsx +98 -0
  70. package/src/components/Button/Button.tsx +184 -0
  71. package/src/components/Button/IMPLEMENTATION_NOTES.md +109 -0
  72. package/src/components/Button/USAGE.md +80 -0
  73. package/src/components/Button/index.ts +1 -0
  74. package/src/components/Card/CARD_IMPLEMENTATION_NOTES.md +17 -0
  75. package/src/components/Card/Card.module.css +119 -0
  76. package/src/components/Card/Card.stories.tsx +131 -0
  77. package/src/components/Card/Card.test.tsx +1 -0
  78. package/src/components/Card/Card.tsx +248 -0
  79. package/src/components/Card/USAGE.md +63 -0
  80. package/src/components/Checkbox/CHECKBOX_IMPLEMENTATION_NOTES.md +25 -0
  81. package/src/components/Checkbox/Checkbox.module.css +267 -0
  82. package/src/components/Checkbox/Checkbox.stories.tsx +97 -0
  83. package/src/components/Checkbox/Checkbox.test.tsx +1 -0
  84. package/src/components/Checkbox/Checkbox.tsx +151 -0
  85. package/src/components/Checkbox/CheckboxGroup.stories.tsx +139 -0
  86. package/src/components/Checkbox/CheckboxGroup.tsx +147 -0
  87. package/src/components/Checkbox/USAGE.md +48 -0
  88. package/src/components/Chip/CHIP_IMPLEMENTATION_NOTES.md +110 -0
  89. package/src/components/Chip/Chip.module.css +288 -0
  90. package/src/components/Chip/Chip.stories.tsx +128 -0
  91. package/src/components/Chip/Chip.test.tsx +1 -0
  92. package/src/components/Chip/Chip.tsx +157 -0
  93. package/src/components/Chip/USAGE.md +55 -0
  94. package/src/components/Container/CONTAINER_IMPLEMENTATION_NOTES.md +4 -0
  95. package/src/components/Container/Container.module.css +7 -0
  96. package/src/components/Container/Container.stories.tsx +118 -0
  97. package/src/components/Container/Container.test.tsx +1 -0
  98. package/src/components/Container/Container.tsx +69 -0
  99. package/src/components/Container/USAGE.md +47 -0
  100. package/src/components/DatePicker/DATEPICKER_IMPLEMENTATION_NOTES.md +31 -0
  101. package/src/components/DatePicker/DatePicker.icons.tsx +27 -0
  102. package/src/components/DatePicker/DatePicker.module.css +566 -0
  103. package/src/components/DatePicker/DatePicker.stories.tsx +158 -0
  104. package/src/components/DatePicker/DatePicker.test.tsx +1 -0
  105. package/src/components/DatePicker/DatePicker.tsx +218 -0
  106. package/src/components/DatePicker/USAGE.md +49 -0
  107. package/src/components/Dropdown/BareDropdown.tsx +97 -0
  108. package/src/components/Dropdown/DROPDOWN_IMPLEMENTATION_NOTES.md +12 -0
  109. package/src/components/Dropdown/Dropdown.module.css +477 -0
  110. package/src/components/Dropdown/Dropdown.stories.tsx +252 -0
  111. package/src/components/Dropdown/Dropdown.test.tsx +1 -0
  112. package/src/components/Dropdown/Dropdown.tsx +213 -0
  113. package/src/components/Dropdown/USAGE.md +69 -0
  114. package/src/components/FileInput/FILEINPUT_IMPLEMENTATION_NOTES.md +153 -0
  115. package/src/components/FileInput/FileInput.module.css +280 -0
  116. package/src/components/FileInput/FileInput.stories.tsx +313 -0
  117. package/src/components/FileInput/FileInput.test.tsx +1 -0
  118. package/src/components/FileInput/FileInput.tsx +417 -0
  119. package/src/components/FileInput/USAGE.md +145 -0
  120. package/src/components/FileUpload/FILEUPLOAD_IMPLEMENTATION_NOTES.md +244 -0
  121. package/src/components/FileUpload/FileUpload.module.css +205 -0
  122. package/src/components/FileUpload/FileUpload.stories.tsx +362 -0
  123. package/src/components/FileUpload/FileUpload.test.tsx +1 -0
  124. package/src/components/FileUpload/FileUpload.tsx +354 -0
  125. package/src/components/FileUpload/USAGE.md +199 -0
  126. package/src/components/Flex/FLEX_IMPLEMENTATION_NOTES.md +4 -0
  127. package/src/components/Flex/Flex.module.css +7 -0
  128. package/src/components/Flex/Flex.stories.tsx +128 -0
  129. package/src/components/Flex/Flex.test.tsx +1 -0
  130. package/src/components/Flex/Flex.tsx +75 -0
  131. package/src/components/Flex/USAGE.md +48 -0
  132. package/src/components/FormControlLayout/FormControlLayout.module.css +90 -0
  133. package/src/components/FormControlLayout/FormControlLayout.stories.tsx +118 -0
  134. package/src/components/FormControlLayout/FormControlLayout.test.tsx +1 -0
  135. package/src/components/FormControlLayout/FormControlLayout.tsx +74 -0
  136. package/src/components/FormControlLayout/USAGE.md +40 -0
  137. package/src/components/FormControlWrapper/FORMCONTROLWRAPPER_IMPLEMENTATION_NOTES.md +32 -0
  138. package/src/components/FormControlWrapper/FormControlWrapper.module.css +75 -0
  139. package/src/components/FormControlWrapper/FormControlWrapper.stories.tsx +129 -0
  140. package/src/components/FormControlWrapper/FormControlWrapper.test.tsx +1 -0
  141. package/src/components/FormControlWrapper/FormControlWrapper.tsx +151 -0
  142. package/src/components/FormControlWrapper/USAGE.md +47 -0
  143. package/src/components/Grid/GRID_IMPLEMENTATION_NOTES.md +18 -0
  144. package/src/components/Grid/Grid.module.css +11 -0
  145. package/src/components/Grid/Grid.stories.tsx +206 -0
  146. package/src/components/Grid/Grid.test.tsx +1 -0
  147. package/src/components/Grid/Grid.tsx +140 -0
  148. package/src/components/Grid/USAGE.md +47 -0
  149. package/src/components/Group/GROUP_IMPLEMENTATION_NOTES.md +4 -0
  150. package/src/components/Group/Group.module.css +7 -0
  151. package/src/components/Group/Group.stories.tsx +120 -0
  152. package/src/components/Group/Group.test.tsx +1 -0
  153. package/src/components/Group/Group.tsx +60 -0
  154. package/src/components/Group/USAGE.md +48 -0
  155. package/src/components/Heading/HEADING_IMPLEMENTATION_NOTES.md +18 -0
  156. package/src/components/Heading/Heading.module.css +13 -0
  157. package/src/components/Heading/Heading.stories.tsx +50 -0
  158. package/src/components/Heading/Heading.test.tsx +1 -0
  159. package/src/components/Heading/Heading.tsx +52 -0
  160. package/src/components/Heading/USAGE.md +36 -0
  161. package/src/components/HoverCard/HOVERCARD_IMPLEMENTATION_NOTES.md +77 -0
  162. package/src/components/HoverCard/HoverCard.module.css +90 -0
  163. package/src/components/HoverCard/HoverCard.stories.tsx +172 -0
  164. package/src/components/HoverCard/HoverCard.test.tsx +1 -0
  165. package/src/components/HoverCard/HoverCard.tsx +133 -0
  166. package/src/components/HoverCard/USAGE.md +52 -0
  167. package/src/components/Label/LABEL_IMPLEMENTATION_NOTES.md +48 -0
  168. package/src/components/Label/Label.module.css +141 -0
  169. package/src/components/Label/Label.stories.tsx +131 -0
  170. package/src/components/Label/Label.test.tsx +1 -0
  171. package/src/components/Label/Label.tsx +113 -0
  172. package/src/components/Label/USAGE.md +47 -0
  173. package/src/components/Label/index.ts +1 -0
  174. package/src/components/Layer/USAGE.md +54 -0
  175. package/src/components/Link/IMPLEMENTATION_NOTES.md +19 -0
  176. package/src/components/Link/Link.module.css +110 -0
  177. package/src/components/Link/Link.stories.tsx +58 -0
  178. package/src/components/Link/Link.test.tsx +1 -0
  179. package/src/components/Link/Link.tsx +67 -0
  180. package/src/components/Link/USAGE.md +56 -0
  181. package/src/components/Link/index.ts +1 -0
  182. package/src/components/Loader/LOADER_IMPLEMENTATION_NOTES.md +24 -0
  183. package/src/components/Loader/Loader.animate.dom.test.tsx +82 -0
  184. package/src/components/Loader/Loader.module.css +63 -0
  185. package/src/components/Loader/Loader.stories.tsx +123 -0
  186. package/src/components/Loader/Loader.test.tsx +1 -0
  187. package/src/components/Loader/Loader.tsx +69 -0
  188. package/src/components/Loader/USAGE.md +44 -0
  189. package/src/components/Menu/MENU_IMPLEMENTATION_NOTES.md +88 -0
  190. package/src/components/Menu/Menu.module.css +280 -0
  191. package/src/components/Menu/Menu.stories.tsx +371 -0
  192. package/src/components/Menu/Menu.test.tsx +1 -0
  193. package/src/components/Menu/Menu.tsx +373 -0
  194. package/src/components/Menu/USAGE.md +55 -0
  195. package/src/components/Modal/MODAL_IMPLEMENTATION_NOTES.md +32 -0
  196. package/src/components/Modal/Modal.module.css +302 -0
  197. package/src/components/Modal/Modal.stories.tsx +105 -0
  198. package/src/components/Modal/Modal.test.tsx +1 -0
  199. package/src/components/Modal/Modal.tsx +368 -0
  200. package/src/components/Modal/USAGE.md +58 -0
  201. package/src/components/Modal/index.ts +1 -0
  202. package/src/components/NumberInput/NUMBER_INPUT_IMPLEMENTATION_NOTES.md +24 -0
  203. package/src/components/NumberInput/NumberInput.module.css +302 -0
  204. package/src/components/NumberInput/NumberInput.stories.tsx +96 -0
  205. package/src/components/NumberInput/NumberInput.test.tsx +1 -0
  206. package/src/components/NumberInput/NumberInput.tsx +157 -0
  207. package/src/components/NumberInput/USAGE.md +52 -0
  208. package/src/components/Pagination/IMPLEMENTATION_NOTES.md +16 -0
  209. package/src/components/Pagination/Pagination.icons.tsx +66 -0
  210. package/src/components/Pagination/Pagination.module.css +188 -0
  211. package/src/components/Pagination/Pagination.stories.tsx +48 -0
  212. package/src/components/Pagination/Pagination.test.tsx +1 -0
  213. package/src/components/Pagination/Pagination.tsx +265 -0
  214. package/src/components/Pagination/USAGE.md +36 -0
  215. package/src/components/Pagination/index.ts +5 -0
  216. package/src/components/Panel/PANEL_IMPLEMENTATION_NOTES.md +116 -0
  217. package/src/components/Panel/Panel.module.css +209 -0
  218. package/src/components/Panel/Panel.stories.tsx +227 -0
  219. package/src/components/Panel/Panel.test.tsx +1 -0
  220. package/src/components/Panel/Panel.tsx +269 -0
  221. package/src/components/Panel/USAGE.md +56 -0
  222. package/src/components/Popover/IMPLEMENTATION_NOTES.md +77 -0
  223. package/src/components/Popover/Popover.module.css +86 -0
  224. package/src/components/Popover/Popover.stories.tsx +133 -0
  225. package/src/components/Popover/Popover.test.tsx +1 -0
  226. package/src/components/Popover/Popover.tsx +142 -0
  227. package/src/components/Popover/USAGE.md +61 -0
  228. package/src/components/Popover/index.ts +1 -0
  229. package/src/components/Radio/Radio.module.css +231 -0
  230. package/src/components/Radio/Radio.stories.tsx +93 -0
  231. package/src/components/Radio/Radio.test.tsx +1 -0
  232. package/src/components/Radio/Radio.tsx +168 -0
  233. package/src/components/Radio/RadioGroup.stories.tsx +117 -0
  234. package/src/components/Radio/RadioGroup.tsx +124 -0
  235. package/src/components/Radio/USAGE.md +36 -0
  236. package/src/components/ReadOnlyField/READ_ONLY_FIELD_IMPLEMENTATION_NOTES.md +15 -0
  237. package/src/components/ReadOnlyField/ReadOnlyBooleanField.tsx +21 -0
  238. package/src/components/ReadOnlyField/ReadOnlyField.module.css +54 -0
  239. package/src/components/ReadOnlyField/ReadOnlyField.stories.tsx +163 -0
  240. package/src/components/ReadOnlyField/ReadOnlyField.test.tsx +1 -0
  241. package/src/components/ReadOnlyField/ReadOnlyField.tsx +114 -0
  242. package/src/components/ReadOnlyField/ReadOnlySwitchField.tsx +21 -0
  243. package/src/components/ReadOnlyField/ReadOnlyTextField.tsx +48 -0
  244. package/src/components/ReadOnlyField/USAGE.md +44 -0
  245. package/src/components/ReadOnlyField/WithReadOnlyWrapper.tsx +93 -0
  246. package/src/components/ReadOnlyField/index.ts +5 -0
  247. package/src/components/RecursicaThemeProvider/USAGE.md +60 -0
  248. package/src/components/SegmentedControl/IMPLEMENTATION_NOTES.md +25 -0
  249. package/src/components/SegmentedControl/SegmentedControl.module.css +185 -0
  250. package/src/components/SegmentedControl/SegmentedControl.stories.tsx +106 -0
  251. package/src/components/SegmentedControl/SegmentedControl.test.tsx +1 -0
  252. package/src/components/SegmentedControl/SegmentedControl.tsx +110 -0
  253. package/src/components/SegmentedControl/USAGE.md +55 -0
  254. package/src/components/Slider/IMPLEMENTATION_NOTES.md +92 -0
  255. package/src/components/Slider/Slider.module.css +588 -0
  256. package/src/components/Slider/Slider.stories.tsx +282 -0
  257. package/src/components/Slider/Slider.test.tsx +1 -0
  258. package/src/components/Slider/Slider.tsx +391 -0
  259. package/src/components/Slider/USAGE.md +56 -0
  260. package/src/components/Stack/STACK_IMPLEMENTATION_NOTES.md +4 -0
  261. package/src/components/Stack/Stack.module.css +7 -0
  262. package/src/components/Stack/Stack.stories.tsx +108 -0
  263. package/src/components/Stack/Stack.test.tsx +1 -0
  264. package/src/components/Stack/Stack.tsx +62 -0
  265. package/src/components/Stack/USAGE.md +48 -0
  266. package/src/components/Stepper/IMPLEMENTATION_NOTES.md +28 -0
  267. package/src/components/Stepper/Stepper.module.css +404 -0
  268. package/src/components/Stepper/Stepper.stories.tsx +148 -0
  269. package/src/components/Stepper/Stepper.test.tsx +1 -0
  270. package/src/components/Stepper/Stepper.tsx +93 -0
  271. package/src/components/Stepper/USAGE.md +41 -0
  272. package/src/components/Switch/SWITCH_IMPLEMENTATION_NOTES.md +64 -0
  273. package/src/components/Switch/Switch.module.css +279 -0
  274. package/src/components/Switch/Switch.stories.tsx +114 -0
  275. package/src/components/Switch/Switch.test.tsx +1 -0
  276. package/src/components/Switch/Switch.tsx +177 -0
  277. package/src/components/Switch/SwitchGroup.stories.tsx +132 -0
  278. package/src/components/Switch/SwitchGroup.tsx +127 -0
  279. package/src/components/Switch/USAGE.md +42 -0
  280. package/src/components/Table/TABLE_IMPLEMENTATION_NOTES.md +78 -0
  281. package/src/components/Table/Table.icons.tsx +40 -0
  282. package/src/components/Table/Table.module.css +444 -0
  283. package/src/components/Table/Table.stories.tsx +140 -0
  284. package/src/components/Table/Table.test.tsx +1 -0
  285. package/src/components/Table/Table.tsx +243 -0
  286. package/src/components/Table/USAGE.md +78 -0
  287. package/src/components/Tabs/IMPLEMENTATION_NOTES.md +27 -0
  288. package/src/components/Tabs/Tabs.module.css +591 -0
  289. package/src/components/Tabs/Tabs.stories.tsx +154 -0
  290. package/src/components/Tabs/Tabs.test.tsx +1 -0
  291. package/src/components/Tabs/Tabs.tsx +114 -0
  292. package/src/components/Tabs/USAGE.md +45 -0
  293. package/src/components/Text/TEXT_IMPLEMENTATION_NOTES.md +12 -0
  294. package/src/components/Text/Text.module.css +13 -0
  295. package/src/components/Text/Text.stories.tsx +75 -0
  296. package/src/components/Text/Text.test.tsx +1 -0
  297. package/src/components/Text/Text.tsx +53 -0
  298. package/src/components/Text/USAGE.md +40 -0
  299. package/src/components/TextArea/TEXTAREA_IMPLEMENTATION_NOTES.md +7 -0
  300. package/src/components/TextArea/TextArea.module.css +183 -0
  301. package/src/components/TextArea/TextArea.stories.tsx +94 -0
  302. package/src/components/TextArea/TextArea.test.tsx +1 -0
  303. package/src/components/TextArea/TextArea.tsx +137 -0
  304. package/src/components/TextArea/USAGE.md +48 -0
  305. package/src/components/TextField/TEXTFIELD_IMPLEMENTATION_NOTES.md +19 -0
  306. package/src/components/TextField/TextField.module.css +264 -0
  307. package/src/components/TextField/TextField.stories.tsx +162 -0
  308. package/src/components/TextField/TextField.test.tsx +1 -0
  309. package/src/components/TextField/TextField.tsx +139 -0
  310. package/src/components/TextField/USAGE.md +44 -0
  311. package/src/components/TimePicker/TIMEPICKER_IMPLEMENTATION_NOTES.md +119 -0
  312. package/src/components/TimePicker/TimePicker.module.css +291 -0
  313. package/src/components/TimePicker/TimePicker.stories.tsx +141 -0
  314. package/src/components/TimePicker/TimePicker.test.tsx +1 -0
  315. package/src/components/TimePicker/TimePicker.tsx +304 -0
  316. package/src/components/TimePicker/USAGE.md +57 -0
  317. package/src/components/Timeline/TIMELINE_IMPLEMENTATION_NOTES.md +13 -0
  318. package/src/components/Timeline/Timeline.module.css +373 -0
  319. package/src/components/Timeline/Timeline.stories.tsx +128 -0
  320. package/src/components/Timeline/Timeline.test.tsx +1 -0
  321. package/src/components/Timeline/Timeline.tsx +73 -0
  322. package/src/components/Timeline/TimelineItem.tsx +79 -0
  323. package/src/components/Timeline/USAGE.md +49 -0
  324. package/src/components/Toast/TOAST_IMPLEMENTATION_NOTES.md +39 -0
  325. package/src/components/Toast/Toast.module.css +184 -0
  326. package/src/components/Toast/Toast.stories.tsx +67 -0
  327. package/src/components/Toast/Toast.test.tsx +1 -0
  328. package/src/components/Toast/Toast.tsx +82 -0
  329. package/src/components/Toast/USAGE.md +50 -0
  330. package/src/components/Toast/index.ts +1 -0
  331. package/src/components/Tooltip/TOOLTIP_IMPLEMENTATION_NOTES.md +85 -0
  332. package/src/components/Tooltip/Tooltip.module.css +91 -0
  333. package/src/components/Tooltip/Tooltip.stories.tsx +165 -0
  334. package/src/components/Tooltip/Tooltip.test.tsx +1 -0
  335. package/src/components/Tooltip/Tooltip.tsx +117 -0
  336. package/src/components/Tooltip/USAGE.md +80 -0
  337. package/src/components/TransferList/TRANSFERLIST_IMPLEMENTATION_NOTES.md +111 -0
  338. package/src/components/TransferList/TransferList.module.css +182 -0
  339. package/src/components/TransferList/TransferList.stories.tsx +121 -0
  340. package/src/components/TransferList/TransferList.test.tsx +1 -0
  341. package/src/components/TransferList/TransferList.tsx +419 -0
  342. package/src/components/TransferList/USAGE.md +77 -0
  343. package/src/components/Tree/IMPLEMENTATION_NOTES.md +48 -0
  344. package/src/components/Tree/Tree.module.css +232 -0
  345. package/src/components/Tree/Tree.stories.tsx +104 -0
  346. package/src/components/Tree/Tree.test.tsx +1 -0
  347. package/src/components/Tree/Tree.tsx +220 -0
  348. package/src/components/Tree/USAGE.md +96 -0
  349. package/src/components/Tree/index.ts +1 -0
  350. package/src/components/index.ts +52 -0
  351. package/src/env.d.ts +7 -0
  352. package/src/index.ts +179 -0
  353. package/src/types/index.ts +9 -0
  354. package/src/types/mantine.d.ts +7 -0
  355. package/src/types/scss-modules.d.ts +9 -0
  356. package/src/utils/ColorSchemeWrapper.tsx +27 -0
  357. package/src/utils/RequireAccessibleLabel.ts +1 -0
  358. package/src/utils/copyToClipboard.ts +36 -0
  359. package/src/utils/filterStylingProps.test.ts +85 -0
  360. package/src/utils/filterStylingProps.ts +150 -0
  361. package/src/utils/index.ts +1 -0
  362. package/src/utils/renderRichOption.tsx +65 -0
@@ -0,0 +1,566 @@
1
+ /* Brand-layer exemptions (recursica-allow-brand) — see recursica-token-analyzer README.md.
2
+ * No ui-kit_components_date-picker radius token exists for the calendar day cells; reuses the brand default border-radius.
3
+ * recursica-allow-brand: --recursica_brand_dimensions_border-radii_default
4
+ * Global hover/focus/disabled state tokens (recursica_variables_scoped.css header, 'Hover & Focus states' / 'Disabled state' — implicit rule for every interactive element; components must not define their own per-component treatment).
5
+ * recursica-allow-brand: --recursica_brand_states_disabled
6
+ * recursica-allow-brand: --recursica_brand_states_focus_blur
7
+ * recursica-allow-brand: --recursica_brand_states_focus_border-size
8
+ * recursica-allow-brand: --recursica_brand_states_focus_color
9
+ * recursica-allow-brand: --recursica_brand_states_focus_margin
10
+ * recursica-allow-brand: --recursica_brand_states_hover_color
11
+ * recursica-allow-brand: --recursica_brand_states_hover_opacity
12
+ * No ui-kit_components_date-picker in-range token exists; the generic overlay tint fills the range-selection band (see inline comment above .day[data-in-range]).
13
+ * recursica-allow-brand: --recursica_brand_states_overlay_color
14
+ * recursica-allow-brand: --recursica_brand_states_overlay_opacity
15
+ */
16
+
17
+ /* LAYOUT SPACING OVERRIDES:
18
+ - Sets the --form-control-margin-bottom spacing hook to map component-specific layout tokens. */
19
+ .layoutOverride {
20
+ --form-control-margin-bottom: var(
21
+ --recursica_ui-kit_components_date-picker_variants_layouts_stacked_properties_top-bottom-margin
22
+ );
23
+ }
24
+
25
+ .layoutOverride[data-form-layout="side-by-side"] {
26
+ --form-control-margin-bottom: var(
27
+ --recursica_ui-kit_components_date-picker_variants_layouts_side-by-side_properties_top-bottom-margin
28
+ );
29
+ }
30
+
31
+ /* HARDCODED VALUES:
32
+ - border-style: solid. Native structural rendering rule.
33
+ - outline: none. Bypassing browser focus rings to rely strictly on Recursica focus states natively.
34
+ - flex/layout: display: flex on the root wrapper safely encapsulating internal section rendering.
35
+ */
36
+
37
+ /* EXEMPTIONS:
38
+ - border-size is constant across disabled/error states — only border-color changes; the
39
+ disabled/error border-size tokens are never applied by design. */
40
+ /* recursica-ignore: --recursica_ui-kit_components_date-picker_variants_states_disabled_properties_border-size */
41
+ /* recursica-ignore: --recursica_ui-kit_components_date-picker_variants_states_error_properties_border-size */
42
+
43
+ .root {
44
+ display: flex;
45
+ position: relative;
46
+ width: var(--recursica_ui-kit_components_date-picker_properties_width);
47
+ min-height: var(
48
+ --recursica_ui-kit_components_date-picker_properties_min-height
49
+ );
50
+
51
+ /* Override Mantine native Input variables governing section spacing padding mathematics safely */
52
+ --input-left-section-size: calc(
53
+ var(
54
+ --recursica_ui-kit_components_date-picker_properties_horizontal-padding
55
+ ) +
56
+ var(--recursica_ui-kit_components_date-picker_properties_icon-size) +
57
+ var(--recursica_ui-kit_components_date-picker_properties_icon-text-gap)
58
+ );
59
+ --input-right-section-size: calc(
60
+ var(
61
+ --recursica_ui-kit_components_date-picker_properties_horizontal-padding
62
+ ) +
63
+ var(--recursica_ui-kit_components_date-picker_properties_icon-size) +
64
+ var(--recursica_ui-kit_components_date-picker_properties_icon-text-gap)
65
+ );
66
+ }
67
+
68
+ .input {
69
+ /* Structural Overrides */
70
+ width: 100%;
71
+ box-sizing: border-box;
72
+ margin: 0;
73
+
74
+ /* Box Geometry */
75
+ min-height: var(
76
+ --recursica_ui-kit_components_date-picker_properties_min-height
77
+ );
78
+ padding-top: var(
79
+ --recursica_ui-kit_components_date-picker_properties_vertical-padding
80
+ );
81
+ padding-bottom: var(
82
+ --recursica_ui-kit_components_date-picker_properties_vertical-padding
83
+ );
84
+ padding-left: var(
85
+ --recursica_ui-kit_components_date-picker_properties_horizontal-padding
86
+ );
87
+ padding-right: var(
88
+ --recursica_ui-kit_components_date-picker_properties_horizontal-padding
89
+ );
90
+ border-radius: var(
91
+ --recursica_ui-kit_components_date-picker_properties_border-radius
92
+ );
93
+ border-width: var(
94
+ --recursica_ui-kit_components_date-picker_properties_border-size
95
+ );
96
+ border-style: solid;
97
+
98
+ /* Strict Typography Unification */
99
+ font-family: var(
100
+ --recursica_ui-kit_components_date-picker_properties_text_font-family
101
+ );
102
+ font-size: var(
103
+ --recursica_ui-kit_components_date-picker_properties_text_font-size
104
+ );
105
+ font-style: var(
106
+ --recursica_ui-kit_components_date-picker_properties_text_font-style
107
+ );
108
+ font-weight: var(
109
+ --recursica_ui-kit_components_date-picker_properties_text_font-weight
110
+ );
111
+ letter-spacing: var(
112
+ --recursica_ui-kit_components_date-picker_properties_text_letter-spacing
113
+ );
114
+ line-height: var(
115
+ --recursica_ui-kit_components_date-picker_properties_text_line-height
116
+ );
117
+ text-decoration: var(
118
+ --recursica_ui-kit_components_date-picker_properties_text_text-decoration
119
+ );
120
+ text-transform: var(
121
+ --recursica_ui-kit_components_date-picker_properties_text_text-transform
122
+ );
123
+
124
+ /* Base State Default Execution */
125
+ background-color: var(
126
+ --recursica_ui-kit_components_date-picker_properties_colors_background-color
127
+ );
128
+ border-color: var(
129
+ --recursica_ui-kit_components_date-picker_properties_colors_border-color
130
+ );
131
+ color: var(
132
+ --recursica_ui-kit_components_date-picker_properties_colors_text-color
133
+ );
134
+
135
+ outline: none;
136
+
137
+ /* Single-line enforcement: DatePickerInput renders its value/placeholder as a <button>'s text
138
+ content (not a native <input>), so it wraps by default like any other block text — clip it to
139
+ one line with ellipsis instead, same convention as FileInput's .value. */
140
+ white-space: nowrap;
141
+ text-overflow: ellipsis;
142
+ overflow-x: clip;
143
+ overflow-y: visible;
144
+ }
145
+
146
+ .input::placeholder {
147
+ opacity: var(
148
+ --recursica_ui-kit_components_date-picker_properties_placeholder-opacity
149
+ );
150
+ color: inherit;
151
+ }
152
+
153
+ /* Dynamic Padding Overrides */
154
+ .root[data-with-left-section] .input {
155
+ padding-left: var(--input-left-section-size);
156
+ }
157
+
158
+ .root[data-with-right-section] .input {
159
+ padding-right: var(--input-right-section-size);
160
+ }
161
+
162
+ /* Flexible End-Caps (Icons, actions) */
163
+ .section {
164
+ display: flex;
165
+ align-items: center;
166
+ height: 100%;
167
+ }
168
+
169
+ .section[data-position="left"] {
170
+ justify-content: flex-start;
171
+ padding-left: var(
172
+ --recursica_ui-kit_components_date-picker_properties_horizontal-padding
173
+ );
174
+ }
175
+
176
+ .section[data-position="right"] {
177
+ justify-content: flex-end;
178
+ padding-right: var(
179
+ --recursica_ui-kit_components_date-picker_properties_horizontal-padding
180
+ );
181
+ }
182
+
183
+ .section :global(svg) {
184
+ width: var(--recursica_ui-kit_components_date-picker_properties_icon-size);
185
+ height: var(--recursica_ui-kit_components_date-picker_properties_icon-size);
186
+ color: var(
187
+ --recursica_ui-kit_components_date-picker_properties_colors_leading-icon
188
+ );
189
+ }
190
+
191
+ /* -------------------------------------
192
+ STATE CASCADE ARCHITECTURE
193
+ -------------------------------------- */
194
+
195
+ /* Focus State Mapping (Triggered internally via browser pseudo-pseudo-class) */
196
+ /* The token schema no longer provides per-component focus colors; apply the generic focus ring
197
+ tokens as a box-shadow ring instead of a color swap. */
198
+ .input:focus-within,
199
+ .input:focus {
200
+ box-shadow:
201
+ 0 0 0 var(--recursica_brand_states_focus_border-size)
202
+ var(--recursica_brand_states_focus_color),
203
+ 0 0 var(--recursica_brand_states_focus_blur)
204
+ var(--recursica_brand_states_focus_margin)
205
+ var(--recursica_brand_states_focus_color);
206
+ }
207
+
208
+ /* Error State Mapping (Propagated strictly down from the wrapper DOM context) */
209
+ .root[data-error] .input {
210
+ border-color: var(
211
+ --recursica_ui-kit_components_date-picker_variants_states_error_properties_colors_border-color
212
+ ) !important;
213
+ background-color: var(
214
+ --recursica_ui-kit_components_date-picker_variants_states_error_properties_colors_background-color
215
+ ) !important;
216
+ color: var(
217
+ --recursica_ui-kit_components_date-picker_variants_states_error_properties_colors_text-color
218
+ ) !important;
219
+ }
220
+
221
+ .root[data-error] .section[data-position="left"] :global(svg) {
222
+ color: var(
223
+ --recursica_ui-kit_components_date-picker_variants_states_error_properties_colors_leading-icon
224
+ ) !important;
225
+ }
226
+
227
+ /* Disabled State Mapping (Propagated strictly down from the wrapper DOM context) */
228
+ .root[data-disabled] .input {
229
+ border-color: var(
230
+ --recursica_ui-kit_components_date-picker_variants_states_disabled_properties_colors_border-color
231
+ ) !important;
232
+ background-color: var(
233
+ --recursica_ui-kit_components_date-picker_variants_states_disabled_properties_colors_background-color
234
+ ) !important;
235
+ color: var(
236
+ --recursica_ui-kit_components_date-picker_variants_states_disabled_properties_colors_text-color
237
+ ) !important;
238
+ opacity: var(
239
+ --recursica_ui-kit_components_date-picker_variants_states_disabled_properties_opacity
240
+ ) !important;
241
+ cursor: not-allowed;
242
+ }
243
+
244
+ .root[data-disabled] .section[data-position="left"] :global(svg) {
245
+ color: var(
246
+ --recursica_ui-kit_components_date-picker_variants_states_disabled_properties_colors_leading-icon
247
+ ) !important;
248
+ }
249
+
250
+ /* =========================================
251
+ CALENDAR POPOVER OVERRIDES
252
+ Maps generic popover & solid button tokens
253
+ to enforce Recursica's global styling.
254
+ ========================================= */
255
+
256
+ .dropdown {
257
+ background-color: var(
258
+ --recursica_ui-kit_components_hover-card-popover_properties_colors_background-color
259
+ );
260
+ border: var(
261
+ --recursica_ui-kit_components_hover-card-popover_properties_border-size
262
+ )
263
+ solid
264
+ var(
265
+ --recursica_ui-kit_components_hover-card-popover_properties_colors_border-color
266
+ );
267
+ border-radius: var(
268
+ --recursica_ui-kit_components_hover-card-popover_properties_border-radius
269
+ );
270
+ box-shadow: var(
271
+ --recursica_ui-kit_components_hover-card-popover_properties_elevation
272
+ );
273
+ padding: var(
274
+ --recursica_ui-kit_components_hover-card-popover_properties_vertical-padding
275
+ )
276
+ var(
277
+ --recursica_ui-kit_components_hover-card-popover_properties_horizontal-padding
278
+ );
279
+ font-family: var(
280
+ --recursica_ui-kit_components_hover-card-popover_properties_content-text_font-family
281
+ );
282
+ }
283
+
284
+ .calendarHeader {
285
+ color: var(
286
+ --recursica_ui-kit_components_hover-card-popover_properties_colors_content
287
+ );
288
+ }
289
+
290
+ /* Month label + prev/next nav controls: styled as Recursica's own "text" button variant (small
291
+ size) rather than bare popover text — same border/background/color/typography tokens Button
292
+ uses for data-variant="text", since these are functionally buttons inside the popover. */
293
+ .calendarHeaderControl,
294
+ .calendarHeaderLevel {
295
+ position: relative;
296
+ border-style: solid;
297
+ border-width: var(
298
+ --recursica_ui-kit_components_button_variants_styles_text_properties_border-size
299
+ );
300
+ border-color: var(
301
+ --recursica_ui-kit_components_button_variants_styles_text_properties_colors_border-color
302
+ );
303
+ background-color: var(
304
+ --recursica_ui-kit_components_button_variants_styles_text_properties_colors_background-color
305
+ );
306
+ box-shadow: var(
307
+ --recursica_ui-kit_components_button_variants_styles_text_properties_elevation
308
+ );
309
+ color: var(
310
+ --recursica_ui-kit_components_button_variants_styles_text_properties_colors_text-color
311
+ );
312
+ font-family: var(
313
+ --recursica_ui-kit_components_button_variants_sizes_small_properties_text_font-family
314
+ );
315
+ font-size: var(
316
+ --recursica_ui-kit_components_button_variants_sizes_small_properties_text_font-size
317
+ );
318
+ font-style: var(
319
+ --recursica_ui-kit_components_button_variants_sizes_small_properties_text_font-style
320
+ );
321
+ font-weight: var(
322
+ --recursica_ui-kit_components_button_variants_sizes_small_properties_text_font-weight
323
+ );
324
+ letter-spacing: var(
325
+ --recursica_ui-kit_components_button_variants_sizes_small_properties_text_letter-spacing
326
+ );
327
+ text-decoration: var(
328
+ --recursica_ui-kit_components_button_variants_sizes_small_properties_text_text-decoration
329
+ );
330
+ text-transform: var(
331
+ --recursica_ui-kit_components_button_variants_sizes_small_properties_text_text-transform
332
+ );
333
+ transition: all 0.2s ease;
334
+ }
335
+
336
+ /* Prev/next nav: icon-only button sizing (small). */
337
+ .calendarHeaderControl {
338
+ min-width: var(
339
+ --recursica_ui-kit_components_button_variants_content_icon-only_variants_sizes_small_properties_min-width
340
+ );
341
+ height: var(
342
+ --recursica_ui-kit_components_button_variants_sizes_small_properties_height
343
+ );
344
+ border-radius: var(
345
+ --recursica_ui-kit_components_button_variants_content_icon-only_variants_sizes_small_properties_border-radius
346
+ );
347
+ padding: 0
348
+ var(
349
+ --recursica_ui-kit_components_button_variants_content_icon-only_variants_sizes_small_properties_horizontal-padding
350
+ );
351
+ }
352
+
353
+ /* Month/year label: label-content button sizing (small). */
354
+ .calendarHeaderLevel {
355
+ height: var(
356
+ --recursica_ui-kit_components_button_variants_sizes_small_properties_height
357
+ );
358
+ border-radius: var(
359
+ --recursica_ui-kit_components_button_variants_content_label_variants_sizes_small_properties_border-radius
360
+ );
361
+ padding: 0
362
+ var(
363
+ --recursica_ui-kit_components_button_variants_content_label_variants_sizes_small_properties_horizontal-padding
364
+ );
365
+ }
366
+
367
+ /* Neutralize Mantine's own native :hover background-color (gray-0/dark-5) so only our
368
+ token-driven overlay below is visible — same reasoning as .day above. */
369
+ .calendarHeaderControl:hover:not(:disabled, [data-disabled]),
370
+ .calendarHeaderLevel:hover:not(:disabled, [data-disabled]) {
371
+ background-color: transparent;
372
+ }
373
+
374
+ .calendarHeaderControl::after,
375
+ .calendarHeaderLevel::after {
376
+ content: "";
377
+ position: absolute;
378
+ inset: 0;
379
+ border-radius: inherit;
380
+ z-index: -1;
381
+ pointer-events: none;
382
+ background-color: var(--recursica_brand_states_hover_color);
383
+ opacity: 0;
384
+ transition: opacity 150ms ease;
385
+ }
386
+
387
+ .calendarHeaderControl:hover:not(:disabled, [data-disabled])::after,
388
+ .calendarHeaderLevel:hover:not(:disabled, [data-disabled])::after {
389
+ opacity: var(--recursica_brand_states_hover_opacity);
390
+ }
391
+
392
+ .calendarHeaderControl:disabled,
393
+ .calendarHeaderControl[data-disabled],
394
+ .calendarHeaderLevel:disabled,
395
+ .calendarHeaderLevel[data-disabled] {
396
+ opacity: var(
397
+ --recursica_ui-kit_components_button_variants_styles_text_variants_states_disabled_properties_opacity
398
+ );
399
+ box-shadow: var(
400
+ --recursica_ui-kit_components_button_variants_styles_text_variants_states_disabled_properties_elevation
401
+ );
402
+ }
403
+
404
+ /* Focus ring, same convention as Button's own :focus-visible treatment. */
405
+ .calendarHeaderControl:focus-visible,
406
+ .calendarHeaderLevel:focus-visible {
407
+ outline: none;
408
+ box-shadow:
409
+ 0 0 0 var(--recursica_brand_states_focus_border-size)
410
+ var(--recursica_brand_states_focus_color),
411
+ 0 0 var(--recursica_brand_states_focus_blur)
412
+ var(--recursica_brand_states_focus_margin)
413
+ var(--recursica_brand_states_focus_color);
414
+ }
415
+
416
+ .calendarHeaderControlIcon {
417
+ color: var(
418
+ --recursica_ui-kit_components_button_variants_styles_text_properties_colors_icon-color
419
+ );
420
+ width: var(
421
+ --recursica_ui-kit_components_button_variants_sizes_small_properties_icon
422
+ );
423
+ height: var(
424
+ --recursica_ui-kit_components_button_variants_sizes_small_properties_icon
425
+ );
426
+ }
427
+
428
+ /* Weekday row (Mo, Tu, We...) */
429
+ .weekday {
430
+ color: var(
431
+ --recursica_ui-kit_components_hover-card-popover_properties_colors_content
432
+ );
433
+ }
434
+
435
+ .day {
436
+ position: relative;
437
+ color: var(
438
+ --recursica_ui-kit_components_hover-card-popover_properties_colors_content
439
+ );
440
+ border-radius: var(--recursica_brand_dimensions_border-radii_default);
441
+ }
442
+
443
+ /* Weekend days: Mantine's default colors them red; the UI Kit has no such concept, so they're
444
+ intentionally kept identical to any other day rather than left on Mantine's un-tokenized default. */
445
+ .day[data-weekend] {
446
+ color: var(
447
+ --recursica_ui-kit_components_hover-card-popover_properties_colors_content
448
+ );
449
+ }
450
+
451
+ /* Today marker: reuse the popover border-size/color tokens already used for the dropdown
452
+ surface itself, since the UI Kit exports no dedicated "today" indicator token. */
453
+ .day[data-today][data-highlight-today]:not([data-selected], [data-in-range]) {
454
+ border-style: solid;
455
+ border-width: var(
456
+ --recursica_ui-kit_components_hover-card-popover_properties_border-size
457
+ );
458
+ border-color: var(
459
+ --recursica_ui-kit_components_hover-card-popover_properties_colors_border-color
460
+ );
461
+ }
462
+
463
+ /* Outside-month & disabled days: dim with the generic disabled-opacity token used everywhere else
464
+ in the design system for elements with no dedicated disabled token. */
465
+ .day[data-outside],
466
+ .day[data-disabled] {
467
+ opacity: var(--recursica_brand_states_disabled);
468
+ }
469
+
470
+ .day[data-disabled] {
471
+ cursor: not-allowed;
472
+ }
473
+
474
+ /* Unlike Button (a plain button with no built-in library hover), Mantine's Day ships its own
475
+ native :hover background-color (gray-0/dark-5) — neutralize it so only our token-driven
476
+ overlay below is visible. Same specificity as Mantine's own selector, so this relies on our
477
+ CSS module loading after @mantine/dates' stylesheet to win the tie (true today; see
478
+ DATEPICKER_IMPLEMENTATION_NOTES.md if that load order ever changes). */
479
+ .day:hover:not(:disabled, [data-disabled], [data-static]) {
480
+ background-color: transparent;
481
+ }
482
+
483
+ /* Hover overlay, same generic mechanism used by Button/Menu for components without a dedicated
484
+ hover token. Unlike Button, the day number here is a bare text node (Mantine's Day renders it
485
+ directly, with no wrapping span to z-index above the overlay), so this sits at z-index: -1
486
+ instead — still scoped to .day's own positioned box, just painted behind the digit rather than
487
+ in front of it. */
488
+ .day::after {
489
+ content: "";
490
+ position: absolute;
491
+ inset: 0;
492
+ border-radius: inherit;
493
+ z-index: -1;
494
+ pointer-events: none;
495
+ background-color: var(--recursica_brand_states_hover_color);
496
+ opacity: 0;
497
+ transition: opacity 150ms ease;
498
+ }
499
+
500
+ .day:hover:not(:disabled, [data-disabled], [data-static])::after {
501
+ opacity: var(--recursica_brand_states_hover_opacity);
502
+ }
503
+
504
+ /* Range selection (type="range"): the UI Kit exports no dedicated in-range token, so the generic
505
+ overlay token — meant for exactly this kind of translucent tint — fills the band between the
506
+ two selected endpoints. Painted via ::before (behind the day number and the ::after hover
507
+ overlay) so the fill's opacity never dims the text itself. */
508
+ .day[data-in-range] {
509
+ border-radius: 0;
510
+ }
511
+
512
+ .day[data-in-range]::before {
513
+ content: "";
514
+ position: absolute;
515
+ inset: 0;
516
+ z-index: -1;
517
+ pointer-events: none;
518
+ background-color: var(--recursica_brand_states_overlay_color);
519
+ opacity: var(--recursica_brand_states_overlay_opacity);
520
+ }
521
+
522
+ .day[data-first-in-range] {
523
+ border-radius: 0;
524
+ border-start-start-radius: var(
525
+ --recursica_brand_dimensions_border-radii_default
526
+ );
527
+ border-end-start-radius: var(
528
+ --recursica_brand_dimensions_border-radii_default
529
+ );
530
+ }
531
+
532
+ .day[data-last-in-range] {
533
+ border-radius: 0;
534
+ border-end-end-radius: var(--recursica_brand_dimensions_border-radii_default);
535
+ border-start-end-radius: var(
536
+ --recursica_brand_dimensions_border-radii_default
537
+ );
538
+ }
539
+
540
+ .day[data-first-in-range][data-last-in-range] {
541
+ border-radius: var(--recursica_brand_dimensions_border-radii_default);
542
+ }
543
+
544
+ .day[data-selected],
545
+ .day[data-selected]:hover {
546
+ background-color: var(
547
+ --recursica_ui-kit_components_button_variants_styles_solid_properties_colors_background-color
548
+ );
549
+ color: var(
550
+ --recursica_ui-kit_components_button_variants_styles_solid_properties_colors_text-color
551
+ );
552
+ opacity: 1;
553
+ }
554
+
555
+ /* Focus ring, same convention as calendarHeaderControl/input's own :focus-visible treatment.
556
+ Mantine's Day ships no explicit focus style of its own, so without this it fell through to
557
+ the browser's native (blue) :focus-visible outline instead of a Recursica token. */
558
+ .day:focus-visible {
559
+ outline: none;
560
+ box-shadow:
561
+ 0 0 0 var(--recursica_brand_states_focus_border-size)
562
+ var(--recursica_brand_states_focus_color),
563
+ 0 0 var(--recursica_brand_states_focus_blur)
564
+ var(--recursica_brand_states_focus_margin)
565
+ var(--recursica_brand_states_focus_color);
566
+ }