@korsolutions/ui 0.0.84 → 0.0.86

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 (467) hide show
  1. package/AGENTS.md +3 -3
  2. package/dist/module/components/alert/components/alert-description.js.map +1 -1
  3. package/dist/module/components/alert/components/alert-icon.js.map +1 -1
  4. package/dist/module/components/alert/components/alert-root.js +7 -3
  5. package/dist/module/components/alert/components/alert-root.js.map +1 -1
  6. package/dist/module/components/alert-dialog/async-alert-dialog.js.map +1 -1
  7. package/dist/module/components/alert-dialog/components/alert-dialog-root.js +7 -3
  8. package/dist/module/components/alert-dialog/components/alert-dialog-root.js.map +1 -1
  9. package/dist/module/components/alert-dialog/variants/default.js +93 -85
  10. package/dist/module/components/alert-dialog/variants/default.js.map +1 -1
  11. package/dist/module/components/avatar/components/avatar-image.js.map +1 -1
  12. package/dist/module/components/avatar/components/avatar-root.js +7 -3
  13. package/dist/module/components/avatar/components/avatar-root.js.map +1 -1
  14. package/dist/module/components/badge/badge.js +11 -4
  15. package/dist/module/components/badge/badge.js.map +1 -1
  16. package/dist/module/components/button/button.js +7 -3
  17. package/dist/module/components/button/button.js.map +1 -1
  18. package/dist/module/components/button/variants/default.js +48 -44
  19. package/dist/module/components/button/variants/default.js.map +1 -1
  20. package/dist/module/components/button/variants/ghost.js +64 -60
  21. package/dist/module/components/button/variants/ghost.js.map +1 -1
  22. package/dist/module/components/button/variants/secondary.js +66 -62
  23. package/dist/module/components/button/variants/secondary.js.map +1 -1
  24. package/dist/module/components/calendar/calendar/calendar-root.js +6 -2
  25. package/dist/module/components/calendar/calendar/calendar-root.js.map +1 -1
  26. package/dist/module/components/calendar/calendar/calendar-weeks.js +6 -9
  27. package/dist/module/components/calendar/calendar/calendar-weeks.js.map +1 -1
  28. package/dist/module/components/calendar/shared/calendar-context.js.map +1 -1
  29. package/dist/module/components/calendar/shared/calendar-day.js.map +1 -1
  30. package/dist/module/components/calendar/shared/calendar-header.js.map +1 -1
  31. package/dist/module/components/calendar/shared/calendar-nav-buttons.js +4 -4
  32. package/dist/module/components/calendar/shared/calendar-nav-buttons.js.map +1 -1
  33. package/dist/module/components/calendar/shared/calendar-title.js.map +1 -1
  34. package/dist/module/components/calendar/shared/calendar-week-labels.js.map +1 -1
  35. package/dist/module/components/calendar/timeline/calendar-timeline.js.map +1 -1
  36. package/dist/module/components/calendar/week-calendar/week-calendar.js +4 -4
  37. package/dist/module/components/calendar/week-calendar/week-calendar.js.map +1 -1
  38. package/dist/module/components/card/card-root.js +6 -3
  39. package/dist/module/components/card/card-root.js.map +1 -1
  40. package/dist/module/components/checkbox/components/checkbox-root.js +7 -3
  41. package/dist/module/components/checkbox/components/checkbox-root.js.map +1 -1
  42. package/dist/module/components/combobox/components/combobox-content.js.map +1 -1
  43. package/dist/module/components/combobox/components/combobox-option.js.map +1 -1
  44. package/dist/module/components/combobox/components/combobox-overlay.js.map +1 -1
  45. package/dist/module/components/combobox/components/combobox-portal.js.map +1 -1
  46. package/dist/module/components/combobox/components/combobox-root.js +8 -4
  47. package/dist/module/components/combobox/components/combobox-root.js.map +1 -1
  48. package/dist/module/components/combobox/components/combobox-trigger.js.map +1 -1
  49. package/dist/module/components/combobox/context.js.map +1 -1
  50. package/dist/module/components/combobox/variants/default.js +91 -88
  51. package/dist/module/components/combobox/variants/default.js.map +1 -1
  52. package/dist/module/components/empty/components/empty-root.js +6 -2
  53. package/dist/module/components/empty/components/empty-root.js.map +1 -1
  54. package/dist/module/components/field/components/field-label.js.map +1 -1
  55. package/dist/module/components/field/components/field-root.js +6 -2
  56. package/dist/module/components/field/components/field-root.js.map +1 -1
  57. package/dist/module/components/icon/icon.js.map +1 -1
  58. package/dist/module/components/icon-button/icon-button.js +10 -7
  59. package/dist/module/components/icon-button/icon-button.js.map +1 -1
  60. package/dist/module/components/icon-button/variants/default.js +31 -24
  61. package/dist/module/components/icon-button/variants/default.js.map +1 -1
  62. package/dist/module/components/icon-button/variants/ghost.js +32 -25
  63. package/dist/module/components/icon-button/variants/ghost.js.map +1 -1
  64. package/dist/module/components/icon-button/variants/secondary.js +34 -27
  65. package/dist/module/components/icon-button/variants/secondary.js.map +1 -1
  66. package/dist/module/components/index.js +1 -0
  67. package/dist/module/components/index.js.map +1 -1
  68. package/dist/module/components/input/input.js +8 -4
  69. package/dist/module/components/input/input.js.map +1 -1
  70. package/dist/module/components/input/numeric-input.js +0 -1
  71. package/dist/module/components/input/numeric-input.js.map +1 -1
  72. package/dist/module/components/input/variants/default.js +39 -37
  73. package/dist/module/components/input/variants/default.js.map +1 -1
  74. package/dist/module/components/input/variants/secondary.js +39 -37
  75. package/dist/module/components/input/variants/secondary.js.map +1 -1
  76. package/dist/module/components/menu/components/menu-checkbox-item.js.map +1 -1
  77. package/dist/module/components/menu/components/menu-item.js.map +1 -1
  78. package/dist/module/components/menu/components/menu-overlay.js.map +1 -1
  79. package/dist/module/components/menu/components/menu-radio-group.js.map +1 -1
  80. package/dist/module/components/menu/components/menu-radio-item.js.map +1 -1
  81. package/dist/module/components/menu/components/menu-root.js +6 -2
  82. package/dist/module/components/menu/components/menu-root.js.map +1 -1
  83. package/dist/module/components/menu/components/menu-selection-indicator.js +3 -3
  84. package/dist/module/components/menu/components/menu-selection-indicator.js.map +1 -1
  85. package/dist/module/components/menu/components/menu-trigger.js.map +1 -1
  86. package/dist/module/components/menu/context.js.map +1 -1
  87. package/dist/module/components/phone-input/components/country-picker.js.map +1 -1
  88. package/dist/module/components/phone-input/components/phone-input-root.js +9 -4
  89. package/dist/module/components/phone-input/components/phone-input-root.js.map +1 -1
  90. package/dist/module/components/phone-input/components/phone-input.js.map +1 -1
  91. package/dist/module/components/phone-input/context.js.map +1 -1
  92. package/dist/module/components/phone-input/variants/default.js +115 -112
  93. package/dist/module/components/phone-input/variants/default.js.map +1 -1
  94. package/dist/module/components/popover/components/popover-overlay.js.map +1 -1
  95. package/dist/module/components/popover/components/popover-root.js +6 -2
  96. package/dist/module/components/popover/components/popover-root.js.map +1 -1
  97. package/dist/module/components/popover/components/popover-trigger.js.map +1 -1
  98. package/dist/module/components/portal/portal.js.map +1 -1
  99. package/dist/module/components/progress/components/progress-indicator.js.map +1 -1
  100. package/dist/module/components/progress/components/progress-root.js +6 -3
  101. package/dist/module/components/progress/components/progress-root.js.map +1 -1
  102. package/dist/module/components/radio-group/components/radio-group-item.js.map +1 -1
  103. package/dist/module/components/radio-group/components/radio-group-root.js +7 -3
  104. package/dist/module/components/radio-group/components/radio-group-root.js.map +1 -1
  105. package/dist/module/components/select/components/select-content.js.map +1 -1
  106. package/dist/module/components/select/components/select-option.js.map +1 -1
  107. package/dist/module/components/select/components/select-overlay.js.map +1 -1
  108. package/dist/module/components/select/components/select-portal.js.map +1 -1
  109. package/dist/module/components/select/components/select-root.js +8 -5
  110. package/dist/module/components/select/components/select-root.js.map +1 -1
  111. package/dist/module/components/select/components/select-trigger.js.map +1 -1
  112. package/dist/module/components/select/variants/default.js +75 -73
  113. package/dist/module/components/select/variants/default.js.map +1 -1
  114. package/dist/module/components/separator/separator.js +5 -1
  115. package/dist/module/components/separator/separator.js.map +1 -1
  116. package/dist/module/components/spinner/spinner.js +7 -3
  117. package/dist/module/components/spinner/spinner.js.map +1 -1
  118. package/dist/module/components/table/context.js +12 -0
  119. package/dist/module/components/table/context.js.map +1 -0
  120. package/dist/module/components/table/index.js +17 -0
  121. package/dist/module/components/table/index.js.map +1 -0
  122. package/dist/module/components/table/table-body.js +17 -0
  123. package/dist/module/components/table/table-body.js.map +1 -0
  124. package/dist/module/components/table/table-cell.js +17 -0
  125. package/dist/module/components/table/table-cell.js.map +1 -0
  126. package/dist/module/components/table/table-head.js +17 -0
  127. package/dist/module/components/table/table-head.js.map +1 -0
  128. package/dist/module/components/table/table-header.js +17 -0
  129. package/dist/module/components/table/table-header.js.map +1 -0
  130. package/dist/module/components/table/table-root.js +27 -0
  131. package/dist/module/components/table/table-root.js.map +1 -0
  132. package/dist/module/components/table/table-row.js +17 -0
  133. package/dist/module/components/table/table-row.js.map +1 -0
  134. package/dist/module/components/table/types.js +4 -0
  135. package/dist/module/components/table/types.js.map +1 -0
  136. package/dist/module/components/table/variants/default.js +48 -0
  137. package/dist/module/components/table/variants/default.js.map +1 -0
  138. package/dist/module/components/table/variants/index.js +7 -0
  139. package/dist/module/components/table/variants/index.js.map +1 -0
  140. package/dist/module/components/tabs/components/tabs-item.js.map +1 -1
  141. package/dist/module/components/tabs/components/tabs-root.js +7 -3
  142. package/dist/module/components/tabs/components/tabs-root.js.map +1 -1
  143. package/dist/module/components/textarea/textarea.js +7 -3
  144. package/dist/module/components/textarea/textarea.js.map +1 -1
  145. package/dist/module/components/toast/components/toast-icon.js.map +1 -1
  146. package/dist/module/components/toast/components/toast-root.js +6 -2
  147. package/dist/module/components/toast/components/toast-root.js.map +1 -1
  148. package/dist/module/components/toast/manager.js +3 -3
  149. package/dist/module/components/toast/manager.js.map +1 -1
  150. package/dist/module/components/touchable/touchable.js +5 -1
  151. package/dist/module/components/touchable/touchable.js.map +1 -1
  152. package/dist/module/hooks/use-color-scheme.js.map +1 -1
  153. package/dist/module/hooks/use-is-react-navigation-modal.js.map +1 -1
  154. package/dist/module/hooks/use-numeric-mask.js.map +1 -1
  155. package/dist/module/hooks/use-phone-mask.js.map +1 -1
  156. package/dist/module/hooks/use-relative-position.js.map +1 -1
  157. package/dist/module/hooks/use-screen-size.js.map +1 -1
  158. package/dist/module/index.js +1 -1
  159. package/dist/module/index.js.map +1 -1
  160. package/dist/module/themes/default/index.js +1 -0
  161. package/dist/module/themes/default/index.js.map +1 -1
  162. package/dist/module/themes/index.js +2 -2
  163. package/dist/module/themes/index.js.map +1 -1
  164. package/dist/module/themes/provider.js +6 -1
  165. package/dist/module/themes/provider.js.map +1 -1
  166. package/dist/module/themes/types.js +2 -0
  167. package/dist/module/themes/utils.js +2 -1
  168. package/dist/module/themes/utils.js.map +1 -1
  169. package/dist/module/utils/calculate-styles.js +26 -0
  170. package/dist/module/utils/calculate-styles.js.map +1 -1
  171. package/dist/module/utils/date-utils.js.map +1 -1
  172. package/dist/module/utils/input-utils.js.map +1 -1
  173. package/dist/module/utils/normalize-layout.js.map +1 -1
  174. package/dist/module/utils/size-scale.js +42 -0
  175. package/dist/module/utils/size-scale.js.map +1 -0
  176. package/dist/module/utils/use-themed-styles.js +4 -1
  177. package/dist/module/utils/use-themed-styles.js.map +1 -1
  178. package/dist/typescript/src/components/alert/components/alert-description.d.ts.map +1 -1
  179. package/dist/typescript/src/components/alert/components/alert-icon.d.ts.map +1 -1
  180. package/dist/typescript/src/components/alert/components/alert-root.d.ts +1 -1
  181. package/dist/typescript/src/components/alert/components/alert-root.d.ts.map +1 -1
  182. package/dist/typescript/src/components/alert-dialog/async-alert-dialog.d.ts.map +1 -1
  183. package/dist/typescript/src/components/alert-dialog/components/alert-dialog-root.d.ts +2 -0
  184. package/dist/typescript/src/components/alert-dialog/components/alert-dialog-root.d.ts.map +1 -1
  185. package/dist/typescript/src/components/alert-dialog/variants/default.d.ts +3 -2
  186. package/dist/typescript/src/components/alert-dialog/variants/default.d.ts.map +1 -1
  187. package/dist/typescript/src/components/alert-dialog/variants/index.d.ts +1 -1
  188. package/dist/typescript/src/components/avatar/components/avatar-image.d.ts.map +1 -1
  189. package/dist/typescript/src/components/avatar/components/avatar-root.d.ts.map +1 -1
  190. package/dist/typescript/src/components/badge/badge.d.ts.map +1 -1
  191. package/dist/typescript/src/components/button/button.d.ts +2 -0
  192. package/dist/typescript/src/components/button/button.d.ts.map +1 -1
  193. package/dist/typescript/src/components/button/types.d.ts.map +1 -1
  194. package/dist/typescript/src/components/button/variants/default.d.ts +2 -1
  195. package/dist/typescript/src/components/button/variants/default.d.ts.map +1 -1
  196. package/dist/typescript/src/components/button/variants/ghost.d.ts +2 -1
  197. package/dist/typescript/src/components/button/variants/ghost.d.ts.map +1 -1
  198. package/dist/typescript/src/components/button/variants/index.d.ts +3 -3
  199. package/dist/typescript/src/components/button/variants/secondary.d.ts +2 -1
  200. package/dist/typescript/src/components/button/variants/secondary.d.ts.map +1 -1
  201. package/dist/typescript/src/components/calendar/calendar/calendar-root.d.ts.map +1 -1
  202. package/dist/typescript/src/components/calendar/calendar/calendar-weeks.d.ts.map +1 -1
  203. package/dist/typescript/src/components/calendar/index.d.ts +1 -1
  204. package/dist/typescript/src/components/calendar/index.d.ts.map +1 -1
  205. package/dist/typescript/src/components/calendar/shared/calendar-context.d.ts.map +1 -1
  206. package/dist/typescript/src/components/calendar/shared/calendar-day.d.ts.map +1 -1
  207. package/dist/typescript/src/components/calendar/shared/calendar-header.d.ts.map +1 -1
  208. package/dist/typescript/src/components/calendar/shared/calendar-nav-buttons.d.ts.map +1 -1
  209. package/dist/typescript/src/components/calendar/shared/calendar-title.d.ts.map +1 -1
  210. package/dist/typescript/src/components/calendar/shared/calendar-week-labels.d.ts.map +1 -1
  211. package/dist/typescript/src/components/calendar/shared/types.d.ts.map +1 -1
  212. package/dist/typescript/src/components/calendar/timeline/calendar-timeline.d.ts.map +1 -1
  213. package/dist/typescript/src/components/calendar/timeline/index.d.ts +1 -1
  214. package/dist/typescript/src/components/calendar/timeline/index.d.ts.map +1 -1
  215. package/dist/typescript/src/components/calendar/week-calendar/week-calendar.d.ts.map +1 -1
  216. package/dist/typescript/src/components/card/card-root.d.ts +1 -1
  217. package/dist/typescript/src/components/card/card-root.d.ts.map +1 -1
  218. package/dist/typescript/src/components/checkbox/components/checkbox-root.d.ts.map +1 -1
  219. package/dist/typescript/src/components/combobox/components/combobox-content.d.ts.map +1 -1
  220. package/dist/typescript/src/components/combobox/components/combobox-option.d.ts.map +1 -1
  221. package/dist/typescript/src/components/combobox/components/combobox-overlay.d.ts.map +1 -1
  222. package/dist/typescript/src/components/combobox/components/combobox-portal.d.ts.map +1 -1
  223. package/dist/typescript/src/components/combobox/components/combobox-root.d.ts +2 -0
  224. package/dist/typescript/src/components/combobox/components/combobox-root.d.ts.map +1 -1
  225. package/dist/typescript/src/components/combobox/components/combobox-trigger.d.ts.map +1 -1
  226. package/dist/typescript/src/components/combobox/context.d.ts.map +1 -1
  227. package/dist/typescript/src/components/combobox/variants/default.d.ts +2 -1
  228. package/dist/typescript/src/components/combobox/variants/default.d.ts.map +1 -1
  229. package/dist/typescript/src/components/empty/components/empty-root.d.ts.map +1 -1
  230. package/dist/typescript/src/components/field/components/field-label.d.ts.map +1 -1
  231. package/dist/typescript/src/components/field/components/field-root.d.ts.map +1 -1
  232. package/dist/typescript/src/components/icon/icon.d.ts.map +1 -1
  233. package/dist/typescript/src/components/icon-button/icon-button.d.ts +2 -1
  234. package/dist/typescript/src/components/icon-button/icon-button.d.ts.map +1 -1
  235. package/dist/typescript/src/components/icon-button/variants/default.d.ts +2 -1
  236. package/dist/typescript/src/components/icon-button/variants/default.d.ts.map +1 -1
  237. package/dist/typescript/src/components/icon-button/variants/ghost.d.ts +2 -1
  238. package/dist/typescript/src/components/icon-button/variants/ghost.d.ts.map +1 -1
  239. package/dist/typescript/src/components/icon-button/variants/index.d.ts +3 -3
  240. package/dist/typescript/src/components/icon-button/variants/secondary.d.ts +2 -1
  241. package/dist/typescript/src/components/icon-button/variants/secondary.d.ts.map +1 -1
  242. package/dist/typescript/src/components/index.d.ts +1 -0
  243. package/dist/typescript/src/components/index.d.ts.map +1 -1
  244. package/dist/typescript/src/components/input/input.d.ts +2 -0
  245. package/dist/typescript/src/components/input/input.d.ts.map +1 -1
  246. package/dist/typescript/src/components/input/numeric-input.d.ts +1 -1
  247. package/dist/typescript/src/components/input/numeric-input.d.ts.map +1 -1
  248. package/dist/typescript/src/components/input/variants/default.d.ts +2 -1
  249. package/dist/typescript/src/components/input/variants/default.d.ts.map +1 -1
  250. package/dist/typescript/src/components/input/variants/secondary.d.ts +3 -2
  251. package/dist/typescript/src/components/input/variants/secondary.d.ts.map +1 -1
  252. package/dist/typescript/src/components/menu/components/menu-checkbox-item.d.ts.map +1 -1
  253. package/dist/typescript/src/components/menu/components/menu-item.d.ts.map +1 -1
  254. package/dist/typescript/src/components/menu/components/menu-overlay.d.ts.map +1 -1
  255. package/dist/typescript/src/components/menu/components/menu-radio-group.d.ts.map +1 -1
  256. package/dist/typescript/src/components/menu/components/menu-radio-item.d.ts.map +1 -1
  257. package/dist/typescript/src/components/menu/components/menu-root.d.ts.map +1 -1
  258. package/dist/typescript/src/components/menu/components/menu-selection-indicator.d.ts +1 -1
  259. package/dist/typescript/src/components/menu/components/menu-selection-indicator.d.ts.map +1 -1
  260. package/dist/typescript/src/components/menu/components/menu-trigger.d.ts.map +1 -1
  261. package/dist/typescript/src/components/menu/context.d.ts.map +1 -1
  262. package/dist/typescript/src/components/menu/types.d.ts.map +1 -1
  263. package/dist/typescript/src/components/phone-input/components/country-picker.d.ts.map +1 -1
  264. package/dist/typescript/src/components/phone-input/components/phone-input-root.d.ts +3 -1
  265. package/dist/typescript/src/components/phone-input/components/phone-input-root.d.ts.map +1 -1
  266. package/dist/typescript/src/components/phone-input/components/phone-input.d.ts +1 -1
  267. package/dist/typescript/src/components/phone-input/components/phone-input.d.ts.map +1 -1
  268. package/dist/typescript/src/components/phone-input/context.d.ts.map +1 -1
  269. package/dist/typescript/src/components/phone-input/types.d.ts.map +1 -1
  270. package/dist/typescript/src/components/phone-input/variants/default.d.ts +2 -1
  271. package/dist/typescript/src/components/phone-input/variants/default.d.ts.map +1 -1
  272. package/dist/typescript/src/components/popover/components/popover-overlay.d.ts.map +1 -1
  273. package/dist/typescript/src/components/popover/components/popover-root.d.ts.map +1 -1
  274. package/dist/typescript/src/components/popover/components/popover-trigger.d.ts.map +1 -1
  275. package/dist/typescript/src/components/portal/portal.d.ts +2 -2
  276. package/dist/typescript/src/components/portal/portal.d.ts.map +1 -1
  277. package/dist/typescript/src/components/progress/components/progress-indicator.d.ts.map +1 -1
  278. package/dist/typescript/src/components/progress/components/progress-root.d.ts.map +1 -1
  279. package/dist/typescript/src/components/radio-group/components/radio-group-item.d.ts.map +1 -1
  280. package/dist/typescript/src/components/radio-group/components/radio-group-root.d.ts.map +1 -1
  281. package/dist/typescript/src/components/select/components/select-content.d.ts.map +1 -1
  282. package/dist/typescript/src/components/select/components/select-option.d.ts.map +1 -1
  283. package/dist/typescript/src/components/select/components/select-overlay.d.ts.map +1 -1
  284. package/dist/typescript/src/components/select/components/select-portal.d.ts.map +1 -1
  285. package/dist/typescript/src/components/select/components/select-root.d.ts +2 -0
  286. package/dist/typescript/src/components/select/components/select-root.d.ts.map +1 -1
  287. package/dist/typescript/src/components/select/components/select-trigger.d.ts.map +1 -1
  288. package/dist/typescript/src/components/select/variants/default.d.ts +3 -2
  289. package/dist/typescript/src/components/select/variants/default.d.ts.map +1 -1
  290. package/dist/typescript/src/components/separator/separator.d.ts.map +1 -1
  291. package/dist/typescript/src/components/spinner/spinner.d.ts.map +1 -1
  292. package/dist/typescript/src/components/table/context.d.ts +8 -0
  293. package/dist/typescript/src/components/table/context.d.ts.map +1 -0
  294. package/dist/typescript/src/components/table/index.d.ts +22 -0
  295. package/dist/typescript/src/components/table/index.d.ts.map +1 -0
  296. package/dist/typescript/src/components/table/table-body.d.ts +9 -0
  297. package/dist/typescript/src/components/table/table-body.d.ts.map +1 -0
  298. package/dist/typescript/src/components/table/table-cell.d.ts +9 -0
  299. package/dist/typescript/src/components/table/table-cell.d.ts.map +1 -0
  300. package/dist/typescript/src/components/table/table-head.d.ts +9 -0
  301. package/dist/typescript/src/components/table/table-head.d.ts.map +1 -0
  302. package/dist/typescript/src/components/table/table-header.d.ts +9 -0
  303. package/dist/typescript/src/components/table/table-header.d.ts.map +1 -0
  304. package/dist/typescript/src/components/table/table-root.d.ts +11 -0
  305. package/dist/typescript/src/components/table/table-root.d.ts.map +1 -0
  306. package/dist/typescript/src/components/table/table-row.d.ts +9 -0
  307. package/dist/typescript/src/components/table/table-row.d.ts.map +1 -0
  308. package/dist/typescript/src/components/table/types.d.ts +16 -0
  309. package/dist/typescript/src/components/table/types.d.ts.map +1 -0
  310. package/dist/typescript/src/components/table/variants/default.d.ts +3 -0
  311. package/dist/typescript/src/components/table/variants/default.d.ts.map +1 -0
  312. package/dist/typescript/src/components/table/variants/index.d.ts +5 -0
  313. package/dist/typescript/src/components/table/variants/index.d.ts.map +1 -0
  314. package/dist/typescript/src/components/tabs/components/tabs-item.d.ts.map +1 -1
  315. package/dist/typescript/src/components/tabs/components/tabs-root.d.ts.map +1 -1
  316. package/dist/typescript/src/components/textarea/textarea.d.ts.map +1 -1
  317. package/dist/typescript/src/components/toast/components/toast-icon.d.ts.map +1 -1
  318. package/dist/typescript/src/components/toast/components/toast-root.d.ts.map +1 -1
  319. package/dist/typescript/src/components/toast/manager.d.ts.map +1 -1
  320. package/dist/typescript/src/components/touchable/touchable.d.ts.map +1 -1
  321. package/dist/typescript/src/hooks/use-color-scheme.d.ts.map +1 -1
  322. package/dist/typescript/src/hooks/use-is-react-navigation-modal.d.ts.map +1 -1
  323. package/dist/typescript/src/hooks/use-numeric-mask.d.ts.map +1 -1
  324. package/dist/typescript/src/hooks/use-phone-mask.d.ts.map +1 -1
  325. package/dist/typescript/src/hooks/use-relative-position.d.ts.map +1 -1
  326. package/dist/typescript/src/hooks/use-screen-size.d.ts.map +1 -1
  327. package/dist/typescript/src/index.d.ts +5 -2
  328. package/dist/typescript/src/index.d.ts.map +1 -1
  329. package/dist/typescript/src/themes/default/index.d.ts.map +1 -1
  330. package/dist/typescript/src/themes/index.d.ts +2 -2
  331. package/dist/typescript/src/themes/index.d.ts.map +1 -1
  332. package/dist/typescript/src/themes/provider.d.ts +3 -19
  333. package/dist/typescript/src/themes/provider.d.ts.map +1 -1
  334. package/dist/typescript/src/themes/types.d.ts +124 -0
  335. package/dist/typescript/src/themes/types.d.ts.map +1 -1
  336. package/dist/typescript/src/themes/utils.d.ts.map +1 -1
  337. package/dist/typescript/src/utils/calculate-styles.d.ts +1 -0
  338. package/dist/typescript/src/utils/calculate-styles.d.ts.map +1 -1
  339. package/dist/typescript/src/utils/date-utils.d.ts.map +1 -1
  340. package/dist/typescript/src/utils/input-utils.d.ts.map +1 -1
  341. package/dist/typescript/src/utils/normalize-layout.d.ts.map +1 -1
  342. package/dist/typescript/src/utils/size-scale.d.ts +20 -0
  343. package/dist/typescript/src/utils/size-scale.d.ts.map +1 -0
  344. package/dist/typescript/src/utils/use-themed-styles.d.ts +5 -0
  345. package/dist/typescript/src/utils/use-themed-styles.d.ts.map +1 -1
  346. package/package.json +9 -8
  347. package/src/components/alert/components/alert-description.tsx +1 -3
  348. package/src/components/alert/components/alert-icon.tsx +4 -1
  349. package/src/components/alert/components/alert-root.tsx +9 -4
  350. package/src/components/alert-dialog/async-alert-dialog.tsx +6 -25
  351. package/src/components/alert-dialog/components/alert-dialog-root.tsx +10 -3
  352. package/src/components/alert-dialog/variants/default.tsx +88 -79
  353. package/src/components/avatar/components/avatar-image.tsx +1 -6
  354. package/src/components/avatar/components/avatar-root.tsx +8 -3
  355. package/src/components/badge/badge.tsx +10 -12
  356. package/src/components/button/button.tsx +13 -23
  357. package/src/components/button/types.ts +1 -5
  358. package/src/components/button/variants/default.tsx +14 -10
  359. package/src/components/button/variants/ghost.tsx +14 -10
  360. package/src/components/button/variants/secondary.tsx +14 -10
  361. package/src/components/calendar/calendar/calendar-root.tsx +6 -2
  362. package/src/components/calendar/calendar/calendar-weeks.tsx +7 -13
  363. package/src/components/calendar/index.ts +1 -5
  364. package/src/components/calendar/shared/calendar-context.ts +2 -6
  365. package/src/components/calendar/shared/calendar-day.tsx +4 -12
  366. package/src/components/calendar/shared/calendar-header.tsx +1 -6
  367. package/src/components/calendar/shared/calendar-nav-buttons.tsx +9 -28
  368. package/src/components/calendar/shared/calendar-title.tsx +1 -6
  369. package/src/components/calendar/shared/calendar-week-labels.tsx +1 -7
  370. package/src/components/calendar/shared/types.ts +1 -6
  371. package/src/components/calendar/timeline/calendar-timeline.tsx +3 -9
  372. package/src/components/calendar/timeline/index.ts +1 -4
  373. package/src/components/calendar/week-calendar/week-calendar.tsx +10 -25
  374. package/src/components/card/card-root.tsx +8 -4
  375. package/src/components/checkbox/components/checkbox-root.tsx +13 -4
  376. package/src/components/combobox/components/combobox-content.tsx +2 -11
  377. package/src/components/combobox/components/combobox-option.tsx +1 -2
  378. package/src/components/combobox/components/combobox-overlay.tsx +1 -6
  379. package/src/components/combobox/components/combobox-portal.tsx +1 -3
  380. package/src/components/combobox/components/combobox-root.tsx +23 -24
  381. package/src/components/combobox/components/combobox-trigger.tsx +2 -7
  382. package/src/components/combobox/context.ts +1 -3
  383. package/src/components/combobox/variants/default.tsx +17 -14
  384. package/src/components/empty/components/empty-root.tsx +7 -2
  385. package/src/components/field/components/field-label.tsx +3 -1
  386. package/src/components/field/components/field-root.tsx +7 -2
  387. package/src/components/icon/icon.tsx +1 -4
  388. package/src/components/icon-button/icon-button.tsx +16 -15
  389. package/src/components/icon-button/variants/default.tsx +12 -6
  390. package/src/components/icon-button/variants/ghost.tsx +12 -6
  391. package/src/components/icon-button/variants/secondary.tsx +12 -6
  392. package/src/components/index.ts +1 -0
  393. package/src/components/input/input.tsx +11 -5
  394. package/src/components/input/numeric-input.tsx +2 -9
  395. package/src/components/input/variants/default.tsx +11 -9
  396. package/src/components/input/variants/secondary.tsx +12 -10
  397. package/src/components/menu/components/menu-checkbox-item.tsx +2 -9
  398. package/src/components/menu/components/menu-item.tsx +2 -10
  399. package/src/components/menu/components/menu-overlay.tsx +1 -6
  400. package/src/components/menu/components/menu-radio-group.tsx +1 -5
  401. package/src/components/menu/components/menu-radio-item.tsx +1 -5
  402. package/src/components/menu/components/menu-root.tsx +10 -2
  403. package/src/components/menu/components/menu-selection-indicator.tsx +4 -6
  404. package/src/components/menu/components/menu-trigger.tsx +32 -34
  405. package/src/components/menu/context.ts +3 -3
  406. package/src/components/menu/types.ts +1 -5
  407. package/src/components/phone-input/components/country-picker.tsx +6 -21
  408. package/src/components/phone-input/components/phone-input-root.tsx +14 -9
  409. package/src/components/phone-input/components/phone-input.tsx +5 -20
  410. package/src/components/phone-input/context.ts +1 -3
  411. package/src/components/phone-input/types.ts +2 -6
  412. package/src/components/phone-input/variants/default.tsx +21 -18
  413. package/src/components/popover/components/popover-overlay.tsx +7 -1
  414. package/src/components/popover/components/popover-root.tsx +10 -2
  415. package/src/components/popover/components/popover-trigger.tsx +1 -4
  416. package/src/components/portal/portal.tsx +6 -26
  417. package/src/components/progress/components/progress-indicator.tsx +13 -2
  418. package/src/components/progress/components/progress-root.tsx +6 -3
  419. package/src/components/radio-group/components/radio-group-item.tsx +1 -5
  420. package/src/components/radio-group/components/radio-group-root.tsx +7 -3
  421. package/src/components/select/components/select-content.tsx +1 -5
  422. package/src/components/select/components/select-option.tsx +5 -1
  423. package/src/components/select/components/select-overlay.tsx +6 -1
  424. package/src/components/select/components/select-portal.tsx +1 -3
  425. package/src/components/select/components/select-root.tsx +10 -5
  426. package/src/components/select/components/select-trigger.tsx +3 -13
  427. package/src/components/select/variants/default.tsx +16 -14
  428. package/src/components/separator/separator.tsx +5 -1
  429. package/src/components/spinner/spinner.tsx +8 -9
  430. package/src/components/table/context.ts +17 -0
  431. package/src/components/table/index.ts +23 -0
  432. package/src/components/table/table-body.tsx +20 -0
  433. package/src/components/table/table-cell.tsx +20 -0
  434. package/src/components/table/table-head.tsx +20 -0
  435. package/src/components/table/table-header.tsx +20 -0
  436. package/src/components/table/table-root.tsx +35 -0
  437. package/src/components/table/table-row.tsx +20 -0
  438. package/src/components/table/types.ts +17 -0
  439. package/src/components/table/variants/default.tsx +46 -0
  440. package/src/components/table/variants/index.ts +5 -0
  441. package/src/components/tabs/components/tabs-item.tsx +5 -25
  442. package/src/components/tabs/components/tabs-root.tsx +9 -10
  443. package/src/components/textarea/textarea.tsx +7 -3
  444. package/src/components/toast/components/toast-icon.tsx +2 -8
  445. package/src/components/toast/components/toast-root.tsx +6 -2
  446. package/src/components/toast/manager.tsx +4 -6
  447. package/src/components/touchable/touchable.tsx +7 -7
  448. package/src/hooks/use-color-scheme.ts +1 -4
  449. package/src/hooks/use-currency-mask.ts +4 -4
  450. package/src/hooks/use-is-react-navigation-modal.ts +4 -13
  451. package/src/hooks/use-numeric-mask.ts +10 -5
  452. package/src/hooks/use-phone-mask.ts +6 -18
  453. package/src/hooks/use-relative-position.ts +8 -24
  454. package/src/hooks/use-screen-size.ts +8 -3
  455. package/src/index.tsx +5 -6
  456. package/src/themes/default/index.ts +1 -0
  457. package/src/themes/index.ts +2 -2
  458. package/src/themes/provider.tsx +10 -25
  459. package/src/themes/types.ts +126 -0
  460. package/src/themes/utils.ts +1 -0
  461. package/src/utils/calculate-styles.ts +42 -2
  462. package/src/utils/date-utils.ts +23 -3
  463. package/src/utils/input-utils.ts +1 -4
  464. package/src/utils/normalize-layout.ts +3 -1
  465. package/src/utils/size-scale.ts +45 -0
  466. package/src/utils/use-themed-styles.ts +10 -10
  467. package/tsconfig.json +5 -15
