react-native-platform-components 1.4.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 (598) hide show
  1. package/PlatformComponents.podspec +1 -1
  2. package/README.md +33 -31
  3. package/android/src/main/java/com/platformcomponents/PCButtonGroupView.kt +175 -9
  4. package/android/src/main/java/com/platformcomponents/PCButtonGroupViewManager.kt +52 -2
  5. package/android/src/main/java/com/platformcomponents/PCButtonSupport.kt +44 -12
  6. package/android/src/main/java/com/platformcomponents/PCButtonView.kt +187 -5
  7. package/android/src/main/java/com/platformcomponents/PCButtonViewManager.kt +85 -7
  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 +6 -1
  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 +132 -0
  16. package/android/src/main/java/com/platformcomponents/PCFloatingToolbarViewManager.kt +8 -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 +24 -14
  28. package/android/src/main/java/com/platformcomponents/PCSegmentedControlViewManager.kt +14 -2
  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 +415 -40
  34. package/android/src/main/java/com/platformcomponents/PCTextFieldViewManager.kt +109 -3
  35. package/android/src/main/java/com/platformcomponents/PCThemeSupport.kt +37 -0
  36. package/android/src/main/java/com/platformcomponents/PlatformComponentsPackage.kt +4 -0
  37. package/android/src/main/res/drawable/pc_ic_search.xml +12 -0
  38. package/android/src/main/res/values/ids.xml +5 -0
  39. package/android/src/main/res/values/styles.xml +24 -0
  40. package/ios/PCButton.mm +122 -7
  41. package/ios/PCButtonGroup.mm +68 -1
  42. package/ios/PCButtonGroupView.swift +225 -6
  43. package/ios/PCButtonSupport.swift +181 -10
  44. package/ios/PCButtonView.swift +297 -14
  45. package/ios/PCConstants.swift +23 -2
  46. package/ios/PCContextMenu.mm +28 -110
  47. package/ios/PCContextMenu.swift +106 -167
  48. package/ios/PCDatePicker.mm +21 -9
  49. package/ios/PCDatePickerView.swift +94 -20
  50. package/ios/PCFloatingActionButton.h +10 -0
  51. package/ios/PCFloatingActionButton.mm +177 -0
  52. package/ios/PCFloatingActionButtonView.swift +426 -0
  53. package/ios/PCFloatingToolbar.mm +27 -0
  54. package/ios/PCFloatingToolbarView.swift +241 -0
  55. package/ios/PCHaptics.swift +91 -0
  56. package/ios/PCImageLoader.swift +76 -12
  57. package/ios/PCLiquidGlass.mm +36 -0
  58. package/ios/PCLiquidGlass.swift +221 -114
  59. package/ios/PCLiquidGlassContainer.h +10 -0
  60. package/ios/PCLiquidGlassContainer.mm +84 -0
  61. package/ios/PCLiquidGlassContainer.swift +69 -0
  62. package/ios/PCMenuItems.h +76 -0
  63. package/ios/PCMenuSupport.swift +350 -0
  64. package/ios/PCNavigationRail.h +10 -0
  65. package/ios/PCNavigationRail.mm +270 -0
  66. package/ios/PCNavigationRailView.swift +415 -0
  67. package/ios/PCSegmentedControl.mm +17 -2
  68. package/ios/PCSegmentedControl.swift +57 -7
  69. package/ios/PCSelectionMenu.mm +36 -8
  70. package/ios/PCSelectionMenu.swift +224 -48
  71. package/ios/PCTabBar.h +10 -0
  72. package/ios/PCTabBar.mm +285 -0
  73. package/ios/PCTabBarAccessory.h +10 -0
  74. package/ios/PCTabBarAccessory.mm +93 -0
  75. package/ios/PCTabBarAccessoryView.swift +96 -0
  76. package/ios/PCTabBarView.swift +671 -0
  77. package/ios/PCTextField.mm +159 -4
  78. package/ios/PCTextFieldView.swift +603 -57
  79. package/lib/commonjs/Button.js +73 -1
  80. package/lib/commonjs/Button.js.map +1 -1
  81. package/lib/commonjs/ButtonGroup.js +13 -3
  82. package/lib/commonjs/ButtonGroup.js.map +1 -1
  83. package/lib/commonjs/ButtonGroupNativeComponent.ts +74 -4
  84. package/lib/commonjs/ButtonNativeComponent.ts +119 -3
  85. package/lib/commonjs/ContextMenu.js +9 -48
  86. package/lib/commonjs/ContextMenu.js.map +1 -1
  87. package/lib/commonjs/ContextMenuNativeComponent.ts +47 -49
  88. package/lib/commonjs/DatePicker.js +98 -2
  89. package/lib/commonjs/DatePicker.js.map +1 -1
  90. package/lib/commonjs/DatePickerNativeComponent.ts +19 -2
  91. package/lib/commonjs/FloatingActionButton.js +60 -0
  92. package/lib/commonjs/FloatingActionButton.js.map +1 -0
  93. package/lib/commonjs/FloatingActionButtonNativeComponent.ts +58 -0
  94. package/lib/commonjs/FloatingToolbar.js +9 -1
  95. package/lib/commonjs/FloatingToolbar.js.map +1 -1
  96. package/lib/commonjs/FloatingToolbarNativeComponent.ts +16 -0
  97. package/lib/commonjs/LiquidGlass.js +7 -1
  98. package/lib/commonjs/LiquidGlass.js.map +1 -1
  99. package/lib/commonjs/LiquidGlassContainer.js +32 -0
  100. package/lib/commonjs/LiquidGlassContainer.js.map +1 -0
  101. package/lib/commonjs/LiquidGlassContainerNativeComponent.ts +17 -0
  102. package/lib/commonjs/LiquidGlassNativeComponent.ts +8 -0
  103. package/lib/commonjs/NavigationRail.js +104 -0
  104. package/lib/commonjs/NavigationRail.js.map +1 -0
  105. package/lib/commonjs/NavigationRailNativeComponent.ts +107 -0
  106. package/lib/commonjs/PlatformComponentsProvider.js +18 -0
  107. package/lib/commonjs/PlatformComponentsProvider.js.map +1 -0
  108. package/lib/commonjs/SegmentedControl.js +7 -0
  109. package/lib/commonjs/SegmentedControl.js.map +1 -1
  110. package/lib/commonjs/SegmentedControlNativeComponent.ts +11 -0
  111. package/lib/commonjs/SelectionMenu.js +27 -3
  112. package/lib/commonjs/SelectionMenu.js.map +1 -1
  113. package/lib/commonjs/SelectionMenuNativeComponent.ts +26 -4
  114. package/lib/commonjs/SplitButton.js +98 -0
  115. package/lib/commonjs/SplitButton.js.map +1 -0
  116. package/lib/commonjs/TabBar.js +203 -0
  117. package/lib/commonjs/TabBar.js.map +1 -0
  118. package/lib/commonjs/TabBarAccessoryNativeComponent.ts +19 -0
  119. package/lib/commonjs/TabBarNativeComponent.ts +145 -0
  120. package/lib/commonjs/TextField.js +171 -8
  121. package/lib/commonjs/TextField.js.map +1 -1
  122. package/lib/commonjs/TextFieldNativeComponent.ts +110 -4
  123. package/lib/commonjs/focusRegistry.js +2 -1
  124. package/lib/commonjs/focusRegistry.js.map +1 -1
  125. package/lib/commonjs/haptics.js +2 -0
  126. package/lib/commonjs/haptics.js.map +1 -0
  127. package/lib/commonjs/icons.js +15 -1
  128. package/lib/commonjs/icons.js.map +1 -1
  129. package/lib/commonjs/index.js +77 -0
  130. package/lib/commonjs/index.js.map +1 -1
  131. package/lib/commonjs/index.web.js +156 -92
  132. package/lib/commonjs/index.web.js.map +1 -1
  133. package/lib/commonjs/jest.js +910 -0
  134. package/lib/commonjs/jest.js.map +1 -0
  135. package/lib/commonjs/menuItems.js +68 -0
  136. package/lib/commonjs/menuItems.js.map +1 -0
  137. package/lib/commonjs/selectionIdentifiers.js +18 -0
  138. package/lib/commonjs/selectionIdentifiers.js.map +1 -0
  139. package/lib/commonjs/submitBehavior.js +19 -0
  140. package/lib/commonjs/submitBehavior.js.map +1 -0
  141. package/lib/commonjs/tabItems.js +49 -0
  142. package/lib/commonjs/tabItems.js.map +1 -0
  143. package/lib/commonjs/web/Button.js +170 -0
  144. package/lib/commonjs/web/Button.js.map +1 -0
  145. package/lib/commonjs/web/ButtonGroup.js +119 -0
  146. package/lib/commonjs/web/ButtonGroup.js.map +1 -0
  147. package/lib/commonjs/web/DatePicker.js +168 -0
  148. package/lib/commonjs/web/DatePicker.js.map +1 -0
  149. package/lib/commonjs/web/DateRangePicker.js +137 -0
  150. package/lib/commonjs/web/DateRangePicker.js.map +1 -0
  151. package/lib/commonjs/web/Dialog.js +54 -0
  152. package/lib/commonjs/web/Dialog.js.map +1 -0
  153. package/lib/commonjs/web/FloatingActionButton.js +98 -0
  154. package/lib/commonjs/web/FloatingActionButton.js.map +1 -0
  155. package/lib/commonjs/web/Icon.js +34 -0
  156. package/lib/commonjs/web/Icon.js.map +1 -0
  157. package/lib/commonjs/web/NativeTheme.js +28 -0
  158. package/lib/commonjs/web/NativeTheme.js.map +1 -0
  159. package/lib/commonjs/web/NavigationRail.js +139 -0
  160. package/lib/commonjs/web/NavigationRail.js.map +1 -0
  161. package/lib/commonjs/web/PlatformComponentsProvider.js +51 -0
  162. package/lib/commonjs/web/PlatformComponentsProvider.js.map +1 -0
  163. package/lib/commonjs/web/SegmentedControl.js +117 -0
  164. package/lib/commonjs/web/SegmentedControl.js.map +1 -0
  165. package/lib/commonjs/web/SelectionMenu.js +142 -0
  166. package/lib/commonjs/web/SelectionMenu.js.map +1 -0
  167. package/lib/commonjs/web/SplitButton.js +35 -0
  168. package/lib/commonjs/web/SplitButton.js.map +1 -0
  169. package/lib/commonjs/web/TabBar.js +131 -0
  170. package/lib/commonjs/web/TabBar.js.map +1 -0
  171. package/lib/commonjs/web/TextField.js +322 -0
  172. package/lib/commonjs/web/TextField.js.map +1 -0
  173. package/lib/commonjs/web/components.js +36 -0
  174. package/lib/commonjs/web/components.js.map +1 -0
  175. package/lib/commonjs/web/containers.js +121 -0
  176. package/lib/commonjs/web/containers.js.map +1 -0
  177. package/lib/commonjs/web/dateInput.js +116 -0
  178. package/lib/commonjs/web/dateInput.js.map +1 -0
  179. package/lib/commonjs/web/shared.js +192 -0
  180. package/lib/commonjs/web/shared.js.map +1 -0
  181. package/lib/commonjs/webComponents.js +6 -0
  182. package/lib/commonjs/webComponents.js.map +1 -0
  183. package/lib/module/Button.js +74 -2
  184. package/lib/module/Button.js.map +1 -1
  185. package/lib/module/ButtonGroup.js +13 -3
  186. package/lib/module/ButtonGroup.js.map +1 -1
  187. package/lib/module/ButtonGroupNativeComponent.ts +74 -4
  188. package/lib/module/ButtonNativeComponent.ts +119 -3
  189. package/lib/module/ContextMenu.js +9 -48
  190. package/lib/module/ContextMenu.js.map +1 -1
  191. package/lib/module/ContextMenuNativeComponent.ts +47 -49
  192. package/lib/module/DatePicker.js +98 -4
  193. package/lib/module/DatePicker.js.map +1 -1
  194. package/lib/module/DatePickerNativeComponent.ts +19 -2
  195. package/lib/module/FloatingActionButton.js +53 -0
  196. package/lib/module/FloatingActionButton.js.map +1 -0
  197. package/lib/module/FloatingActionButtonNativeComponent.ts +58 -0
  198. package/lib/module/FloatingToolbar.js +9 -1
  199. package/lib/module/FloatingToolbar.js.map +1 -1
  200. package/lib/module/FloatingToolbarNativeComponent.ts +16 -0
  201. package/lib/module/LiquidGlass.js +7 -1
  202. package/lib/module/LiquidGlass.js.map +1 -1
  203. package/lib/module/LiquidGlassContainer.js +26 -0
  204. package/lib/module/LiquidGlassContainer.js.map +1 -0
  205. package/lib/module/LiquidGlassContainerNativeComponent.ts +17 -0
  206. package/lib/module/LiquidGlassNativeComponent.ts +8 -0
  207. package/lib/module/NavigationRail.js +99 -0
  208. package/lib/module/NavigationRail.js.map +1 -0
  209. package/lib/module/NavigationRailNativeComponent.ts +107 -0
  210. package/lib/module/PlatformComponentsProvider.js +13 -0
  211. package/lib/module/PlatformComponentsProvider.js.map +1 -0
  212. package/lib/module/SegmentedControl.js +9 -1
  213. package/lib/module/SegmentedControl.js.map +1 -1
  214. package/lib/module/SegmentedControlNativeComponent.ts +11 -0
  215. package/lib/module/SelectionMenu.js +27 -3
  216. package/lib/module/SelectionMenu.js.map +1 -1
  217. package/lib/module/SelectionMenuNativeComponent.ts +26 -4
  218. package/lib/module/SplitButton.js +91 -0
  219. package/lib/module/SplitButton.js.map +1 -0
  220. package/lib/module/TabBar.js +196 -0
  221. package/lib/module/TabBar.js.map +1 -0
  222. package/lib/module/TabBarAccessoryNativeComponent.ts +19 -0
  223. package/lib/module/TabBarNativeComponent.ts +145 -0
  224. package/lib/module/TextField.js +172 -9
  225. package/lib/module/TextField.js.map +1 -1
  226. package/lib/module/TextFieldNativeComponent.ts +110 -4
  227. package/lib/module/focusRegistry.js +1 -0
  228. package/lib/module/focusRegistry.js.map +1 -1
  229. package/lib/module/haptics.js +2 -0
  230. package/lib/module/haptics.js.map +1 -0
  231. package/lib/module/icons.js +15 -1
  232. package/lib/module/icons.js.map +1 -1
  233. package/lib/module/index.js +7 -0
  234. package/lib/module/index.js.map +1 -1
  235. package/lib/module/index.web.js +12 -87
  236. package/lib/module/index.web.js.map +1 -1
  237. package/lib/module/jest.js +840 -0
  238. package/lib/module/jest.js.map +1 -0
  239. package/lib/module/menuItems.js +65 -0
  240. package/lib/module/menuItems.js.map +1 -0
  241. package/lib/module/selectionIdentifiers.js +14 -0
  242. package/lib/module/selectionIdentifiers.js.map +1 -0
  243. package/lib/module/submitBehavior.js +15 -0
  244. package/lib/module/submitBehavior.js.map +1 -0
  245. package/lib/module/tabItems.js +45 -0
  246. package/lib/module/tabItems.js.map +1 -0
  247. package/lib/module/web/Button.js +164 -0
  248. package/lib/module/web/Button.js.map +1 -0
  249. package/lib/module/web/ButtonGroup.js +113 -0
  250. package/lib/module/web/ButtonGroup.js.map +1 -0
  251. package/lib/module/web/DatePicker.js +162 -0
  252. package/lib/module/web/DatePicker.js.map +1 -0
  253. package/lib/module/web/DateRangePicker.js +131 -0
  254. package/lib/module/web/DateRangePicker.js.map +1 -0
  255. package/lib/module/web/Dialog.js +48 -0
  256. package/lib/module/web/Dialog.js.map +1 -0
  257. package/lib/module/web/FloatingActionButton.js +94 -0
  258. package/lib/module/web/FloatingActionButton.js.map +1 -0
  259. package/lib/module/web/Icon.js +29 -0
  260. package/lib/module/web/Icon.js.map +1 -0
  261. package/lib/module/web/NativeTheme.js +23 -0
  262. package/lib/module/web/NativeTheme.js.map +1 -0
  263. package/lib/module/web/NavigationRail.js +133 -0
  264. package/lib/module/web/NavigationRail.js.map +1 -0
  265. package/lib/module/web/PlatformComponentsProvider.js +44 -0
  266. package/lib/module/web/PlatformComponentsProvider.js.map +1 -0
  267. package/lib/module/web/SegmentedControl.js +112 -0
  268. package/lib/module/web/SegmentedControl.js.map +1 -0
  269. package/lib/module/web/SelectionMenu.js +137 -0
  270. package/lib/module/web/SelectionMenu.js.map +1 -0
  271. package/lib/module/web/SplitButton.js +30 -0
  272. package/lib/module/web/SplitButton.js.map +1 -0
  273. package/lib/module/web/TabBar.js +126 -0
  274. package/lib/module/web/TabBar.js.map +1 -0
  275. package/lib/module/web/TextField.js +316 -0
  276. package/lib/module/web/TextField.js.map +1 -0
  277. package/lib/module/web/components.js +33 -0
  278. package/lib/module/web/components.js.map +1 -0
  279. package/lib/module/web/containers.js +112 -0
  280. package/lib/module/web/containers.js.map +1 -0
  281. package/lib/module/web/dateInput.js +109 -0
  282. package/lib/module/web/dateInput.js.map +1 -0
  283. package/lib/module/web/shared.js +179 -0
  284. package/lib/module/web/shared.js.map +1 -0
  285. package/lib/module/webComponents.js +4 -0
  286. package/lib/module/webComponents.js.map +1 -0
  287. package/lib/typescript/commonjs/docs/sidebars.d.ts.map +1 -1
  288. package/lib/typescript/commonjs/src/Button.d.ts +111 -3
  289. package/lib/typescript/commonjs/src/Button.d.ts.map +1 -1
  290. package/lib/typescript/commonjs/src/ButtonGroup.d.ts +21 -6
  291. package/lib/typescript/commonjs/src/ButtonGroup.d.ts.map +1 -1
  292. package/lib/typescript/commonjs/src/ButtonGroupNativeComponent.d.ts +64 -3
  293. package/lib/typescript/commonjs/src/ButtonGroupNativeComponent.d.ts.map +1 -1
  294. package/lib/typescript/commonjs/src/ButtonNativeComponent.d.ts +94 -3
  295. package/lib/typescript/commonjs/src/ButtonNativeComponent.d.ts.map +1 -1
  296. package/lib/typescript/commonjs/src/ContextMenu.d.ts +20 -33
  297. package/lib/typescript/commonjs/src/ContextMenu.d.ts.map +1 -1
  298. package/lib/typescript/commonjs/src/ContextMenuNativeComponent.d.ts +45 -47
  299. package/lib/typescript/commonjs/src/ContextMenuNativeComponent.d.ts.map +1 -1
  300. package/lib/typescript/commonjs/src/DatePicker.d.ts +74 -1
  301. package/lib/typescript/commonjs/src/DatePicker.d.ts.map +1 -1
  302. package/lib/typescript/commonjs/src/DatePickerNativeComponent.d.ts +16 -1
  303. package/lib/typescript/commonjs/src/DatePickerNativeComponent.d.ts.map +1 -1
  304. package/lib/typescript/commonjs/src/FloatingActionButton.d.ts +67 -0
  305. package/lib/typescript/commonjs/src/FloatingActionButton.d.ts.map +1 -0
  306. package/lib/typescript/commonjs/src/FloatingActionButtonNativeComponent.d.ts +43 -0
  307. package/lib/typescript/commonjs/src/FloatingActionButtonNativeComponent.d.ts.map +1 -0
  308. package/lib/typescript/commonjs/src/FloatingToolbar.d.ts +30 -0
  309. package/lib/typescript/commonjs/src/FloatingToolbar.d.ts.map +1 -1
  310. package/lib/typescript/commonjs/src/FloatingToolbarNativeComponent.d.ts +12 -0
  311. package/lib/typescript/commonjs/src/FloatingToolbarNativeComponent.d.ts.map +1 -1
  312. package/lib/typescript/commonjs/src/LiquidGlass.d.ts +17 -0
  313. package/lib/typescript/commonjs/src/LiquidGlass.d.ts.map +1 -1
  314. package/lib/typescript/commonjs/src/LiquidGlassContainer.d.ts +27 -0
  315. package/lib/typescript/commonjs/src/LiquidGlassContainer.d.ts.map +1 -0
  316. package/lib/typescript/commonjs/src/LiquidGlassContainerNativeComponent.d.ts +13 -0
  317. package/lib/typescript/commonjs/src/LiquidGlassContainerNativeComponent.d.ts.map +1 -0
  318. package/lib/typescript/commonjs/src/LiquidGlassNativeComponent.d.ts +7 -0
  319. package/lib/typescript/commonjs/src/LiquidGlassNativeComponent.d.ts.map +1 -1
  320. package/lib/typescript/commonjs/src/NavigationRail.d.ts +86 -0
  321. package/lib/typescript/commonjs/src/NavigationRail.d.ts.map +1 -0
  322. package/lib/typescript/commonjs/src/NavigationRailNativeComponent.d.ts +81 -0
  323. package/lib/typescript/commonjs/src/NavigationRailNativeComponent.d.ts.map +1 -0
  324. package/lib/typescript/commonjs/src/PlatformComponentsProvider.d.ts +6 -0
  325. package/lib/typescript/commonjs/src/PlatformComponentsProvider.d.ts.map +1 -0
  326. package/lib/typescript/commonjs/src/SegmentedControl.d.ts +18 -1
  327. package/lib/typescript/commonjs/src/SegmentedControl.d.ts.map +1 -1
  328. package/lib/typescript/commonjs/src/SegmentedControlNativeComponent.d.ts +9 -0
  329. package/lib/typescript/commonjs/src/SegmentedControlNativeComponent.d.ts.map +1 -1
  330. package/lib/typescript/commonjs/src/SelectionMenu.d.ts +44 -2
  331. package/lib/typescript/commonjs/src/SelectionMenu.d.ts.map +1 -1
  332. package/lib/typescript/commonjs/src/SelectionMenuNativeComponent.d.ts +20 -4
  333. package/lib/typescript/commonjs/src/SelectionMenuNativeComponent.d.ts.map +1 -1
  334. package/lib/typescript/commonjs/src/SplitButton.d.ts +83 -0
  335. package/lib/typescript/commonjs/src/SplitButton.d.ts.map +1 -0
  336. package/lib/typescript/commonjs/src/TabBar.d.ts +144 -0
  337. package/lib/typescript/commonjs/src/TabBar.d.ts.map +1 -0
  338. package/lib/typescript/commonjs/src/TabBarAccessoryNativeComponent.d.ts +13 -0
  339. package/lib/typescript/commonjs/src/TabBarAccessoryNativeComponent.d.ts.map +1 -0
  340. package/lib/typescript/commonjs/src/TabBarNativeComponent.d.ts +110 -0
  341. package/lib/typescript/commonjs/src/TabBarNativeComponent.d.ts.map +1 -0
  342. package/lib/typescript/commonjs/src/TextField.d.ts +166 -8
  343. package/lib/typescript/commonjs/src/TextField.d.ts.map +1 -1
  344. package/lib/typescript/commonjs/src/TextFieldNativeComponent.d.ts +81 -3
  345. package/lib/typescript/commonjs/src/TextFieldNativeComponent.d.ts.map +1 -1
  346. package/lib/typescript/commonjs/src/focusRegistry.d.ts.map +1 -1
  347. package/lib/typescript/commonjs/src/haptics.d.ts +20 -0
  348. package/lib/typescript/commonjs/src/haptics.d.ts.map +1 -0
  349. package/lib/typescript/commonjs/src/icons.d.ts +7 -1
  350. package/lib/typescript/commonjs/src/icons.d.ts.map +1 -1
  351. package/lib/typescript/commonjs/src/index.d.ts +7 -0
  352. package/lib/typescript/commonjs/src/index.d.ts.map +1 -1
  353. package/lib/typescript/commonjs/src/index.web.d.ts +25 -254
  354. package/lib/typescript/commonjs/src/index.web.d.ts.map +1 -1
  355. package/lib/typescript/commonjs/src/jest.d.ts +139 -0
  356. package/lib/typescript/commonjs/src/jest.d.ts.map +1 -0
  357. package/lib/typescript/commonjs/src/menuItems.d.ts +100 -0
  358. package/lib/typescript/commonjs/src/menuItems.d.ts.map +1 -0
  359. package/lib/typescript/commonjs/src/selectionIdentifiers.d.ts +3 -0
  360. package/lib/typescript/commonjs/src/selectionIdentifiers.d.ts.map +1 -0
  361. package/lib/typescript/commonjs/src/submitBehavior.d.ts +9 -0
  362. package/lib/typescript/commonjs/src/submitBehavior.d.ts.map +1 -0
  363. package/lib/typescript/commonjs/src/tabItems.d.ts +55 -0
  364. package/lib/typescript/commonjs/src/tabItems.d.ts.map +1 -0
  365. package/lib/typescript/commonjs/src/web/Button.d.ts +9 -0
  366. package/lib/typescript/commonjs/src/web/Button.d.ts.map +1 -0
  367. package/lib/typescript/commonjs/src/web/ButtonGroup.d.ts +11 -0
  368. package/lib/typescript/commonjs/src/web/ButtonGroup.d.ts.map +1 -0
  369. package/lib/typescript/commonjs/src/web/DatePicker.d.ts +14 -0
  370. package/lib/typescript/commonjs/src/web/DatePicker.d.ts.map +1 -0
  371. package/lib/typescript/commonjs/src/web/DateRangePicker.d.ts +11 -0
  372. package/lib/typescript/commonjs/src/web/DateRangePicker.d.ts.map +1 -0
  373. package/lib/typescript/commonjs/src/web/Dialog.d.ts +12 -0
  374. package/lib/typescript/commonjs/src/web/Dialog.d.ts.map +1 -0
  375. package/lib/typescript/commonjs/src/web/FloatingActionButton.d.ts +8 -0
  376. package/lib/typescript/commonjs/src/web/FloatingActionButton.d.ts.map +1 -0
  377. package/lib/typescript/commonjs/src/web/Icon.d.ts +12 -0
  378. package/lib/typescript/commonjs/src/web/Icon.d.ts.map +1 -0
  379. package/lib/typescript/commonjs/src/web/NativeTheme.d.ts +10 -0
  380. package/lib/typescript/commonjs/src/web/NativeTheme.d.ts.map +1 -0
  381. package/lib/typescript/commonjs/src/web/NavigationRail.d.ts +8 -0
  382. package/lib/typescript/commonjs/src/web/NavigationRail.d.ts.map +1 -0
  383. package/lib/typescript/commonjs/src/web/PlatformComponentsProvider.d.ts +10 -0
  384. package/lib/typescript/commonjs/src/web/PlatformComponentsProvider.d.ts.map +1 -0
  385. package/lib/typescript/commonjs/src/web/SegmentedControl.d.ts +8 -0
  386. package/lib/typescript/commonjs/src/web/SegmentedControl.d.ts.map +1 -0
  387. package/lib/typescript/commonjs/src/web/SelectionMenu.d.ts +10 -0
  388. package/lib/typescript/commonjs/src/web/SelectionMenu.d.ts.map +1 -0
  389. package/lib/typescript/commonjs/src/web/SplitButton.d.ts +9 -0
  390. package/lib/typescript/commonjs/src/web/SplitButton.d.ts.map +1 -0
  391. package/lib/typescript/commonjs/src/web/TabBar.d.ts +9 -0
  392. package/lib/typescript/commonjs/src/web/TabBar.d.ts.map +1 -0
  393. package/lib/typescript/commonjs/src/web/TextField.d.ts +9 -0
  394. package/lib/typescript/commonjs/src/web/TextField.d.ts.map +1 -0
  395. package/lib/typescript/commonjs/src/web/components.d.ts +17 -0
  396. package/lib/typescript/commonjs/src/web/components.d.ts.map +1 -0
  397. package/lib/typescript/commonjs/src/web/containers.d.ts +24 -0
  398. package/lib/typescript/commonjs/src/web/containers.d.ts.map +1 -0
  399. package/lib/typescript/commonjs/src/web/dateInput.d.ts +20 -0
  400. package/lib/typescript/commonjs/src/web/dateInput.d.ts.map +1 -0
  401. package/lib/typescript/commonjs/src/web/shared.d.ts +43 -0
  402. package/lib/typescript/commonjs/src/web/shared.d.ts.map +1 -0
  403. package/lib/typescript/commonjs/src/webComponents.d.ts +43 -0
  404. package/lib/typescript/commonjs/src/webComponents.d.ts.map +1 -0
  405. package/lib/typescript/module/docs/sidebars.d.ts.map +1 -1
  406. package/lib/typescript/module/src/Button.d.ts +111 -3
  407. package/lib/typescript/module/src/Button.d.ts.map +1 -1
  408. package/lib/typescript/module/src/ButtonGroup.d.ts +21 -6
  409. package/lib/typescript/module/src/ButtonGroup.d.ts.map +1 -1
  410. package/lib/typescript/module/src/ButtonGroupNativeComponent.d.ts +64 -3
  411. package/lib/typescript/module/src/ButtonGroupNativeComponent.d.ts.map +1 -1
  412. package/lib/typescript/module/src/ButtonNativeComponent.d.ts +94 -3
  413. package/lib/typescript/module/src/ButtonNativeComponent.d.ts.map +1 -1
  414. package/lib/typescript/module/src/ContextMenu.d.ts +20 -33
  415. package/lib/typescript/module/src/ContextMenu.d.ts.map +1 -1
  416. package/lib/typescript/module/src/ContextMenuNativeComponent.d.ts +45 -47
  417. package/lib/typescript/module/src/ContextMenuNativeComponent.d.ts.map +1 -1
  418. package/lib/typescript/module/src/DatePicker.d.ts +74 -1
  419. package/lib/typescript/module/src/DatePicker.d.ts.map +1 -1
  420. package/lib/typescript/module/src/DatePickerNativeComponent.d.ts +16 -1
  421. package/lib/typescript/module/src/DatePickerNativeComponent.d.ts.map +1 -1
  422. package/lib/typescript/module/src/FloatingActionButton.d.ts +67 -0
  423. package/lib/typescript/module/src/FloatingActionButton.d.ts.map +1 -0
  424. package/lib/typescript/module/src/FloatingActionButtonNativeComponent.d.ts +43 -0
  425. package/lib/typescript/module/src/FloatingActionButtonNativeComponent.d.ts.map +1 -0
  426. package/lib/typescript/module/src/FloatingToolbar.d.ts +30 -0
  427. package/lib/typescript/module/src/FloatingToolbar.d.ts.map +1 -1
  428. package/lib/typescript/module/src/FloatingToolbarNativeComponent.d.ts +12 -0
  429. package/lib/typescript/module/src/FloatingToolbarNativeComponent.d.ts.map +1 -1
  430. package/lib/typescript/module/src/LiquidGlass.d.ts +17 -0
  431. package/lib/typescript/module/src/LiquidGlass.d.ts.map +1 -1
  432. package/lib/typescript/module/src/LiquidGlassContainer.d.ts +27 -0
  433. package/lib/typescript/module/src/LiquidGlassContainer.d.ts.map +1 -0
  434. package/lib/typescript/module/src/LiquidGlassContainerNativeComponent.d.ts +13 -0
  435. package/lib/typescript/module/src/LiquidGlassContainerNativeComponent.d.ts.map +1 -0
  436. package/lib/typescript/module/src/LiquidGlassNativeComponent.d.ts +7 -0
  437. package/lib/typescript/module/src/LiquidGlassNativeComponent.d.ts.map +1 -1
  438. package/lib/typescript/module/src/NavigationRail.d.ts +86 -0
  439. package/lib/typescript/module/src/NavigationRail.d.ts.map +1 -0
  440. package/lib/typescript/module/src/NavigationRailNativeComponent.d.ts +81 -0
  441. package/lib/typescript/module/src/NavigationRailNativeComponent.d.ts.map +1 -0
  442. package/lib/typescript/module/src/PlatformComponentsProvider.d.ts +6 -0
  443. package/lib/typescript/module/src/PlatformComponentsProvider.d.ts.map +1 -0
  444. package/lib/typescript/module/src/SegmentedControl.d.ts +18 -1
  445. package/lib/typescript/module/src/SegmentedControl.d.ts.map +1 -1
  446. package/lib/typescript/module/src/SegmentedControlNativeComponent.d.ts +9 -0
  447. package/lib/typescript/module/src/SegmentedControlNativeComponent.d.ts.map +1 -1
  448. package/lib/typescript/module/src/SelectionMenu.d.ts +44 -2
  449. package/lib/typescript/module/src/SelectionMenu.d.ts.map +1 -1
  450. package/lib/typescript/module/src/SelectionMenuNativeComponent.d.ts +20 -4
  451. package/lib/typescript/module/src/SelectionMenuNativeComponent.d.ts.map +1 -1
  452. package/lib/typescript/module/src/SplitButton.d.ts +83 -0
  453. package/lib/typescript/module/src/SplitButton.d.ts.map +1 -0
  454. package/lib/typescript/module/src/TabBar.d.ts +144 -0
  455. package/lib/typescript/module/src/TabBar.d.ts.map +1 -0
  456. package/lib/typescript/module/src/TabBarAccessoryNativeComponent.d.ts +13 -0
  457. package/lib/typescript/module/src/TabBarAccessoryNativeComponent.d.ts.map +1 -0
  458. package/lib/typescript/module/src/TabBarNativeComponent.d.ts +110 -0
  459. package/lib/typescript/module/src/TabBarNativeComponent.d.ts.map +1 -0
  460. package/lib/typescript/module/src/TextField.d.ts +166 -8
  461. package/lib/typescript/module/src/TextField.d.ts.map +1 -1
  462. package/lib/typescript/module/src/TextFieldNativeComponent.d.ts +81 -3
  463. package/lib/typescript/module/src/TextFieldNativeComponent.d.ts.map +1 -1
  464. package/lib/typescript/module/src/focusRegistry.d.ts.map +1 -1
  465. package/lib/typescript/module/src/haptics.d.ts +20 -0
  466. package/lib/typescript/module/src/haptics.d.ts.map +1 -0
  467. package/lib/typescript/module/src/icons.d.ts +7 -1
  468. package/lib/typescript/module/src/icons.d.ts.map +1 -1
  469. package/lib/typescript/module/src/index.d.ts +7 -0
  470. package/lib/typescript/module/src/index.d.ts.map +1 -1
  471. package/lib/typescript/module/src/index.web.d.ts +25 -254
  472. package/lib/typescript/module/src/index.web.d.ts.map +1 -1
  473. package/lib/typescript/module/src/jest.d.ts +139 -0
  474. package/lib/typescript/module/src/jest.d.ts.map +1 -0
  475. package/lib/typescript/module/src/menuItems.d.ts +100 -0
  476. package/lib/typescript/module/src/menuItems.d.ts.map +1 -0
  477. package/lib/typescript/module/src/selectionIdentifiers.d.ts +3 -0
  478. package/lib/typescript/module/src/selectionIdentifiers.d.ts.map +1 -0
  479. package/lib/typescript/module/src/submitBehavior.d.ts +9 -0
  480. package/lib/typescript/module/src/submitBehavior.d.ts.map +1 -0
  481. package/lib/typescript/module/src/tabItems.d.ts +55 -0
  482. package/lib/typescript/module/src/tabItems.d.ts.map +1 -0
  483. package/lib/typescript/module/src/web/Button.d.ts +9 -0
  484. package/lib/typescript/module/src/web/Button.d.ts.map +1 -0
  485. package/lib/typescript/module/src/web/ButtonGroup.d.ts +11 -0
  486. package/lib/typescript/module/src/web/ButtonGroup.d.ts.map +1 -0
  487. package/lib/typescript/module/src/web/DatePicker.d.ts +14 -0
  488. package/lib/typescript/module/src/web/DatePicker.d.ts.map +1 -0
  489. package/lib/typescript/module/src/web/DateRangePicker.d.ts +11 -0
  490. package/lib/typescript/module/src/web/DateRangePicker.d.ts.map +1 -0
  491. package/lib/typescript/module/src/web/Dialog.d.ts +12 -0
  492. package/lib/typescript/module/src/web/Dialog.d.ts.map +1 -0
  493. package/lib/typescript/module/src/web/FloatingActionButton.d.ts +8 -0
  494. package/lib/typescript/module/src/web/FloatingActionButton.d.ts.map +1 -0
  495. package/lib/typescript/module/src/web/Icon.d.ts +12 -0
  496. package/lib/typescript/module/src/web/Icon.d.ts.map +1 -0
  497. package/lib/typescript/module/src/web/NativeTheme.d.ts +10 -0
  498. package/lib/typescript/module/src/web/NativeTheme.d.ts.map +1 -0
  499. package/lib/typescript/module/src/web/NavigationRail.d.ts +8 -0
  500. package/lib/typescript/module/src/web/NavigationRail.d.ts.map +1 -0
  501. package/lib/typescript/module/src/web/PlatformComponentsProvider.d.ts +10 -0
  502. package/lib/typescript/module/src/web/PlatformComponentsProvider.d.ts.map +1 -0
  503. package/lib/typescript/module/src/web/SegmentedControl.d.ts +8 -0
  504. package/lib/typescript/module/src/web/SegmentedControl.d.ts.map +1 -0
  505. package/lib/typescript/module/src/web/SelectionMenu.d.ts +10 -0
  506. package/lib/typescript/module/src/web/SelectionMenu.d.ts.map +1 -0
  507. package/lib/typescript/module/src/web/SplitButton.d.ts +9 -0
  508. package/lib/typescript/module/src/web/SplitButton.d.ts.map +1 -0
  509. package/lib/typescript/module/src/web/TabBar.d.ts +9 -0
  510. package/lib/typescript/module/src/web/TabBar.d.ts.map +1 -0
  511. package/lib/typescript/module/src/web/TextField.d.ts +9 -0
  512. package/lib/typescript/module/src/web/TextField.d.ts.map +1 -0
  513. package/lib/typescript/module/src/web/components.d.ts +17 -0
  514. package/lib/typescript/module/src/web/components.d.ts.map +1 -0
  515. package/lib/typescript/module/src/web/containers.d.ts +24 -0
  516. package/lib/typescript/module/src/web/containers.d.ts.map +1 -0
  517. package/lib/typescript/module/src/web/dateInput.d.ts +20 -0
  518. package/lib/typescript/module/src/web/dateInput.d.ts.map +1 -0
  519. package/lib/typescript/module/src/web/shared.d.ts +43 -0
  520. package/lib/typescript/module/src/web/shared.d.ts.map +1 -0
  521. package/lib/typescript/module/src/webComponents.d.ts +43 -0
  522. package/lib/typescript/module/src/webComponents.d.ts.map +1 -0
  523. package/package.json +32 -2
  524. package/plugin/build/index.d.ts +3 -2
  525. package/plugin/build/index.d.ts.map +1 -1
  526. package/react-native.config.js +3 -0
  527. package/shared/PCFloatingActionButtonComponentDescriptors-custom.h +22 -0
  528. package/shared/PCFloatingActionButtonShadowNode-custom.cpp +48 -0
  529. package/shared/PCFloatingActionButtonShadowNode-custom.h +54 -0
  530. package/shared/PCFloatingActionButtonState-custom.h +61 -0
  531. package/shared/PCNavigationRailComponentDescriptors-custom.h +47 -0
  532. package/shared/PCNavigationRailShadowNode-custom.h +42 -0
  533. package/shared/PCNavigationRailState-custom.h +62 -0
  534. package/shared/PCTabBarComponentDescriptors-custom.h +22 -0
  535. package/shared/PCTabBarShadowNode-custom.cpp +54 -0
  536. package/shared/PCTabBarShadowNode-custom.h +54 -0
  537. package/shared/PCTabBarState-custom.h +62 -0
  538. package/shared/react/renderer/components/PlatformComponentsViewSpec/ComponentDescriptors.h +3 -0
  539. package/src/Button.tsx +222 -7
  540. package/src/ButtonGroup.tsx +29 -11
  541. package/src/ButtonGroupNativeComponent.ts +74 -4
  542. package/src/ButtonNativeComponent.ts +119 -3
  543. package/src/ContextMenu.tsx +34 -81
  544. package/src/ContextMenuNativeComponent.ts +47 -49
  545. package/src/DatePicker.tsx +182 -4
  546. package/src/DatePickerNativeComponent.ts +19 -2
  547. package/src/FloatingActionButton.tsx +121 -0
  548. package/src/FloatingActionButtonNativeComponent.ts +58 -0
  549. package/src/FloatingToolbar.tsx +54 -3
  550. package/src/FloatingToolbarNativeComponent.ts +16 -0
  551. package/src/LiquidGlass.tsx +24 -1
  552. package/src/LiquidGlassContainer.tsx +42 -0
  553. package/src/LiquidGlassContainerNativeComponent.ts +17 -0
  554. package/src/LiquidGlassNativeComponent.ts +8 -0
  555. package/src/NavigationRail.tsx +203 -0
  556. package/src/NavigationRailNativeComponent.ts +107 -0
  557. package/src/PlatformComponentsProvider.tsx +15 -0
  558. package/src/SegmentedControl.tsx +31 -1
  559. package/src/SegmentedControlNativeComponent.ts +11 -0
  560. package/src/SelectionMenu.tsx +81 -6
  561. package/src/SelectionMenuNativeComponent.ts +26 -4
  562. package/src/SplitButton.tsx +198 -0
  563. package/src/TabBar.tsx +373 -0
  564. package/src/TabBarAccessoryNativeComponent.ts +19 -0
  565. package/src/TabBarNativeComponent.ts +145 -0
  566. package/src/TextField.tsx +428 -14
  567. package/src/TextFieldNativeComponent.ts +110 -4
  568. package/src/focusRegistry.ts +1 -0
  569. package/src/haptics.ts +31 -0
  570. package/src/icons.ts +28 -1
  571. package/src/index.tsx +7 -0
  572. package/src/index.web.tsx +51 -391
  573. package/src/jest.tsx +958 -0
  574. package/src/menuItems.ts +152 -0
  575. package/src/selectionIdentifiers.ts +17 -0
  576. package/src/submitBehavior.ts +16 -0
  577. package/src/tabItems.ts +113 -0
  578. package/src/web/Button.tsx +201 -0
  579. package/src/web/ButtonGroup.tsx +154 -0
  580. package/src/web/DatePicker.tsx +204 -0
  581. package/src/web/DateRangePicker.tsx +135 -0
  582. package/src/web/Dialog.tsx +54 -0
  583. package/src/web/FloatingActionButton.tsx +76 -0
  584. package/src/web/Icon.tsx +33 -0
  585. package/src/web/NativeTheme.ts +23 -0
  586. package/src/web/NavigationRail.tsx +148 -0
  587. package/src/web/PlatformComponentsProvider.tsx +48 -0
  588. package/src/web/SegmentedControl.tsx +127 -0
  589. package/src/web/SelectionMenu.tsx +149 -0
  590. package/src/web/SplitButton.tsx +32 -0
  591. package/src/web/TabBar.tsx +150 -0
  592. package/src/web/TextField.tsx +361 -0
  593. package/src/web/components.tsx +71 -0
  594. package/src/web/containers.tsx +130 -0
  595. package/src/web/dateInput.ts +137 -0
  596. package/src/web/shared.ts +176 -0
  597. package/src/webComponents.ts +45 -0
  598. package/android/src/main/java/com/platformcomponents/DateConstraints.kt +0 -83
