react-native-platform-components 1.3.0 → 1.5.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 (636) hide show
  1. package/PlatformComponents.podspec +1 -1
  2. package/README.md +47 -51
  3. package/android/src/main/java/com/platformcomponents/PCButtonGroupView.kt +664 -0
  4. package/android/src/main/java/com/platformcomponents/PCButtonGroupViewManager.kt +241 -0
  5. package/android/src/main/java/com/platformcomponents/PCButtonSupport.kt +159 -0
  6. package/android/src/main/java/com/platformcomponents/PCButtonView.kt +527 -0
  7. package/android/src/main/java/com/platformcomponents/PCButtonViewManager.kt +204 -0
  8. package/android/src/main/java/com/platformcomponents/PCContextMenuView.kt +41 -151
  9. package/android/src/main/java/com/platformcomponents/PCContextMenuViewManager.kt +7 -63
  10. package/android/src/main/java/com/platformcomponents/PCDatePickerView.kt +310 -115
  11. package/android/src/main/java/com/platformcomponents/PCDatePickerViewManager.kt +23 -3
  12. package/android/src/main/java/com/platformcomponents/PCExpressive.kt +112 -0
  13. package/android/src/main/java/com/platformcomponents/PCFloatingActionButtonView.kt +485 -0
  14. package/android/src/main/java/com/platformcomponents/PCFloatingActionButtonViewManager.kt +109 -0
  15. package/android/src/main/java/com/platformcomponents/PCFloatingToolbarView.kt +247 -0
  16. package/android/src/main/java/com/platformcomponents/PCFloatingToolbarViewManager.kt +73 -0
  17. package/android/src/main/java/com/platformcomponents/PCHaptics.kt +46 -0
  18. package/android/src/main/java/com/platformcomponents/PCImageLoader.kt +42 -7
  19. package/android/src/main/java/com/platformcomponents/PCLiquidGlassContainerView.kt +32 -0
  20. package/android/src/main/java/com/platformcomponents/PCLiquidGlassContainerViewManager.kt +31 -0
  21. package/android/src/main/java/com/platformcomponents/PCLiquidGlassView.kt +32 -6
  22. package/android/src/main/java/com/platformcomponents/PCLiquidGlassViewManager.kt +4 -0
  23. package/android/src/main/java/com/platformcomponents/PCMenuSupport.kt +280 -0
  24. package/android/src/main/java/com/platformcomponents/PCNavigationBarSupport.kt +332 -0
  25. package/android/src/main/java/com/platformcomponents/PCNavigationRailView.kt +448 -0
  26. package/android/src/main/java/com/platformcomponents/PCNavigationRailViewManager.kt +176 -0
  27. package/android/src/main/java/com/platformcomponents/PCSegmentedControlView.kt +35 -17
  28. package/android/src/main/java/com/platformcomponents/PCSegmentedControlViewManager.kt +20 -3
  29. package/android/src/main/java/com/platformcomponents/PCSelectionMenuView.kt +371 -39
  30. package/android/src/main/java/com/platformcomponents/PCSelectionMenuViewManager.kt +18 -4
  31. package/android/src/main/java/com/platformcomponents/PCTabBarView.kt +397 -0
  32. package/android/src/main/java/com/platformcomponents/PCTabBarViewManager.kt +182 -0
  33. package/android/src/main/java/com/platformcomponents/PCTextFieldView.kt +1393 -0
  34. package/android/src/main/java/com/platformcomponents/PCTextFieldViewManager.kt +354 -0
  35. package/android/src/main/java/com/platformcomponents/PCThemeSupport.kt +37 -0
  36. package/android/src/main/java/com/platformcomponents/PlatformComponentsPackage.kt +8 -0
  37. package/android/src/main/res/drawable/pc_ic_search.xml +12 -0
  38. package/android/src/main/res/values/attrs.xml +13 -0
  39. package/android/src/main/res/values/ids.xml +5 -0
  40. package/android/src/main/res/values/styles.xml +207 -0
  41. package/ios/PCButton.h +10 -0
  42. package/ios/PCButton.mm +311 -0
  43. package/ios/PCButtonGroup.h +10 -0
  44. package/ios/PCButtonGroup.mm +323 -0
  45. package/ios/PCButtonGroupView.swift +473 -0
  46. package/ios/PCButtonSupport.swift +312 -0
  47. package/ios/PCButtonView.swift +438 -0
  48. package/ios/PCConstants.swift +23 -2
  49. package/ios/PCContextMenu.mm +28 -110
  50. package/ios/PCContextMenu.swift +106 -167
  51. package/ios/PCDatePicker.mm +21 -9
  52. package/ios/PCDatePickerView.swift +94 -20
  53. package/ios/PCFloatingActionButton.h +10 -0
  54. package/ios/PCFloatingActionButton.mm +177 -0
  55. package/ios/PCFloatingActionButtonView.swift +426 -0
  56. package/ios/PCFloatingToolbar.h +10 -0
  57. package/ios/PCFloatingToolbar.mm +103 -0
  58. package/ios/PCFloatingToolbarView.swift +336 -0
  59. package/ios/PCHaptics.swift +91 -0
  60. package/ios/PCImageLoader.swift +76 -12
  61. package/ios/PCLiquidGlass.mm +36 -0
  62. package/ios/PCLiquidGlass.swift +221 -114
  63. package/ios/PCLiquidGlassContainer.h +10 -0
  64. package/ios/PCLiquidGlassContainer.mm +84 -0
  65. package/ios/PCLiquidGlassContainer.swift +69 -0
  66. package/ios/PCMenuItems.h +76 -0
  67. package/ios/PCMenuSupport.swift +350 -0
  68. package/ios/PCNavigationRail.h +10 -0
  69. package/ios/PCNavigationRail.mm +270 -0
  70. package/ios/PCNavigationRailView.swift +415 -0
  71. package/ios/PCSegmentedControl.mm +17 -2
  72. package/ios/PCSegmentedControl.swift +57 -7
  73. package/ios/PCSelectionMenu.mm +36 -8
  74. package/ios/PCSelectionMenu.swift +224 -48
  75. package/ios/PCTabBar.h +10 -0
  76. package/ios/PCTabBar.mm +285 -0
  77. package/ios/PCTabBarAccessory.h +10 -0
  78. package/ios/PCTabBarAccessory.mm +93 -0
  79. package/ios/PCTabBarAccessoryView.swift +96 -0
  80. package/ios/PCTabBarView.swift +671 -0
  81. package/ios/PCTextField.h +10 -0
  82. package/ios/PCTextField.mm +546 -0
  83. package/ios/PCTextFieldView.swift +1558 -0
  84. package/lib/commonjs/Button.js +149 -0
  85. package/lib/commonjs/Button.js.map +1 -0
  86. package/lib/commonjs/ButtonGroup.js +109 -0
  87. package/lib/commonjs/ButtonGroup.js.map +1 -0
  88. package/lib/commonjs/ButtonGroupNativeComponent.ts +191 -0
  89. package/lib/commonjs/ButtonNativeComponent.ts +192 -0
  90. package/lib/commonjs/ContextMenu.js +9 -48
  91. package/lib/commonjs/ContextMenu.js.map +1 -1
  92. package/lib/commonjs/ContextMenuNativeComponent.ts +47 -49
  93. package/lib/commonjs/DatePicker.js +98 -2
  94. package/lib/commonjs/DatePicker.js.map +1 -1
  95. package/lib/commonjs/DatePickerNativeComponent.ts +19 -2
  96. package/lib/commonjs/FloatingActionButton.js +60 -0
  97. package/lib/commonjs/FloatingActionButton.js.map +1 -0
  98. package/lib/commonjs/FloatingActionButtonNativeComponent.ts +58 -0
  99. package/lib/commonjs/FloatingToolbar.js +77 -0
  100. package/lib/commonjs/FloatingToolbar.js.map +1 -0
  101. package/lib/commonjs/FloatingToolbarNativeComponent.ts +47 -0
  102. package/lib/commonjs/LiquidGlass.js +7 -1
  103. package/lib/commonjs/LiquidGlass.js.map +1 -1
  104. package/lib/commonjs/LiquidGlassContainer.js +32 -0
  105. package/lib/commonjs/LiquidGlassContainer.js.map +1 -0
  106. package/lib/commonjs/LiquidGlassContainerNativeComponent.ts +17 -0
  107. package/lib/commonjs/LiquidGlassNativeComponent.ts +8 -0
  108. package/lib/commonjs/NavigationRail.js +104 -0
  109. package/lib/commonjs/NavigationRail.js.map +1 -0
  110. package/lib/commonjs/NavigationRailNativeComponent.ts +107 -0
  111. package/lib/commonjs/PlatformComponentsProvider.js +18 -0
  112. package/lib/commonjs/PlatformComponentsProvider.js.map +1 -0
  113. package/lib/commonjs/SegmentedControl.js +18 -85
  114. package/lib/commonjs/SegmentedControl.js.map +1 -1
  115. package/lib/commonjs/SegmentedControlNativeComponent.ts +14 -0
  116. package/lib/commonjs/SelectionMenu.js +27 -3
  117. package/lib/commonjs/SelectionMenu.js.map +1 -1
  118. package/lib/commonjs/SelectionMenuNativeComponent.ts +26 -4
  119. package/lib/commonjs/SplitButton.js +98 -0
  120. package/lib/commonjs/SplitButton.js.map +1 -0
  121. package/lib/commonjs/TabBar.js +203 -0
  122. package/lib/commonjs/TabBar.js.map +1 -0
  123. package/lib/commonjs/TabBarAccessoryNativeComponent.ts +19 -0
  124. package/lib/commonjs/TabBarNativeComponent.ts +145 -0
  125. package/lib/commonjs/TextField.js +358 -0
  126. package/lib/commonjs/TextField.js.map +1 -0
  127. package/lib/commonjs/TextFieldNativeComponent.ts +324 -0
  128. package/lib/commonjs/focusRegistry.js +79 -0
  129. package/lib/commonjs/focusRegistry.js.map +1 -0
  130. package/lib/commonjs/haptics.js +2 -0
  131. package/lib/commonjs/haptics.js.map +1 -0
  132. package/lib/commonjs/icons.js +106 -0
  133. package/lib/commonjs/icons.js.map +1 -0
  134. package/lib/commonjs/index.js +143 -0
  135. package/lib/commonjs/index.js.map +1 -1
  136. package/lib/commonjs/index.web.js +157 -63
  137. package/lib/commonjs/index.web.js.map +1 -1
  138. package/lib/commonjs/jest.js +910 -0
  139. package/lib/commonjs/jest.js.map +1 -0
  140. package/lib/commonjs/labelStyle.js +27 -0
  141. package/lib/commonjs/labelStyle.js.map +1 -0
  142. package/lib/commonjs/menuItems.js +68 -0
  143. package/lib/commonjs/menuItems.js.map +1 -0
  144. package/lib/commonjs/reactNativeInternals.d.js +2 -0
  145. package/lib/commonjs/reactNativeInternals.d.js.map +1 -0
  146. package/lib/commonjs/selectionIdentifiers.js +18 -0
  147. package/lib/commonjs/selectionIdentifiers.js.map +1 -0
  148. package/lib/commonjs/submitBehavior.js +19 -0
  149. package/lib/commonjs/submitBehavior.js.map +1 -0
  150. package/lib/commonjs/tabItems.js +49 -0
  151. package/lib/commonjs/tabItems.js.map +1 -0
  152. package/lib/commonjs/web/Button.js +170 -0
  153. package/lib/commonjs/web/Button.js.map +1 -0
  154. package/lib/commonjs/web/ButtonGroup.js +119 -0
  155. package/lib/commonjs/web/ButtonGroup.js.map +1 -0
  156. package/lib/commonjs/web/DatePicker.js +168 -0
  157. package/lib/commonjs/web/DatePicker.js.map +1 -0
  158. package/lib/commonjs/web/DateRangePicker.js +137 -0
  159. package/lib/commonjs/web/DateRangePicker.js.map +1 -0
  160. package/lib/commonjs/web/Dialog.js +54 -0
  161. package/lib/commonjs/web/Dialog.js.map +1 -0
  162. package/lib/commonjs/web/FloatingActionButton.js +98 -0
  163. package/lib/commonjs/web/FloatingActionButton.js.map +1 -0
  164. package/lib/commonjs/web/Icon.js +34 -0
  165. package/lib/commonjs/web/Icon.js.map +1 -0
  166. package/lib/commonjs/web/NativeTheme.js +28 -0
  167. package/lib/commonjs/web/NativeTheme.js.map +1 -0
  168. package/lib/commonjs/web/NavigationRail.js +139 -0
  169. package/lib/commonjs/web/NavigationRail.js.map +1 -0
  170. package/lib/commonjs/web/PlatformComponentsProvider.js +51 -0
  171. package/lib/commonjs/web/PlatformComponentsProvider.js.map +1 -0
  172. package/lib/commonjs/web/SegmentedControl.js +117 -0
  173. package/lib/commonjs/web/SegmentedControl.js.map +1 -0
  174. package/lib/commonjs/web/SelectionMenu.js +142 -0
  175. package/lib/commonjs/web/SelectionMenu.js.map +1 -0
  176. package/lib/commonjs/web/SplitButton.js +35 -0
  177. package/lib/commonjs/web/SplitButton.js.map +1 -0
  178. package/lib/commonjs/web/TabBar.js +131 -0
  179. package/lib/commonjs/web/TabBar.js.map +1 -0
  180. package/lib/commonjs/web/TextField.js +322 -0
  181. package/lib/commonjs/web/TextField.js.map +1 -0
  182. package/lib/commonjs/web/components.js +36 -0
  183. package/lib/commonjs/web/components.js.map +1 -0
  184. package/lib/commonjs/web/containers.js +121 -0
  185. package/lib/commonjs/web/containers.js.map +1 -0
  186. package/lib/commonjs/web/dateInput.js +116 -0
  187. package/lib/commonjs/web/dateInput.js.map +1 -0
  188. package/lib/commonjs/web/shared.js +192 -0
  189. package/lib/commonjs/web/shared.js.map +1 -0
  190. package/lib/commonjs/webComponents.js +6 -0
  191. package/lib/commonjs/webComponents.js.map +1 -0
  192. package/lib/module/Button.js +142 -0
  193. package/lib/module/Button.js.map +1 -0
  194. package/lib/module/ButtonGroup.js +102 -0
  195. package/lib/module/ButtonGroup.js.map +1 -0
  196. package/lib/module/ButtonGroupNativeComponent.ts +191 -0
  197. package/lib/module/ButtonNativeComponent.ts +192 -0
  198. package/lib/module/ContextMenu.js +9 -48
  199. package/lib/module/ContextMenu.js.map +1 -1
  200. package/lib/module/ContextMenuNativeComponent.ts +47 -49
  201. package/lib/module/DatePicker.js +98 -4
  202. package/lib/module/DatePicker.js.map +1 -1
  203. package/lib/module/DatePickerNativeComponent.ts +19 -2
  204. package/lib/module/FloatingActionButton.js +53 -0
  205. package/lib/module/FloatingActionButton.js.map +1 -0
  206. package/lib/module/FloatingActionButtonNativeComponent.ts +58 -0
  207. package/lib/module/FloatingToolbar.js +70 -0
  208. package/lib/module/FloatingToolbar.js.map +1 -0
  209. package/lib/module/FloatingToolbarNativeComponent.ts +47 -0
  210. package/lib/module/LiquidGlass.js +7 -1
  211. package/lib/module/LiquidGlass.js.map +1 -1
  212. package/lib/module/LiquidGlassContainer.js +26 -0
  213. package/lib/module/LiquidGlassContainer.js.map +1 -0
  214. package/lib/module/LiquidGlassContainerNativeComponent.ts +17 -0
  215. package/lib/module/LiquidGlassNativeComponent.ts +8 -0
  216. package/lib/module/NavigationRail.js +99 -0
  217. package/lib/module/NavigationRail.js.map +1 -0
  218. package/lib/module/NavigationRailNativeComponent.ts +107 -0
  219. package/lib/module/PlatformComponentsProvider.js +13 -0
  220. package/lib/module/PlatformComponentsProvider.js.map +1 -0
  221. package/lib/module/SegmentedControl.js +18 -85
  222. package/lib/module/SegmentedControl.js.map +1 -1
  223. package/lib/module/SegmentedControlNativeComponent.ts +14 -0
  224. package/lib/module/SelectionMenu.js +27 -3
  225. package/lib/module/SelectionMenu.js.map +1 -1
  226. package/lib/module/SelectionMenuNativeComponent.ts +26 -4
  227. package/lib/module/SplitButton.js +91 -0
  228. package/lib/module/SplitButton.js.map +1 -0
  229. package/lib/module/TabBar.js +196 -0
  230. package/lib/module/TabBar.js.map +1 -0
  231. package/lib/module/TabBarAccessoryNativeComponent.ts +19 -0
  232. package/lib/module/TabBarNativeComponent.ts +145 -0
  233. package/lib/module/TextField.js +352 -0
  234. package/lib/module/TextField.js.map +1 -0
  235. package/lib/module/TextFieldNativeComponent.ts +324 -0
  236. package/lib/module/focusRegistry.js +75 -0
  237. package/lib/module/focusRegistry.js.map +1 -0
  238. package/lib/module/haptics.js +2 -0
  239. package/lib/module/haptics.js.map +1 -0
  240. package/lib/module/icons.js +101 -0
  241. package/lib/module/icons.js.map +1 -0
  242. package/lib/module/index.js +13 -0
  243. package/lib/module/index.js.map +1 -1
  244. package/lib/module/index.web.js +12 -59
  245. package/lib/module/index.web.js.map +1 -1
  246. package/lib/module/jest.js +840 -0
  247. package/lib/module/jest.js.map +1 -0
  248. package/lib/module/labelStyle.js +23 -0
  249. package/lib/module/labelStyle.js.map +1 -0
  250. package/lib/module/menuItems.js +65 -0
  251. package/lib/module/menuItems.js.map +1 -0
  252. package/lib/module/reactNativeInternals.d.js +2 -0
  253. package/lib/module/reactNativeInternals.d.js.map +1 -0
  254. package/lib/module/selectionIdentifiers.js +14 -0
  255. package/lib/module/selectionIdentifiers.js.map +1 -0
  256. package/lib/module/submitBehavior.js +15 -0
  257. package/lib/module/submitBehavior.js.map +1 -0
  258. package/lib/module/tabItems.js +45 -0
  259. package/lib/module/tabItems.js.map +1 -0
  260. package/lib/module/web/Button.js +164 -0
  261. package/lib/module/web/Button.js.map +1 -0
  262. package/lib/module/web/ButtonGroup.js +113 -0
  263. package/lib/module/web/ButtonGroup.js.map +1 -0
  264. package/lib/module/web/DatePicker.js +162 -0
  265. package/lib/module/web/DatePicker.js.map +1 -0
  266. package/lib/module/web/DateRangePicker.js +131 -0
  267. package/lib/module/web/DateRangePicker.js.map +1 -0
  268. package/lib/module/web/Dialog.js +48 -0
  269. package/lib/module/web/Dialog.js.map +1 -0
  270. package/lib/module/web/FloatingActionButton.js +94 -0
  271. package/lib/module/web/FloatingActionButton.js.map +1 -0
  272. package/lib/module/web/Icon.js +29 -0
  273. package/lib/module/web/Icon.js.map +1 -0
  274. package/lib/module/web/NativeTheme.js +23 -0
  275. package/lib/module/web/NativeTheme.js.map +1 -0
  276. package/lib/module/web/NavigationRail.js +133 -0
  277. package/lib/module/web/NavigationRail.js.map +1 -0
  278. package/lib/module/web/PlatformComponentsProvider.js +44 -0
  279. package/lib/module/web/PlatformComponentsProvider.js.map +1 -0
  280. package/lib/module/web/SegmentedControl.js +112 -0
  281. package/lib/module/web/SegmentedControl.js.map +1 -0
  282. package/lib/module/web/SelectionMenu.js +137 -0
  283. package/lib/module/web/SelectionMenu.js.map +1 -0
  284. package/lib/module/web/SplitButton.js +30 -0
  285. package/lib/module/web/SplitButton.js.map +1 -0
  286. package/lib/module/web/TabBar.js +126 -0
  287. package/lib/module/web/TabBar.js.map +1 -0
  288. package/lib/module/web/TextField.js +316 -0
  289. package/lib/module/web/TextField.js.map +1 -0
  290. package/lib/module/web/components.js +33 -0
  291. package/lib/module/web/components.js.map +1 -0
  292. package/lib/module/web/containers.js +112 -0
  293. package/lib/module/web/containers.js.map +1 -0
  294. package/lib/module/web/dateInput.js +109 -0
  295. package/lib/module/web/dateInput.js.map +1 -0
  296. package/lib/module/web/shared.js +179 -0
  297. package/lib/module/web/shared.js.map +1 -0
  298. package/lib/module/webComponents.js +4 -0
  299. package/lib/module/webComponents.js.map +1 -0
  300. package/lib/typescript/commonjs/docs/sidebars.d.ts.map +1 -1
  301. package/lib/typescript/commonjs/src/Button.d.ts +184 -0
  302. package/lib/typescript/commonjs/src/Button.d.ts.map +1 -0
  303. package/lib/typescript/commonjs/src/ButtonGroup.d.ts +117 -0
  304. package/lib/typescript/commonjs/src/ButtonGroup.d.ts.map +1 -0
  305. package/lib/typescript/commonjs/src/ButtonGroupNativeComponent.d.ts +154 -0
  306. package/lib/typescript/commonjs/src/ButtonGroupNativeComponent.d.ts.map +1 -0
  307. package/lib/typescript/commonjs/src/ButtonNativeComponent.d.ts +148 -0
  308. package/lib/typescript/commonjs/src/ButtonNativeComponent.d.ts.map +1 -0
  309. package/lib/typescript/commonjs/src/ContextMenu.d.ts +20 -33
  310. package/lib/typescript/commonjs/src/ContextMenu.d.ts.map +1 -1
  311. package/lib/typescript/commonjs/src/ContextMenuNativeComponent.d.ts +45 -47
  312. package/lib/typescript/commonjs/src/ContextMenuNativeComponent.d.ts.map +1 -1
  313. package/lib/typescript/commonjs/src/DatePicker.d.ts +74 -1
  314. package/lib/typescript/commonjs/src/DatePicker.d.ts.map +1 -1
  315. package/lib/typescript/commonjs/src/DatePickerNativeComponent.d.ts +16 -1
  316. package/lib/typescript/commonjs/src/DatePickerNativeComponent.d.ts.map +1 -1
  317. package/lib/typescript/commonjs/src/FloatingActionButton.d.ts +67 -0
  318. package/lib/typescript/commonjs/src/FloatingActionButton.d.ts.map +1 -0
  319. package/lib/typescript/commonjs/src/FloatingActionButtonNativeComponent.d.ts +43 -0
  320. package/lib/typescript/commonjs/src/FloatingActionButtonNativeComponent.d.ts.map +1 -0
  321. package/lib/typescript/commonjs/src/FloatingToolbar.d.ts +75 -0
  322. package/lib/typescript/commonjs/src/FloatingToolbar.d.ts.map +1 -0
  323. package/lib/typescript/commonjs/src/FloatingToolbarNativeComponent.d.ts +36 -0
  324. package/lib/typescript/commonjs/src/FloatingToolbarNativeComponent.d.ts.map +1 -0
  325. package/lib/typescript/commonjs/src/LiquidGlass.d.ts +17 -0
  326. package/lib/typescript/commonjs/src/LiquidGlass.d.ts.map +1 -1
  327. package/lib/typescript/commonjs/src/LiquidGlassContainer.d.ts +27 -0
  328. package/lib/typescript/commonjs/src/LiquidGlassContainer.d.ts.map +1 -0
  329. package/lib/typescript/commonjs/src/LiquidGlassContainerNativeComponent.d.ts +13 -0
  330. package/lib/typescript/commonjs/src/LiquidGlassContainerNativeComponent.d.ts.map +1 -0
  331. package/lib/typescript/commonjs/src/LiquidGlassNativeComponent.d.ts +7 -0
  332. package/lib/typescript/commonjs/src/LiquidGlassNativeComponent.d.ts.map +1 -1
  333. package/lib/typescript/commonjs/src/NavigationRail.d.ts +86 -0
  334. package/lib/typescript/commonjs/src/NavigationRail.d.ts.map +1 -0
  335. package/lib/typescript/commonjs/src/NavigationRailNativeComponent.d.ts +81 -0
  336. package/lib/typescript/commonjs/src/NavigationRailNativeComponent.d.ts.map +1 -0
  337. package/lib/typescript/commonjs/src/PlatformComponentsProvider.d.ts +6 -0
  338. package/lib/typescript/commonjs/src/PlatformComponentsProvider.d.ts.map +1 -0
  339. package/lib/typescript/commonjs/src/SegmentedControl.d.ts +35 -47
  340. package/lib/typescript/commonjs/src/SegmentedControl.d.ts.map +1 -1
  341. package/lib/typescript/commonjs/src/SegmentedControlNativeComponent.d.ts +11 -0
  342. package/lib/typescript/commonjs/src/SegmentedControlNativeComponent.d.ts.map +1 -1
  343. package/lib/typescript/commonjs/src/SelectionMenu.d.ts +44 -2
  344. package/lib/typescript/commonjs/src/SelectionMenu.d.ts.map +1 -1
  345. package/lib/typescript/commonjs/src/SelectionMenuNativeComponent.d.ts +20 -4
  346. package/lib/typescript/commonjs/src/SelectionMenuNativeComponent.d.ts.map +1 -1
  347. package/lib/typescript/commonjs/src/SplitButton.d.ts +83 -0
  348. package/lib/typescript/commonjs/src/SplitButton.d.ts.map +1 -0
  349. package/lib/typescript/commonjs/src/TabBar.d.ts +144 -0
  350. package/lib/typescript/commonjs/src/TabBar.d.ts.map +1 -0
  351. package/lib/typescript/commonjs/src/TabBarAccessoryNativeComponent.d.ts +13 -0
  352. package/lib/typescript/commonjs/src/TabBarAccessoryNativeComponent.d.ts.map +1 -0
  353. package/lib/typescript/commonjs/src/TabBarNativeComponent.d.ts +110 -0
  354. package/lib/typescript/commonjs/src/TabBarNativeComponent.d.ts.map +1 -0
  355. package/lib/typescript/commonjs/src/TextField.d.ts +332 -0
  356. package/lib/typescript/commonjs/src/TextField.d.ts.map +1 -0
  357. package/lib/typescript/commonjs/src/TextFieldNativeComponent.d.ts +240 -0
  358. package/lib/typescript/commonjs/src/TextFieldNativeComponent.d.ts.map +1 -0
  359. package/lib/typescript/commonjs/src/focusRegistry.d.ts +13 -0
  360. package/lib/typescript/commonjs/src/focusRegistry.d.ts.map +1 -0
  361. package/lib/typescript/commonjs/src/haptics.d.ts +20 -0
  362. package/lib/typescript/commonjs/src/haptics.d.ts.map +1 -0
  363. package/lib/typescript/commonjs/src/icons.d.ts +58 -0
  364. package/lib/typescript/commonjs/src/icons.d.ts.map +1 -0
  365. package/lib/typescript/commonjs/src/index.d.ts +13 -0
  366. package/lib/typescript/commonjs/src/index.d.ts.map +1 -1
  367. package/lib/typescript/commonjs/src/index.web.d.ts +25 -133
  368. package/lib/typescript/commonjs/src/index.web.d.ts.map +1 -1
  369. package/lib/typescript/commonjs/src/jest.d.ts +139 -0
  370. package/lib/typescript/commonjs/src/jest.d.ts.map +1 -0
  371. package/lib/typescript/commonjs/src/labelStyle.d.ts +20 -0
  372. package/lib/typescript/commonjs/src/labelStyle.d.ts.map +1 -0
  373. package/lib/typescript/commonjs/src/menuItems.d.ts +100 -0
  374. package/lib/typescript/commonjs/src/menuItems.d.ts.map +1 -0
  375. package/lib/typescript/commonjs/src/selectionIdentifiers.d.ts +3 -0
  376. package/lib/typescript/commonjs/src/selectionIdentifiers.d.ts.map +1 -0
  377. package/lib/typescript/commonjs/src/sharedTypes.d.ts +6 -1
  378. package/lib/typescript/commonjs/src/sharedTypes.d.ts.map +1 -1
  379. package/lib/typescript/commonjs/src/submitBehavior.d.ts +9 -0
  380. package/lib/typescript/commonjs/src/submitBehavior.d.ts.map +1 -0
  381. package/lib/typescript/commonjs/src/tabItems.d.ts +55 -0
  382. package/lib/typescript/commonjs/src/tabItems.d.ts.map +1 -0
  383. package/lib/typescript/commonjs/src/web/Button.d.ts +9 -0
  384. package/lib/typescript/commonjs/src/web/Button.d.ts.map +1 -0
  385. package/lib/typescript/commonjs/src/web/ButtonGroup.d.ts +11 -0
  386. package/lib/typescript/commonjs/src/web/ButtonGroup.d.ts.map +1 -0
  387. package/lib/typescript/commonjs/src/web/DatePicker.d.ts +14 -0
  388. package/lib/typescript/commonjs/src/web/DatePicker.d.ts.map +1 -0
  389. package/lib/typescript/commonjs/src/web/DateRangePicker.d.ts +11 -0
  390. package/lib/typescript/commonjs/src/web/DateRangePicker.d.ts.map +1 -0
  391. package/lib/typescript/commonjs/src/web/Dialog.d.ts +12 -0
  392. package/lib/typescript/commonjs/src/web/Dialog.d.ts.map +1 -0
  393. package/lib/typescript/commonjs/src/web/FloatingActionButton.d.ts +8 -0
  394. package/lib/typescript/commonjs/src/web/FloatingActionButton.d.ts.map +1 -0
  395. package/lib/typescript/commonjs/src/web/Icon.d.ts +12 -0
  396. package/lib/typescript/commonjs/src/web/Icon.d.ts.map +1 -0
  397. package/lib/typescript/commonjs/src/web/NativeTheme.d.ts +10 -0
  398. package/lib/typescript/commonjs/src/web/NativeTheme.d.ts.map +1 -0
  399. package/lib/typescript/commonjs/src/web/NavigationRail.d.ts +8 -0
  400. package/lib/typescript/commonjs/src/web/NavigationRail.d.ts.map +1 -0
  401. package/lib/typescript/commonjs/src/web/PlatformComponentsProvider.d.ts +10 -0
  402. package/lib/typescript/commonjs/src/web/PlatformComponentsProvider.d.ts.map +1 -0
  403. package/lib/typescript/commonjs/src/web/SegmentedControl.d.ts +8 -0
  404. package/lib/typescript/commonjs/src/web/SegmentedControl.d.ts.map +1 -0
  405. package/lib/typescript/commonjs/src/web/SelectionMenu.d.ts +10 -0
  406. package/lib/typescript/commonjs/src/web/SelectionMenu.d.ts.map +1 -0
  407. package/lib/typescript/commonjs/src/web/SplitButton.d.ts +9 -0
  408. package/lib/typescript/commonjs/src/web/SplitButton.d.ts.map +1 -0
  409. package/lib/typescript/commonjs/src/web/TabBar.d.ts +9 -0
  410. package/lib/typescript/commonjs/src/web/TabBar.d.ts.map +1 -0
  411. package/lib/typescript/commonjs/src/web/TextField.d.ts +9 -0
  412. package/lib/typescript/commonjs/src/web/TextField.d.ts.map +1 -0
  413. package/lib/typescript/commonjs/src/web/components.d.ts +17 -0
  414. package/lib/typescript/commonjs/src/web/components.d.ts.map +1 -0
  415. package/lib/typescript/commonjs/src/web/containers.d.ts +24 -0
  416. package/lib/typescript/commonjs/src/web/containers.d.ts.map +1 -0
  417. package/lib/typescript/commonjs/src/web/dateInput.d.ts +20 -0
  418. package/lib/typescript/commonjs/src/web/dateInput.d.ts.map +1 -0
  419. package/lib/typescript/commonjs/src/web/shared.d.ts +43 -0
  420. package/lib/typescript/commonjs/src/web/shared.d.ts.map +1 -0
  421. package/lib/typescript/commonjs/src/webComponents.d.ts +43 -0
  422. package/lib/typescript/commonjs/src/webComponents.d.ts.map +1 -0
  423. package/lib/typescript/module/docs/sidebars.d.ts.map +1 -1
  424. package/lib/typescript/module/src/Button.d.ts +184 -0
  425. package/lib/typescript/module/src/Button.d.ts.map +1 -0
  426. package/lib/typescript/module/src/ButtonGroup.d.ts +117 -0
  427. package/lib/typescript/module/src/ButtonGroup.d.ts.map +1 -0
  428. package/lib/typescript/module/src/ButtonGroupNativeComponent.d.ts +154 -0
  429. package/lib/typescript/module/src/ButtonGroupNativeComponent.d.ts.map +1 -0
  430. package/lib/typescript/module/src/ButtonNativeComponent.d.ts +148 -0
  431. package/lib/typescript/module/src/ButtonNativeComponent.d.ts.map +1 -0
  432. package/lib/typescript/module/src/ContextMenu.d.ts +20 -33
  433. package/lib/typescript/module/src/ContextMenu.d.ts.map +1 -1
  434. package/lib/typescript/module/src/ContextMenuNativeComponent.d.ts +45 -47
  435. package/lib/typescript/module/src/ContextMenuNativeComponent.d.ts.map +1 -1
  436. package/lib/typescript/module/src/DatePicker.d.ts +74 -1
  437. package/lib/typescript/module/src/DatePicker.d.ts.map +1 -1
  438. package/lib/typescript/module/src/DatePickerNativeComponent.d.ts +16 -1
  439. package/lib/typescript/module/src/DatePickerNativeComponent.d.ts.map +1 -1
  440. package/lib/typescript/module/src/FloatingActionButton.d.ts +67 -0
  441. package/lib/typescript/module/src/FloatingActionButton.d.ts.map +1 -0
  442. package/lib/typescript/module/src/FloatingActionButtonNativeComponent.d.ts +43 -0
  443. package/lib/typescript/module/src/FloatingActionButtonNativeComponent.d.ts.map +1 -0
  444. package/lib/typescript/module/src/FloatingToolbar.d.ts +75 -0
  445. package/lib/typescript/module/src/FloatingToolbar.d.ts.map +1 -0
  446. package/lib/typescript/module/src/FloatingToolbarNativeComponent.d.ts +36 -0
  447. package/lib/typescript/module/src/FloatingToolbarNativeComponent.d.ts.map +1 -0
  448. package/lib/typescript/module/src/LiquidGlass.d.ts +17 -0
  449. package/lib/typescript/module/src/LiquidGlass.d.ts.map +1 -1
  450. package/lib/typescript/module/src/LiquidGlassContainer.d.ts +27 -0
  451. package/lib/typescript/module/src/LiquidGlassContainer.d.ts.map +1 -0
  452. package/lib/typescript/module/src/LiquidGlassContainerNativeComponent.d.ts +13 -0
  453. package/lib/typescript/module/src/LiquidGlassContainerNativeComponent.d.ts.map +1 -0
  454. package/lib/typescript/module/src/LiquidGlassNativeComponent.d.ts +7 -0
  455. package/lib/typescript/module/src/LiquidGlassNativeComponent.d.ts.map +1 -1
  456. package/lib/typescript/module/src/NavigationRail.d.ts +86 -0
  457. package/lib/typescript/module/src/NavigationRail.d.ts.map +1 -0
  458. package/lib/typescript/module/src/NavigationRailNativeComponent.d.ts +81 -0
  459. package/lib/typescript/module/src/NavigationRailNativeComponent.d.ts.map +1 -0
  460. package/lib/typescript/module/src/PlatformComponentsProvider.d.ts +6 -0
  461. package/lib/typescript/module/src/PlatformComponentsProvider.d.ts.map +1 -0
  462. package/lib/typescript/module/src/SegmentedControl.d.ts +35 -47
  463. package/lib/typescript/module/src/SegmentedControl.d.ts.map +1 -1
  464. package/lib/typescript/module/src/SegmentedControlNativeComponent.d.ts +11 -0
  465. package/lib/typescript/module/src/SegmentedControlNativeComponent.d.ts.map +1 -1
  466. package/lib/typescript/module/src/SelectionMenu.d.ts +44 -2
  467. package/lib/typescript/module/src/SelectionMenu.d.ts.map +1 -1
  468. package/lib/typescript/module/src/SelectionMenuNativeComponent.d.ts +20 -4
  469. package/lib/typescript/module/src/SelectionMenuNativeComponent.d.ts.map +1 -1
  470. package/lib/typescript/module/src/SplitButton.d.ts +83 -0
  471. package/lib/typescript/module/src/SplitButton.d.ts.map +1 -0
  472. package/lib/typescript/module/src/TabBar.d.ts +144 -0
  473. package/lib/typescript/module/src/TabBar.d.ts.map +1 -0
  474. package/lib/typescript/module/src/TabBarAccessoryNativeComponent.d.ts +13 -0
  475. package/lib/typescript/module/src/TabBarAccessoryNativeComponent.d.ts.map +1 -0
  476. package/lib/typescript/module/src/TabBarNativeComponent.d.ts +110 -0
  477. package/lib/typescript/module/src/TabBarNativeComponent.d.ts.map +1 -0
  478. package/lib/typescript/module/src/TextField.d.ts +332 -0
  479. package/lib/typescript/module/src/TextField.d.ts.map +1 -0
  480. package/lib/typescript/module/src/TextFieldNativeComponent.d.ts +240 -0
  481. package/lib/typescript/module/src/TextFieldNativeComponent.d.ts.map +1 -0
  482. package/lib/typescript/module/src/focusRegistry.d.ts +13 -0
  483. package/lib/typescript/module/src/focusRegistry.d.ts.map +1 -0
  484. package/lib/typescript/module/src/haptics.d.ts +20 -0
  485. package/lib/typescript/module/src/haptics.d.ts.map +1 -0
  486. package/lib/typescript/module/src/icons.d.ts +58 -0
  487. package/lib/typescript/module/src/icons.d.ts.map +1 -0
  488. package/lib/typescript/module/src/index.d.ts +13 -0
  489. package/lib/typescript/module/src/index.d.ts.map +1 -1
  490. package/lib/typescript/module/src/index.web.d.ts +25 -133
  491. package/lib/typescript/module/src/index.web.d.ts.map +1 -1
  492. package/lib/typescript/module/src/jest.d.ts +139 -0
  493. package/lib/typescript/module/src/jest.d.ts.map +1 -0
  494. package/lib/typescript/module/src/labelStyle.d.ts +20 -0
  495. package/lib/typescript/module/src/labelStyle.d.ts.map +1 -0
  496. package/lib/typescript/module/src/menuItems.d.ts +100 -0
  497. package/lib/typescript/module/src/menuItems.d.ts.map +1 -0
  498. package/lib/typescript/module/src/selectionIdentifiers.d.ts +3 -0
  499. package/lib/typescript/module/src/selectionIdentifiers.d.ts.map +1 -0
  500. package/lib/typescript/module/src/sharedTypes.d.ts +6 -1
  501. package/lib/typescript/module/src/sharedTypes.d.ts.map +1 -1
  502. package/lib/typescript/module/src/submitBehavior.d.ts +9 -0
  503. package/lib/typescript/module/src/submitBehavior.d.ts.map +1 -0
  504. package/lib/typescript/module/src/tabItems.d.ts +55 -0
  505. package/lib/typescript/module/src/tabItems.d.ts.map +1 -0
  506. package/lib/typescript/module/src/web/Button.d.ts +9 -0
  507. package/lib/typescript/module/src/web/Button.d.ts.map +1 -0
  508. package/lib/typescript/module/src/web/ButtonGroup.d.ts +11 -0
  509. package/lib/typescript/module/src/web/ButtonGroup.d.ts.map +1 -0
  510. package/lib/typescript/module/src/web/DatePicker.d.ts +14 -0
  511. package/lib/typescript/module/src/web/DatePicker.d.ts.map +1 -0
  512. package/lib/typescript/module/src/web/DateRangePicker.d.ts +11 -0
  513. package/lib/typescript/module/src/web/DateRangePicker.d.ts.map +1 -0
  514. package/lib/typescript/module/src/web/Dialog.d.ts +12 -0
  515. package/lib/typescript/module/src/web/Dialog.d.ts.map +1 -0
  516. package/lib/typescript/module/src/web/FloatingActionButton.d.ts +8 -0
  517. package/lib/typescript/module/src/web/FloatingActionButton.d.ts.map +1 -0
  518. package/lib/typescript/module/src/web/Icon.d.ts +12 -0
  519. package/lib/typescript/module/src/web/Icon.d.ts.map +1 -0
  520. package/lib/typescript/module/src/web/NativeTheme.d.ts +10 -0
  521. package/lib/typescript/module/src/web/NativeTheme.d.ts.map +1 -0
  522. package/lib/typescript/module/src/web/NavigationRail.d.ts +8 -0
  523. package/lib/typescript/module/src/web/NavigationRail.d.ts.map +1 -0
  524. package/lib/typescript/module/src/web/PlatformComponentsProvider.d.ts +10 -0
  525. package/lib/typescript/module/src/web/PlatformComponentsProvider.d.ts.map +1 -0
  526. package/lib/typescript/module/src/web/SegmentedControl.d.ts +8 -0
  527. package/lib/typescript/module/src/web/SegmentedControl.d.ts.map +1 -0
  528. package/lib/typescript/module/src/web/SelectionMenu.d.ts +10 -0
  529. package/lib/typescript/module/src/web/SelectionMenu.d.ts.map +1 -0
  530. package/lib/typescript/module/src/web/SplitButton.d.ts +9 -0
  531. package/lib/typescript/module/src/web/SplitButton.d.ts.map +1 -0
  532. package/lib/typescript/module/src/web/TabBar.d.ts +9 -0
  533. package/lib/typescript/module/src/web/TabBar.d.ts.map +1 -0
  534. package/lib/typescript/module/src/web/TextField.d.ts +9 -0
  535. package/lib/typescript/module/src/web/TextField.d.ts.map +1 -0
  536. package/lib/typescript/module/src/web/components.d.ts +17 -0
  537. package/lib/typescript/module/src/web/components.d.ts.map +1 -0
  538. package/lib/typescript/module/src/web/containers.d.ts +24 -0
  539. package/lib/typescript/module/src/web/containers.d.ts.map +1 -0
  540. package/lib/typescript/module/src/web/dateInput.d.ts +20 -0
  541. package/lib/typescript/module/src/web/dateInput.d.ts.map +1 -0
  542. package/lib/typescript/module/src/web/shared.d.ts +43 -0
  543. package/lib/typescript/module/src/web/shared.d.ts.map +1 -0
  544. package/lib/typescript/module/src/webComponents.d.ts +43 -0
  545. package/lib/typescript/module/src/webComponents.d.ts.map +1 -0
  546. package/package.json +55 -4
  547. package/plugin/build/index.d.ts +3 -2
  548. package/plugin/build/index.d.ts.map +1 -1
  549. package/react-native.config.js +6 -0
  550. package/shared/PCButtonComponentDescriptors-custom.h +22 -0
  551. package/shared/PCButtonGroupComponentDescriptors-custom.h +22 -0
  552. package/shared/PCButtonGroupShadowNode-custom.cpp +48 -0
  553. package/shared/PCButtonGroupShadowNode-custom.h +55 -0
  554. package/shared/PCButtonGroupState-custom.h +61 -0
  555. package/shared/PCButtonShadowNode-custom.cpp +48 -0
  556. package/shared/PCButtonShadowNode-custom.h +55 -0
  557. package/shared/PCButtonState-custom.h +61 -0
  558. package/shared/PCFloatingActionButtonComponentDescriptors-custom.h +22 -0
  559. package/shared/PCFloatingActionButtonShadowNode-custom.cpp +48 -0
  560. package/shared/PCFloatingActionButtonShadowNode-custom.h +54 -0
  561. package/shared/PCFloatingActionButtonState-custom.h +61 -0
  562. package/shared/PCNavigationRailComponentDescriptors-custom.h +47 -0
  563. package/shared/PCNavigationRailShadowNode-custom.h +42 -0
  564. package/shared/PCNavigationRailState-custom.h +62 -0
  565. package/shared/PCTabBarComponentDescriptors-custom.h +22 -0
  566. package/shared/PCTabBarShadowNode-custom.cpp +54 -0
  567. package/shared/PCTabBarShadowNode-custom.h +54 -0
  568. package/shared/PCTabBarState-custom.h +62 -0
  569. package/shared/PCTextFieldComponentDescriptors-custom.h +22 -0
  570. package/shared/PCTextFieldShadowNode-custom.cpp +47 -0
  571. package/shared/PCTextFieldShadowNode-custom.h +55 -0
  572. package/shared/PCTextFieldState-custom.h +61 -0
  573. package/shared/react/renderer/components/PlatformComponentsViewSpec/ComponentDescriptors.h +6 -0
  574. package/src/Button.tsx +359 -0
  575. package/src/ButtonGroup.tsx +251 -0
  576. package/src/ButtonGroupNativeComponent.ts +191 -0
  577. package/src/ButtonNativeComponent.ts +192 -0
  578. package/src/ContextMenu.tsx +34 -81
  579. package/src/ContextMenuNativeComponent.ts +47 -49
  580. package/src/DatePicker.tsx +182 -4
  581. package/src/DatePickerNativeComponent.ts +19 -2
  582. package/src/FloatingActionButton.tsx +121 -0
  583. package/src/FloatingActionButtonNativeComponent.ts +58 -0
  584. package/src/FloatingToolbar.tsx +164 -0
  585. package/src/FloatingToolbarNativeComponent.ts +47 -0
  586. package/src/LiquidGlass.tsx +24 -1
  587. package/src/LiquidGlassContainer.tsx +42 -0
  588. package/src/LiquidGlassContainerNativeComponent.ts +17 -0
  589. package/src/LiquidGlassNativeComponent.ts +8 -0
  590. package/src/NavigationRail.tsx +203 -0
  591. package/src/NavigationRailNativeComponent.ts +107 -0
  592. package/src/PlatformComponentsProvider.tsx +15 -0
  593. package/src/SegmentedControl.tsx +57 -119
  594. package/src/SegmentedControlNativeComponent.ts +14 -0
  595. package/src/SelectionMenu.tsx +81 -6
  596. package/src/SelectionMenuNativeComponent.ts +26 -4
  597. package/src/SplitButton.tsx +198 -0
  598. package/src/TabBar.tsx +373 -0
  599. package/src/TabBarAccessoryNativeComponent.ts +19 -0
  600. package/src/TabBarNativeComponent.ts +145 -0
  601. package/src/TextField.tsx +908 -0
  602. package/src/TextFieldNativeComponent.ts +324 -0
  603. package/src/focusRegistry.ts +90 -0
  604. package/src/haptics.ts +31 -0
  605. package/src/icons.ts +143 -0
  606. package/src/index.tsx +13 -0
  607. package/src/index.web.tsx +53 -199
  608. package/src/jest.tsx +958 -0
  609. package/src/labelStyle.ts +36 -0
  610. package/src/menuItems.ts +152 -0
  611. package/src/reactNativeInternals.d.ts +22 -0
  612. package/src/selectionIdentifiers.ts +17 -0
  613. package/src/sharedTypes.ts +7 -1
  614. package/src/submitBehavior.ts +16 -0
  615. package/src/tabItems.ts +113 -0
  616. package/src/web/Button.tsx +201 -0
  617. package/src/web/ButtonGroup.tsx +154 -0
  618. package/src/web/DatePicker.tsx +204 -0
  619. package/src/web/DateRangePicker.tsx +135 -0
  620. package/src/web/Dialog.tsx +54 -0
  621. package/src/web/FloatingActionButton.tsx +76 -0
  622. package/src/web/Icon.tsx +33 -0
  623. package/src/web/NativeTheme.ts +23 -0
  624. package/src/web/NavigationRail.tsx +148 -0
  625. package/src/web/PlatformComponentsProvider.tsx +48 -0
  626. package/src/web/SegmentedControl.tsx +127 -0
  627. package/src/web/SelectionMenu.tsx +149 -0
  628. package/src/web/SplitButton.tsx +32 -0
  629. package/src/web/TabBar.tsx +150 -0
  630. package/src/web/TextField.tsx +361 -0
  631. package/src/web/components.tsx +71 -0
  632. package/src/web/containers.tsx +130 -0
  633. package/src/web/dateInput.ts +137 -0
  634. package/src/web/shared.ts +176 -0
  635. package/src/webComponents.ts +45 -0
  636. package/android/src/main/java/com/platformcomponents/DateConstraints.kt +0 -83
