react-native-mantine 0.13.0 → 0.15.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 (511) hide show
  1. package/README.md +138 -0
  2. package/lib/commonjs/components/ActionIcon/ActionIcon.js +1 -1
  3. package/lib/commonjs/components/ActionIcon/ActionIcon.js.map +1 -1
  4. package/lib/commonjs/components/Anchor/index.js +3 -4
  5. package/lib/commonjs/components/Anchor/index.js.map +1 -1
  6. package/lib/commonjs/components/Avatar/index.js +1 -2
  7. package/lib/commonjs/components/Avatar/index.js.map +1 -1
  8. package/lib/commonjs/components/Badge/index.js +54 -24
  9. package/lib/commonjs/components/Badge/index.js.map +1 -1
  10. package/lib/commonjs/components/Blockquote/index.js +4 -5
  11. package/lib/commonjs/components/Blockquote/index.js.map +1 -1
  12. package/lib/commonjs/components/Button/index.js +7 -1
  13. package/lib/commonjs/components/Button/index.js.map +1 -1
  14. package/lib/commonjs/components/Center/index.js.map +1 -1
  15. package/lib/commonjs/components/Checkbox/index.js +4 -5
  16. package/lib/commonjs/components/Checkbox/index.js.map +1 -1
  17. package/lib/commonjs/components/Chip/index.js +40 -21
  18. package/lib/commonjs/components/Chip/index.js.map +1 -1
  19. package/lib/commonjs/components/Code/index.js +6 -4
  20. package/lib/commonjs/components/Code/index.js.map +1 -1
  21. package/lib/commonjs/components/Grid/index.js +18 -13
  22. package/lib/commonjs/components/Grid/index.js.map +1 -1
  23. package/lib/commonjs/components/Highlight/index.js +1 -1
  24. package/lib/commonjs/components/Highlight/index.js.map +1 -1
  25. package/lib/commonjs/components/Indicator/index.js +2 -3
  26. package/lib/commonjs/components/Indicator/index.js.map +1 -1
  27. package/lib/commonjs/components/LinearGradient/PlatformLinearGradient.js +9 -9
  28. package/lib/commonjs/components/LinearGradient/PlatformLinearGradient.js.map +1 -1
  29. package/lib/commonjs/components/Menu/index.js +4 -5
  30. package/lib/commonjs/components/Menu/index.js.map +1 -1
  31. package/lib/commonjs/components/MultiSelect/index.js +8 -9
  32. package/lib/commonjs/components/MultiSelect/index.js.map +1 -1
  33. package/lib/commonjs/components/NativeSelect/index.js +14 -14
  34. package/lib/commonjs/components/NativeSelect/index.js.map +1 -1
  35. package/lib/commonjs/components/NavLink/index.js +43 -20
  36. package/lib/commonjs/components/NavLink/index.js.map +1 -1
  37. package/lib/commonjs/components/Notification/index.js +5 -6
  38. package/lib/commonjs/components/Notification/index.js.map +1 -1
  39. package/lib/commonjs/components/Pagination/index.js +5 -6
  40. package/lib/commonjs/components/Pagination/index.js.map +1 -1
  41. package/lib/commonjs/components/PinInput/index.js +3 -3
  42. package/lib/commonjs/components/PinInput/index.js.map +1 -1
  43. package/lib/commonjs/components/Progress/index.js +3 -5
  44. package/lib/commonjs/components/Progress/index.js.map +1 -1
  45. package/lib/commonjs/components/Radio/index.js +4 -5
  46. package/lib/commonjs/components/Radio/index.js.map +1 -1
  47. package/lib/commonjs/components/Rating/index.js +2 -4
  48. package/lib/commonjs/components/Rating/index.js.map +1 -1
  49. package/lib/commonjs/components/RingProgress/index.js +3 -4
  50. package/lib/commonjs/components/RingProgress/index.js.map +1 -1
  51. package/lib/commonjs/components/Select/index.js +7 -8
  52. package/lib/commonjs/components/Select/index.js.map +1 -1
  53. package/lib/commonjs/components/SimpleGrid/index.js +4 -2
  54. package/lib/commonjs/components/SimpleGrid/index.js.map +1 -1
  55. package/lib/commonjs/components/Spoiler/index.js +1 -1
  56. package/lib/commonjs/components/Spoiler/index.js.map +1 -1
  57. package/lib/commonjs/components/Stepper/index.js +8 -6
  58. package/lib/commonjs/components/Stepper/index.js.map +1 -1
  59. package/lib/commonjs/components/Switch/index.js +4 -5
  60. package/lib/commonjs/components/Switch/index.js.map +1 -1
  61. package/lib/commonjs/components/Text/index.js +78 -17
  62. package/lib/commonjs/components/Text/index.js.map +1 -1
  63. package/lib/commonjs/components/ThemeIcon/index.js +40 -19
  64. package/lib/commonjs/components/ThemeIcon/index.js.map +1 -1
  65. package/lib/commonjs/components/Timeline/index.js +6 -5
  66. package/lib/commonjs/components/Timeline/index.js.map +1 -1
  67. package/lib/commonjs/components/Title/index.js +5 -17
  68. package/lib/commonjs/components/Title/index.js.map +1 -1
  69. package/lib/commonjs/components/Tooltip/index.js +1 -2
  70. package/lib/commonjs/components/Tooltip/index.js.map +1 -1
  71. package/lib/commonjs/components/TransferList/index.js +9 -10
  72. package/lib/commonjs/components/TransferList/index.js.map +1 -1
  73. package/lib/commonjs/components/UnstyledButton/UnstyledButton.styles.js +2 -2
  74. package/lib/commonjs/components/UnstyledButton/UnstyledButton.styles.js.map +1 -1
  75. package/lib/commonjs/components/index.js +35 -46
  76. package/lib/commonjs/components/index.js.map +1 -1
  77. package/lib/commonjs/index.js +34 -0
  78. package/lib/commonjs/index.js.map +1 -1
  79. package/lib/commonjs/theme/create-theme.js +114 -25
  80. package/lib/commonjs/theme/create-theme.js.map +1 -1
  81. package/lib/commonjs/theme/default-colors.js +103 -0
  82. package/lib/commonjs/theme/default-colors.js.map +1 -0
  83. package/lib/commonjs/theme/default-theme.js +144 -128
  84. package/lib/commonjs/theme/default-theme.js.map +1 -1
  85. package/lib/commonjs/theme/functions/attach-functions.js +46 -14
  86. package/lib/commonjs/theme/functions/attach-functions.js.map +1 -1
  87. package/lib/commonjs/theme/functions/fns/breakpoints.js.map +1 -1
  88. package/lib/commonjs/theme/functions/fns/color-scheme-value.js +190 -0
  89. package/lib/commonjs/theme/functions/fns/color-scheme-value.js.map +1 -0
  90. package/lib/commonjs/theme/functions/fns/dimmed.js.map +1 -1
  91. package/lib/commonjs/theme/functions/fns/gradient/gradient.js +3 -3
  92. package/lib/commonjs/theme/functions/fns/gradient/gradient.js.map +1 -1
  93. package/lib/commonjs/theme/functions/fns/helpers.js +51 -3
  94. package/lib/commonjs/theme/functions/fns/helpers.js.map +1 -1
  95. package/lib/commonjs/theme/functions/fns/index.js +151 -6
  96. package/lib/commonjs/theme/functions/fns/index.js.map +1 -1
  97. package/lib/commonjs/theme/functions/fns/primary-shade.js +81 -2
  98. package/lib/commonjs/theme/functions/fns/primary-shade.js.map +1 -1
  99. package/lib/commonjs/theme/functions/fns/shadow.js.map +1 -1
  100. package/lib/commonjs/theme/functions/fns/size.js +2 -1
  101. package/lib/commonjs/theme/functions/fns/size.js.map +1 -1
  102. package/lib/commonjs/theme/functions/fns/theme-color/color-utils.js +196 -0
  103. package/lib/commonjs/theme/functions/fns/theme-color/color-utils.js.map +1 -0
  104. package/lib/commonjs/theme/functions/fns/theme-color/theme-color.js +92 -9
  105. package/lib/commonjs/theme/functions/fns/theme-color/theme-color.js.map +1 -1
  106. package/lib/commonjs/theme/functions/fns/variant.js +112 -17
  107. package/lib/commonjs/theme/functions/fns/variant.js.map +1 -1
  108. package/lib/commonjs/theme/functions/index.js +172 -0
  109. package/lib/commonjs/theme/functions/index.js.map +1 -0
  110. package/lib/commonjs/theme/index.js +116 -14
  111. package/lib/commonjs/theme/index.js.map +1 -1
  112. package/lib/commonjs/theme/theme-provider.js +1 -22
  113. package/lib/commonjs/theme/theme-provider.js.map +1 -1
  114. package/lib/commonjs/theme/types.js +6 -0
  115. package/lib/commonjs/theme/types.js.map +1 -0
  116. package/lib/commonjs/theme/utils/withTextWrapper.js +1 -2
  117. package/lib/commonjs/theme/utils/withTextWrapper.js.map +1 -1
  118. package/lib/module/components/ActionIcon/ActionIcon.js +1 -1
  119. package/lib/module/components/ActionIcon/ActionIcon.js.map +1 -1
  120. package/lib/module/components/Anchor/index.js +3 -4
  121. package/lib/module/components/Anchor/index.js.map +1 -1
  122. package/lib/module/components/Avatar/index.js +1 -2
  123. package/lib/module/components/Avatar/index.js.map +1 -1
  124. package/lib/module/components/Badge/index.js +54 -24
  125. package/lib/module/components/Badge/index.js.map +1 -1
  126. package/lib/module/components/Blockquote/index.js +4 -5
  127. package/lib/module/components/Blockquote/index.js.map +1 -1
  128. package/lib/module/components/Button/index.js +7 -1
  129. package/lib/module/components/Button/index.js.map +1 -1
  130. package/lib/module/components/Center/index.js.map +1 -1
  131. package/lib/module/components/Checkbox/index.js +4 -5
  132. package/lib/module/components/Checkbox/index.js.map +1 -1
  133. package/lib/module/components/Chip/index.js +40 -21
  134. package/lib/module/components/Chip/index.js.map +1 -1
  135. package/lib/module/components/Code/index.js +6 -4
  136. package/lib/module/components/Code/index.js.map +1 -1
  137. package/lib/module/components/Grid/index.js +18 -13
  138. package/lib/module/components/Grid/index.js.map +1 -1
  139. package/lib/module/components/Highlight/index.js +1 -1
  140. package/lib/module/components/Highlight/index.js.map +1 -1
  141. package/lib/module/components/Indicator/index.js +2 -3
  142. package/lib/module/components/Indicator/index.js.map +1 -1
  143. package/lib/module/components/LinearGradient/PlatformLinearGradient.js +9 -9
  144. package/lib/module/components/LinearGradient/PlatformLinearGradient.js.map +1 -1
  145. package/lib/module/components/Menu/index.js +4 -5
  146. package/lib/module/components/Menu/index.js.map +1 -1
  147. package/lib/module/components/MultiSelect/index.js +8 -9
  148. package/lib/module/components/MultiSelect/index.js.map +1 -1
  149. package/lib/module/components/NativeSelect/index.js +14 -14
  150. package/lib/module/components/NativeSelect/index.js.map +1 -1
  151. package/lib/module/components/NavLink/index.js +43 -20
  152. package/lib/module/components/NavLink/index.js.map +1 -1
  153. package/lib/module/components/Notification/index.js +5 -6
  154. package/lib/module/components/Notification/index.js.map +1 -1
  155. package/lib/module/components/Pagination/index.js +5 -6
  156. package/lib/module/components/Pagination/index.js.map +1 -1
  157. package/lib/module/components/PinInput/index.js +3 -3
  158. package/lib/module/components/PinInput/index.js.map +1 -1
  159. package/lib/module/components/Progress/index.js +3 -5
  160. package/lib/module/components/Progress/index.js.map +1 -1
  161. package/lib/module/components/Radio/index.js +4 -5
  162. package/lib/module/components/Radio/index.js.map +1 -1
  163. package/lib/module/components/Rating/index.js +2 -4
  164. package/lib/module/components/Rating/index.js.map +1 -1
  165. package/lib/module/components/RingProgress/index.js +3 -4
  166. package/lib/module/components/RingProgress/index.js.map +1 -1
  167. package/lib/module/components/Select/index.js +7 -8
  168. package/lib/module/components/Select/index.js.map +1 -1
  169. package/lib/module/components/SimpleGrid/index.js +4 -2
  170. package/lib/module/components/SimpleGrid/index.js.map +1 -1
  171. package/lib/module/components/Spoiler/index.js +1 -1
  172. package/lib/module/components/Spoiler/index.js.map +1 -1
  173. package/lib/module/components/Stepper/index.js +8 -6
  174. package/lib/module/components/Stepper/index.js.map +1 -1
  175. package/lib/module/components/Switch/index.js +4 -5
  176. package/lib/module/components/Switch/index.js.map +1 -1
  177. package/lib/module/components/Text/index.js +78 -17
  178. package/lib/module/components/Text/index.js.map +1 -1
  179. package/lib/module/components/ThemeIcon/index.js +40 -19
  180. package/lib/module/components/ThemeIcon/index.js.map +1 -1
  181. package/lib/module/components/Timeline/index.js +6 -5
  182. package/lib/module/components/Timeline/index.js.map +1 -1
  183. package/lib/module/components/Title/index.js +5 -17
  184. package/lib/module/components/Title/index.js.map +1 -1
  185. package/lib/module/components/Tooltip/index.js +1 -2
  186. package/lib/module/components/Tooltip/index.js.map +1 -1
  187. package/lib/module/components/TransferList/index.js +9 -10
  188. package/lib/module/components/TransferList/index.js.map +1 -1
  189. package/lib/module/components/UnstyledButton/UnstyledButton.styles.js +2 -2
  190. package/lib/module/components/UnstyledButton/UnstyledButton.styles.js.map +1 -1
  191. package/lib/module/components/index.js +0 -1
  192. package/lib/module/components/index.js.map +1 -1
  193. package/lib/module/index.js +1 -0
  194. package/lib/module/index.js.map +1 -1
  195. package/lib/module/theme/create-theme.js +114 -24
  196. package/lib/module/theme/create-theme.js.map +1 -1
  197. package/lib/module/theme/default-colors.js +99 -0
  198. package/lib/module/theme/default-colors.js.map +1 -0
  199. package/lib/module/theme/default-theme.js +143 -127
  200. package/lib/module/theme/default-theme.js.map +1 -1
  201. package/lib/module/theme/functions/attach-functions.js +47 -14
  202. package/lib/module/theme/functions/attach-functions.js.map +1 -1
  203. package/lib/module/theme/functions/fns/breakpoints.js.map +1 -1
  204. package/lib/module/theme/functions/fns/color-scheme-value.js +180 -0
  205. package/lib/module/theme/functions/fns/color-scheme-value.js.map +1 -0
  206. package/lib/module/theme/functions/fns/dimmed.js.map +1 -1
  207. package/lib/module/theme/functions/fns/gradient/gradient.js +2 -2
  208. package/lib/module/theme/functions/fns/gradient/gradient.js.map +1 -1
  209. package/lib/module/theme/functions/fns/helpers.js +48 -2
  210. package/lib/module/theme/functions/fns/helpers.js.map +1 -1
  211. package/lib/module/theme/functions/fns/index.js +35 -7
  212. package/lib/module/theme/functions/fns/index.js.map +1 -1
  213. package/lib/module/theme/functions/fns/primary-shade.js +78 -2
  214. package/lib/module/theme/functions/fns/primary-shade.js.map +1 -1
  215. package/lib/module/theme/functions/fns/shadow.js.map +1 -1
  216. package/lib/module/theme/functions/fns/size.js +2 -1
  217. package/lib/module/theme/functions/fns/size.js.map +1 -1
  218. package/lib/module/theme/functions/fns/theme-color/color-utils.js +189 -0
  219. package/lib/module/theme/functions/fns/theme-color/color-utils.js.map +1 -0
  220. package/lib/module/theme/functions/fns/theme-color/theme-color.js +91 -9
  221. package/lib/module/theme/functions/fns/theme-color/theme-color.js.map +1 -1
  222. package/lib/module/theme/functions/fns/variant.js +112 -17
  223. package/lib/module/theme/functions/fns/variant.js.map +1 -1
  224. package/lib/module/theme/functions/index.js +22 -0
  225. package/lib/module/theme/functions/index.js.map +1 -0
  226. package/lib/module/theme/index.js +16 -4
  227. package/lib/module/theme/index.js.map +1 -1
  228. package/lib/module/theme/theme-provider.js +1 -22
  229. package/lib/module/theme/theme-provider.js.map +1 -1
  230. package/lib/module/theme/types.js +4 -0
  231. package/lib/module/theme/types.js.map +1 -0
  232. package/lib/module/theme/utils/withTextWrapper.js +1 -2
  233. package/lib/module/theme/utils/withTextWrapper.js.map +1 -1
  234. package/lib/typescript/commonjs/src/components/Anchor/index.d.ts.map +1 -1
  235. package/lib/typescript/commonjs/src/components/Avatar/index.d.ts.map +1 -1
  236. package/lib/typescript/commonjs/src/components/Badge/index.d.ts.map +1 -1
  237. package/lib/typescript/commonjs/src/components/Blockquote/index.d.ts.map +1 -1
  238. package/lib/typescript/commonjs/src/components/Button/Button.styles.d.ts +8 -8
  239. package/lib/typescript/commonjs/src/components/Button/index.d.ts +1 -1
  240. package/lib/typescript/commonjs/src/components/Button/index.d.ts.map +1 -1
  241. package/lib/typescript/commonjs/src/components/Center/index.d.ts +1 -2
  242. package/lib/typescript/commonjs/src/components/Center/index.d.ts.map +1 -1
  243. package/lib/typescript/commonjs/src/components/Checkbox/index.d.ts.map +1 -1
  244. package/lib/typescript/commonjs/src/components/Chip/index.d.ts.map +1 -1
  245. package/lib/typescript/commonjs/src/components/Code/index.d.ts.map +1 -1
  246. package/lib/typescript/commonjs/src/components/ColorSwatch/index.d.ts +1 -1
  247. package/lib/typescript/commonjs/src/components/ColorSwatch/index.d.ts.map +1 -1
  248. package/lib/typescript/commonjs/src/components/Container/index.d.ts +2 -2
  249. package/lib/typescript/commonjs/src/components/Container/index.d.ts.map +1 -1
  250. package/lib/typescript/commonjs/src/components/Flex/index.d.ts +2 -2
  251. package/lib/typescript/commonjs/src/components/Flex/index.d.ts.map +1 -1
  252. package/lib/typescript/commonjs/src/components/Grid/index.d.ts.map +1 -1
  253. package/lib/typescript/commonjs/src/components/Highlight/index.d.ts.map +1 -1
  254. package/lib/typescript/commonjs/src/components/Indicator/index.d.ts.map +1 -1
  255. package/lib/typescript/commonjs/src/components/LinearGradient/PlatformLinearGradient.d.ts +1 -1
  256. package/lib/typescript/commonjs/src/components/Mark/index.d.ts +1 -1
  257. package/lib/typescript/commonjs/src/components/Mark/index.d.ts.map +1 -1
  258. package/lib/typescript/commonjs/src/components/Menu/index.d.ts.map +1 -1
  259. package/lib/typescript/commonjs/src/components/MultiSelect/index.d.ts.map +1 -1
  260. package/lib/typescript/commonjs/src/components/NativeSelect/index.d.ts.map +1 -1
  261. package/lib/typescript/commonjs/src/components/NavLink/index.d.ts.map +1 -1
  262. package/lib/typescript/commonjs/src/components/Notification/index.d.ts.map +1 -1
  263. package/lib/typescript/commonjs/src/components/Pagination/index.d.ts.map +1 -1
  264. package/lib/typescript/commonjs/src/components/PinInput/index.d.ts.map +1 -1
  265. package/lib/typescript/commonjs/src/components/Progress/index.d.ts.map +1 -1
  266. package/lib/typescript/commonjs/src/components/Radio/index.d.ts.map +1 -1
  267. package/lib/typescript/commonjs/src/components/Rating/index.d.ts.map +1 -1
  268. package/lib/typescript/commonjs/src/components/RingProgress/index.d.ts.map +1 -1
  269. package/lib/typescript/commonjs/src/components/Select/index.d.ts.map +1 -1
  270. package/lib/typescript/commonjs/src/components/SimpleGrid/index.d.ts.map +1 -1
  271. package/lib/typescript/commonjs/src/components/Space/index.d.ts +2 -2
  272. package/lib/typescript/commonjs/src/components/Space/index.d.ts.map +1 -1
  273. package/lib/typescript/commonjs/src/components/Switch/index.d.ts.map +1 -1
  274. package/lib/typescript/commonjs/src/components/Text/index.d.ts +54 -7
  275. package/lib/typescript/commonjs/src/components/Text/index.d.ts.map +1 -1
  276. package/lib/typescript/commonjs/src/components/ThemeIcon/index.d.ts.map +1 -1
  277. package/lib/typescript/commonjs/src/components/Timeline/index.d.ts.map +1 -1
  278. package/lib/typescript/commonjs/src/components/Title/index.d.ts +1 -0
  279. package/lib/typescript/commonjs/src/components/Title/index.d.ts.map +1 -1
  280. package/lib/typescript/commonjs/src/components/Tooltip/index.d.ts.map +1 -1
  281. package/lib/typescript/commonjs/src/components/TransferList/index.d.ts.map +1 -1
  282. package/lib/typescript/commonjs/src/components/UnstyledButton/UnstyledButton.styles.d.ts +2 -2
  283. package/lib/typescript/commonjs/src/components/UnstyledButton/UnstyledButton.styles.d.ts.map +1 -1
  284. package/lib/typescript/commonjs/src/components/index.d.ts +0 -1
  285. package/lib/typescript/commonjs/src/components/index.d.ts.map +1 -1
  286. package/lib/typescript/commonjs/src/index.d.ts +1 -1
  287. package/lib/typescript/commonjs/src/index.d.ts.map +1 -1
  288. package/lib/typescript/commonjs/src/theme/create-styles.d.ts +1 -1
  289. package/lib/typescript/commonjs/src/theme/create-styles.d.ts.map +1 -1
  290. package/lib/typescript/commonjs/src/theme/create-theme.d.ts +68 -2
  291. package/lib/typescript/commonjs/src/theme/create-theme.d.ts.map +1 -1
  292. package/lib/typescript/commonjs/src/theme/default-colors.d.ts +12 -0
  293. package/lib/typescript/commonjs/src/theme/default-colors.d.ts.map +1 -0
  294. package/lib/typescript/commonjs/src/theme/default-theme.d.ts +15 -108
  295. package/lib/typescript/commonjs/src/theme/default-theme.d.ts.map +1 -1
  296. package/lib/typescript/commonjs/src/theme/functions/attach-functions.d.ts +20 -1
  297. package/lib/typescript/commonjs/src/theme/functions/attach-functions.d.ts.map +1 -1
  298. package/lib/typescript/commonjs/src/theme/functions/fns/breakpoints.d.ts +3 -3
  299. package/lib/typescript/commonjs/src/theme/functions/fns/breakpoints.d.ts.map +1 -1
  300. package/lib/typescript/commonjs/src/theme/functions/fns/color-scheme-value.d.ts +100 -0
  301. package/lib/typescript/commonjs/src/theme/functions/fns/color-scheme-value.d.ts.map +1 -0
  302. package/lib/typescript/commonjs/src/theme/functions/fns/dimmed.d.ts +2 -2
  303. package/lib/typescript/commonjs/src/theme/functions/fns/dimmed.d.ts.map +1 -1
  304. package/lib/typescript/commonjs/src/theme/functions/fns/gradient/gradient.d.ts +4 -5
  305. package/lib/typescript/commonjs/src/theme/functions/fns/gradient/gradient.d.ts.map +1 -1
  306. package/lib/typescript/commonjs/src/theme/functions/fns/helpers.d.ts +36 -8
  307. package/lib/typescript/commonjs/src/theme/functions/fns/helpers.d.ts.map +1 -1
  308. package/lib/typescript/commonjs/src/theme/functions/fns/index.d.ts +40 -14
  309. package/lib/typescript/commonjs/src/theme/functions/fns/index.d.ts.map +1 -1
  310. package/lib/typescript/commonjs/src/theme/functions/fns/primary-shade.d.ts +53 -3
  311. package/lib/typescript/commonjs/src/theme/functions/fns/primary-shade.d.ts.map +1 -1
  312. package/lib/typescript/commonjs/src/theme/functions/fns/shadow.d.ts +1 -1
  313. package/lib/typescript/commonjs/src/theme/functions/fns/shadow.d.ts.map +1 -1
  314. package/lib/typescript/commonjs/src/theme/functions/fns/size.d.ts +2 -2
  315. package/lib/typescript/commonjs/src/theme/functions/fns/size.d.ts.map +1 -1
  316. package/lib/typescript/commonjs/src/theme/functions/fns/theme-color/color-utils.d.ts +50 -0
  317. package/lib/typescript/commonjs/src/theme/functions/fns/theme-color/color-utils.d.ts.map +1 -0
  318. package/lib/typescript/commonjs/src/theme/functions/fns/theme-color/theme-color.d.ts +51 -5
  319. package/lib/typescript/commonjs/src/theme/functions/fns/theme-color/theme-color.d.ts.map +1 -1
  320. package/lib/typescript/commonjs/src/theme/functions/fns/variant.d.ts +52 -19
  321. package/lib/typescript/commonjs/src/theme/functions/fns/variant.d.ts.map +1 -1
  322. package/lib/typescript/commonjs/src/theme/functions/index.d.ts +19 -0
  323. package/lib/typescript/commonjs/src/theme/functions/index.d.ts.map +1 -0
  324. package/lib/typescript/commonjs/src/theme/index.d.ts +9 -6
  325. package/lib/typescript/commonjs/src/theme/index.d.ts.map +1 -1
  326. package/lib/typescript/commonjs/src/theme/theme-provider.d.ts +1 -1
  327. package/lib/typescript/commonjs/src/theme/theme-provider.d.ts.map +1 -1
  328. package/lib/typescript/commonjs/src/theme/types/DefaultProps.d.ts +2 -2
  329. package/lib/typescript/commonjs/src/theme/types/DefaultProps.d.ts.map +1 -1
  330. package/lib/typescript/commonjs/src/theme/types.d.ts +494 -0
  331. package/lib/typescript/commonjs/src/theme/types.d.ts.map +1 -0
  332. package/lib/typescript/commonjs/src/theme/utils/withTextWrapper.d.ts +1 -1
  333. package/lib/typescript/commonjs/src/theme/utils/withTextWrapper.d.ts.map +1 -1
  334. package/lib/typescript/module/src/components/Anchor/index.d.ts.map +1 -1
  335. package/lib/typescript/module/src/components/Avatar/index.d.ts.map +1 -1
  336. package/lib/typescript/module/src/components/Badge/index.d.ts.map +1 -1
  337. package/lib/typescript/module/src/components/Blockquote/index.d.ts.map +1 -1
  338. package/lib/typescript/module/src/components/Button/Button.styles.d.ts +8 -8
  339. package/lib/typescript/module/src/components/Button/index.d.ts +1 -1
  340. package/lib/typescript/module/src/components/Button/index.d.ts.map +1 -1
  341. package/lib/typescript/module/src/components/Center/index.d.ts +1 -2
  342. package/lib/typescript/module/src/components/Center/index.d.ts.map +1 -1
  343. package/lib/typescript/module/src/components/Checkbox/index.d.ts.map +1 -1
  344. package/lib/typescript/module/src/components/Chip/index.d.ts.map +1 -1
  345. package/lib/typescript/module/src/components/Code/index.d.ts.map +1 -1
  346. package/lib/typescript/module/src/components/ColorSwatch/index.d.ts +1 -1
  347. package/lib/typescript/module/src/components/ColorSwatch/index.d.ts.map +1 -1
  348. package/lib/typescript/module/src/components/Container/index.d.ts +2 -2
  349. package/lib/typescript/module/src/components/Container/index.d.ts.map +1 -1
  350. package/lib/typescript/module/src/components/Flex/index.d.ts +2 -2
  351. package/lib/typescript/module/src/components/Flex/index.d.ts.map +1 -1
  352. package/lib/typescript/module/src/components/Grid/index.d.ts.map +1 -1
  353. package/lib/typescript/module/src/components/Highlight/index.d.ts.map +1 -1
  354. package/lib/typescript/module/src/components/Indicator/index.d.ts.map +1 -1
  355. package/lib/typescript/module/src/components/LinearGradient/PlatformLinearGradient.d.ts +1 -1
  356. package/lib/typescript/module/src/components/Mark/index.d.ts +1 -1
  357. package/lib/typescript/module/src/components/Mark/index.d.ts.map +1 -1
  358. package/lib/typescript/module/src/components/Menu/index.d.ts.map +1 -1
  359. package/lib/typescript/module/src/components/MultiSelect/index.d.ts.map +1 -1
  360. package/lib/typescript/module/src/components/NativeSelect/index.d.ts.map +1 -1
  361. package/lib/typescript/module/src/components/NavLink/index.d.ts.map +1 -1
  362. package/lib/typescript/module/src/components/Notification/index.d.ts.map +1 -1
  363. package/lib/typescript/module/src/components/Pagination/index.d.ts.map +1 -1
  364. package/lib/typescript/module/src/components/PinInput/index.d.ts.map +1 -1
  365. package/lib/typescript/module/src/components/Progress/index.d.ts.map +1 -1
  366. package/lib/typescript/module/src/components/Radio/index.d.ts.map +1 -1
  367. package/lib/typescript/module/src/components/Rating/index.d.ts.map +1 -1
  368. package/lib/typescript/module/src/components/RingProgress/index.d.ts.map +1 -1
  369. package/lib/typescript/module/src/components/Select/index.d.ts.map +1 -1
  370. package/lib/typescript/module/src/components/SimpleGrid/index.d.ts.map +1 -1
  371. package/lib/typescript/module/src/components/Space/index.d.ts +2 -2
  372. package/lib/typescript/module/src/components/Space/index.d.ts.map +1 -1
  373. package/lib/typescript/module/src/components/Switch/index.d.ts.map +1 -1
  374. package/lib/typescript/module/src/components/Text/index.d.ts +54 -7
  375. package/lib/typescript/module/src/components/Text/index.d.ts.map +1 -1
  376. package/lib/typescript/module/src/components/ThemeIcon/index.d.ts.map +1 -1
  377. package/lib/typescript/module/src/components/Timeline/index.d.ts.map +1 -1
  378. package/lib/typescript/module/src/components/Title/index.d.ts +1 -0
  379. package/lib/typescript/module/src/components/Title/index.d.ts.map +1 -1
  380. package/lib/typescript/module/src/components/Tooltip/index.d.ts.map +1 -1
  381. package/lib/typescript/module/src/components/TransferList/index.d.ts.map +1 -1
  382. package/lib/typescript/module/src/components/UnstyledButton/UnstyledButton.styles.d.ts +2 -2
  383. package/lib/typescript/module/src/components/UnstyledButton/UnstyledButton.styles.d.ts.map +1 -1
  384. package/lib/typescript/module/src/components/index.d.ts +0 -1
  385. package/lib/typescript/module/src/components/index.d.ts.map +1 -1
  386. package/lib/typescript/module/src/index.d.ts +1 -1
  387. package/lib/typescript/module/src/index.d.ts.map +1 -1
  388. package/lib/typescript/module/src/theme/create-styles.d.ts +1 -1
  389. package/lib/typescript/module/src/theme/create-styles.d.ts.map +1 -1
  390. package/lib/typescript/module/src/theme/create-theme.d.ts +68 -2
  391. package/lib/typescript/module/src/theme/create-theme.d.ts.map +1 -1
  392. package/lib/typescript/module/src/theme/default-colors.d.ts +12 -0
  393. package/lib/typescript/module/src/theme/default-colors.d.ts.map +1 -0
  394. package/lib/typescript/module/src/theme/default-theme.d.ts +15 -108
  395. package/lib/typescript/module/src/theme/default-theme.d.ts.map +1 -1
  396. package/lib/typescript/module/src/theme/functions/attach-functions.d.ts +20 -1
  397. package/lib/typescript/module/src/theme/functions/attach-functions.d.ts.map +1 -1
  398. package/lib/typescript/module/src/theme/functions/fns/breakpoints.d.ts +3 -3
  399. package/lib/typescript/module/src/theme/functions/fns/breakpoints.d.ts.map +1 -1
  400. package/lib/typescript/module/src/theme/functions/fns/color-scheme-value.d.ts +100 -0
  401. package/lib/typescript/module/src/theme/functions/fns/color-scheme-value.d.ts.map +1 -0
  402. package/lib/typescript/module/src/theme/functions/fns/dimmed.d.ts +2 -2
  403. package/lib/typescript/module/src/theme/functions/fns/dimmed.d.ts.map +1 -1
  404. package/lib/typescript/module/src/theme/functions/fns/gradient/gradient.d.ts +4 -5
  405. package/lib/typescript/module/src/theme/functions/fns/gradient/gradient.d.ts.map +1 -1
  406. package/lib/typescript/module/src/theme/functions/fns/helpers.d.ts +36 -8
  407. package/lib/typescript/module/src/theme/functions/fns/helpers.d.ts.map +1 -1
  408. package/lib/typescript/module/src/theme/functions/fns/index.d.ts +40 -14
  409. package/lib/typescript/module/src/theme/functions/fns/index.d.ts.map +1 -1
  410. package/lib/typescript/module/src/theme/functions/fns/primary-shade.d.ts +53 -3
  411. package/lib/typescript/module/src/theme/functions/fns/primary-shade.d.ts.map +1 -1
  412. package/lib/typescript/module/src/theme/functions/fns/shadow.d.ts +1 -1
  413. package/lib/typescript/module/src/theme/functions/fns/shadow.d.ts.map +1 -1
  414. package/lib/typescript/module/src/theme/functions/fns/size.d.ts +2 -2
  415. package/lib/typescript/module/src/theme/functions/fns/size.d.ts.map +1 -1
  416. package/lib/typescript/module/src/theme/functions/fns/theme-color/color-utils.d.ts +50 -0
  417. package/lib/typescript/module/src/theme/functions/fns/theme-color/color-utils.d.ts.map +1 -0
  418. package/lib/typescript/module/src/theme/functions/fns/theme-color/theme-color.d.ts +51 -5
  419. package/lib/typescript/module/src/theme/functions/fns/theme-color/theme-color.d.ts.map +1 -1
  420. package/lib/typescript/module/src/theme/functions/fns/variant.d.ts +52 -19
  421. package/lib/typescript/module/src/theme/functions/fns/variant.d.ts.map +1 -1
  422. package/lib/typescript/module/src/theme/functions/index.d.ts +19 -0
  423. package/lib/typescript/module/src/theme/functions/index.d.ts.map +1 -0
  424. package/lib/typescript/module/src/theme/index.d.ts +9 -6
  425. package/lib/typescript/module/src/theme/index.d.ts.map +1 -1
  426. package/lib/typescript/module/src/theme/theme-provider.d.ts +1 -1
  427. package/lib/typescript/module/src/theme/theme-provider.d.ts.map +1 -1
  428. package/lib/typescript/module/src/theme/types/DefaultProps.d.ts +2 -2
  429. package/lib/typescript/module/src/theme/types/DefaultProps.d.ts.map +1 -1
  430. package/lib/typescript/module/src/theme/types.d.ts +494 -0
  431. package/lib/typescript/module/src/theme/types.d.ts.map +1 -0
  432. package/lib/typescript/module/src/theme/utils/withTextWrapper.d.ts +1 -1
  433. package/lib/typescript/module/src/theme/utils/withTextWrapper.d.ts.map +1 -1
  434. package/package.json +2 -4
  435. package/src/components/ActionIcon/ActionIcon.tsx +3 -3
  436. package/src/components/Anchor/index.tsx +3 -4
  437. package/src/components/Avatar/index.tsx +1 -2
  438. package/src/components/Badge/index.tsx +36 -19
  439. package/src/components/Blockquote/index.tsx +4 -6
  440. package/src/components/Button/index.tsx +6 -2
  441. package/src/components/Center/index.tsx +1 -2
  442. package/src/components/Checkbox/index.tsx +4 -5
  443. package/src/components/Chip/index.tsx +25 -18
  444. package/src/components/Code/index.tsx +7 -5
  445. package/src/components/ColorSwatch/index.tsx +1 -1
  446. package/src/components/Container/index.tsx +2 -2
  447. package/src/components/Flex/index.tsx +2 -2
  448. package/src/components/Grid/index.tsx +16 -10
  449. package/src/components/Highlight/index.tsx +1 -2
  450. package/src/components/Indicator/index.tsx +3 -4
  451. package/src/components/LinearGradient/PlatformLinearGradient.tsx +9 -9
  452. package/src/components/Mark/index.tsx +1 -1
  453. package/src/components/Menu/index.tsx +8 -10
  454. package/src/components/MultiSelect/index.tsx +13 -15
  455. package/src/components/NativeSelect/index.tsx +34 -21
  456. package/src/components/NavLink/index.tsx +27 -23
  457. package/src/components/Notification/index.tsx +5 -6
  458. package/src/components/Pagination/index.tsx +5 -6
  459. package/src/components/PinInput/index.tsx +5 -6
  460. package/src/components/Progress/index.tsx +5 -6
  461. package/src/components/Radio/index.tsx +4 -5
  462. package/src/components/Rating/index.tsx +2 -4
  463. package/src/components/RingProgress/index.tsx +3 -5
  464. package/src/components/Select/index.tsx +11 -13
  465. package/src/components/SimpleGrid/index.tsx +5 -2
  466. package/src/components/Space/index.tsx +2 -2
  467. package/src/components/Spoiler/index.tsx +1 -1
  468. package/src/components/Stepper/index.tsx +17 -17
  469. package/src/components/Switch/index.tsx +5 -6
  470. package/src/components/Text/index.tsx +125 -28
  471. package/src/components/ThemeIcon/index.tsx +23 -23
  472. package/src/components/Timeline/index.tsx +12 -15
  473. package/src/components/Title/index.tsx +5 -22
  474. package/src/components/Tooltip/index.tsx +1 -3
  475. package/src/components/TransferList/index.tsx +16 -18
  476. package/src/components/UnstyledButton/UnstyledButton.styles.ts +4 -2
  477. package/src/components/index.tsx +0 -1
  478. package/src/index.tsx +1 -1
  479. package/src/theme/create-styles.ts +1 -1
  480. package/src/theme/create-theme.ts +134 -23
  481. package/src/theme/default-colors.ts +252 -0
  482. package/src/theme/default-theme.ts +178 -392
  483. package/src/theme/functions/attach-functions.ts +57 -10
  484. package/src/theme/functions/fns/breakpoints.ts +4 -4
  485. package/src/theme/functions/fns/color-scheme-value.ts +200 -0
  486. package/src/theme/functions/fns/dimmed.ts +2 -2
  487. package/src/theme/functions/fns/gradient/gradient.ts +4 -5
  488. package/src/theme/functions/fns/helpers.ts +50 -9
  489. package/src/theme/functions/fns/index.ts +63 -3
  490. package/src/theme/functions/fns/primary-shade.ts +84 -8
  491. package/src/theme/functions/fns/shadow.ts +1 -1
  492. package/src/theme/functions/fns/size.ts +4 -3
  493. package/src/theme/functions/fns/theme-color/color-utils.ts +193 -0
  494. package/src/theme/functions/fns/theme-color/theme-color.ts +85 -17
  495. package/src/theme/functions/fns/variant.ts +106 -44
  496. package/src/theme/functions/index.ts +19 -0
  497. package/src/theme/index.ts +91 -0
  498. package/src/theme/theme-provider.tsx +2 -17
  499. package/src/theme/types/DefaultProps.ts +3 -3
  500. package/src/theme/types.ts +625 -0
  501. package/src/theme/utils/withTextWrapper.tsx +2 -3
  502. package/lib/commonjs/components/Slider/index.js +0 -300
  503. package/lib/commonjs/components/Slider/index.js.map +0 -1
  504. package/lib/module/components/Slider/index.js +0 -295
  505. package/lib/module/components/Slider/index.js.map +0 -1
  506. package/lib/typescript/commonjs/src/components/Slider/index.d.ts +0 -43
  507. package/lib/typescript/commonjs/src/components/Slider/index.d.ts.map +0 -1
  508. package/lib/typescript/module/src/components/Slider/index.d.ts +0 -43
  509. package/lib/typescript/module/src/components/Slider/index.d.ts.map +0 -1
  510. package/src/components/Slider/index.tsx +0 -349
  511. package/src/theme/index.tsx +0 -9