@@ -0,0 +1,162 @@
1
+ "use strict";
2
+
3
+ // web/DatePicker.tsx
4
+ import React, { useState } from 'react';
5
+ import { View } from 'react-native';
6
+ import { Dialog } from "./Dialog.js";
7
+ import { formatInputValue, inputTypeForMode, isWithinInputBounds, parseInputValue } from "./dateInput.js";
8
+ import { BUTTON_BASE, eventValue, usePrimaryColor } from "./shared.js";
9
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
10
+ const INPUT_STYLE = {
11
+ boxSizing: 'border-box',
12
+ width: '100%',
13
+ minHeight: 40,
14
+ padding: '0 12px',
15
+ border: '1px solid color-mix(in srgb, CanvasText 30%, transparent)',
16
+ borderRadius: 8,
17
+ fontFamily: 'inherit',
18
+ fontSize: 16,
19
+ color: 'inherit',
20
+ backgroundColor: 'transparent'
21
+ };
22
+
23
+ /**
24
+ * The browser's date and time inputs. `embedded` renders the input in place
25
+ * and reports every change with `confirmed: true`. `modal` opens it in a
26
+ * `<dialog>` with Cancel/Done buttons, like the iOS popover: changes report
27
+ * `confirmed: false`, Done reports `confirmed: true`, and Cancel, Escape or a
28
+ * click outside call `onClosed`. In `countDownTimer` mode the input is a time
29
+ * input and `onConfirm`'s `durationSeconds` is its hours and minutes;
30
+ * `yearAndMonth` is a month input. The browser's input has its own clock, so
31
+ * `is24Hour` and `android.inputMode` don't apply.
32
+ */
33
+ export function DatePicker(props) {
34
+ const {
35
+ style,
36
+ date,
37
+ minDate,
38
+ maxDate,
39
+ locale,
40
+ mode,
41
+ presentation = 'modal',
42
+ visible,
43
+ onConfirm,
44
+ onClosed,
45
+ ios,
46
+ testID
47
+ } = props;
48
+ const primary = usePrimaryColor();
49
+ const type = inputTypeForMode(mode);
50
+ const label = mode === 'countDownTimer' ? 'Duration' : {
51
+ 'date': 'Date',
52
+ 'time': 'Time',
53
+ 'datetime-local': 'Date and time',
54
+ 'month': 'Month'
55
+ }[type];
56
+ const step = (type === 'time' || type === 'datetime-local') && ios?.minuteInterval ? ios.minuteInterval * 60 : undefined;
57
+ const isValid = next => isWithinInputBounds(next, type, minDate, maxDate);
58
+ const confirm = (next, confirmed) => {
59
+ if (!isValid(next)) return;
60
+ onConfirm?.(next, confirmed, mode === 'countDownTimer' ? next.getHours() * 3600 + next.getMinutes() * 60 : 0);
61
+ };
62
+ const renderInput = (value, onValue, autoFocus) => /*#__PURE__*/_jsx("input", {
63
+ type: type,
64
+ "aria-label": label,
65
+ lang: locale,
66
+ value: formatInputValue(value, type),
67
+ min: formatInputValue(minDate, type) || undefined,
68
+ max: formatInputValue(maxDate, type) || undefined,
69
+ step: step,
70
+ autoFocus: autoFocus,
71
+ onChange: event => {
72
+ const next = parseInputValue(eventValue(event), type, value);
73
+ onValue(next);
74
+ },
75
+ style: {
76
+ ...INPUT_STYLE,
77
+ accentColor: primary
78
+ }
79
+ });
80
+ if (presentation === 'embedded') {
81
+ return /*#__PURE__*/_jsx(View, {
82
+ testID: testID,
83
+ style: style,
84
+ children: renderInput(date, next => next && confirm(next, true), false)
85
+ });
86
+ }
87
+ return /*#__PURE__*/_jsx(View, {
88
+ testID: testID,
89
+ style: style,
90
+ children: visible ? /*#__PURE__*/_jsx(ModalPicker, {
91
+ date: date,
92
+ label: label,
93
+ primary: primary,
94
+ renderInput: renderInput,
95
+ onConfirm: confirm,
96
+ onClosed: onClosed,
97
+ isValid: isValid
98
+ }) : null
99
+ });
100
+ }
101
+ function ModalPicker({
102
+ date,
103
+ label,
104
+ primary,
105
+ renderInput,
106
+ onConfirm,
107
+ onClosed,
108
+ isValid
109
+ }) {
110
+ const [draft, setDraft] = useState(date);
111
+ const dateMs = date?.getTime() ?? null;
112
+ const [previousDateMs, setPreviousDateMs] = useState(dateMs);
113
+ // Honor external updates without remounting the dialog or discarding edits
114
+ // when the parent creates another Date representing the same instant.
115
+ if (!Object.is(dateMs, previousDateMs)) {
116
+ setPreviousDateMs(dateMs);
117
+ setDraft(date);
118
+ }
119
+ const valid = isValid(draft);
120
+ const dismiss = () => onClosed?.();
121
+ const textButton = {
122
+ ...BUTTON_BASE,
123
+ height: 40,
124
+ padding: '0 12px',
125
+ border: 'none',
126
+ borderRadius: 20,
127
+ fontSize: 14,
128
+ color: primary,
129
+ backgroundColor: 'transparent'
130
+ };
131
+ return /*#__PURE__*/_jsxs(Dialog, {
132
+ label: label,
133
+ onDismiss: dismiss,
134
+ children: [renderInput(draft, next => {
135
+ setDraft(next);
136
+ if (next) onConfirm(next, false);
137
+ }, true), /*#__PURE__*/_jsxs("div", {
138
+ style: {
139
+ display: 'flex',
140
+ justifyContent: 'flex-end',
141
+ gap: 8,
142
+ marginTop: 12
143
+ },
144
+ children: [/*#__PURE__*/_jsx("button", {
145
+ type: "button",
146
+ onClick: dismiss,
147
+ style: textButton,
148
+ children: "Cancel"
149
+ }), /*#__PURE__*/_jsx("button", {
150
+ type: "button",
151
+ disabled: !valid,
152
+ onClick: () => valid && draft && onConfirm(draft, true),
153
+ style: {
154
+ ...textButton,
155
+ opacity: valid ? 1 : 0.38
156
+ },
157
+ children: "Done"
158
+ })]
159
+ })]
160
+ });
161
+ }
162
+ //# sourceMappingURL=DatePicker.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["React","useState","View","Dialog","formatInputValue","inputTypeForMode","isWithinInputBounds","parseInputValue","BUTTON_BASE","eventValue","usePrimaryColor","jsx","_jsx","jsxs","_jsxs","INPUT_STYLE","boxSizing","width","minHeight","padding","border","borderRadius","fontFamily","fontSize","color","backgroundColor","DatePicker","props","style","date","minDate","maxDate","locale","mode","presentation","visible","onConfirm","onClosed","ios","testID","primary","type","label","step","minuteInterval","undefined","isValid","next","confirm","confirmed","getHours","getMinutes","renderInput","value","onValue","autoFocus","lang","min","max","onChange","event","accentColor","children","ModalPicker","draft","setDraft","dateMs","getTime","previousDateMs","setPreviousDateMs","Object","is","valid","dismiss","textButton","height","onDismiss","display","justifyContent","gap","marginTop","onClick","disabled","opacity"],"sourceRoot":"../../../src","sources":["web/DatePicker.tsx"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,131 @@
1
+ "use strict";
2
+
3
+ // web/DateRangePicker.tsx
4
+ import React, { useState } from 'react';
5
+ import { View } from 'react-native';
6
+ import { Dialog } from "./Dialog.js";
7
+ import { formatInputValue, isWithinInputBounds, parseInputValue } from "./dateInput.js";
8
+ import { BUTTON_BASE, eventValue, usePrimaryColor } from "./shared.js";
9
+
10
+ /** The browser has start and end date inputs, so the range picker works on web. */
11
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
12
+ export const isDateRangePickerSupported = true;
13
+ const INPUT_STYLE = {
14
+ boxSizing: 'border-box',
15
+ width: '100%',
16
+ minHeight: 40,
17
+ padding: '0 12px',
18
+ border: '1px solid color-mix(in srgb, CanvasText 30%, transparent)',
19
+ borderRadius: 8,
20
+ fontFamily: 'inherit',
21
+ fontSize: 16,
22
+ color: 'inherit',
23
+ backgroundColor: 'transparent'
24
+ };
25
+ const startOfDay = date => {
26
+ if (!date || !Number.isFinite(date.getTime())) return null;
27
+ const day = new Date(date.getTime());
28
+ day.setHours(0, 0, 0, 0);
29
+ return day;
30
+ };
31
+
32
+ /**
33
+ * A `<dialog>` with start and end date inputs and Cancel/Done buttons. Done
34
+ * reports the range (the start of each day) once both are set and in order,
35
+ * then calls `onClosed`, as the Android dialog does.
36
+ */
37
+ export function DateRangePicker(props) {
38
+ const {
39
+ style,
40
+ testID,
41
+ visible
42
+ } = props;
43
+ return /*#__PURE__*/_jsx(View, {
44
+ testID: testID,
45
+ style: style,
46
+ children: visible ? /*#__PURE__*/_jsx(RangeDialog, {
47
+ ...props
48
+ }) : null
49
+ });
50
+ }
51
+ function RangeDialog({
52
+ startDate,
53
+ endDate,
54
+ minDate,
55
+ maxDate,
56
+ locale,
57
+ onConfirm,
58
+ onClosed
59
+ }) {
60
+ const primary = usePrimaryColor();
61
+ const [start, setStart] = useState(startOfDay(startDate));
62
+ const [end, setEnd] = useState(startOfDay(endDate));
63
+ const valid = isWithinInputBounds(start, 'date', minDate, maxDate) && isWithinInputBounds(end, 'date', minDate, maxDate) && end >= start;
64
+ const minimumEndDate = start && (!minDate || start >= minDate) ? start : minDate;
65
+ const dismiss = () => onClosed?.();
66
+ const textButton = {
67
+ ...BUTTON_BASE,
68
+ height: 40,
69
+ padding: '0 12px',
70
+ border: 'none',
71
+ borderRadius: 20,
72
+ fontSize: 14,
73
+ color: primary,
74
+ backgroundColor: 'transparent'
75
+ };
76
+ const renderInput = (label, value, onValue, min) => /*#__PURE__*/_jsx("input", {
77
+ type: "date",
78
+ lang: locale,
79
+ "aria-label": label,
80
+ value: formatInputValue(value, 'date'),
81
+ min: formatInputValue(min, 'date') || undefined,
82
+ max: formatInputValue(maxDate, 'date') || undefined,
83
+ onChange: event => onValue(parseInputValue(eventValue(event), 'date', null)),
84
+ style: {
85
+ ...INPUT_STYLE,
86
+ accentColor: primary
87
+ }
88
+ });
89
+ return /*#__PURE__*/_jsxs(Dialog, {
90
+ label: "Date range",
91
+ onDismiss: dismiss,
92
+ children: [/*#__PURE__*/_jsxs("div", {
93
+ style: {
94
+ display: 'flex',
95
+ flexDirection: 'column',
96
+ gap: 8
97
+ },
98
+ children: [renderInput('Start date', start, setStart, minDate), renderInput('End date', end, setEnd, minimumEndDate)]
99
+ }), /*#__PURE__*/_jsxs("div", {
100
+ style: {
101
+ display: 'flex',
102
+ justifyContent: 'flex-end',
103
+ gap: 8,
104
+ marginTop: 12
105
+ },
106
+ children: [/*#__PURE__*/_jsx("button", {
107
+ type: "button",
108
+ onClick: dismiss,
109
+ style: textButton,
110
+ children: "Cancel"
111
+ }), /*#__PURE__*/_jsx("button", {
112
+ type: "button",
113
+ disabled: !valid,
114
+ onClick: () => {
115
+ if (!valid) return;
116
+ onConfirm?.({
117
+ startDate: start,
118
+ endDate: end
119
+ });
120
+ onClosed?.();
121
+ },
122
+ style: {
123
+ ...textButton,
124
+ opacity: valid ? 1 : 0.38
125
+ },
126
+ children: "Done"
127
+ })]
128
+ })]
129
+ });
130
+ }
131
+ //# sourceMappingURL=DateRangePicker.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["React","useState","View","Dialog","formatInputValue","isWithinInputBounds","parseInputValue","BUTTON_BASE","eventValue","usePrimaryColor","jsx","_jsx","jsxs","_jsxs","isDateRangePickerSupported","INPUT_STYLE","boxSizing","width","minHeight","padding","border","borderRadius","fontFamily","fontSize","color","backgroundColor","startOfDay","date","Number","isFinite","getTime","day","Date","setHours","DateRangePicker","props","style","testID","visible","children","RangeDialog","startDate","endDate","minDate","maxDate","locale","onConfirm","onClosed","primary","start","setStart","end","setEnd","valid","minimumEndDate","dismiss","textButton","height","renderInput","label","value","onValue","min","type","lang","undefined","max","onChange","event","accentColor","onDismiss","display","flexDirection","gap","justifyContent","marginTop","onClick","disabled","opacity"],"sourceRoot":"../../../src","sources":["web/DateRangePicker.tsx"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,48 @@
1
+ "use strict";
2
+
3
+ // web/Dialog.tsx
4
+ import React, { useLayoutEffect, useRef } from 'react';
5
+ import { jsx as _jsx } from "react/jsx-runtime";
6
+ /**
7
+ * A modal `<dialog>`, open while mounted. Escape and a click on the backdrop
8
+ * call `onDismiss`; like the native modals, the caller closes it by flipping
9
+ * its `visible` prop, which unmounts it.
10
+ */
11
+ export function Dialog({
12
+ label,
13
+ onDismiss,
14
+ children
15
+ }) {
16
+ const ref = useRef(null);
17
+ useLayoutEffect(() => {
18
+ const dialog = ref.current;
19
+ if (dialog && !dialog.open) dialog.showModal?.();
20
+ }, []);
21
+ return /*#__PURE__*/_jsx("dialog", {
22
+ ref: element => {
23
+ ref.current = element;
24
+ },
25
+ "aria-label": label,
26
+ onClose: onDismiss,
27
+ onClick: event => {
28
+ // The dialog has no padding, so a click on the element itself is a
29
+ // click on the backdrop.
30
+ if (event.target === event.currentTarget) onDismiss();
31
+ },
32
+ style: {
33
+ padding: 0,
34
+ border: 'none',
35
+ borderRadius: 16,
36
+ backgroundColor: 'Canvas',
37
+ color: 'CanvasText',
38
+ boxShadow: '0 8px 32px rgba(0, 0, 0, 0.25)'
39
+ },
40
+ children: /*#__PURE__*/_jsx("div", {
41
+ style: {
42
+ padding: 16
43
+ },
44
+ children: children
45
+ })
46
+ });
47
+ }
48
+ //# sourceMappingURL=Dialog.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["React","useLayoutEffect","useRef","jsx","_jsx","Dialog","label","onDismiss","children","ref","dialog","current","open","showModal","element","onClose","onClick","event","target","currentTarget","style","padding","border","borderRadius","backgroundColor","color","boxShadow"],"sourceRoot":"../../../src","sources":["web/Dialog.tsx"],"mappings":";;AAAA;AACA,OAAOA,KAAK,IAAIC,eAAe,EAAEC,MAAM,QAAQ,OAAO;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAOvD;AACA;AACA;AACA;AACA;AACA,OAAO,SAASC,MAAMA,CAAC;EACrBC,KAAK;EACLC,SAAS;EACTC;AAKF,CAAC,EAAsB;EACrB,MAAMC,GAAG,GAAGP,MAAM,CAAuB,IAAI,CAAC;EAE9CD,eAAe,CAAC,MAAM;IACpB,MAAMS,MAAM,GAAGD,GAAG,CAACE,OAAO;IAC1B,IAAID,MAAM,IAAI,CAACA,MAAM,CAACE,IAAI,EAAEF,MAAM,CAACG,SAAS,GAAG,CAAC;EAClD,CAAC,EAAE,EAAE,CAAC;EAEN,oBACET,IAAA;IACEK,GAAG,EAAGK,OAAO,IAAK;MAChBL,GAAG,CAACE,OAAO,GAAGG,OAA0C;IAC1D,CAAE;IACF,cAAYR,KAAM;IAClBS,OAAO,EAAER,SAAU;IACnBS,OAAO,EAAGC,KAAK,IAAK;MAClB;MACA;MACA,IAAIA,KAAK,CAACC,MAAM,KAAKD,KAAK,CAACE,aAAa,EAAEZ,SAAS,CAAC,CAAC;IACvD,CAAE;IACFa,KAAK,EAAE;MACLC,OAAO,EAAE,CAAC;MACVC,MAAM,EAAE,MAAM;MACdC,YAAY,EAAE,EAAE;MAChBC,eAAe,EAAE,QAAQ;MACzBC,KAAK,EAAE,YAAY;MACnBC,SAAS,EAAE;IACb,CAAE;IAAAlB,QAAA,eAEFJ,IAAA;MAAKgB,KAAK,EAAE;QAAEC,OAAO,EAAE;MAAG,CAAE;MAAAb,QAAA,EAAEA;IAAQ,CAAM;EAAC,CACvC,CAAC;AAEb","ignoreList":[]}
@@ -0,0 +1,94 @@
1
+ "use strict";
2
+
3
+ // web/FloatingActionButton.tsx
4
+ import React from 'react';
5
+ import { View } from 'react-native';
6
+ import { Icon } from "./Icon.js";
7
+ import { BUTTON_BASE, cssColor, usePrimaryColor } from "./shared.js";
8
+
9
+ /** Height (and diameter when shrunk), icon and label size for each size. */
10
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
11
+ const FAB_SIZES = {
12
+ small: {
13
+ height: 40,
14
+ icon: 24,
15
+ fontSize: 16,
16
+ padding: 16
17
+ },
18
+ regular: {
19
+ height: 56,
20
+ icon: 24,
21
+ fontSize: 16,
22
+ padding: 16
23
+ },
24
+ medium: {
25
+ height: 80,
26
+ icon: 28,
27
+ fontSize: 22,
28
+ padding: 26
29
+ },
30
+ large: {
31
+ height: 96,
32
+ icon: 36,
33
+ fontSize: 24,
34
+ padding: 28
35
+ }
36
+ };
37
+
38
+ /**
39
+ * A `<button>` styled after the Material 3 FAB: a rounded square with the
40
+ * icon, or the extended FAB with the label. `scrollViewNativeID` is ignored.
41
+ */
42
+ export function FloatingActionButton(props) {
43
+ const {
44
+ icon,
45
+ label,
46
+ extended = true,
47
+ size = 'regular',
48
+ color,
49
+ tintColor,
50
+ disabled,
51
+ accessibilityLabel,
52
+ onPress,
53
+ scrollViewNativeID: _scrollViewNativeID,
54
+ style,
55
+ ...viewProps
56
+ } = props;
57
+ const primary = usePrimaryColor();
58
+ const metrics = FAB_SIZES[size] ?? FAB_SIZES.regular;
59
+ const showsLabel = !!label && extended;
60
+ const foreground = cssColor(tintColor) ?? 'CanvasText';
61
+ return /*#__PURE__*/_jsx(View, {
62
+ ...viewProps,
63
+ style: [{
64
+ alignSelf: 'flex-start'
65
+ }, style],
66
+ children: /*#__PURE__*/_jsxs("button", {
67
+ type: "button",
68
+ disabled: disabled,
69
+ "aria-label": accessibilityLabel ?? label,
70
+ onClick: onPress,
71
+ style: {
72
+ ...BUTTON_BASE,
73
+ gap: 12,
74
+ height: metrics.height,
75
+ minWidth: metrics.height,
76
+ padding: showsLabel ? `0 ${metrics.padding}px` : 0,
77
+ border: 'none',
78
+ borderRadius: size === 'small' ? 12 : metrics.height / 3.5,
79
+ backgroundColor: cssColor(color) ?? `color-mix(in srgb, ${primary} 24%, Canvas)`,
80
+ color: foreground,
81
+ boxShadow: '0 3px 6px rgba(0, 0, 0, 0.2)',
82
+ fontSize: metrics.fontSize,
83
+ opacity: disabled ? 0.38 : 1,
84
+ cursor: disabled ? 'default' : 'pointer'
85
+ },
86
+ children: [/*#__PURE__*/_jsx(Icon, {
87
+ icon: icon,
88
+ color: foreground,
89
+ size: metrics.icon
90
+ }), showsLabel ? label : null]
91
+ })
92
+ });
93
+ }
94
+ //# sourceMappingURL=FloatingActionButton.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["React","View","Icon","BUTTON_BASE","cssColor","usePrimaryColor","jsx","_jsx","jsxs","_jsxs","FAB_SIZES","small","height","icon","fontSize","padding","regular","medium","large","FloatingActionButton","props","label","extended","size","color","tintColor","disabled","accessibilityLabel","onPress","scrollViewNativeID","_scrollViewNativeID","style","viewProps","primary","metrics","showsLabel","foreground","alignSelf","children","type","onClick","gap","minWidth","border","borderRadius","backgroundColor","boxShadow","opacity","cursor"],"sourceRoot":"../../../src","sources":["web/FloatingActionButton.tsx"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,29 @@
1
+ "use strict";
2
+
3
+ // web/Icon.tsx
4
+ import React from 'react';
5
+ import { Image } from 'react-native';
6
+ import { webIcon } from "./shared.js";
7
+
8
+ /**
9
+ * Draws an icon on web, tinted with `color` unless the source opts out.
10
+ * Renders nothing for SF Symbols and Android drawables.
11
+ */
12
+ import { jsx as _jsx } from "react/jsx-runtime";
13
+ export function Icon({
14
+ icon,
15
+ color,
16
+ size = 20
17
+ }) {
18
+ const resolved = webIcon(icon);
19
+ if (!resolved) return null;
20
+ return /*#__PURE__*/_jsx(Image, {
21
+ source: resolved.source,
22
+ style: {
23
+ width: size,
24
+ height: size,
25
+ tintColor: resolved.tinted ? color : undefined
26
+ }
27
+ });
28
+ }
29
+ //# sourceMappingURL=Icon.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["React","Image","webIcon","jsx","_jsx","Icon","icon","color","size","resolved","source","style","width","height","tintColor","tinted","undefined"],"sourceRoot":"../../../src","sources":["web/Icon.tsx"],"mappings":";;AAAA;AACA,OAAOA,KAAK,MAAM,OAAO;AACzB,SAASC,KAAK,QAAQ,cAAc;AAGpC,SAASC,OAAO,QAAQ,aAAU;;AAElC;AACA;AACA;AACA;AAHA,SAAAC,GAAA,IAAAC,IAAA;AAIA,OAAO,SAASC,IAAIA,CAAC;EACnBC,IAAI;EACJC,KAAK;EACLC,IAAI,GAAG;AAKT,CAAC,EAA6B;EAC5B,MAAMC,QAAQ,GAAGP,OAAO,CAACI,IAAI,CAAC;EAC9B,IAAI,CAACG,QAAQ,EAAE,OAAO,IAAI;EAC1B,oBACEL,IAAA,CAACH,KAAK;IACJS,MAAM,EAAED,QAAQ,CAACC,MAAO;IACxBC,KAAK,EAAE;MACLC,KAAK,EAAEJ,IAAI;MACXK,MAAM,EAAEL,IAAI;MACZM,SAAS,EAAEL,QAAQ,CAACM,MAAM,GAAGR,KAAK,GAAGS;IACvC;EAAE,CACH,CAAC;AAEN","ignoreList":[]}
@@ -0,0 +1,23 @@
1
+ "use strict";
2
+
3
+ // web/NativeTheme.ts
4
+ import { useLayoutEffect } from 'react';
5
+ import { cssColor, setThemePrimary } from "./shared.js";
6
+
7
+ /**
8
+ * Applies the theme's brand color to the web components (filled buttons, the
9
+ * selected segment, focus rings and the browser's own controls through
10
+ * `accent-color`). Pass `null` to restore the default.
11
+ */
12
+ export function setNativeTheme(theme) {
13
+ setThemePrimary(theme ? cssColor(theme.colors.primary) : undefined);
14
+ }
15
+
16
+ /** Keeps the web components' brand color in sync with `theme`. */
17
+ export function useNativeTheme(theme) {
18
+ const primary = theme ? cssColor(theme.colors.primary) : undefined;
19
+ useLayoutEffect(() => {
20
+ setThemePrimary(primary);
21
+ }, [primary]);
22
+ }
23
+ //# sourceMappingURL=NativeTheme.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["useLayoutEffect","cssColor","setThemePrimary","setNativeTheme","theme","colors","primary","undefined","useNativeTheme"],"sourceRoot":"../../../src","sources":["web/NativeTheme.ts"],"mappings":";;AAAA;AACA,SAASA,eAAe,QAAQ,OAAO;AAGvC,SAASC,QAAQ,EAAEC,eAAe,QAAQ,aAAU;;AAEpD;AACA;AACA;AACA;AACA;AACA,OAAO,SAASC,cAAcA,CAACC,KAAyB,EAAQ;EAC9DF,eAAe,CAACE,KAAK,GAAGH,QAAQ,CAACG,KAAK,CAACC,MAAM,CAACC,OAAO,CAAC,GAAGC,SAAS,CAAC;AACrE;;AAEA;AACA,OAAO,SAASC,cAAcA,CAACJ,KAAqC,EAAQ;EAC1E,MAAME,OAAO,GAAGF,KAAK,GAAGH,QAAQ,CAACG,KAAK,CAACC,MAAM,CAACC,OAAO,CAAC,GAAGC,SAAS;EAElEP,eAAe,CAAC,MAAM;IACpBE,eAAe,CAACI,OAAO,CAAC;EAC1B,CAAC,EAAE,CAACA,OAAO,CAAC,CAAC;AACf","ignoreList":[]}
@@ -0,0 +1,133 @@
1
+ "use strict";
2
+
3
+ // web/NavigationRail.tsx
4
+ import React from 'react';
5
+ import { View } from 'react-native';
6
+ import { Icon } from "./Icon.js";
7
+ import { cssColor, cssFont, usePrimaryColor } from "./shared.js";
8
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
9
+ const JUSTIFY = {
10
+ top: 'flex-start',
11
+ center: 'center',
12
+ bottom: 'flex-end'
13
+ };
14
+
15
+ /**
16
+ * A vertical `tablist` of `<button>` destinations, icon over label (beside it
17
+ * when expanded), with the header above them.
18
+ */
19
+ export function NavigationRail(props) {
20
+ const {
21
+ items,
22
+ selectedValue,
23
+ onSelect,
24
+ onReselect,
25
+ labelVisibility = 'auto',
26
+ menuGravity = 'top',
27
+ expanded,
28
+ header,
29
+ activeTintColor,
30
+ inactiveTintColor,
31
+ railColor,
32
+ badgeStyle,
33
+ labelStyle,
34
+ maxFontSizeMultiplier,
35
+ android,
36
+ style,
37
+ ...viewProps
38
+ } = props;
39
+ const primary = usePrimaryColor();
40
+ const activeColor = cssColor(activeTintColor) ?? primary;
41
+ const inactiveColor = cssColor(inactiveTintColor) ?? 'GrayText';
42
+ return /*#__PURE__*/_jsxs(View, {
43
+ ...viewProps,
44
+ style: [{
45
+ alignItems: expanded ? 'stretch' : 'center',
46
+ width: expanded ? 220 : 96,
47
+ paddingVertical: 12,
48
+ gap: 12,
49
+ backgroundColor: cssColor(railColor)
50
+ }, style],
51
+ children: [header ? /*#__PURE__*/_jsx(View, {
52
+ style: {
53
+ alignItems: 'center'
54
+ },
55
+ children: header
56
+ }) : null, /*#__PURE__*/_jsx(View, {
57
+ role: "tablist",
58
+ "aria-orientation": "vertical",
59
+ style: {
60
+ flex: 1,
61
+ gap: 4,
62
+ justifyContent: JUSTIFY[menuGravity]
63
+ },
64
+ children: items.map((item, index) => {
65
+ const isSelected = item.value === selectedValue;
66
+ const color = isSelected ? activeColor : inactiveColor;
67
+ const showLabel = labelVisibility !== 'unlabeled' && (labelVisibility !== 'selected' || isSelected);
68
+ const icon = isSelected ? item.selectedIcon ?? item.icon : item.icon;
69
+ return /*#__PURE__*/_jsxs("button", {
70
+ "data-testid": item.testID,
71
+ type: "button",
72
+ role: "tab",
73
+ "aria-selected": isSelected,
74
+ "aria-label": item.accessibilityLabel ?? item.label,
75
+ disabled: item.disabled,
76
+ onClick: () => {
77
+ if (isSelected) onReselect?.(item.value, index);else onSelect?.(item.value, index);
78
+ },
79
+ style: {
80
+ display: 'flex',
81
+ flexDirection: expanded ? 'row' : 'column',
82
+ alignItems: 'center',
83
+ gap: expanded ? 12 : 4,
84
+ padding: expanded ? '0 12px' : '4px',
85
+ border: 'none',
86
+ fontFamily: 'inherit',
87
+ fontSize: 12,
88
+ fontWeight: isSelected ? 600 : 500,
89
+ color,
90
+ backgroundColor: 'transparent',
91
+ outlineColor: primary,
92
+ opacity: item.disabled ? 0.38 : 1,
93
+ cursor: item.disabled ? 'default' : 'pointer',
94
+ ...cssFont(labelStyle)
95
+ },
96
+ children: [/*#__PURE__*/_jsxs("span", {
97
+ style: {
98
+ position: 'relative',
99
+ display: 'flex',
100
+ padding: '4px 16px',
101
+ borderRadius: 16,
102
+ backgroundColor: isSelected ? cssColor(android?.indicatorColor) ?? 'rgba(118, 118, 128, 0.16)' : 'transparent'
103
+ },
104
+ children: [/*#__PURE__*/_jsx(Icon, {
105
+ icon: icon,
106
+ color: color,
107
+ size: 24
108
+ }), item.badge !== undefined ? /*#__PURE__*/_jsx("span", {
109
+ style: {
110
+ position: 'absolute',
111
+ top: 0,
112
+ right: 8,
113
+ minWidth: item.badge === '' ? 8 : 16,
114
+ height: item.badge === '' ? 8 : 16,
115
+ padding: item.badge === '' ? 0 : '0 4px',
116
+ boxSizing: 'border-box',
117
+ borderRadius: 8,
118
+ fontSize: 11,
119
+ lineHeight: '16px',
120
+ fontWeight: 600,
121
+ textAlign: 'center',
122
+ backgroundColor: cssColor(badgeStyle?.backgroundColor) ?? '#FF3B30',
123
+ color: cssColor(badgeStyle?.color) ?? '#fff'
124
+ },
125
+ children: item.badge
126
+ }) : null]
127
+ }), showLabel ? item.label : null]
128
+ }, item.value);
129
+ })
130
+ })]
131
+ });
132
+ }
133
+ //# sourceMappingURL=NavigationRail.js.map