@@ -0,0 +1,324 @@
1
+ // TextFieldNativeComponent.ts
2
+ import type * as React from 'react';
3
+ import type { ColorValue, HostComponent, ViewProps } from 'react-native';
4
+ import { codegenNativeCommands, codegenNativeComponent } from 'react-native';
5
+ import type { BubblingEventHandler, Double, Int32 } from './codegenTypes';
6
+
7
+ /**
8
+ * Icon fields, pre-resolved on the JS side (see icons.ts).
9
+ */
10
+ export type TextFieldIconProps = Readonly<{
11
+ iconType: string; // '' | 'sfSymbol' | 'drawable' | 'image'
12
+ iconName: string; // SF Symbol (iOS) or drawable resource name (Android)
13
+ iconRequest: string;
14
+ iconUri: string; // Resolved image URI when iconType === 'image'
15
+ iconScale: Double; // Resolved image scale when iconType === 'image'
16
+ iconTinted: string; // 'true' | 'false' — draw the image as a tinted template
17
+ }>;
18
+
19
+ /**
20
+ * Text font. Empty strings / 0 mean "platform default".
21
+ */
22
+ export type TextFieldTextStyleProps = Readonly<{
23
+ fontFamily?: string;
24
+ fontSize?: Double;
25
+ fontWeight?: string; // 'normal' | 'bold' | '100'..'900'
26
+ fontStyle?: string; // 'normal' | 'italic'
27
+ }>;
28
+
29
+ /**
30
+ * Fired on every edit. `eventCount` is the native edit counter that JS hands
31
+ * back with `setText`, so a stale controlled value can't overwrite what the
32
+ * user typed since.
33
+ */
34
+ export type TextFieldChangeEvent = Readonly<{
35
+ text: string;
36
+ eventCount: Int32;
37
+ }>;
38
+
39
+ /** Focus, blur and submit carry the text at that moment. */
40
+ export type TextFieldTextEvent = Readonly<{
41
+ text: string;
42
+ }>;
43
+
44
+ /** The cursor or selection, as UTF-16 offsets into the text. */
45
+ export type TextFieldSelectionEvent = Readonly<{
46
+ start: Int32;
47
+ end: Int32;
48
+ }>;
49
+
50
+ /** A press on a keyboard toolbar button (iOS). */
51
+ export type TextFieldToolbarPressEvent = Readonly<{
52
+ itemId: string;
53
+ }>;
54
+
55
+ /**
56
+ * A keyboard toolbar item (iOS). Icons are pre-resolved on the JS side (see
57
+ * icons.ts); empty strings mean "none".
58
+ */
59
+ export type TextFieldToolbarItem = Readonly<{
60
+ kind: string; // 'button' | 'done' | 'flexibleSpace'
61
+ itemId: string;
62
+ title: string;
63
+ systemItem: string; // '' | UIBarButtonItem.SystemItem name
64
+ iconType: string; // '' | 'sfSymbol' | 'image'
65
+ iconName: string;
66
+ iconRequest: string;
67
+ iconUri: string;
68
+ iconScale: Double;
69
+ iconTinted: string; // 'true' | 'false'
70
+ prominent: string; // 'true' | 'false'
71
+ accessibilityLabel: string;
72
+ testID: string;
73
+ }>;
74
+
75
+ /**
76
+ * iOS-specific configuration. Every field is '' for the platform default.
77
+ */
78
+ export type TextFieldIOSProps = Readonly<{
79
+ /** 'default' | 'complete' | 'limited' | 'none' (iOS 18) */
80
+ writingTools?: string;
81
+ /** 'default' | 'yes' | 'no' (iOS 17) */
82
+ inlinePrediction?: string;
83
+ /** 'default' | 'yes' | 'no' */
84
+ smartQuotes?: string;
85
+ /** 'default' | 'yes' | 'no' */
86
+ smartDashes?: string;
87
+ /** 'default' | 'yes' | 'no' */
88
+ smartInsertDelete?: string;
89
+ /** 'default' | 'yes' | 'no' (iOS 18) */
90
+ mathExpressionCompletion?: string;
91
+ /** 'roundedRect' | 'none' | 'line' | 'bezel' */
92
+ borderStyle?: string;
93
+ /** 'above' | 'leading': where the label sits */
94
+ labelPlacement?: string;
95
+ /** Width of a leading label column in points; 0 = default */
96
+ labelWidth?: Double;
97
+ /** UITextInputPasswordRules descriptor; '' = none */
98
+ passwordRules?: string;
99
+ }>;
100
+
101
+ /**
102
+ * Android-specific configuration.
103
+ */
104
+ export type TextFieldAndroidProps = Readonly<{
105
+ /** 'm3' | 'system' (AndroidMaterialMode) */
106
+ material?: string;
107
+ /** 'outlined' | 'filled' | 'plain' */
108
+ variant?: string;
109
+ /** 'standard' | 'dense' */
110
+ density?: string;
111
+ }>;
112
+
113
+ export interface TextFieldNativeProps extends ViewProps {
114
+ /**
115
+ * Text applied when the native view is created. Later updates go through
116
+ * the `setText` command so they can be checked against `eventCount`.
117
+ */
118
+ initialText?: string;
119
+
120
+ /** Floating label (Android) / caption above the field (iOS). */
121
+ label?: string;
122
+
123
+ /** Placeholder shown while the field is empty. */
124
+ placeholder?: string;
125
+
126
+ /** Helper text below the field. */
127
+ supportingText?: string;
128
+
129
+ /** 'none' | 'error' */
130
+ errorState?: string;
131
+
132
+ /** Error message shown instead of the supporting text. */
133
+ errorText?: string;
134
+
135
+ /** Text shown before the input, inside the field. */
136
+ prefix?: string;
137
+
138
+ /** Text shown after the input, inside the field. */
139
+ suffix?: string;
140
+
141
+ /** Icon at the start of the field. */
142
+ leadingIcon?: TextFieldIconProps;
143
+
144
+ /** Icon at the end of the field; pressing it fires onTrailingIconPress. */
145
+ trailingIcon?: TextFieldIconProps;
146
+
147
+ /** 'never' | 'while-editing' | 'unless-editing' | 'always' */
148
+ clearButtonMode?: string;
149
+
150
+ /** 'shown' | 'hidden': a button that toggles secure text entry. */
151
+ passwordToggle?: string;
152
+
153
+ /** 'shown' | 'hidden': the character counter. */
154
+ characterCount?: string;
155
+
156
+ /** Maximum number of UTF-16 characters; 0 = unlimited. */
157
+ maxLength?: Int32;
158
+
159
+ /** React Native keyboardType value. */
160
+ keyboardType?: string;
161
+
162
+ /** React Native returnKeyType value. */
163
+ returnKeyType?: string;
164
+
165
+ /** 'none' | 'sentences' | 'words' | 'characters' */
166
+ autoCapitalize?: string;
167
+
168
+ /** 'enabled' | 'disabled' */
169
+ autoCorrect?: string;
170
+
171
+ /** 'secure' | 'plain' */
172
+ secureTextEntry?: string;
173
+
174
+ /** 'single' | 'multiline' */
175
+ lines?: string;
176
+
177
+ /**
178
+ * What the return key does: 'submit' | 'blurAndSubmit' | 'newline',
179
+ * resolved on the JS side ('newline' only for multi-line fields).
180
+ */
181
+ submitBehavior?: string;
182
+
183
+ /** iOS: the keyboard toolbar (inputAccessoryView); empty = none. */
184
+ keyboardToolbarItems?: ReadonlyArray<TextFieldToolbarItem>;
185
+
186
+ /** 'enabled' | 'disabled' */
187
+ interactivity?: string;
188
+
189
+ /** 'focus' | 'none': focus the field when it mounts. */
190
+ autoFocus?: string;
191
+
192
+ /** 'select' | 'keep': select all text on focus. */
193
+ selectTextOnFocus?: string;
194
+
195
+ /** React Native autoComplete value; '' = platform default. */
196
+ autoComplete?: string;
197
+
198
+ /** 'default' | 'light' | 'dark' (iOS keyboard appearance) */
199
+ keyboardAppearance?: string;
200
+
201
+ /** Font of the input text. */
202
+ textStyle?: TextFieldTextStyleProps;
203
+
204
+ /**
205
+ * Screen-reader label, applied to the native field rather than the host
206
+ * view. Empty means "use the label".
207
+ */
208
+ spokenLabel?: string;
209
+
210
+ /** E2E identifier of the leading icon. */
211
+ leadingIconTestID?: string;
212
+
213
+ /** Screen-reader label of the leading icon. */
214
+ leadingIconSpokenLabel?: string;
215
+
216
+ /** E2E identifier of the trailing icon. */
217
+ trailingIconTestID?: string;
218
+
219
+ /** Screen-reader label of the trailing icon. */
220
+ trailingIconSpokenLabel?: string;
221
+
222
+ /** Focused outline, focused label and cursor color. */
223
+ activeColor?: ColorValue;
224
+
225
+ /** Unfocused outline (underline for the filled variant) color. */
226
+ outlineColor?: ColorValue;
227
+
228
+ /** Error outline, label and message color. */
229
+ errorColor?: ColorValue;
230
+
231
+ /** Background of the field's box. */
232
+ containerColor?: ColorValue;
233
+
234
+ /** Input text color. */
235
+ textColor?: ColorValue;
236
+
237
+ /** Placeholder color. */
238
+ placeholderTextColor?: ColorValue;
239
+
240
+ /** Largest font scale the text may reach; 0 = no cap. */
241
+ maxFontSizeMultiplier?: Double;
242
+
243
+ /** '' (natural) | 'left' | 'center' | 'right' */
244
+ textAlign?: string;
245
+
246
+ /** Multi-line: minimum and maximum visible lines; 0 = unset. */
247
+ minLines?: Int32;
248
+ maxLines?: Int32;
249
+
250
+ /** 'none' | 'button': a non-editable field that fires onFieldPress. */
251
+ pressMode?: string;
252
+
253
+ ios?: TextFieldIOSProps;
254
+ android?: TextFieldAndroidProps;
255
+
256
+ /** Fired on every user edit. */
257
+ onFieldChange?: BubblingEventHandler<TextFieldChangeEvent>;
258
+
259
+ /** Fired when the field gains focus. */
260
+ onFieldFocus?: BubblingEventHandler<TextFieldTextEvent>;
261
+
262
+ /** Fired when the field loses focus. */
263
+ onFieldBlur?: BubblingEventHandler<TextFieldTextEvent>;
264
+
265
+ /** Fired when the return key submits (see submitBehavior). */
266
+ onFieldSubmit?: BubblingEventHandler<TextFieldTextEvent>;
267
+
268
+ /** Fired when the cursor moves or the selection changes. */
269
+ onFieldSelectionChange?: BubblingEventHandler<TextFieldSelectionEvent>;
270
+
271
+ /** iOS: fired when a keyboard toolbar button (other than Done) is pressed. */
272
+ onKeyboardToolbarPress?: BubblingEventHandler<TextFieldToolbarPressEvent>;
273
+
274
+ /** Fired when the trailing icon is pressed. */
275
+ onTrailingIconPress?: BubblingEventHandler<Readonly<{}>>;
276
+
277
+ /** Fired when a field with pressMode 'button' is pressed. */
278
+ onFieldPress?: BubblingEventHandler<Readonly<{}>>;
279
+ }
280
+
281
+ type NativeTextFieldComponent = HostComponent<TextFieldNativeProps>;
282
+
283
+ // `React.ElementRef` rather than `React.ComponentRef`: the codegen shipped with
284
+ // React Native 0.81 (and the 0.76 Android floor) only accepts the former.
285
+ interface NativeCommands {
286
+ /** Focuses the field and shows the keyboard. */
287
+ focus: (viewRef: React.ElementRef<NativeTextFieldComponent>) => void;
288
+
289
+ /** Removes focus and hides the keyboard. */
290
+ blur: (viewRef: React.ElementRef<NativeTextFieldComponent>) => void;
291
+
292
+ /** Clears the text; fires onFieldChange like a user edit. */
293
+ clear: (viewRef: React.ElementRef<NativeTextFieldComponent>) => void;
294
+
295
+ /**
296
+ * Replaces the text, unless the user has edited since `eventCount` was
297
+ * reported, in which case the update is dropped and the next edit event
298
+ * brings JS back in sync.
299
+ */
300
+ setText: (
301
+ viewRef: React.ElementRef<NativeTextFieldComponent>,
302
+ eventCount: Int32,
303
+ text: string
304
+ ) => void;
305
+
306
+ /**
307
+ * Selects `start`..`end` (UTF-16 offsets, clamped to the text), unless the
308
+ * user has edited since `eventCount` was reported, as for `setText`.
309
+ */
310
+ setSelection: (
311
+ viewRef: React.ElementRef<NativeTextFieldComponent>,
312
+ eventCount: Int32,
313
+ start: Int32,
314
+ end: Int32
315
+ ) => void;
316
+ }
317
+
318
+ export const Commands: NativeCommands = codegenNativeCommands<NativeCommands>({
319
+ supportedCommands: ['focus', 'blur', 'clear', 'setText', 'setSelection'],
320
+ });
321
+
322
+ export default codegenNativeComponent<TextFieldNativeProps>(
323
+ 'PCTextField'
324
+ ) as NativeTextFieldComponent;
@@ -0,0 +1,90 @@
1
+ /// <reference path="./reactNativeInternals.d.ts" />
2
+ // focusRegistry.ts
3
+ //
4
+ // TextField's link to React Native's focused-input bookkeeping. The core
5
+ // TextInput registers its host node with `TextInputState`, and that registry is
6
+ // what `Keyboard.dismiss()`, a ScrollView's `keyboardShouldPersistTaps` and
7
+ // `keyboardDismissMode`, and `KeyboardAvoidingView` act on. Registering the
8
+ // same way makes a TextField behave like a TextInput for all of them.
9
+ //
10
+ // `TextInputState` is a stable internal (it has kept this shape since 0.63),
11
+ // but React Native's Babel preset adds a dev-time warning to every static
12
+ // `import` or `require` of a deep path. A dynamic `import()` is resolved by
13
+ // Metro the same way and carries no warning; it settles in a microtask at
14
+ // startup, so a node registered before then is kept and registered once the
15
+ // module arrives. If a future release drops the path, the registry is simply
16
+ // absent and the field falls back to the public `TextInput.State` calls for
17
+ // focus and blur, keeping `Keyboard.dismiss()` working.
18
+ import { TextInput } from 'react-native';
19
+
20
+ type HostNode = object;
21
+
22
+ type Registry = {
23
+ currentlyFocusedInput(): HostNode | null | undefined;
24
+ focusInput(input: HostNode | null | undefined): void;
25
+ blurInput(input: HostNode | null | undefined): void;
26
+ registerInput(input: HostNode): void;
27
+ unregisterInput(input: HostNode): void;
28
+ isTextInput(input: HostNode): boolean;
29
+ };
30
+
31
+ let registry: Registry | undefined;
32
+ const pendingRegistrations = new Set<HostNode>();
33
+
34
+ // A stable internal without a public counterpart; see reactNativeInternals.d.ts.
35
+
36
+ import('react-native/Libraries/Components/TextInput/TextInputState')
37
+ .then((module) => {
38
+ registry = module.default;
39
+ pendingRegistrations.forEach((node) => registry?.registerInput(node));
40
+ pendingRegistrations.clear();
41
+ })
42
+ .catch(() => {
43
+ // Not available: focus and blur still go through TextInput.State below.
44
+ });
45
+
46
+ export const focusRegistry = {
47
+ /** Called when the field mounts. */
48
+ register(node: HostNode): void {
49
+ if (registry) {
50
+ registry.registerInput(node);
51
+ } else {
52
+ pendingRegistrations.add(node);
53
+ }
54
+ },
55
+
56
+ /** Called when the field unmounts; drops the focus if the field held it. */
57
+ unregister(node: HostNode): void {
58
+ pendingRegistrations.delete(node);
59
+ if (registry) {
60
+ registry.unregisterInput(node);
61
+ if (registry.currentlyFocusedInput() === node) {
62
+ registry.blurInput(node);
63
+ }
64
+ } else if (TextInput.State.currentlyFocusedInput() === node) {
65
+ TextInput.State.blurTextInput(node as never);
66
+ }
67
+ },
68
+
69
+ /** The field gained focus natively. */
70
+ focused(node: HostNode | null): void {
71
+ if (node == null) return;
72
+ if (registry) {
73
+ registry.focusInput(node);
74
+ } else {
75
+ // Also re-sends the focus command, which the focused field ignores
76
+ TextInput.State.focusTextInput(node as never);
77
+ }
78
+ },
79
+
80
+ /** The field lost focus natively. */
81
+ blurred(node: HostNode | null): void {
82
+ if (node == null) return;
83
+ if (registry) {
84
+ registry.blurInput(node);
85
+ } else {
86
+ // Also re-sends the blur command, which the unfocused field ignores
87
+ TextInput.State.blurTextInput(node as never);
88
+ }
89
+ },
90
+ };
package/src/haptics.ts ADDED
@@ -0,0 +1,31 @@
1
+ // haptics.ts
2
+ //
3
+ // The `haptics` prop shared by the interactive components.
4
+
5
+ /**
6
+ * Haptic feedback a control plays when the user acts on it: a press, a
7
+ * selection change or a menu pick. Unset plays nothing beyond what the
8
+ * platform control does itself.
9
+ *
10
+ * | Value | iOS | Android (`HapticFeedbackConstants`) |
11
+ * | ----------- | ------------------------------------------ | -------------------------------------- |
12
+ * | `selection` | `UISelectionFeedbackGenerator` | `SEGMENT_TICK` (API 34+), else `CLOCK_TICK` |
13
+ * | `light` | `UIImpactFeedbackGenerator` `.light` | `CONTEXT_CLICK` |
14
+ * | `medium` | `UIImpactFeedbackGenerator` `.medium` | `VIRTUAL_KEY` |
15
+ * | `heavy` | `UIImpactFeedbackGenerator` `.heavy` | `LONG_PRESS` |
16
+ * | `success` | `UINotificationFeedbackGenerator` `.success` | `CONFIRM` (API 30+), else `VIRTUAL_KEY` |
17
+ * | `warning` | `UINotificationFeedbackGenerator` `.warning` | `REJECT` (API 30+), else `LONG_PRESS` |
18
+ * | `error` | `UINotificationFeedbackGenerator` `.error` | `REJECT` (API 30+), else `LONG_PRESS` |
19
+ * | `none` | Nothing | Nothing, and turns off the view's own haptic (`isHapticFeedbackEnabled`) |
20
+ *
21
+ * Both platforms follow the system haptics setting. Web ignores the prop.
22
+ */
23
+ export type Haptics =
24
+ | 'selection'
25
+ | 'light'
26
+ | 'medium'
27
+ | 'heavy'
28
+ | 'success'
29
+ | 'warning'
30
+ | 'error'
31
+ | 'none';
package/src/icons.ts ADDED
@@ -0,0 +1,143 @@
1
+ // icons.ts
2
+ //
3
+ // Icon props shared by SegmentedControl, Button and ButtonGroup. Icons are
4
+ // resolved on the JS side so native only deals with flat strings.
5
+ import {
6
+ Image,
7
+ Platform,
8
+ type ImageRequireSource,
9
+ type ImageURISource,
10
+ } from 'react-native';
11
+
12
+ /**
13
+ * A single icon source.
14
+ *
15
+ * - `string`: shorthand for an SF Symbol name on iOS and a drawable resource
16
+ * name on Android.
17
+ * - `{ type: 'sfSymbol' }`: an SF Symbol. iOS only; ignored on Android.
18
+ * - `{ type: 'drawable' }`: a drawable from the app's `res/drawable`.
19
+ * Android only; ignored on iOS.
20
+ * - `{ type: 'image' }`: an image asset (`require('./icon.png')`) or a
21
+ * `{ uri }` source. Works on both platforms. Images are drawn as tinted
22
+ * templates unless `tinted` is `false`. Native loaders forward `headers`,
23
+ * `method` and `body`. `cache` controls the decoded in-memory image cache:
24
+ * `reload` bypasses it, `only-if-cached` never fetches, and `default` /
25
+ * `force-cache` reuse a matching cached request. HTTP redirects carrying
26
+ * custom request options are not followed.
27
+ */
28
+ export type PlatformIconSource =
29
+ | string
30
+ | { type: 'sfSymbol'; name: string }
31
+ | { type: 'drawable'; name: string }
32
+ | {
33
+ type: 'image';
34
+ source: ImageRequireSource | ImageURISource;
35
+ tinted?: boolean;
36
+ };
37
+
38
+ /**
39
+ * An icon: a single source used on both platforms, or a per-platform pair so
40
+ * callers don't need to branch on `Platform.OS`.
41
+ */
42
+ export type PlatformIcon =
43
+ | PlatformIconSource
44
+ | {
45
+ ios?: PlatformIconSource;
46
+ android?: PlatformIconSource;
47
+ };
48
+
49
+ /** The flat icon fields the native specs expect. */
50
+ export type NativeIconFields = {
51
+ /** '' | 'sfSymbol' | 'drawable' | 'image' */
52
+ iconType: string;
53
+ /** SF Symbol (iOS) or drawable resource name (Android) */
54
+ iconName: string;
55
+ /** Resolved image URI when iconType === 'image' */
56
+ iconUri: string;
57
+ /** Serialized HTTP request options; empty for ordinary image assets. */
58
+ iconRequest: string;
59
+ /** Resolved image scale when iconType === 'image' */
60
+ iconScale: number;
61
+ /** 'true' | 'false': draw the image as a tinted template */
62
+ iconTinted: string;
63
+ };
64
+
65
+ export const NO_ICON: NativeIconFields = {
66
+ iconType: '',
67
+ iconName: '',
68
+ iconUri: '',
69
+ iconRequest: '',
70
+ iconScale: 1,
71
+ iconTinted: 'true',
72
+ };
73
+
74
+ function pickIconSource(
75
+ icon: PlatformIcon | undefined
76
+ ): PlatformIconSource | undefined {
77
+ if (icon === undefined || typeof icon === 'string' || 'type' in icon) {
78
+ return icon;
79
+ }
80
+ return Platform.OS === 'ios' ? icon.ios : icon.android;
81
+ }
82
+
83
+ /**
84
+ * Flattens the public icon shape into the strings native expects, dropping
85
+ * sources that don't apply to the current platform.
86
+ */
87
+ export function resolveIcon(icon: PlatformIcon | undefined): NativeIconFields {
88
+ const source = pickIconSource(icon);
89
+ if (source === undefined) return NO_ICON;
90
+
91
+ if (typeof source === 'string') {
92
+ if (source.length === 0) return NO_ICON;
93
+ return {
94
+ ...NO_ICON,
95
+ iconType: Platform.OS === 'ios' ? 'sfSymbol' : 'drawable',
96
+ iconName: source,
97
+ };
98
+ }
99
+
100
+ switch (source.type) {
101
+ case 'sfSymbol':
102
+ return Platform.OS === 'ios'
103
+ ? { ...NO_ICON, iconType: 'sfSymbol', iconName: source.name }
104
+ : NO_ICON;
105
+ case 'drawable':
106
+ return Platform.OS === 'android'
107
+ ? { ...NO_ICON, iconType: 'drawable', iconName: source.name }
108
+ : NO_ICON;
109
+ case 'image': {
110
+ const resolved = Image.resolveAssetSource(source.source);
111
+ if (!resolved?.uri) return NO_ICON;
112
+ const request =
113
+ typeof source.source === 'object' ? source.source : undefined;
114
+ const headers = request?.headers
115
+ ? Object.fromEntries(
116
+ Object.entries(request.headers).sort(([a], [b]) =>
117
+ a.localeCompare(b)
118
+ )
119
+ )
120
+ : undefined;
121
+ const requestOptions = {
122
+ headers,
123
+ method: request?.method,
124
+ body: request?.body,
125
+ cache: request?.cache,
126
+ };
127
+ return {
128
+ iconType: 'image',
129
+ iconName: '',
130
+ iconUri: resolved.uri,
131
+ iconRequest: Object.values(requestOptions).some(
132
+ (value) => value !== undefined
133
+ )
134
+ ? JSON.stringify(requestOptions)
135
+ : '',
136
+ iconScale: resolved.scale > 0 ? resolved.scale : 1,
137
+ iconTinted: source.tinted === false ? 'false' : 'true',
138
+ };
139
+ }
140
+ default:
141
+ return NO_ICON;
142
+ }
143
+ }
package/src/index.tsx CHANGED
@@ -2,6 +2,19 @@ export * from './DatePicker';
2
2
  export * from './SelectionMenu';
3
3
  export * from './ContextMenu';
4
4
  export * from './SegmentedControl';
5
+ export * from './TabBar';
6
+ export * from './FloatingActionButton';
7
+ export * from './NavigationRail';
8
+ export * from './Button';
9
+ export * from './ButtonGroup';
10
+ export * from './SplitButton';
11
+ export * from './FloatingToolbar';
5
12
  export * from './LiquidGlass';
13
+ export * from './LiquidGlassContainer';
14
+ export * from './TextField';
15
+ export * from './icons';
16
+ export * from './labelStyle';
6
17
  export * from './sharedTypes';
18
+ export * from './haptics';
7
19
  export * from './NativeTheme';
20
+ export * from './PlatformComponentsProvider';