@@ -0,0 +1,193 @@
1
+ /**
2
+ * Color utility functions for custom color support
3
+ * Handles detection and manipulation of custom hex/rgb/rgba colors
4
+ */
5
+
6
+ /**
7
+ * Check if a color string is a custom color value (not a palette key)
8
+ *
9
+ * Custom colors include:
10
+ * - Hex colors: #fff, #ffffff
11
+ * - RGB colors: rgb(255, 255, 255)
12
+ * - RGBA colors: rgba(255, 255, 255, 0.5)
13
+ * - HSL colors: hsl(0, 100%, 50%)
14
+ * - HSLA colors: hsla(0, 100%, 50%, 0.5)
15
+ * - CSS named colors like 'transparent', 'currentColor'
16
+ *
17
+ * @param color - Color string to check
18
+ * @returns true if color is a custom value, false if it might be a palette key
19
+ */
20
+ export function isCustomColor(color: string): boolean {
21
+ if (!color || typeof color !== 'string') {
22
+ return false;
23
+ }
24
+
25
+ // Check for hex colors
26
+ if (color.startsWith('#')) {
27
+ return true;
28
+ }
29
+
30
+ // Check for rgb/rgba colors
31
+ if (color.startsWith('rgb')) {
32
+ return true;
33
+ }
34
+
35
+ // Check for hsl/hsla colors
36
+ if (color.startsWith('hsl')) {
37
+ return true;
38
+ }
39
+
40
+ // Check for CSS keywords
41
+ if (color === 'transparent' || color === 'currentColor') {
42
+ return true;
43
+ }
44
+
45
+ // Otherwise, assume it's a palette key or CSS named color
46
+ return false;
47
+ }
48
+
49
+ /**
50
+ * Generate a lighter shade of a custom color
51
+ * Used when shade 0-5 is requested for custom colors
52
+ *
53
+ * @param color - Base color (hex or rgb) - treated as shade 6
54
+ * @param shadeIndex - Shade index (0-5)
55
+ * @returns Lighter color string
56
+ */
57
+ export function generateLighterShade(color: string, shadeIndex: number): string {
58
+ // For shades 0-5, lighten the color (base is shade 6)
59
+ // shade 0 = lightest (90% lighter), shade 5 = slightly lighter (15% lighter)
60
+ const lightenAmount = (6 - shadeIndex) * 0.15; // 0.9 to 0.15
61
+
62
+ // Use the lighten algorithm from lighten.ts
63
+ const rgba = parseColorToRgba(color);
64
+ if (!rgba) return color;
65
+
66
+ const { r, g, b, a } = rgba;
67
+ const light = (input: number) => Math.round(input + (255 - input) * lightenAmount);
68
+
69
+ return `rgba(${light(r)}, ${light(g)}, ${light(b)}, ${a})`;
70
+ }
71
+
72
+ /**
73
+ * Generate a darker shade of a custom color
74
+ * Used when shade 7-9 is requested for custom colors
75
+ *
76
+ * @param color - Base color (hex or rgb) - treated as shade 6
77
+ * @param shadeIndex - Shade index (7-9)
78
+ * @returns Darker color string
79
+ */
80
+ export function generateDarkerShade(color: string, shadeIndex: number): string {
81
+ // For shades 7-9, darken the color (base is shade 6)
82
+ // shade 7 = slightly darker (10% darker), shade 9 = darkest (30% darker)
83
+ const darkenAmount = (shadeIndex - 6) * 0.1; // 0.1 to 0.3
84
+
85
+ // Use the darken algorithm from darken.ts
86
+ const rgba = parseColorToRgba(color);
87
+ if (!rgba) return color;
88
+
89
+ const { r, g, b, a } = rgba;
90
+ const f = 1 - darkenAmount;
91
+ const dark = (input: number) => Math.round(input * f);
92
+
93
+ return `rgba(${dark(r)}, ${dark(g)}, ${dark(b)}, ${a})`;
94
+ }
95
+
96
+ /**
97
+ * Get a shade variation of a custom color
98
+ *
99
+ * For custom colors, we treat shade 6 as the base color (no modification).
100
+ * This aligns with the default primaryShade for light mode.
101
+ * Shades 0-5 are lighter, shades 7-9 are darker.
102
+ *
103
+ * @param color - Base color (hex or rgb)
104
+ * @param shade - Shade index (0-9), where 6 is the base color
105
+ * @returns Color at the requested shade
106
+ */
107
+ export function getCustomColorShade(color: string, shade: number): string {
108
+ // Shade 6 is treated as the base color (most common primaryShade for light mode)
109
+ if (shade === 6) {
110
+ return color;
111
+ }
112
+
113
+ // Lighter shades (0-5)
114
+ if (shade < 6) {
115
+ return generateLighterShade(color, shade);
116
+ }
117
+
118
+ // Darker shades (7-9)
119
+ return generateDarkerShade(color, shade);
120
+ }
121
+
122
+ /**
123
+ * Parse color string to RGBA object
124
+ * Supports hex and rgb/rgba formats
125
+ */
126
+ interface RGBA {
127
+ r: number;
128
+ g: number;
129
+ b: number;
130
+ a: number;
131
+ }
132
+
133
+ function parseColorToRgba(color: string): RGBA | null {
134
+ // Handle hex colors
135
+ if (color.startsWith('#')) {
136
+ return hexToRgba(color);
137
+ }
138
+
139
+ // Handle rgb/rgba colors
140
+ if (color.startsWith('rgb')) {
141
+ return rgbStringToRgba(color);
142
+ }
143
+
144
+ return null;
145
+ }
146
+
147
+ function isHexColor(hex: string): boolean {
148
+ const HEX_REGEXP = /^#?([0-9A-F]{3}){1,2}$/i;
149
+ return HEX_REGEXP.test(hex);
150
+ }
151
+
152
+ function hexToRgba(color: string): RGBA | null {
153
+ if (!isHexColor(color)) {
154
+ return null;
155
+ }
156
+
157
+ let hexString = color.replace('#', '');
158
+
159
+ // Handle shorthand hex (#fff -> #ffffff)
160
+ if (hexString.length === 3) {
161
+ const shorthandHex = hexString.split('');
162
+ hexString = [
163
+ shorthandHex[0],
164
+ shorthandHex[0],
165
+ shorthandHex[1],
166
+ shorthandHex[1],
167
+ shorthandHex[2],
168
+ shorthandHex[2],
169
+ ].join('');
170
+ }
171
+
172
+ const parsed = parseInt(hexString, 16);
173
+ const r = (parsed >> 16) & 255;
174
+ const g = (parsed >> 8) & 255;
175
+ const b = parsed & 255;
176
+
177
+ return { r, g, b, a: 1 };
178
+ }
179
+
180
+ function rgbStringToRgba(color: string): RGBA | null {
181
+ const parts = color.replace(/[^0-9,.]/g, '').split(',').map(Number);
182
+
183
+ if (parts.length < 3) {
184
+ return null;
185
+ }
186
+
187
+ const r = parts[0] || 0;
188
+ const g = parts[1] || 0;
189
+ const b = parts[2] || 0;
190
+ const a = parts[3] !== undefined ? parts[3] : 1;
191
+
192
+ return { r, g, b, a };
193
+ }
@@ -1,38 +1,106 @@
1
- import type { MantineTheme } from '../../../default-theme';
2
- import type { MantineColor } from '../../../types';
1
+ /**
2
+ * Theme color helper function
3
+ * Retrieves colors from theme palette with proper shade handling
4
+ * Aligned with Mantine web's themeColor implementation
5
+ *
6
+ * Now supports custom color values (hex, rgb, rgba) that are not in the theme palette.
7
+ * Custom colors can be shaded on the fly using color manipulation algorithms.
8
+ */
9
+
10
+ import type { MantineThemeBase, MantineColor, Shade } from '../../../types';
3
11
  import { getPrimaryShade } from '../primary-shade';