@@ -1,10 +1,13 @@
1
1
  import { Platform } from "react-native";
2
+ import type { Size } from "../../../utils/size-scale";
2
3
  import { useThemedStyles } from "../../../utils/use-themed-styles";
3
4
  import { type ComboboxStyles } from "../types";
4
5
 
5
- export function useComboboxVariantDefault(): ComboboxStyles {
6
- return useThemedStyles(
7
- ({ colors, radius, fontFamily, fontSize }): ComboboxStyles => ({
6
+ export function useComboboxVariantDefault(size: Size): ComboboxStyles {
7
+ return useThemedStyles(({ colors, radius, fontFamily, sizeScale }): ComboboxStyles => {
8
+ const s = sizeScale(size);
9
+
10
+ return {
8
11
  root: {
9
12
  default: {},
10
13
  disabled: {},
@@ -20,10 +23,10 @@ export function useComboboxVariantDefault(): ComboboxStyles {
20
23
  backgroundColor: colors.surface,
21
24
  justifyContent: "center",
22
25
  paddingVertical: 4,
23
- paddingHorizontal: 16,
24
- minHeight: 48,
26
+ paddingHorizontal: s.paddingHorizontal,
27
+ minHeight: s.height,
25
28
  fontFamily,
26
- fontSize,
29
+ fontSize: s.fontSize,
27
30
  color: colors.foreground,
28
31
  outlineWidth: 0,
29
32
  pointerEvents: "auto",
@@ -69,10 +72,10 @@ export function useComboboxVariantDefault(): ComboboxStyles {
69
72
  },
70
73
  option: {
71
74
  default: {
72
- paddingVertical: 12,
73
- paddingHorizontal: 16,
75
+ paddingVertical: s.paddingVertical,
76
+ paddingHorizontal: s.paddingHorizontal,
74
77
  fontFamily,
75
- fontSize,
78
+ fontSize: s.fontSize,
76
79
  color: colors.foreground,
77
80
  borderRadius: radius / 2,
78
81
  },
@@ -88,15 +91,15 @@ export function useComboboxVariantDefault(): ComboboxStyles {
88
91
  },
89
92
  empty: {
90
93
  default: {
91
- paddingVertical: 12,
92
- paddingHorizontal: 16,
94
+ paddingVertical: s.paddingVertical,
95
+ paddingHorizontal: s.paddingHorizontal,
93
96
  fontFamily,
94
- fontSize,
97
+ fontSize: s.fontSize,
95
98
  color: colors.mutedForeground,
96
99
  textAlign: "center",
97
100
  },
98
101
  disabled: {},
99
102
  },
100
- }),
101
- );
103
+ };
104
+ });
102
105
  }
@@ -1,5 +1,7 @@
1
1
  import React from "react";
2
2
  import { type StyleProp, View, type ViewStyle } from "react-native";
3
+ import { useComponentConfig } from "../../../themes/provider";
4
+ import { mergeStyles } from "../../../utils/calculate-styles";
3
5
  import { EmptyContext } from "../context";
4
6
  import { EmptyVariants } from "../variants";
5
7
 
@@ -12,11 +14,14 @@ export interface EmptyRootProps {
12
14
 
13
15
  export function EmptyRoot(props: EmptyRootProps) {
14
16
  const variantStyles = EmptyVariants[props.variant || "default"]();
17
+ const componentConfig = useComponentConfig("empty");
15
18
 
16
- const composedStyles = [variantStyles.root, props.style];
19
+ const mergedStyles = mergeStyles(variantStyles, componentConfig?.styles);
20
+
21
+ const composedStyles = [mergedStyles.root, props.style];
17
22
  const Component = props.render ?? View;
18
23
  return (
19
- <EmptyContext.Provider value={{ styles: variantStyles }}>
24
+ <EmptyContext.Provider value={{ styles: mergedStyles }}>
20
25
  <Component {...props} style={composedStyles} />
21
26
  </EmptyContext.Provider>
22
27
  );
@@ -16,5 +16,7 @@ export function FieldLabel(props: FieldLabelProps) {
16
16
  const field = useField();
17
17
 
18
18
  const Component = props.render ?? Text;
19
- return <Component {...props} for={props.for ?? field.id} style={[field.styles?.label, props.style]} />;
19
+ return (
20
+ <Component {...props} for={props.for ?? field.id} style={[field.styles?.label, props.style]} />
21
+ );
20
22
  }
@@ -1,5 +1,7 @@
1
1
  import React, { useId } from "react";
2
2
  import { type StyleProp, View, type ViewStyle } from "react-native";
3
+ import { useComponentConfig } from "../../../themes/provider";
4
+ import { mergeStyles } from "../../../utils/calculate-styles";
3
5
  import { FieldContext } from "../context";
4
6
  import { FieldVariants } from "../variants";
5
7
 
@@ -14,12 +16,15 @@ export interface FieldRootProps {
14
16
 
15
17
  export function FieldRoot(props: FieldRootProps) {
16
18
  const variantStyles = FieldVariants[props.variant || "default"]();
19
+ const componentConfig = useComponentConfig("field");
17
20
  const id = useId();
18
21
 
19
- const composedStyles = [variantStyles.root, props.style];
22
+ const mergedStyles = mergeStyles(variantStyles, componentConfig?.styles);
23
+
24
+ const composedStyles = [mergedStyles.root, props.style];
20
25
  const Component = props.render ?? View;
21
26
  return (
22
- <FieldContext.Provider value={{ styles: variantStyles, id }}>
27
+ <FieldContext.Provider value={{ styles: mergedStyles, id }}>
23
28
  <Component {...props} style={composedStyles} />
24
29
  </FieldContext.Provider>
25
30
  );
@@ -1,8 +1,5 @@
1
1
  import React from "react";
2
- import type {
3
- PropsWithRequiredRender,
4
- SvgProps,
5
- } from "../../types/props.types";
2
+ import type { PropsWithRequiredRender, SvgProps } from "../../types/props.types";
6
3
  import { IconVariants } from "./variants";
7
4
 
8
5
  export type IconProps = SvgProps & {
@@ -6,25 +6,24 @@ import {
6
6
  type StyleProp,
7
7
  type ViewStyle,
8
8
  } from "react-native";
9
+ import { useComponentConfig } from "../../themes/provider";
9
10
  import type { SvgProps } from "../../types/props.types";
11
+ import { mergeStyles } from "../../utils/calculate-styles";
12
+ import type { Size } from "../../utils/size-scale";
10
13
  import type { IconButtonState } from "./types";
11
14
  import { IconButtonVariants } from "./variants";
12
15
 
13
- export interface IconButtonProps
14
- extends Omit<PressableProps, "disabled" | "children"> {
16
+ export interface IconButtonProps extends Omit<PressableProps, "disabled" | "children"> {
15
17
  render: (props: SvgProps) => React.ReactNode;
16
18
  variant?: keyof typeof IconButtonVariants;
19
+ size?: Size;
17
20
  isDisabled?: boolean;
18
- size?: number;
19
21
  color?: SvgProps["color"];
20
22
  strokeWidth?: number;
21
23
  style?: StyleProp<ViewStyle>;
22
24
  }
23
25
 
24
- const calculateState = (
25
- props: IconButtonProps,
26
- isHovered: boolean,
27
- ): IconButtonState => {
26
+ const calculateState = (props: IconButtonProps, isHovered: boolean): IconButtonState => {
28
27
  if (props.isDisabled) return "disabled";
29
28
  if (isHovered) return "hovered";
30
29
  return "default";
@@ -39,15 +38,18 @@ export function IconButton(props: IconButtonProps) {
39
38
  const {
40
39
  render: IconComponent,
41
40
  variant = "default",
41
+ size = "md",
42
42
  isDisabled,
43
- size,
44
43
  color,
45
44
  strokeWidth,
46
45
  style,
47
46
  ...rest
48
47
  } = props;
49
48
 
50
- const variantStyles = IconButtonVariants[variant]();
49
+ const variantStyles = IconButtonVariants[variant](size);
50
+ const componentConfig = useComponentConfig("iconButton");
51
+ const mergedStyles = mergeStyles(variantStyles, componentConfig?.styles);
52
+
51
53
  const [isHovered, setIsHovered] = useState(false);
52
54
  const state = calculateState(props, isHovered);
53
55
 
@@ -60,10 +62,9 @@ export function IconButton(props: IconButtonProps) {
60
62
  };
61
63
 
62
64
  const iconProps: SvgProps = {
63
- size: size ?? variantStyles.icon?.default?.size,
64
- color: color ?? variantStyles.icon?.[state]?.color ?? variantStyles.icon?.default?.color,
65
- strokeWidth,
66
- absoluteStrokeWidth: true,
65
+ size: mergedStyles.icon?.default?.size,
66
+ color: color ?? mergedStyles.icon?.[state]?.color ?? mergedStyles.icon?.default?.color,
67
+ strokeWidth: strokeWidth ?? mergedStyles.icon?.default?.strokeWidth,
67
68
  };
68
69
 
69
70
  return (
@@ -80,8 +81,8 @@ export function IconButton(props: IconButtonProps) {
80
81
  }}
81
82
  disabled={isDisabled}
82
83
  style={[
83
- variantStyles.root?.default,
84
- variantStyles.root?.[state],
84
+ mergedStyles.root?.default,
85
+ mergedStyles.root?.[state],
85
86
  { cursor: cursorValue(state) },
86
87
  style,
87
88
  ]}
@@ -1,15 +1,19 @@
1
1
  import { hslaSetRelativeLightness } from "../../../utils/hsla-utils";
2
+ import type { Size } from "../../../utils/size-scale";
2
3
  import { useThemedStyles } from "../../../utils/use-themed-styles";
3
4
  import type { IconButtonStyles } from "../types";
4
5
 
5
- export const useIconButtonVariantDefault = (): IconButtonStyles => {
6
- return useThemedStyles(
7
- ({ colors, radius }): IconButtonStyles => ({
6
+ export const useIconButtonVariantDefault = (size: Size): IconButtonStyles => {
7
+ return useThemedStyles(({ colors, radius, sizeScale }): IconButtonStyles => {
8
+ const s = sizeScale(size);
9
+
10
+ return {
8
11
  root: {
9
12
  default: {
10
13
  alignItems: "center",
11
14
  justifyContent: "center",
12
- padding: 8,
15
+ height: s.height,
16
+ width: s.height,
13
17
  borderRadius: radius,
14
18
  backgroundColor: colors.primary,
15
19
  borderWidth: 1,
@@ -25,8 +29,10 @@ export const useIconButtonVariantDefault = (): IconButtonStyles => {
25
29
  icon: {
26
30
  default: {
27
31
  color: colors.primaryForeground,
32
+ size: s.iconSize,
33
+ strokeWidth: s.strokeWidth,
28
34
  },
29
35
  },
30
- }),
31
- );
36
+ };
37
+ });
32
38
  };
@@ -1,15 +1,19 @@
1
1
  import { hslaSetRelativeLightness } from "../../../utils/hsla-utils";
2
+ import type { Size } from "../../../utils/size-scale";
2
3
  import { useThemedStyles } from "../../../utils/use-themed-styles";
3
4
  import type { IconButtonStyles } from "../types";
4
5
 
5
- export const useIconButtonVariantGhost = (): IconButtonStyles => {
6
- return useThemedStyles(
7
- ({ colors, radius }): IconButtonStyles => ({
6
+ export const useIconButtonVariantGhost = (size: Size): IconButtonStyles => {
7
+ return useThemedStyles(({ colors, radius, sizeScale }): IconButtonStyles => {
8
+ const s = sizeScale(size);
9
+
10
+ return {
8
11
  root: {
9
12
  default: {
10
13
  alignItems: "center",
11
14
  justifyContent: "center",
12
- padding: 8,
15
+ height: s.height,
16
+ width: s.height,
13
17
  borderRadius: radius,
14
18
  backgroundColor: "transparent",
15
19
  },
@@ -23,11 +27,13 @@ export const useIconButtonVariantGhost = (): IconButtonStyles => {
23
27
  icon: {
24
28
  default: {
25
29
  color: colors.foreground,
30
+ size: s.iconSize,
31
+ strokeWidth: s.strokeWidth,
26
32
  },
27
33
  disabled: {
28
34
  color: colors.mutedForeground,
29
35
  },
30
36
  },
31
- }),
32
- );
37
+ };
38
+ });
33
39
  };
@@ -1,15 +1,19 @@
1
1
  import { hslaSetRelativeLightness } from "../../../utils/hsla-utils";
2
+ import type { Size } from "../../../utils/size-scale";
2
3
  import { useThemedStyles } from "../../../utils/use-themed-styles";
3
4
  import type { IconButtonStyles } from "../types";
4
5
 
5
- export const useIconButtonVariantSecondary = (): IconButtonStyles => {
6
- return useThemedStyles(
7
- ({ colors, radius }): IconButtonStyles => ({
6
+ export const useIconButtonVariantSecondary = (size: Size): IconButtonStyles => {
7
+ return useThemedStyles(({ colors, radius, sizeScale }): IconButtonStyles => {
8
+ const s = sizeScale(size);
9
+
10
+ return {
8
11
  root: {
9
12
  default: {
10
13
  alignItems: "center",
11
14
  justifyContent: "center",
12
- padding: 8,
15
+ height: s.height,
16
+ width: s.height,
13
17
  borderRadius: radius,
14
18
  borderWidth: 1,
15
19
  borderColor: colors.border,
@@ -25,11 +29,13 @@ export const useIconButtonVariantSecondary = (): IconButtonStyles => {
25
29
  icon: {
26
30
  default: {
27
31
  color: colors.secondaryForeground,
32
+ size: s.iconSize,
33
+ strokeWidth: s.strokeWidth,
28
34
  },
29
35
  disabled: {
30
36
  color: colors.mutedForeground,
31
37
  },
32
38
  },
33
- }),
34
- );
39
+ };
40
+ });
35
41
  };
@@ -24,6 +24,7 @@ export * from "./scroll-bar";
24
24
  export * from "./select";
25
25
  export * from "./separator";
26
26
  export * from "./spinner";
27
+ export * from "./table";
27
28
  export * from "./tabs";
28
29
  export * from "./textarea";
29
30
  export * from "./toast";
@@ -1,12 +1,16 @@
1
1
  import { forwardRef, useState } from "react";
2
2
  import { StyleSheet, TextInput, type TextInputProps } from "react-native";
3
+ import { useComponentConfig } from "../../themes/provider";
3
4
  import type { TextInputRef } from "../../types/element.types";
5
+ import { mergeStyles } from "../../utils/calculate-styles";
6
+ import type { Size } from "../../utils/size-scale";
4
7
  import { useFieldOptional } from "../field/context";
5
8
  import type { InputState } from "./types";
6
9
  import { InputVariants } from "./variants";
7
10
 
8
11
  export type InputProps = Omit<TextInputProps, "onChange" | "onChangeText"> & {
9
12
  variant?: keyof typeof InputVariants;
13
+ size?: Size;
10
14
 
11
15
  ref?: React.Ref<TextInputRef>;
12
16
  onChange?: TextInputProps["onChangeText"];
@@ -24,19 +28,21 @@ const calculateState = (props: InputProps, isFocused: boolean): InputState => {
24
28
  };
25
29
 
26
30
  export const Input = forwardRef<TextInputRef, InputProps>((props, ref) => {
27
- const variantStyles = InputVariants[props.variant || "default"]();
31
+ const variantStyles = InputVariants[props.variant || "default"](props.size ?? "md");
32
+ const componentConfig = useComponentConfig("input");
33
+ const mergedStyles = mergeStyles(variantStyles, componentConfig?.styles);
28
34
  const [isFocused, setIsFocused] = useState(false);
29
35
  const state = calculateState(props, isFocused);
30
36
  const field = useFieldOptional();
31
37
 
32
38
  const composedStyles = StyleSheet.flatten([
33
- variantStyles.default?.style,
34
- variantStyles[state]?.style,
39
+ mergedStyles.default?.style,
40
+ mergedStyles[state]?.style,
35
41
  props.style,
36
42
  ]);
37
43
  const composedProps = {
38
- ...variantStyles.default,
39
- ...variantStyles[state],
44
+ ...mergedStyles.default,
45
+ ...mergedStyles[state],
40
46
  ...props,
41
47
  };
42
48
 
@@ -1,15 +1,9 @@
1
1
  import React, { useEffect } from "react";
2
- import {
3
- useNumericMask,
4
- type NumericMaskFormat,
5
- } from "../../hooks/use-numeric-mask";
2
+ import { useNumericMask, type NumericMaskFormat } from "../../hooks/use-numeric-mask";
6
3
  import { Input, type InputProps } from "./input";
7
4
  import { InputVariants } from "./variants";
8
5
 
9
- export interface NumericInputProps extends Omit<
10
- InputProps,
11
- "value" | "onChange" | "keyboardType"
12
- > {
6
+ export interface NumericInputProps extends Omit<InputProps, "value" | "onChange" | "keyboardType"> {
13
7
  variant?: keyof typeof InputVariants;
14
8
  value?: number | null;
15
9
  onChange?: (value: number | null) => void;
@@ -32,7 +26,6 @@ export function NumericInput({
32
26
  min,
33
27
  max,
34
28
  allowNegative = true,
35
- variant = "default",
36
29
  onBlur,
37
30
  onFocus,
38
31
  ...props
@@ -1,10 +1,13 @@
1
1
  import { Platform } from "react-native";
2
+ import type { Size } from "../../../utils/size-scale";
2
3
  import { useThemedStyles } from "../../../utils/use-themed-styles";
3
4
  import { type InputStyles } from "../types";
4
5
 
5
- export function useInputVariantDefault(): InputStyles {
6
- return useThemedStyles(
7
- ({ colors, radius, fontFamily, fontSize }): InputStyles => ({
6
+ export function useInputVariantDefault(size: Size): InputStyles {
7
+ return useThemedStyles(({ colors, radius, fontFamily, sizeScale }): InputStyles => {
8
+ const s = sizeScale(size);
9
+
10
+ return {
8
11
  default: {
9
12
  placeholderTextColor: colors.mutedForeground,
10
13
  selectionColor: colors.primary,
@@ -13,11 +16,10 @@ export function useInputVariantDefault(): InputStyles {
13
16
  borderColor: colors.border,
14
17
  borderRadius: radius,
15
18
  backgroundColor: colors.surface,
16
- paddingVertical: 12,
17
- paddingHorizontal: 16,
19
+ paddingHorizontal: s.paddingHorizontal,
18
20
  fontFamily,
19
- fontSize,
20
- height: 48,
21
+ fontSize: s.fontSize,
22
+ height: s.height,
21
23
  color: colors.foreground,
22
24
  outlineWidth: 0,
23
25
  ...Platform.select({
@@ -39,6 +41,6 @@ export function useInputVariantDefault(): InputStyles {
39
41
  backgroundColor: colors.muted,
40
42
  },
41
43
  },
42
- }),
43
- );
44
+ };
45
+ });
44
46
  }
@@ -1,10 +1,13 @@
1
1
  import { Platform } from "react-native";
2
- import { type InputStyles } from "../..";
2
+ import type { Size } from "../../../utils/size-scale";
3
3
  import { useThemedStyles } from "../../../utils/use-themed-styles";
4
+ import { type InputStyles } from "../types";
4
5
 
5
- export function useInputVariantSecondary(): InputStyles {
6
- return useThemedStyles(
7
- ({ colors, radius, fontFamily, fontSize }): InputStyles => ({
6
+ export function useInputVariantSecondary(size: Size): InputStyles {
7
+ return useThemedStyles(({ colors, radius, fontFamily, sizeScale }): InputStyles => {
8
+ const s = sizeScale(size);
9
+
10
+ return {
8
11
  default: {
9
12
  placeholderTextColor: colors.mutedForeground,
10
13
  selectionColor: colors.primary,
@@ -13,11 +16,10 @@ export function useInputVariantSecondary(): InputStyles {
13
16
  borderColor: colors.border,
14
17
  borderRadius: radius,
15
18
  backgroundColor: colors.background,
16
- paddingVertical: 12,
17
- paddingHorizontal: 16,
19
+ paddingHorizontal: s.paddingHorizontal,
18
20
  fontFamily,
19
- fontSize,
20
- height: 48,
21
+ fontSize: s.fontSize,
22
+ height: s.height,
21
23
  color: colors.foreground,
22
24
  outlineWidth: 0,
23
25
  ...Platform.select({
@@ -39,6 +41,6 @@ export function useInputVariantSecondary(): InputStyles {
39
41
  backgroundColor: colors.muted,
40
42
  },
41
43
  },
42
- }),
43
- );
44
+ };
45
+ });
44
46
  }
@@ -14,10 +14,7 @@ export interface MenuCheckboxItemProps {
14
14
  style?: StyleProp<ViewStyle>;
15
15
  }
16
16
 
17
- const calculateState = (
18
- isHovered: boolean,
19
- disabled?: boolean,
20
- ): MenuCheckboxItemState => {
17
+ const calculateState = (isHovered: boolean, disabled?: boolean): MenuCheckboxItemState => {
21
18
  if (disabled) return "disabled";
22
19
  if (isHovered) return "hovered";
23
20
  return "default";
@@ -45,11 +42,7 @@ export function MenuCheckboxItem(props: MenuCheckboxItemProps) {
45
42
  const textStyles = menu.styles?.itemText;
46
43
  const iconStyles = menu.styles?.itemIcon;
47
44
 
48
- const organizedChildren = useOrganizedChildren(
49
- props.children,
50
- textStyles,
51
- iconStyles,
52
- );
45
+ const organizedChildren = useOrganizedChildren(props.children, textStyles, iconStyles);
53
46
 
54
47
  if (props.render) {
55
48
  return (
@@ -23,11 +23,7 @@ export function MenuItem(props: MenuItemProps) {
23
23
  const menu = useMenu();
24
24
  const [isHovered, setIsHovered] = useState(false);
25
25
  const state = calculateState(isHovered);
26
- const composedStyle = [
27
- menu.styles?.item?.default,
28
- menu.styles?.item?.[state],
29
- props.style,
30
- ];
26
+ const composedStyle = [menu.styles?.item?.default, menu.styles?.item?.[state], props.style];
31
27
 
32
28
  const handlePress = () => {
33
29
  props.onPress?.();
@@ -39,11 +35,7 @@ export function MenuItem(props: MenuItemProps) {
39
35
  const textStyles = menu.styles?.itemText;
40
36
  const iconStyles = menu.styles?.itemIcon;
41
37
 
42
- const organizedChildren = useOrganizedChildren(
43
- props.children,
44
- textStyles,
45
- iconStyles,
46
- );
38
+ const organizedChildren = useOrganizedChildren(props.children, textStyles, iconStyles);
47
39
 
48
40
  if (props.render) {
49
41
  return (
@@ -1,10 +1,5 @@
1
1
  import React from "react";
2
- import {
3
- Pressable,
4
- type StyleProp,
5
- StyleSheet,
6
- type ViewStyle,
7
- } from "react-native";
2
+ import { Pressable, type StyleProp, StyleSheet, type ViewStyle } from "react-native";
8
3
  import { useMenu } from "../context";
9
4
 
10
5
  export interface MenuOverlayProps {
@@ -23,11 +23,7 @@ export function MenuRadioGroup(props: MenuRadioGroupProps) {
23
23
 
24
24
  return (
25
25
  <MenuRadioGroupContext.Provider value={contextValue}>
26
- <View
27
- accessibilityRole="radiogroup"
28
- role="radiogroup"
29
- style={composedStyle}
30
- >
26
+ <View accessibilityRole="radiogroup" role="radiogroup" style={composedStyle}>
31
27
  {props.children}
32
28
  </View>
33
29
  </MenuRadioGroupContext.Provider>
@@ -48,11 +48,7 @@ export function MenuRadioItem(props: MenuRadioItemProps) {
48
48
  const textStyles = menu.styles?.itemText;
49
49
  const iconStyles = menu.styles?.itemIcon;
50
50
 
51
- const organizedChildren = useOrganizedChildren(
52
- props.children,
53
- textStyles,
54
- iconStyles,
55
- );
51
+ const organizedChildren = useOrganizedChildren(props.children, textStyles, iconStyles);
56
52
 
57
53
  if (props.render) {
58
54
  return (
@@ -1,6 +1,12 @@
1
- import { DEFAULT_LAYOUT, DEFAULT_POSITION, type LayoutPosition } from "../../../hooks/use-relative-position";
2
1
  import React, { useState } from "react";
3
2
  import { type LayoutRectangle } from "react-native";
3
+ import {
4
+ DEFAULT_LAYOUT,
5
+ DEFAULT_POSITION,
6
+ type LayoutPosition,
7
+ } from "../../../hooks/use-relative-position";
8
+ import { useComponentConfig } from "../../../themes/provider";
9
+ import { mergeStyles } from "../../../utils/calculate-styles";
4
10
  import { MenuContext } from "../context";
5
11
  import { MenuVariants } from "../variants";
6
12
 
@@ -13,6 +19,8 @@ export interface MenuRootProps {
13
19
 
14
20
  export function MenuRoot(props: MenuRootProps) {
15
21
  const variantStyles = MenuVariants[props.variant || "default"]();
22
+ const componentConfig = useComponentConfig("menu");
23
+ const mergedStyles = mergeStyles(variantStyles, componentConfig?.styles);
16
24
  const [isOpen, setIsOpen] = useState(false);
17
25
  const [triggerPosition, setTriggerPosition] = useState<LayoutPosition>(DEFAULT_POSITION);
18
26
  const [contentLayout, setContentLayout] = useState<LayoutRectangle>(DEFAULT_LAYOUT);
@@ -26,7 +34,7 @@ export function MenuRoot(props: MenuRootProps) {
26
34
  setTriggerPosition,
27
35
  contentLayout,
28
36
  setContentLayout,
29
- styles: variantStyles,
37
+ styles: mergedStyles,
30
38
  }}
31
39
  >
32
40
  {props.children}
@@ -1,18 +1,16 @@
1
1
  import React from "react";
2
2
  import { Text, View } from "react-native";
3
- import { useComponentsConfig } from "../../../themes";
3
+ import { useComponentConfig } from "../../../themes/provider";
4
4
  import { useMenu } from "../context";
5
5
 
6
6
  interface MenuSelectionIndicatorProps {
7
7
  isSelected: boolean;
8
8
  }
9
9
 
10
- export function MenuSelectionIndicator({
11
- isSelected,
12
- }: MenuSelectionIndicatorProps) {
13
- const config = useComponentsConfig();
10
+ export function MenuSelectionIndicator({ isSelected }: MenuSelectionIndicatorProps) {
11
+ const config = useComponentConfig("menu");
14
12
  const menu = useMenu();
15
- const SelectionIcon = config?.menu?.selectionIcon;
13
+ const SelectionIcon = config?.selectionIcon;
16
14
 
17
15
  if (!isSelected) {
18
16
  return <View style={menu.styles?.selectionIndicator} />;