12
+ import { isCustomColor, getCustomColorShade } from './color-utils';
4
13
 
5
14
  export interface ThemeColorInput {
6
- theme: MantineTheme;
15
+ theme: MantineThemeBase;
7
16
  color: MantineColor;
8
- shade?: number;
17
+ shade?: Shade;
18
+ primaryFallback?: boolean;
9
19
  }
10
20
 
11
- export function themeColor({ theme, color, shade }: ThemeColorInput): string {
21
+ /**
22
+ * Get a color value from the theme
23
+ *
24
+ * @param theme - Mantine theme object
25
+ * @param color - Color name or CSS color value (now supports hex/rgb/rgba)
26
+ * @param shade - Optional shade (0-9). If not provided, uses primaryShade
27
+ * @param primaryFallback - If true and color not found, falls back to primary color
28
+ * @returns Color string value
29
+ *
30
+ * @example
31
+ * // Get blue at primary shade (6 for light mode, 8 for dark mode)
32
+ * themeColor({ theme, color: 'blue' })
33
+ *
34
+ * @example
35
+ * // Get blue at specific shade
36
+ * themeColor({ theme, color: 'blue', shade: 5 })
37
+ *
38
+ * @example
39
+ * // Pass through CSS color values
40
+ * themeColor({ theme, color: '#ff0000' }) // returns '#ff0000'
41
+ *
42
+ * @example
43
+ * // Use custom hex color with shade
44
+ * themeColor({ theme, color: '#FF5733', shade: 7 }) // returns darker version
45
+ *
46
+ * @example
47
+ * // Use custom rgb color with shade
48
+ * themeColor({ theme, color: 'rgb(255, 87, 51)', shade: 3 }) // returns lighter version
49
+ *
50
+ * @example
51
+ * // Use primary color fallback
52
+ * themeColor({ theme, color: 'unknown', primaryFallback: true })
53
+ */
54
+ export function themeColor({
55
+ theme,
56
+ color,
57
+ shade,
58
+ primaryFallback = false,
59
+ }: ThemeColorInput): string {
60
+ // Handle undefined/null color
12
61
  if (!color) {
13
- return '';
62
+ return primaryFallback ? themeColor({ theme, color: theme.primaryColor, shade }) : '';
14
63
  }
15
64
 
16
- // If it's a hex/rgb color, return as is
17
- if (
18
- color.startsWith('#') ||
19
- color.startsWith('rgb') ||
20
- color.startsWith('hsl')
21
- ) {
65
+ // Check if this is a custom color value (hex, rgb, rgba, etc.)
66
+ if (isCustomColor(color)) {
67
+ // If shade is specified, generate a shade variation
68
+ if (shade !== undefined) {
69
+ return getCustomColorShade(color, shade);
70
+ }
71
+ // Otherwise return the color as-is
22
72
  return color;
23
73
  }
24
74
 
25
- // Get from theme colors
75
+ // Get color palette from theme
26
76
  const colorPalette = theme.colors[color];
27
77
 
78
+ // If color not in palette
28
79
  if (!colorPalette) {
29
- // If color not in palette, return as is (might be a CSS color name)
80
+ // Try primary fallback if enabled
81
+ if (primaryFallback && color !== theme.primaryColor) {
82
+ return themeColor({ theme, color: theme.primaryColor, shade });
83
+ }
84
+ // Otherwise return the color string as-is (might be a named CSS color)
30
85
  return color;
31
86
  }
32
87
 
33
- // Use provided shade or get from theme based on color scheme
88
+ // Determine which shade to use
34
89
  const colorShade = shade !== undefined ? shade : getPrimaryShade(theme);
35
90
 
36
- // Return the color at the specified shade
37
- return colorPalette[colorShade] || colorPalette[0] || color;
91
+ // Get the color at the specified shade
92
+ const resolvedColor = colorPalette[colorShade];
93
+
94
+ // Return the color or fall back to first shade
95
+ return resolvedColor || colorPalette[0] || color;
96
+ }
97
+
98
+ /**
99
+ * Curried version of themeColor for use with theme.fn
100
+ * @internal
101
+ */
102
+ export function createThemeColorFunction(theme: MantineThemeBase) {
103
+ return (color: MantineColor, shade?: Shade, primaryFallback?: boolean): string => {
104
+ return themeColor({ theme, color, shade, primaryFallback });
105
+ };
38
106
  }
@@ -1,58 +1,88 @@
1
- import type { MantineTheme } from '../../default-theme';
2
- import type { MantineColor } from '../../types';
1
+ /**
2
+ * Variant styles generator
3
+ * Creates component variant styles for React Native
4
+ * Aligned with Mantine web's variant system
5
+ *
6
+ * Now supports custom color values (hex, rgb, rgba) in addition to theme palette colors.
7
+ * Custom colors are automatically shaded using color manipulation algorithms.
8
+ */
9
+
10
+ import type { MantineThemeBase, Shade, MantineColor, VariantInput, VariantOutput } from '../../types';
3
11
  import { themeColor } from './theme-color/theme-color';
4
12
  import { getPrimaryShade } from './primary-shade';
5
13
 
6
- export interface VariantInput {
7
- variant:
8
- | 'filled'
9
- | 'outline'
10
- | 'light'
11
- | 'white'
12
- | 'default'
13
- | 'subtle'
14
- | 'gradient';
15
- color?: MantineColor;
16
- gradient?: { from: string; to: string; deg?: number };
17
- primaryFallback?: boolean;
18
- }
19
-
20
- export interface VariantOutput {
21
- background: string;
22
- color: string;
23
- border: string;
24
- hover?: string;
25
- }
26
-
27
- export const variant = (theme: MantineTheme) => (input: VariantInput): VariantOutput => {
28
- const {
29
- variant,
30
- color = theme.primaryColor,
31
- } = input;
14
+ /**
15
+ * Generate variant styles for components
16
+ *
17
+ * Supports the following variants:
18
+ * - filled: Filled background with primary color
19
+ * - light: Light background with colored text
20
+ * - outline: Transparent background with colored border
21
+ * - subtle: Transparent background with colored text
22
+ * - white: White background (useful for dark mode)
23
+ * - default: Default gray background
24
+ * - gradient: Transparent background for gradient overlays
25
+ * - transparent: Fully transparent
26
+ *
27
+ * @param theme - Mantine theme object
28
+ * @param input - Variant configuration
29
+ * @returns Style object with background, color, border, and optional hover
30
+ *
31
+ * @example
32
+ * // Filled variant with blue color
33
+ * variant(theme)({ variant: 'filled', color: 'blue' })
34
+ * // Returns: { background: '#228be6', color: '#fff', border: '#228be6' }
35
+ *
36
+ * @example
37
+ * // Light variant with red color
38
+ * variant(theme)({ variant: 'light', color: 'red' })
39
+ * // Returns: { background: '#fff5f5', color: '#f03e3e', border: 'transparent' }
40
+ *
41
+ * @example
42
+ * // Filled variant with custom hex color
43
+ * variant(theme)({ variant: 'filled', color: '#FF5733' })
44
+ * // Returns: { background: '#FF5733', color: '#fff', border: '#FF5733', hover: darker('#FF5733') }
45
+ *
46
+ * @example
47
+ * // Light variant with custom rgb color
48
+ * variant(theme)({ variant: 'light', color: 'rgb(255, 87, 51)' })
49
+ * // Returns: { background: lighter('rgb(...)'), color: darker('rgb(...)'), border: 'transparent' }
50
+ */
51
+ export const variant = (theme: MantineThemeBase) => (input: VariantInput): VariantOutput => {
52
+ const { variant, color = theme.primaryColor, primaryFallback = false } = input;
32
53
 
33
54
  const primaryShade = getPrimaryShade(theme);
34
- const getColor = (c: string, shade: number) => themeColor({ theme, color: c, shade });
55
+
56
+ /**
57
+ * Helper to get color at specific shade
58
+ */
59
+ const getColor = (c: MantineColor, shade: Shade) =>
60
+ themeColor({ theme, color: c, shade, primaryFallback });
35
61
 
36
62
  switch (variant) {
63
+ // Filled variant - solid background with white text
37
64
  case 'filled': {
38
65
  const filledColor = getColor(color, primaryShade);
39
66
  return {
40
67
  background: filledColor,
41
- color: '#fff',
68
+ color: theme.white,
42
69
  border: filledColor,
43
- hover: getColor(color, primaryShade > 0 ? primaryShade + 1 : primaryShade),
70
+ hover: getColor(color, Math.min(primaryShade + 1, 9) as Shade),
44
71
  };
45
72
  }
46
73
 
74
+ // Light variant - light background with colored text
47
75
  case 'light': {
76
+ const textShade = primaryShade > 6 ? primaryShade : 7;
48
77
  return {
49
78
  background: getColor(color, 0),
50
- color: getColor(color, primaryShade > 6 ? primaryShade : 7),
79
+ color: getColor(color, textShade),
51
80
  border: 'transparent',
52
81
  hover: getColor(color, 1),
53
82
  };
54
83
  }
55
84
 
85
+ // Outline variant - transparent with colored border and text
56
86
  case 'outline': {
57
87
  const outlineColor = getColor(color, primaryShade);
58
88
  return {
@@ -63,6 +93,7 @@ export const variant = (theme: MantineTheme) => (input: VariantInput): VariantOu
63
93
  };
64
94
  }
65
95
 
96
+ // Subtle variant - transparent with colored text
66
97
  case 'subtle': {
67
98
  return {
68
99
  background: 'transparent',
@@ -72,41 +103,72 @@ export const variant = (theme: MantineTheme) => (input: VariantInput): VariantOu
72
103
  };
73
104
  }
74
105
 
106
+ // White variant - white background with colored text
75
107
  case 'white': {
76
108
  return {
77
- background: '#fff',
109
+ background: theme.white,
78
110
  color: getColor(color, primaryShade),
79
- border: '#fff',
80
- hover: '#f8f9fa',
111
+ border: theme.white,
112
+ hover: theme.colors.gray?.[0] || '#f8f9fa',
81
113
  };
82
114
  }
83
115
 
116
+ // Default variant - gray background
84
117
  case 'default': {
118
+ const isDark = theme.colorScheme === 'dark';
119
+
120
+ if (isDark) {
121
+ return {
122
+ background: theme.colors.dark?.[6] || '#25262b',
123
+ color: theme.white,
124
+ border: theme.colors.dark?.[4] || '#373A40',
125
+ hover: theme.colors.dark?.[5] || '#2C2E33',
126
+ };
127
+ }
128
+
85
129
  return {
86
- background: theme.light.background,
87
- color: theme.light.text,
130
+ background: theme.white,
131
+ color: theme.black,
88
132
  border: theme.colors.gray?.[4] || '#ced4da',
89
133
  hover: theme.colors.gray?.[0] || '#f8f9fa',
90
134
  };
91
135
  }
92
136
 
137
+ // Gradient variant - transparent background for gradient overlays
138
+ // The actual gradient rendering is handled by LinearGradient component
93
139
  case 'gradient': {
94
- // For gradient variant, return transparent background
95
- // The actual gradient rendering is handled by LinearGradient component
96
- // We just need to provide the text color and border
97
140
  return {
98
141
  background: 'transparent',
99
- color: '#fff',
142
+ color: theme.white,
143
+ border: 'transparent',
144
+ };
145
+ }
146
+
147
+ // Transparent variant - fully transparent
148
+ case 'transparent': {
149
+ return {
150
+ background: 'transparent',
151
+ color: getColor(color, primaryShade),
100
152
  border: 'transparent',
101
153
  };
102
154
  }
103
155
 
156
+ // Default fallback - same as filled variant
104
157
  default: {
158
+ const filledColor = getColor(color, primaryShade);
105
159
  return {
106
- background: getColor(color, primaryShade),
107
- color: '#fff',
108
- border: getColor(color, primaryShade),
160
+ background: filledColor,
161
+ color: theme.white,
162
+ border: filledColor,
109
163
  };
110
164
  }
111
165
  }
166
+ };
167
+
168
+ /**
169
+ * Curried version of variant for use with theme.fn
170
+ * @internal
171
+ */
172
+ export function createVariantFunction(theme: MantineThemeBase) {
173
+ return variant(theme);
112
174
  }
@@ -0,0 +1,19 @@
1
+ /**
2
+ * Theme functions module
3
+ * Exports all theme-related utilities and functions
4
+ */
5
+
6
+ export { attachFunctions } from './attach-functions';
7
+ export * from './fns';
8
+ export * from './fns/primary-shade';
9
+ export * from './fns/theme-color/theme-color';
10
+ export * from './fns/variant';
11
+ export * from './fns/rgba';
12
+ export * from './fns/radius';
13
+ export * from './fns/size';
14
+ export * from './fns/shadow';
15
+ export * from './fns/gradient/gradient';
16
+ export * from './fns/lighten';
17
+ export * from './fns/darken';
18
+ export * from './fns/dimmed';
19
+ export * from './fns/breakpoints';
@@ -0,0 +1,91 @@
1
+ /**
2
+ * Mantine React Native Theme System
3
+ * Main export file for theme-related types and utilities
4
+ */
5
+
6
+ // Type exports
7
+ export type {
8
+ // Color types
9
+ Shade,
10
+ MantineColorsTuple,
11
+ DefaultMantineColor,
12
+ MantineColor,
13
+ MantineThemeColors,
14
+ MantinePrimaryShade,
15
+ ColorScheme,
16
+ ColorSchemeValue,
17
+ ResolveColorSchemeValue,
18
+
19
+ // Size types
20
+ MantineSize,
21
+ MantineNumberSize,
22
+ MantineSizes,
23
+
24
+ // Gradient types
25
+ MantineGradient,
26
+ GradientConfig,
27
+
28
+ // Typography types
29
+ FontWeights,
30
+ HeadingStyle,
31
+ MantineHeadings,
32
+
33
+ // Shadow types
34
+ IOSShadow,
35
+ AndroidShadow,
36
+ MantineShadow,
37
+ MantineShadows,
38
+
39
+ // Variant types
40
+ MantineVariant,
41
+ VariantInput,
42
+ VariantOutput,
43
+
44
+ // Theme types
45
+ ThemeComponent,
46
+ MantineThemeComponents,
47
+ MantineThemeFunctions,
48
+ MantineTheme,
49
+ MantineThemeBase,
50
+ MantineThemeOverride,
51
+
52
+ // Utility types
53
+ DeepPartial,
54
+ ThemeableStyleProps,
55
+ SpacingValue,
56
+ Variants,
57
+ DefaultProps,
58
+ } from './types';
59
+
60
+ // Theme exports
61
+ export { DEFAULT_COLORS } from './default-colors';
62
+ export { DEFAULT_THEME, _DEFAULT_THEME } from './default-theme';
63
+ export { createTheme } from './create-theme';
64
+
65
+ // Function exports
66
+ export {
67
+ attachFunctions,
68
+ getPrimaryShade,
69
+ getPrimaryColor,
70
+ themeColor,
71
+ variant,
72
+ rgba,
73
+ radius,
74
+ size,
75
+ shadow,
76
+ gradient,
77
+ lighten,
78
+ darken,
79
+ dimmed,
80
+ largerThan,
81
+ smallerThan,
82
+ colorSchemeValue,
83
+ resolveColorSchemeValue,
84
+ resolveColorSchemeConstants,
85
+ isColorSchemeValue,
86
+ } from './functions';
87
+
88
+ // Utility exports
89
+ export { createStyles } from './create-styles';
90
+ export { filterProps } from './filter-props';
91
+ export { getSize } from './get-size';
@@ -1,4 +1,3 @@
1
- import { get } from 'lodash-es';
2
1
  import React, {
3
2
  createContext,
4
3
  useContext,
@@ -13,9 +12,8 @@ import type { ColorSchemeName } from 'react-native';
13
12
  import type { ReactNode } from 'react';
14
13
 
15
14
  import { Layout } from './constants';
16
- import type { MantineTheme } from './default-theme';
15
+ import type { MantineTheme } from './types';
17
16
  import { createTheme } from './create-theme';
18
- import { getPrimaryShade } from './functions/fns/primary-shade';
19
17
 
20
18
  import { filterProps } from './filter-props';
21
19
  import useCachedResources from '../hooks/useCachedResources';
@@ -37,7 +35,6 @@ export const ThemeProvider = ({
37
35
  theme: MantineTheme;
38
36
  forceMode?: 'light' | 'dark';
39
37
  }): React.ReactElement => {
40
- const { colors, primaryColor, secondaryColor } = theme;
41
38
  const systemDarkMode = Appearance.getColorScheme();
42
39
  const [currentMode, setCurrentMode] = useState<'light' | 'dark'>(
43
40
  forceMode || systemDarkMode || 'light'
@@ -60,21 +57,9 @@ export const ThemeProvider = ({
60
57
  }, [currentMode]);
61
58
 
62
59
  const memoValue = useMemo(() => {
63
- const darkTheme = {
64
- light: theme.dark,
65
- dark: theme.light,
66
- };
67
-
68
- // Get the primary shade for the current mode
69
- const themeWithMode = { ...theme, currentMode };
70
- const shade = getPrimaryShade(themeWithMode);
71
-
72
60
  return {
73
61
  ...theme,
74
- primaryTextColor: get(colors, `${primaryColor}.${shade}`, 'black'),
75
- primaryBgColor: get(colors, `${primaryColor}.${shade}`),
76
- secondaryBgColor: get(colors, `${secondaryColor}.0`),
77
- ...(currentMode === 'dark' ? darkTheme : {}),
62
+ colorScheme: currentMode,
78
63
  window: Layout.window,
79
64
  isSmallDevice: Layout.isSmallDevice,
80
65
  screen: Layout.screen,