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.
- package/PlatformComponents.podspec +1 -1
- package/README.md +47 -51
- package/android/src/main/java/com/platformcomponents/PCButtonGroupView.kt +664 -0
- package/android/src/main/java/com/platformcomponents/PCButtonGroupViewManager.kt +241 -0
- package/android/src/main/java/com/platformcomponents/PCButtonSupport.kt +159 -0
- package/android/src/main/java/com/platformcomponents/PCButtonView.kt +527 -0
- package/android/src/main/java/com/platformcomponents/PCButtonViewManager.kt +204 -0
- package/android/src/main/java/com/platformcomponents/PCContextMenuView.kt +41 -151
- package/android/src/main/java/com/platformcomponents/PCContextMenuViewManager.kt +7 -63
- package/android/src/main/java/com/platformcomponents/PCDatePickerView.kt +310 -115
- package/android/src/main/java/com/platformcomponents/PCDatePickerViewManager.kt +23 -3
- package/android/src/main/java/com/platformcomponents/PCExpressive.kt +112 -0
- package/android/src/main/java/com/platformcomponents/PCFloatingActionButtonView.kt +485 -0
- package/android/src/main/java/com/platformcomponents/PCFloatingActionButtonViewManager.kt +109 -0
- package/android/src/main/java/com/platformcomponents/PCFloatingToolbarView.kt +247 -0
- package/android/src/main/java/com/platformcomponents/PCFloatingToolbarViewManager.kt +73 -0
- package/android/src/main/java/com/platformcomponents/PCHaptics.kt +46 -0
- package/android/src/main/java/com/platformcomponents/PCImageLoader.kt +42 -7
- package/android/src/main/java/com/platformcomponents/PCLiquidGlassContainerView.kt +32 -0
- package/android/src/main/java/com/platformcomponents/PCLiquidGlassContainerViewManager.kt +31 -0
- package/android/src/main/java/com/platformcomponents/PCLiquidGlassView.kt +32 -6
- package/android/src/main/java/com/platformcomponents/PCLiquidGlassViewManager.kt +4 -0
- package/android/src/main/java/com/platformcomponents/PCMenuSupport.kt +280 -0
- package/android/src/main/java/com/platformcomponents/PCNavigationBarSupport.kt +332 -0
- package/android/src/main/java/com/platformcomponents/PCNavigationRailView.kt +448 -0
- package/android/src/main/java/com/platformcomponents/PCNavigationRailViewManager.kt +176 -0
- package/android/src/main/java/com/platformcomponents/PCSegmentedControlView.kt +35 -17
- package/android/src/main/java/com/platformcomponents/PCSegmentedControlViewManager.kt +20 -3
- package/android/src/main/java/com/platformcomponents/PCSelectionMenuView.kt +371 -39
- package/android/src/main/java/com/platformcomponents/PCSelectionMenuViewManager.kt +18 -4
- package/android/src/main/java/com/platformcomponents/PCTabBarView.kt +397 -0
- package/android/src/main/java/com/platformcomponents/PCTabBarViewManager.kt +182 -0
- package/android/src/main/java/com/platformcomponents/PCTextFieldView.kt +1393 -0
- package/android/src/main/java/com/platformcomponents/PCTextFieldViewManager.kt +354 -0
- package/android/src/main/java/com/platformcomponents/PCThemeSupport.kt +37 -0
- package/android/src/main/java/com/platformcomponents/PlatformComponentsPackage.kt +8 -0
- package/android/src/main/res/drawable/pc_ic_search.xml +12 -0
- package/android/src/main/res/values/attrs.xml +13 -0
- package/android/src/main/res/values/ids.xml +5 -0
- package/android/src/main/res/values/styles.xml +207 -0
- package/ios/PCButton.h +10 -0
- package/ios/PCButton.mm +311 -0
- package/ios/PCButtonGroup.h +10 -0
- package/ios/PCButtonGroup.mm +323 -0
- package/ios/PCButtonGroupView.swift +473 -0
- package/ios/PCButtonSupport.swift +312 -0
- package/ios/PCButtonView.swift +438 -0
- package/ios/PCConstants.swift +23 -2
- package/ios/PCContextMenu.mm +28 -110
- package/ios/PCContextMenu.swift +106 -167
- package/ios/PCDatePicker.mm +21 -9
- package/ios/PCDatePickerView.swift +94 -20
- package/ios/PCFloatingActionButton.h +10 -0
- package/ios/PCFloatingActionButton.mm +177 -0
- package/ios/PCFloatingActionButtonView.swift +426 -0
- package/ios/PCFloatingToolbar.h +10 -0
- package/ios/PCFloatingToolbar.mm +103 -0
- package/ios/PCFloatingToolbarView.swift +336 -0
- package/ios/PCHaptics.swift +91 -0
- package/ios/PCImageLoader.swift +76 -12
- package/ios/PCLiquidGlass.mm +36 -0
- package/ios/PCLiquidGlass.swift +221 -114
- package/ios/PCLiquidGlassContainer.h +10 -0
- package/ios/PCLiquidGlassContainer.mm +84 -0
- package/ios/PCLiquidGlassContainer.swift +69 -0
- package/ios/PCMenuItems.h +76 -0
- package/ios/PCMenuSupport.swift +350 -0
- package/ios/PCNavigationRail.h +10 -0
- package/ios/PCNavigationRail.mm +270 -0
- package/ios/PCNavigationRailView.swift +415 -0
- package/ios/PCSegmentedControl.mm +17 -2
- package/ios/PCSegmentedControl.swift +57 -7
- package/ios/PCSelectionMenu.mm +36 -8
- package/ios/PCSelectionMenu.swift +224 -48
- package/ios/PCTabBar.h +10 -0
- package/ios/PCTabBar.mm +285 -0
- package/ios/PCTabBarAccessory.h +10 -0
- package/ios/PCTabBarAccessory.mm +93 -0
- package/ios/PCTabBarAccessoryView.swift +96 -0
- package/ios/PCTabBarView.swift +671 -0
- package/ios/PCTextField.h +10 -0
- package/ios/PCTextField.mm +546 -0
- package/ios/PCTextFieldView.swift +1558 -0
- package/lib/commonjs/Button.js +149 -0
- package/lib/commonjs/Button.js.map +1 -0
- package/lib/commonjs/ButtonGroup.js +109 -0
- package/lib/commonjs/ButtonGroup.js.map +1 -0
- package/lib/commonjs/ButtonGroupNativeComponent.ts +191 -0
- package/lib/commonjs/ButtonNativeComponent.ts +192 -0
- package/lib/commonjs/ContextMenu.js +9 -48
- package/lib/commonjs/ContextMenu.js.map +1 -1
- package/lib/commonjs/ContextMenuNativeComponent.ts +47 -49
- package/lib/commonjs/DatePicker.js +98 -2
- package/lib/commonjs/DatePicker.js.map +1 -1
- package/lib/commonjs/DatePickerNativeComponent.ts +19 -2
- package/lib/commonjs/FloatingActionButton.js +60 -0
- package/lib/commonjs/FloatingActionButton.js.map +1 -0
- package/lib/commonjs/FloatingActionButtonNativeComponent.ts +58 -0
- package/lib/commonjs/FloatingToolbar.js +77 -0
- package/lib/commonjs/FloatingToolbar.js.map +1 -0
- package/lib/commonjs/FloatingToolbarNativeComponent.ts +47 -0
- package/lib/commonjs/LiquidGlass.js +7 -1
- package/lib/commonjs/LiquidGlass.js.map +1 -1
- package/lib/commonjs/LiquidGlassContainer.js +32 -0
- package/lib/commonjs/LiquidGlassContainer.js.map +1 -0
- package/lib/commonjs/LiquidGlassContainerNativeComponent.ts +17 -0
- package/lib/commonjs/LiquidGlassNativeComponent.ts +8 -0
- package/lib/commonjs/NavigationRail.js +104 -0
- package/lib/commonjs/NavigationRail.js.map +1 -0
- package/lib/commonjs/NavigationRailNativeComponent.ts +107 -0
- package/lib/commonjs/PlatformComponentsProvider.js +18 -0
- package/lib/commonjs/PlatformComponentsProvider.js.map +1 -0
- package/lib/commonjs/SegmentedControl.js +18 -85
- package/lib/commonjs/SegmentedControl.js.map +1 -1
- package/lib/commonjs/SegmentedControlNativeComponent.ts +14 -0
- package/lib/commonjs/SelectionMenu.js +27 -3
- package/lib/commonjs/SelectionMenu.js.map +1 -1
- package/lib/commonjs/SelectionMenuNativeComponent.ts +26 -4
- package/lib/commonjs/SplitButton.js +98 -0
- package/lib/commonjs/SplitButton.js.map +1 -0
- package/lib/commonjs/TabBar.js +203 -0
- package/lib/commonjs/TabBar.js.map +1 -0
- package/lib/commonjs/TabBarAccessoryNativeComponent.ts +19 -0
- package/lib/commonjs/TabBarNativeComponent.ts +145 -0
- package/lib/commonjs/TextField.js +358 -0
- package/lib/commonjs/TextField.js.map +1 -0
- package/lib/commonjs/TextFieldNativeComponent.ts +324 -0
- package/lib/commonjs/focusRegistry.js +79 -0
- package/lib/commonjs/focusRegistry.js.map +1 -0
- package/lib/commonjs/haptics.js +2 -0
- package/lib/commonjs/haptics.js.map +1 -0
- package/lib/commonjs/icons.js +106 -0
- package/lib/commonjs/icons.js.map +1 -0
- package/lib/commonjs/index.js +143 -0
- package/lib/commonjs/index.js.map +1 -1
- package/lib/commonjs/index.web.js +157 -63
- package/lib/commonjs/index.web.js.map +1 -1
- package/lib/commonjs/jest.js +910 -0
- package/lib/commonjs/jest.js.map +1 -0
- package/lib/commonjs/labelStyle.js +27 -0
- package/lib/commonjs/labelStyle.js.map +1 -0
- package/lib/commonjs/menuItems.js +68 -0
- package/lib/commonjs/menuItems.js.map +1 -0
- package/lib/commonjs/reactNativeInternals.d.js +2 -0
- package/lib/commonjs/reactNativeInternals.d.js.map +1 -0
- package/lib/commonjs/selectionIdentifiers.js +18 -0
- package/lib/commonjs/selectionIdentifiers.js.map +1 -0
- package/lib/commonjs/submitBehavior.js +19 -0
- package/lib/commonjs/submitBehavior.js.map +1 -0
- package/lib/commonjs/tabItems.js +49 -0
- package/lib/commonjs/tabItems.js.map +1 -0
- package/lib/commonjs/web/Button.js +170 -0
- package/lib/commonjs/web/Button.js.map +1 -0
- package/lib/commonjs/web/ButtonGroup.js +119 -0
- package/lib/commonjs/web/ButtonGroup.js.map +1 -0
- package/lib/commonjs/web/DatePicker.js +168 -0
- package/lib/commonjs/web/DatePicker.js.map +1 -0
- package/lib/commonjs/web/DateRangePicker.js +137 -0
- package/lib/commonjs/web/DateRangePicker.js.map +1 -0
- package/lib/commonjs/web/Dialog.js +54 -0
- package/lib/commonjs/web/Dialog.js.map +1 -0
- package/lib/commonjs/web/FloatingActionButton.js +98 -0
- package/lib/commonjs/web/FloatingActionButton.js.map +1 -0
- package/lib/commonjs/web/Icon.js +34 -0
- package/lib/commonjs/web/Icon.js.map +1 -0
- package/lib/commonjs/web/NativeTheme.js +28 -0
- package/lib/commonjs/web/NativeTheme.js.map +1 -0
- package/lib/commonjs/web/NavigationRail.js +139 -0
- package/lib/commonjs/web/NavigationRail.js.map +1 -0
- package/lib/commonjs/web/PlatformComponentsProvider.js +51 -0
- package/lib/commonjs/web/PlatformComponentsProvider.js.map +1 -0
- package/lib/commonjs/web/SegmentedControl.js +117 -0
- package/lib/commonjs/web/SegmentedControl.js.map +1 -0
- package/lib/commonjs/web/SelectionMenu.js +142 -0
- package/lib/commonjs/web/SelectionMenu.js.map +1 -0
- package/lib/commonjs/web/SplitButton.js +35 -0
- package/lib/commonjs/web/SplitButton.js.map +1 -0
- package/lib/commonjs/web/TabBar.js +131 -0
- package/lib/commonjs/web/TabBar.js.map +1 -0
- package/lib/commonjs/web/TextField.js +322 -0
- package/lib/commonjs/web/TextField.js.map +1 -0
- package/lib/commonjs/web/components.js +36 -0
- package/lib/commonjs/web/components.js.map +1 -0
- package/lib/commonjs/web/containers.js +121 -0
- package/lib/commonjs/web/containers.js.map +1 -0
- package/lib/commonjs/web/dateInput.js +116 -0
- package/lib/commonjs/web/dateInput.js.map +1 -0
- package/lib/commonjs/web/shared.js +192 -0
- package/lib/commonjs/web/shared.js.map +1 -0
- package/lib/commonjs/webComponents.js +6 -0
- package/lib/commonjs/webComponents.js.map +1 -0
- package/lib/module/Button.js +142 -0
- package/lib/module/Button.js.map +1 -0
- package/lib/module/ButtonGroup.js +102 -0
- package/lib/module/ButtonGroup.js.map +1 -0
- package/lib/module/ButtonGroupNativeComponent.ts +191 -0
- package/lib/module/ButtonNativeComponent.ts +192 -0
- package/lib/module/ContextMenu.js +9 -48
- package/lib/module/ContextMenu.js.map +1 -1
- package/lib/module/ContextMenuNativeComponent.ts +47 -49
- package/lib/module/DatePicker.js +98 -4
- package/lib/module/DatePicker.js.map +1 -1
- package/lib/module/DatePickerNativeComponent.ts +19 -2
- package/lib/module/FloatingActionButton.js +53 -0
- package/lib/module/FloatingActionButton.js.map +1 -0
- package/lib/module/FloatingActionButtonNativeComponent.ts +58 -0
- package/lib/module/FloatingToolbar.js +70 -0
- package/lib/module/FloatingToolbar.js.map +1 -0
- package/lib/module/FloatingToolbarNativeComponent.ts +47 -0
- package/lib/module/LiquidGlass.js +7 -1
- package/lib/module/LiquidGlass.js.map +1 -1
- package/lib/module/LiquidGlassContainer.js +26 -0
- package/lib/module/LiquidGlassContainer.js.map +1 -0
- package/lib/module/LiquidGlassContainerNativeComponent.ts +17 -0
- package/lib/module/LiquidGlassNativeComponent.ts +8 -0
- package/lib/module/NavigationRail.js +99 -0
- package/lib/module/NavigationRail.js.map +1 -0
- package/lib/module/NavigationRailNativeComponent.ts +107 -0
- package/lib/module/PlatformComponentsProvider.js +13 -0
- package/lib/module/PlatformComponentsProvider.js.map +1 -0
- package/lib/module/SegmentedControl.js +18 -85
- package/lib/module/SegmentedControl.js.map +1 -1
- package/lib/module/SegmentedControlNativeComponent.ts +14 -0
- package/lib/module/SelectionMenu.js +27 -3
- package/lib/module/SelectionMenu.js.map +1 -1
- package/lib/module/SelectionMenuNativeComponent.ts +26 -4
- package/lib/module/SplitButton.js +91 -0
- package/lib/module/SplitButton.js.map +1 -0
- package/lib/module/TabBar.js +196 -0
- package/lib/module/TabBar.js.map +1 -0
- package/lib/module/TabBarAccessoryNativeComponent.ts +19 -0
- package/lib/module/TabBarNativeComponent.ts +145 -0
- package/lib/module/TextField.js +352 -0
- package/lib/module/TextField.js.map +1 -0
- package/lib/module/TextFieldNativeComponent.ts +324 -0
- package/lib/module/focusRegistry.js +75 -0
- package/lib/module/focusRegistry.js.map +1 -0
- package/lib/module/haptics.js +2 -0
- package/lib/module/haptics.js.map +1 -0
- package/lib/module/icons.js +101 -0
- package/lib/module/icons.js.map +1 -0
- package/lib/module/index.js +13 -0
- package/lib/module/index.js.map +1 -1
- package/lib/module/index.web.js +12 -59
- package/lib/module/index.web.js.map +1 -1
- package/lib/module/jest.js +840 -0
- package/lib/module/jest.js.map +1 -0
- package/lib/module/labelStyle.js +23 -0
- package/lib/module/labelStyle.js.map +1 -0
- package/lib/module/menuItems.js +65 -0
- package/lib/module/menuItems.js.map +1 -0
- package/lib/module/reactNativeInternals.d.js +2 -0
- package/lib/module/reactNativeInternals.d.js.map +1 -0
- package/lib/module/selectionIdentifiers.js +14 -0
- package/lib/module/selectionIdentifiers.js.map +1 -0
- package/lib/module/submitBehavior.js +15 -0
- package/lib/module/submitBehavior.js.map +1 -0
- package/lib/module/tabItems.js +45 -0
- package/lib/module/tabItems.js.map +1 -0
- package/lib/module/web/Button.js +164 -0
- package/lib/module/web/Button.js.map +1 -0
- package/lib/module/web/ButtonGroup.js +113 -0
- package/lib/module/web/ButtonGroup.js.map +1 -0
- package/lib/module/web/DatePicker.js +162 -0
- package/lib/module/web/DatePicker.js.map +1 -0
- package/lib/module/web/DateRangePicker.js +131 -0
- package/lib/module/web/DateRangePicker.js.map +1 -0
- package/lib/module/web/Dialog.js +48 -0
- package/lib/module/web/Dialog.js.map +1 -0
- package/lib/module/web/FloatingActionButton.js +94 -0
- package/lib/module/web/FloatingActionButton.js.map +1 -0
- package/lib/module/web/Icon.js +29 -0
- package/lib/module/web/Icon.js.map +1 -0
- package/lib/module/web/NativeTheme.js +23 -0
- package/lib/module/web/NativeTheme.js.map +1 -0
- package/lib/module/web/NavigationRail.js +133 -0
- package/lib/module/web/NavigationRail.js.map +1 -0
- package/lib/module/web/PlatformComponentsProvider.js +44 -0
- package/lib/module/web/PlatformComponentsProvider.js.map +1 -0
- package/lib/module/web/SegmentedControl.js +112 -0
- package/lib/module/web/SegmentedControl.js.map +1 -0
- package/lib/module/web/SelectionMenu.js +137 -0
- package/lib/module/web/SelectionMenu.js.map +1 -0
- package/lib/module/web/SplitButton.js +30 -0
- package/lib/module/web/SplitButton.js.map +1 -0
- package/lib/module/web/TabBar.js +126 -0
- package/lib/module/web/TabBar.js.map +1 -0
- package/lib/module/web/TextField.js +316 -0
- package/lib/module/web/TextField.js.map +1 -0
- package/lib/module/web/components.js +33 -0
- package/lib/module/web/components.js.map +1 -0
- package/lib/module/web/containers.js +112 -0
- package/lib/module/web/containers.js.map +1 -0
- package/lib/module/web/dateInput.js +109 -0
- package/lib/module/web/dateInput.js.map +1 -0
- package/lib/module/web/shared.js +179 -0
- package/lib/module/web/shared.js.map +1 -0
- package/lib/module/webComponents.js +4 -0
- package/lib/module/webComponents.js.map +1 -0
- package/lib/typescript/commonjs/docs/sidebars.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/Button.d.ts +184 -0
- package/lib/typescript/commonjs/src/Button.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/ButtonGroup.d.ts +117 -0
- package/lib/typescript/commonjs/src/ButtonGroup.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/ButtonGroupNativeComponent.d.ts +154 -0
- package/lib/typescript/commonjs/src/ButtonGroupNativeComponent.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/ButtonNativeComponent.d.ts +148 -0
- package/lib/typescript/commonjs/src/ButtonNativeComponent.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/ContextMenu.d.ts +20 -33
- package/lib/typescript/commonjs/src/ContextMenu.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/ContextMenuNativeComponent.d.ts +45 -47
- package/lib/typescript/commonjs/src/ContextMenuNativeComponent.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/DatePicker.d.ts +74 -1
- package/lib/typescript/commonjs/src/DatePicker.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/DatePickerNativeComponent.d.ts +16 -1
- package/lib/typescript/commonjs/src/DatePickerNativeComponent.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/FloatingActionButton.d.ts +67 -0
- package/lib/typescript/commonjs/src/FloatingActionButton.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/FloatingActionButtonNativeComponent.d.ts +43 -0
- package/lib/typescript/commonjs/src/FloatingActionButtonNativeComponent.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/FloatingToolbar.d.ts +75 -0
- package/lib/typescript/commonjs/src/FloatingToolbar.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/FloatingToolbarNativeComponent.d.ts +36 -0
- package/lib/typescript/commonjs/src/FloatingToolbarNativeComponent.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/LiquidGlass.d.ts +17 -0
- package/lib/typescript/commonjs/src/LiquidGlass.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/LiquidGlassContainer.d.ts +27 -0
- package/lib/typescript/commonjs/src/LiquidGlassContainer.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/LiquidGlassContainerNativeComponent.d.ts +13 -0
- package/lib/typescript/commonjs/src/LiquidGlassContainerNativeComponent.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/LiquidGlassNativeComponent.d.ts +7 -0
- package/lib/typescript/commonjs/src/LiquidGlassNativeComponent.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/NavigationRail.d.ts +86 -0
- package/lib/typescript/commonjs/src/NavigationRail.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/NavigationRailNativeComponent.d.ts +81 -0
- package/lib/typescript/commonjs/src/NavigationRailNativeComponent.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/PlatformComponentsProvider.d.ts +6 -0
- package/lib/typescript/commonjs/src/PlatformComponentsProvider.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/SegmentedControl.d.ts +35 -47
- package/lib/typescript/commonjs/src/SegmentedControl.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/SegmentedControlNativeComponent.d.ts +11 -0
- package/lib/typescript/commonjs/src/SegmentedControlNativeComponent.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/SelectionMenu.d.ts +44 -2
- package/lib/typescript/commonjs/src/SelectionMenu.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/SelectionMenuNativeComponent.d.ts +20 -4
- package/lib/typescript/commonjs/src/SelectionMenuNativeComponent.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/SplitButton.d.ts +83 -0
- package/lib/typescript/commonjs/src/SplitButton.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/TabBar.d.ts +144 -0
- package/lib/typescript/commonjs/src/TabBar.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/TabBarAccessoryNativeComponent.d.ts +13 -0
- package/lib/typescript/commonjs/src/TabBarAccessoryNativeComponent.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/TabBarNativeComponent.d.ts +110 -0
- package/lib/typescript/commonjs/src/TabBarNativeComponent.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/TextField.d.ts +332 -0
- package/lib/typescript/commonjs/src/TextField.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/TextFieldNativeComponent.d.ts +240 -0
- package/lib/typescript/commonjs/src/TextFieldNativeComponent.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/focusRegistry.d.ts +13 -0
- package/lib/typescript/commonjs/src/focusRegistry.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/haptics.d.ts +20 -0
- package/lib/typescript/commonjs/src/haptics.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/icons.d.ts +58 -0
- package/lib/typescript/commonjs/src/icons.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/index.d.ts +13 -0
- package/lib/typescript/commonjs/src/index.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/index.web.d.ts +25 -133
- package/lib/typescript/commonjs/src/index.web.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/jest.d.ts +139 -0
- package/lib/typescript/commonjs/src/jest.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/labelStyle.d.ts +20 -0
- package/lib/typescript/commonjs/src/labelStyle.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/menuItems.d.ts +100 -0
- package/lib/typescript/commonjs/src/menuItems.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/selectionIdentifiers.d.ts +3 -0
- package/lib/typescript/commonjs/src/selectionIdentifiers.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/sharedTypes.d.ts +6 -1
- package/lib/typescript/commonjs/src/sharedTypes.d.ts.map +1 -1
- package/lib/typescript/commonjs/src/submitBehavior.d.ts +9 -0
- package/lib/typescript/commonjs/src/submitBehavior.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/tabItems.d.ts +55 -0
- package/lib/typescript/commonjs/src/tabItems.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/web/Button.d.ts +9 -0
- package/lib/typescript/commonjs/src/web/Button.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/web/ButtonGroup.d.ts +11 -0
- package/lib/typescript/commonjs/src/web/ButtonGroup.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/web/DatePicker.d.ts +14 -0
- package/lib/typescript/commonjs/src/web/DatePicker.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/web/DateRangePicker.d.ts +11 -0
- package/lib/typescript/commonjs/src/web/DateRangePicker.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/web/Dialog.d.ts +12 -0
- package/lib/typescript/commonjs/src/web/Dialog.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/web/FloatingActionButton.d.ts +8 -0
- package/lib/typescript/commonjs/src/web/FloatingActionButton.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/web/Icon.d.ts +12 -0
- package/lib/typescript/commonjs/src/web/Icon.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/web/NativeTheme.d.ts +10 -0
- package/lib/typescript/commonjs/src/web/NativeTheme.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/web/NavigationRail.d.ts +8 -0
- package/lib/typescript/commonjs/src/web/NavigationRail.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/web/PlatformComponentsProvider.d.ts +10 -0
- package/lib/typescript/commonjs/src/web/PlatformComponentsProvider.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/web/SegmentedControl.d.ts +8 -0
- package/lib/typescript/commonjs/src/web/SegmentedControl.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/web/SelectionMenu.d.ts +10 -0
- package/lib/typescript/commonjs/src/web/SelectionMenu.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/web/SplitButton.d.ts +9 -0
- package/lib/typescript/commonjs/src/web/SplitButton.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/web/TabBar.d.ts +9 -0
- package/lib/typescript/commonjs/src/web/TabBar.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/web/TextField.d.ts +9 -0
- package/lib/typescript/commonjs/src/web/TextField.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/web/components.d.ts +17 -0
- package/lib/typescript/commonjs/src/web/components.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/web/containers.d.ts +24 -0
- package/lib/typescript/commonjs/src/web/containers.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/web/dateInput.d.ts +20 -0
- package/lib/typescript/commonjs/src/web/dateInput.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/web/shared.d.ts +43 -0
- package/lib/typescript/commonjs/src/web/shared.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/webComponents.d.ts +43 -0
- package/lib/typescript/commonjs/src/webComponents.d.ts.map +1 -0
- package/lib/typescript/module/docs/sidebars.d.ts.map +1 -1
- package/lib/typescript/module/src/Button.d.ts +184 -0
- package/lib/typescript/module/src/Button.d.ts.map +1 -0
- package/lib/typescript/module/src/ButtonGroup.d.ts +117 -0
- package/lib/typescript/module/src/ButtonGroup.d.ts.map +1 -0
- package/lib/typescript/module/src/ButtonGroupNativeComponent.d.ts +154 -0
- package/lib/typescript/module/src/ButtonGroupNativeComponent.d.ts.map +1 -0
- package/lib/typescript/module/src/ButtonNativeComponent.d.ts +148 -0
- package/lib/typescript/module/src/ButtonNativeComponent.d.ts.map +1 -0
- package/lib/typescript/module/src/ContextMenu.d.ts +20 -33
- package/lib/typescript/module/src/ContextMenu.d.ts.map +1 -1
- package/lib/typescript/module/src/ContextMenuNativeComponent.d.ts +45 -47
- package/lib/typescript/module/src/ContextMenuNativeComponent.d.ts.map +1 -1
- package/lib/typescript/module/src/DatePicker.d.ts +74 -1
- package/lib/typescript/module/src/DatePicker.d.ts.map +1 -1
- package/lib/typescript/module/src/DatePickerNativeComponent.d.ts +16 -1
- package/lib/typescript/module/src/DatePickerNativeComponent.d.ts.map +1 -1
- package/lib/typescript/module/src/FloatingActionButton.d.ts +67 -0
- package/lib/typescript/module/src/FloatingActionButton.d.ts.map +1 -0
- package/lib/typescript/module/src/FloatingActionButtonNativeComponent.d.ts +43 -0
- package/lib/typescript/module/src/FloatingActionButtonNativeComponent.d.ts.map +1 -0
- package/lib/typescript/module/src/FloatingToolbar.d.ts +75 -0
- package/lib/typescript/module/src/FloatingToolbar.d.ts.map +1 -0
- package/lib/typescript/module/src/FloatingToolbarNativeComponent.d.ts +36 -0
- package/lib/typescript/module/src/FloatingToolbarNativeComponent.d.ts.map +1 -0
- package/lib/typescript/module/src/LiquidGlass.d.ts +17 -0
- package/lib/typescript/module/src/LiquidGlass.d.ts.map +1 -1
- package/lib/typescript/module/src/LiquidGlassContainer.d.ts +27 -0
- package/lib/typescript/module/src/LiquidGlassContainer.d.ts.map +1 -0
- package/lib/typescript/module/src/LiquidGlassContainerNativeComponent.d.ts +13 -0
- package/lib/typescript/module/src/LiquidGlassContainerNativeComponent.d.ts.map +1 -0
- package/lib/typescript/module/src/LiquidGlassNativeComponent.d.ts +7 -0
- package/lib/typescript/module/src/LiquidGlassNativeComponent.d.ts.map +1 -1
- package/lib/typescript/module/src/NavigationRail.d.ts +86 -0
- package/lib/typescript/module/src/NavigationRail.d.ts.map +1 -0
- package/lib/typescript/module/src/NavigationRailNativeComponent.d.ts +81 -0
- package/lib/typescript/module/src/NavigationRailNativeComponent.d.ts.map +1 -0
- package/lib/typescript/module/src/PlatformComponentsProvider.d.ts +6 -0
- package/lib/typescript/module/src/PlatformComponentsProvider.d.ts.map +1 -0
- package/lib/typescript/module/src/SegmentedControl.d.ts +35 -47
- package/lib/typescript/module/src/SegmentedControl.d.ts.map +1 -1
- package/lib/typescript/module/src/SegmentedControlNativeComponent.d.ts +11 -0
- package/lib/typescript/module/src/SegmentedControlNativeComponent.d.ts.map +1 -1
- package/lib/typescript/module/src/SelectionMenu.d.ts +44 -2
- package/lib/typescript/module/src/SelectionMenu.d.ts.map +1 -1
- package/lib/typescript/module/src/SelectionMenuNativeComponent.d.ts +20 -4
- package/lib/typescript/module/src/SelectionMenuNativeComponent.d.ts.map +1 -1
- package/lib/typescript/module/src/SplitButton.d.ts +83 -0
- package/lib/typescript/module/src/SplitButton.d.ts.map +1 -0
- package/lib/typescript/module/src/TabBar.d.ts +144 -0
- package/lib/typescript/module/src/TabBar.d.ts.map +1 -0
- package/lib/typescript/module/src/TabBarAccessoryNativeComponent.d.ts +13 -0
- package/lib/typescript/module/src/TabBarAccessoryNativeComponent.d.ts.map +1 -0
- package/lib/typescript/module/src/TabBarNativeComponent.d.ts +110 -0
- package/lib/typescript/module/src/TabBarNativeComponent.d.ts.map +1 -0
- package/lib/typescript/module/src/TextField.d.ts +332 -0
- package/lib/typescript/module/src/TextField.d.ts.map +1 -0
- package/lib/typescript/module/src/TextFieldNativeComponent.d.ts +240 -0
- package/lib/typescript/module/src/TextFieldNativeComponent.d.ts.map +1 -0
- package/lib/typescript/module/src/focusRegistry.d.ts +13 -0
- package/lib/typescript/module/src/focusRegistry.d.ts.map +1 -0
- package/lib/typescript/module/src/haptics.d.ts +20 -0
- package/lib/typescript/module/src/haptics.d.ts.map +1 -0
- package/lib/typescript/module/src/icons.d.ts +58 -0
- package/lib/typescript/module/src/icons.d.ts.map +1 -0
- package/lib/typescript/module/src/index.d.ts +13 -0
- package/lib/typescript/module/src/index.d.ts.map +1 -1
- package/lib/typescript/module/src/index.web.d.ts +25 -133
- package/lib/typescript/module/src/index.web.d.ts.map +1 -1
- package/lib/typescript/module/src/jest.d.ts +139 -0
- package/lib/typescript/module/src/jest.d.ts.map +1 -0
- package/lib/typescript/module/src/labelStyle.d.ts +20 -0
- package/lib/typescript/module/src/labelStyle.d.ts.map +1 -0
- package/lib/typescript/module/src/menuItems.d.ts +100 -0
- package/lib/typescript/module/src/menuItems.d.ts.map +1 -0
- package/lib/typescript/module/src/selectionIdentifiers.d.ts +3 -0
- package/lib/typescript/module/src/selectionIdentifiers.d.ts.map +1 -0
- package/lib/typescript/module/src/sharedTypes.d.ts +6 -1
- package/lib/typescript/module/src/sharedTypes.d.ts.map +1 -1
- package/lib/typescript/module/src/submitBehavior.d.ts +9 -0
- package/lib/typescript/module/src/submitBehavior.d.ts.map +1 -0
- package/lib/typescript/module/src/tabItems.d.ts +55 -0
- package/lib/typescript/module/src/tabItems.d.ts.map +1 -0
- package/lib/typescript/module/src/web/Button.d.ts +9 -0
- package/lib/typescript/module/src/web/Button.d.ts.map +1 -0
- package/lib/typescript/module/src/web/ButtonGroup.d.ts +11 -0
- package/lib/typescript/module/src/web/ButtonGroup.d.ts.map +1 -0
- package/lib/typescript/module/src/web/DatePicker.d.ts +14 -0
- package/lib/typescript/module/src/web/DatePicker.d.ts.map +1 -0
- package/lib/typescript/module/src/web/DateRangePicker.d.ts +11 -0
- package/lib/typescript/module/src/web/DateRangePicker.d.ts.map +1 -0
- package/lib/typescript/module/src/web/Dialog.d.ts +12 -0
- package/lib/typescript/module/src/web/Dialog.d.ts.map +1 -0
- package/lib/typescript/module/src/web/FloatingActionButton.d.ts +8 -0
- package/lib/typescript/module/src/web/FloatingActionButton.d.ts.map +1 -0
- package/lib/typescript/module/src/web/Icon.d.ts +12 -0
- package/lib/typescript/module/src/web/Icon.d.ts.map +1 -0
- package/lib/typescript/module/src/web/NativeTheme.d.ts +10 -0
- package/lib/typescript/module/src/web/NativeTheme.d.ts.map +1 -0
- package/lib/typescript/module/src/web/NavigationRail.d.ts +8 -0
- package/lib/typescript/module/src/web/NavigationRail.d.ts.map +1 -0
- package/lib/typescript/module/src/web/PlatformComponentsProvider.d.ts +10 -0
- package/lib/typescript/module/src/web/PlatformComponentsProvider.d.ts.map +1 -0
- package/lib/typescript/module/src/web/SegmentedControl.d.ts +8 -0
- package/lib/typescript/module/src/web/SegmentedControl.d.ts.map +1 -0
- package/lib/typescript/module/src/web/SelectionMenu.d.ts +10 -0
- package/lib/typescript/module/src/web/SelectionMenu.d.ts.map +1 -0
- package/lib/typescript/module/src/web/SplitButton.d.ts +9 -0
- package/lib/typescript/module/src/web/SplitButton.d.ts.map +1 -0
- package/lib/typescript/module/src/web/TabBar.d.ts +9 -0
- package/lib/typescript/module/src/web/TabBar.d.ts.map +1 -0
- package/lib/typescript/module/src/web/TextField.d.ts +9 -0
- package/lib/typescript/module/src/web/TextField.d.ts.map +1 -0
- package/lib/typescript/module/src/web/components.d.ts +17 -0
- package/lib/typescript/module/src/web/components.d.ts.map +1 -0
- package/lib/typescript/module/src/web/containers.d.ts +24 -0
- package/lib/typescript/module/src/web/containers.d.ts.map +1 -0
- package/lib/typescript/module/src/web/dateInput.d.ts +20 -0
- package/lib/typescript/module/src/web/dateInput.d.ts.map +1 -0
- package/lib/typescript/module/src/web/shared.d.ts +43 -0
- package/lib/typescript/module/src/web/shared.d.ts.map +1 -0
- package/lib/typescript/module/src/webComponents.d.ts +43 -0
- package/lib/typescript/module/src/webComponents.d.ts.map +1 -0
- package/package.json +55 -4
- package/plugin/build/index.d.ts +3 -2
- package/plugin/build/index.d.ts.map +1 -1
- package/react-native.config.js +6 -0
- package/shared/PCButtonComponentDescriptors-custom.h +22 -0
- package/shared/PCButtonGroupComponentDescriptors-custom.h +22 -0
- package/shared/PCButtonGroupShadowNode-custom.cpp +48 -0
- package/shared/PCButtonGroupShadowNode-custom.h +55 -0
- package/shared/PCButtonGroupState-custom.h +61 -0
- package/shared/PCButtonShadowNode-custom.cpp +48 -0
- package/shared/PCButtonShadowNode-custom.h +55 -0
- package/shared/PCButtonState-custom.h +61 -0
- package/shared/PCFloatingActionButtonComponentDescriptors-custom.h +22 -0
- package/shared/PCFloatingActionButtonShadowNode-custom.cpp +48 -0
- package/shared/PCFloatingActionButtonShadowNode-custom.h +54 -0
- package/shared/PCFloatingActionButtonState-custom.h +61 -0
- package/shared/PCNavigationRailComponentDescriptors-custom.h +47 -0
- package/shared/PCNavigationRailShadowNode-custom.h +42 -0
- package/shared/PCNavigationRailState-custom.h +62 -0
- package/shared/PCTabBarComponentDescriptors-custom.h +22 -0
- package/shared/PCTabBarShadowNode-custom.cpp +54 -0
- package/shared/PCTabBarShadowNode-custom.h +54 -0
- package/shared/PCTabBarState-custom.h +62 -0
- package/shared/PCTextFieldComponentDescriptors-custom.h +22 -0
- package/shared/PCTextFieldShadowNode-custom.cpp +47 -0
- package/shared/PCTextFieldShadowNode-custom.h +55 -0
- package/shared/PCTextFieldState-custom.h +61 -0
- package/shared/react/renderer/components/PlatformComponentsViewSpec/ComponentDescriptors.h +6 -0
- package/src/Button.tsx +359 -0
- package/src/ButtonGroup.tsx +251 -0
- package/src/ButtonGroupNativeComponent.ts +191 -0
- package/src/ButtonNativeComponent.ts +192 -0
- package/src/ContextMenu.tsx +34 -81
- package/src/ContextMenuNativeComponent.ts +47 -49
- package/src/DatePicker.tsx +182 -4
- package/src/DatePickerNativeComponent.ts +19 -2
- package/src/FloatingActionButton.tsx +121 -0
- package/src/FloatingActionButtonNativeComponent.ts +58 -0
- package/src/FloatingToolbar.tsx +164 -0
- package/src/FloatingToolbarNativeComponent.ts +47 -0
- package/src/LiquidGlass.tsx +24 -1
- package/src/LiquidGlassContainer.tsx +42 -0
- package/src/LiquidGlassContainerNativeComponent.ts +17 -0
- package/src/LiquidGlassNativeComponent.ts +8 -0
- package/src/NavigationRail.tsx +203 -0
- package/src/NavigationRailNativeComponent.ts +107 -0
- package/src/PlatformComponentsProvider.tsx +15 -0
- package/src/SegmentedControl.tsx +57 -119
- package/src/SegmentedControlNativeComponent.ts +14 -0
- package/src/SelectionMenu.tsx +81 -6
- package/src/SelectionMenuNativeComponent.ts +26 -4
- package/src/SplitButton.tsx +198 -0
- package/src/TabBar.tsx +373 -0
- package/src/TabBarAccessoryNativeComponent.ts +19 -0
- package/src/TabBarNativeComponent.ts +145 -0
- package/src/TextField.tsx +908 -0
- package/src/TextFieldNativeComponent.ts +324 -0
- package/src/focusRegistry.ts +90 -0
- package/src/haptics.ts +31 -0
- package/src/icons.ts +143 -0
- package/src/index.tsx +13 -0
- package/src/index.web.tsx +53 -199
- package/src/jest.tsx +958 -0
- package/src/labelStyle.ts +36 -0
- package/src/menuItems.ts +152 -0
- package/src/reactNativeInternals.d.ts +22 -0
- package/src/selectionIdentifiers.ts +17 -0
- package/src/sharedTypes.ts +7 -1
- package/src/submitBehavior.ts +16 -0
- package/src/tabItems.ts +113 -0
- package/src/web/Button.tsx +201 -0
- package/src/web/ButtonGroup.tsx +154 -0
- package/src/web/DatePicker.tsx +204 -0
- package/src/web/DateRangePicker.tsx +135 -0
- package/src/web/Dialog.tsx +54 -0
- package/src/web/FloatingActionButton.tsx +76 -0
- package/src/web/Icon.tsx +33 -0
- package/src/web/NativeTheme.ts +23 -0
- package/src/web/NavigationRail.tsx +148 -0
- package/src/web/PlatformComponentsProvider.tsx +48 -0
- package/src/web/SegmentedControl.tsx +127 -0
- package/src/web/SelectionMenu.tsx +149 -0
- package/src/web/SplitButton.tsx +32 -0
- package/src/web/TabBar.tsx +150 -0
- package/src/web/TextField.tsx +361 -0
- package/src/web/components.tsx +71 -0
- package/src/web/containers.tsx +130 -0
- package/src/web/dateInput.ts +137 -0
- package/src/web/shared.ts +176 -0
- package/src/webComponents.ts +45 -0
- package/android/src/main/java/com/platformcomponents/DateConstraints.kt +0 -83
|
@@ -0,0 +1,179 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
// web/shared.ts
|
|
4
|
+
//
|
|
5
|
+
// Helpers shared by the web implementations. The web entry point renders
|
|
6
|
+
// through react-native-web: `style` and the rest of the view props go on a
|
|
7
|
+
// `View`, and the browser's own controls (`<button>`, `<input>`, `<select>`,
|
|
8
|
+
// `<dialog>`) are rendered inside it.
|
|
9
|
+
import { useSyncExternalStore } from 'react';
|
|
10
|
+
|
|
11
|
+
/** A CSS style object for a DOM element. */
|
|
12
|
+
|
|
13
|
+
/** The Material 3 baseline primary color, used until a theme is set. */
|
|
14
|
+
const DEFAULT_PRIMARY = '#6750A4';
|
|
15
|
+
let themePrimary;
|
|
16
|
+
const themeListeners = new Set();
|
|
17
|
+
|
|
18
|
+
/** Sets the brand color the web components use; `undefined` restores the default. */
|
|
19
|
+
export function setThemePrimary(primary) {
|
|
20
|
+
if (primary === themePrimary) return;
|
|
21
|
+
themePrimary = primary;
|
|
22
|
+
themeListeners.forEach(listener => listener());
|
|
23
|
+
}
|
|
24
|
+
function subscribeTheme(listener) {
|
|
25
|
+
themeListeners.add(listener);
|
|
26
|
+
return () => {
|
|
27
|
+
themeListeners.delete(listener);
|
|
28
|
+
};
|
|
29
|
+
}
|
|
30
|
+
function getThemePrimary() {
|
|
31
|
+
return themePrimary ?? DEFAULT_PRIMARY;
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
/** The current brand color, from `setNativeTheme` / `useNativeTheme`. */
|
|
35
|
+
export function usePrimaryColor() {
|
|
36
|
+
return useSyncExternalStore(subscribeTheme, getThemePrimary, getThemePrimary);
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
/**
|
|
40
|
+
* A color prop as CSS. `PlatformColor` and `DynamicColorIOS` have no web
|
|
41
|
+
* equivalent and fall back to the default.
|
|
42
|
+
*/
|
|
43
|
+
export function cssColor(color) {
|
|
44
|
+
return typeof color === 'string' ? color : undefined;
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
/** A label font as CSS. */
|
|
48
|
+
export function cssFont(labelStyle) {
|
|
49
|
+
if (!labelStyle) return {};
|
|
50
|
+
return {
|
|
51
|
+
fontFamily: labelStyle.fontFamily,
|
|
52
|
+
fontSize: labelStyle.fontSize,
|
|
53
|
+
fontWeight: labelStyle.fontWeight,
|
|
54
|
+
fontStyle: labelStyle.fontStyle
|
|
55
|
+
};
|
|
56
|
+
}
|
|
57
|
+
|
|
58
|
+
/**
|
|
59
|
+
* The image to draw for an icon on web. Only `{ type: 'image' }` sources
|
|
60
|
+
* render: SF Symbols and Android drawables don't exist in a browser.
|
|
61
|
+
*/
|
|
62
|
+
export function webIcon(icon) {
|
|
63
|
+
if (icon === undefined || typeof icon === 'string') return undefined;
|
|
64
|
+
const candidates = 'type' in icon ? [icon] : [icon.ios, icon.android];
|
|
65
|
+
for (const source of candidates) {
|
|
66
|
+
if (source && typeof source !== 'string' && source.type === 'image') {
|
|
67
|
+
return {
|
|
68
|
+
source: source.source,
|
|
69
|
+
tinted: source.tinted !== false
|
|
70
|
+
};
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
return undefined;
|
|
74
|
+
}
|
|
75
|
+
const warned = new Set();
|
|
76
|
+
function isDev() {
|
|
77
|
+
if (typeof __DEV__ !== 'undefined') return __DEV__;
|
|
78
|
+
return typeof process !== 'undefined' && process.env?.NODE_ENV !== 'production';
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
/** Logs a development warning once per key. */
|
|
82
|
+
export function warnOnce(key, message) {
|
|
83
|
+
if (warned.has(key) || !isDev()) return;
|
|
84
|
+
warned.add(key);
|
|
85
|
+
console.warn(`react-native-platform-components: ${message}`);
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
/** Resets `warnOnce`; for tests. */
|
|
89
|
+
export function resetWarnings() {
|
|
90
|
+
warned.clear();
|
|
91
|
+
}
|
|
92
|
+
|
|
93
|
+
/** The value of the form control that fired a DOM event. */
|
|
94
|
+
export function eventValue(event) {
|
|
95
|
+
return event.target.value;
|
|
96
|
+
}
|
|
97
|
+
|
|
98
|
+
/** Styles for the variants shared by Button and ButtonGroup. */
|
|
99
|
+
export function buttonColors(variant, primary, color, tintColor) {
|
|
100
|
+
switch (variant) {
|
|
101
|
+
// Glass is an iOS 26 material; browsers get the Android mapping.
|
|
102
|
+
case 'tonal':
|
|
103
|
+
case 'glass':
|
|
104
|
+
case 'clearGlass':
|
|
105
|
+
return {
|
|
106
|
+
backgroundColor: color ?? `color-mix(in srgb, ${primary} 18%, Canvas)`,
|
|
107
|
+
color: tintColor ?? 'CanvasText',
|
|
108
|
+
border: 'none'
|
|
109
|
+
};
|
|
110
|
+
case 'outlined':
|
|
111
|
+
return {
|
|
112
|
+
backgroundColor: color ?? 'transparent',
|
|
113
|
+
color: tintColor ?? primary,
|
|
114
|
+
border: '1px solid color-mix(in srgb, CanvasText 30%, transparent)'
|
|
115
|
+
};
|
|
116
|
+
case 'text':
|
|
117
|
+
return {
|
|
118
|
+
backgroundColor: color ?? 'transparent',
|
|
119
|
+
color: tintColor ?? primary,
|
|
120
|
+
border: 'none'
|
|
121
|
+
};
|
|
122
|
+
case 'elevated':
|
|
123
|
+
return {
|
|
124
|
+
backgroundColor: color ?? 'Canvas',
|
|
125
|
+
color: tintColor ?? primary,
|
|
126
|
+
border: 'none',
|
|
127
|
+
boxShadow: '0 1px 3px rgba(0, 0, 0, 0.3)'
|
|
128
|
+
};
|
|
129
|
+
default:
|
|
130
|
+
return {
|
|
131
|
+
backgroundColor: color ?? primary,
|
|
132
|
+
color: tintColor ?? '#fff',
|
|
133
|
+
border: 'none'
|
|
134
|
+
};
|
|
135
|
+
}
|
|
136
|
+
}
|
|
137
|
+
|
|
138
|
+
/** Height and horizontal padding for each button size. */
|
|
139
|
+
export const BUTTON_SIZES = {
|
|
140
|
+
xsmall: {
|
|
141
|
+
height: 32,
|
|
142
|
+
padding: 12,
|
|
143
|
+
fontSize: 14
|
|
144
|
+
},
|
|
145
|
+
small: {
|
|
146
|
+
height: 40,
|
|
147
|
+
padding: 16,
|
|
148
|
+
fontSize: 14
|
|
149
|
+
},
|
|
150
|
+
medium: {
|
|
151
|
+
height: 56,
|
|
152
|
+
padding: 24,
|
|
153
|
+
fontSize: 16
|
|
154
|
+
},
|
|
155
|
+
large: {
|
|
156
|
+
height: 96,
|
|
157
|
+
padding: 48,
|
|
158
|
+
fontSize: 24
|
|
159
|
+
},
|
|
160
|
+
xlarge: {
|
|
161
|
+
height: 136,
|
|
162
|
+
padding: 64,
|
|
163
|
+
fontSize: 32
|
|
164
|
+
}
|
|
165
|
+
};
|
|
166
|
+
|
|
167
|
+
/** Base style of a `<button>` rendered by these components. */
|
|
168
|
+
export const BUTTON_BASE = {
|
|
169
|
+
display: 'inline-flex',
|
|
170
|
+
alignItems: 'center',
|
|
171
|
+
justifyContent: 'center',
|
|
172
|
+
gap: 8,
|
|
173
|
+
boxSizing: 'border-box',
|
|
174
|
+
fontFamily: 'inherit',
|
|
175
|
+
fontWeight: 500,
|
|
176
|
+
cursor: 'pointer',
|
|
177
|
+
whiteSpace: 'nowrap'
|
|
178
|
+
};
|
|
179
|
+
//# sourceMappingURL=shared.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["useSyncExternalStore","DEFAULT_PRIMARY","themePrimary","themeListeners","Set","setThemePrimary","primary","forEach","listener","subscribeTheme","add","delete","getThemePrimary","usePrimaryColor","cssColor","color","undefined","cssFont","labelStyle","fontFamily","fontSize","fontWeight","fontStyle","webIcon","icon","candidates","ios","android","source","type","tinted","warned","isDev","__DEV__","process","env","NODE_ENV","warnOnce","key","message","has","console","warn","resetWarnings","clear","eventValue","event","target","value","buttonColors","variant","tintColor","backgroundColor","border","boxShadow","BUTTON_SIZES","xsmall","height","padding","small","medium","large","xlarge","BUTTON_BASE","display","alignItems","justifyContent","gap","boxSizing","cursor","whiteSpace"],"sourceRoot":"../../../src","sources":["web/shared.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":[],"sourceRoot":"../../src","sources":["webComponents.ts"],"mappings":"","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sidebars.d.ts","sourceRoot":"","sources":["../../../../docs/sidebars.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,iCAAiC,CAAC;AAEtE,QAAA,MAAM,QAAQ,EAAE,
|
|
1
|
+
{"version":3,"file":"sidebars.d.ts","sourceRoot":"","sources":["../../../../docs/sidebars.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,iCAAiC,CAAC;AAEtE,QAAA,MAAM,QAAQ,EAAE,cAsCf,CAAC;AAEF,eAAe,QAAQ,CAAC"}
|
|
@@ -0,0 +1,184 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import type { ColorValue, ViewProps } from 'react-native';
|
|
3
|
+
import { type PlatformIcon } from './icons';
|
|
4
|
+
import { type LabelStyle } from './labelStyle';
|
|
5
|
+
import { type ContextMenuAction } from './menuItems';
|
|
6
|
+
import type { Haptics } from './haptics';
|
|
7
|
+
import type { AndroidMaterialStyle } from './sharedTypes';
|
|
8
|
+
/**
|
|
9
|
+
* Emphasis of the button, from highest to lowest.
|
|
10
|
+
*
|
|
11
|
+
* | Variant | Android (Material 3 Expressive) | iOS (`UIButton.Configuration`) |
|
|
12
|
+
* | ---------- | ------------------------------- | ------------------------------ |
|
|
13
|
+
* | `filled` | Filled button | `.filled()` |
|
|
14
|
+
* | `tonal` | Filled tonal button | `.tinted()` |
|
|
15
|
+
* | `outlined` | Outlined button | `.bordered()` |
|
|
16
|
+
* | `text` | Text button | `.plain()` |
|
|
17
|
+
* | `elevated` | Elevated button | `.gray()` |
|
|
18
|
+
* | `glass` | Filled tonal button | `.glass()` (iOS 26+), else `.gray()` |
|
|
19
|
+
* | `prominentGlass` | Filled button | `.prominentGlass()` (iOS 26+), else `.filled()` |
|
|
20
|
+
* | `clearGlass` | Filled tonal button | `.clearGlass()` (iOS 26+), else `.gray()` |
|
|
21
|
+
* | `prominentClearGlass` | Filled button | `.prominentClearGlass()` (iOS 26+), else `.filled()` |
|
|
22
|
+
*
|
|
23
|
+
* The glass variants are the iOS 26 Liquid Glass buttons; `color` tints
|
|
24
|
+
* the prominent glass and `tintColor` colors the label and icon. Clear glass
|
|
25
|
+
* is more transparent, for buttons over photos and other rich content.
|
|
26
|
+
*/
|
|
27
|
+
export type ButtonVariant = 'filled' | 'tonal' | 'outlined' | 'text' | 'elevated' | 'glass' | 'prominentGlass' | 'clearGlass' | 'prominentClearGlass';
|
|
28
|
+
/**
|
|
29
|
+
* Button size. Material 3 Expressive defines five sizes; iOS maps them onto
|
|
30
|
+
* `UIButton.Configuration.Size` (`xsmall` → mini, `xlarge` → large).
|
|
31
|
+
*/
|
|
32
|
+
export type ButtonSize = 'xsmall' | 'small' | 'medium' | 'large' | 'xlarge';
|
|
33
|
+
/**
|
|
34
|
+
* Corner shape. `round` is a pill; `square` keeps rounded corners. Unset
|
|
35
|
+
* means the platform default (round on Android, dynamic on iOS).
|
|
36
|
+
*/
|
|
37
|
+
export type ButtonShape = 'round' | 'square';
|
|
38
|
+
/** Where the icon sits relative to the label. */
|
|
39
|
+
export type ButtonIconPosition = 'leading' | 'trailing' | 'top' | 'bottom';
|
|
40
|
+
/**
|
|
41
|
+
* An animated SF Symbol effect (iOS 17+). `wiggle`, `rotate` and `breathe`
|
|
42
|
+
* need iOS 18; on earlier versions they do nothing.
|
|
43
|
+
*/
|
|
44
|
+
export type ButtonSymbolEffect = 'bounce' | 'pulse' | 'variableColor' | 'wiggle' | 'rotate' | 'breathe';
|
|
45
|
+
export interface ButtonProps extends ViewProps {
|
|
46
|
+
/** Button text. Omit for an icon-only button. */
|
|
47
|
+
label?: string;
|
|
48
|
+
/** Icon shown next to the label, or alone when there is no label. */
|
|
49
|
+
icon?: PlatformIcon;
|
|
50
|
+
/**
|
|
51
|
+
* Where the icon sits relative to the label. Default: `'leading'`.
|
|
52
|
+
* iOS: `imagePlacement`. Android: `iconGravity` (`textEnd` for trailing,
|
|
53
|
+
* `textTop` for top). Material has no bottom gravity, so `'bottom'` puts the
|
|
54
|
+
* icon on top on Android.
|
|
55
|
+
*/
|
|
56
|
+
iconPosition?: ButtonIconPosition;
|
|
57
|
+
/** Emphasis. Default: `'filled'`. See {@link ButtonVariant}. */
|
|
58
|
+
variant?: ButtonVariant;
|
|
59
|
+
/** Size. Default: `'small'`, the Material 3 default. */
|
|
60
|
+
size?: ButtonSize;
|
|
61
|
+
/** Corner shape. Default: platform default. */
|
|
62
|
+
shape?: ButtonShape;
|
|
63
|
+
/**
|
|
64
|
+
* Corner radius in points (dp). Overrides `shape` when set.
|
|
65
|
+
* iOS: `background.cornerRadius` with the fixed corner style. Android: the
|
|
66
|
+
* `shapeAppearanceModel` corner size (the press morph is turned off).
|
|
67
|
+
*/
|
|
68
|
+
cornerRadius?: number;
|
|
69
|
+
/** Whether the button is disabled. */
|
|
70
|
+
disabled?: boolean;
|
|
71
|
+
/**
|
|
72
|
+
* Shows a native spinner in place of the label and icon, keeping the
|
|
73
|
+
* button's size, and ignores presses. Sets `accessibilityState.busy`.
|
|
74
|
+
* iOS: `UIButton.Configuration.showsActivityIndicator`. Android: a Material
|
|
75
|
+
* circular progress indicator drawn as the button icon.
|
|
76
|
+
*/
|
|
77
|
+
loading?: boolean;
|
|
78
|
+
/**
|
|
79
|
+
* Container (background) color.
|
|
80
|
+
* Android: `backgroundTint`. iOS: `baseBackgroundColor`.
|
|
81
|
+
*/
|
|
82
|
+
color?: ColorValue;
|
|
83
|
+
/**
|
|
84
|
+
* Label and icon color.
|
|
85
|
+
* Android: text color and `iconTint`. iOS: `baseForegroundColor`.
|
|
86
|
+
*/
|
|
87
|
+
tintColor?: ColorValue;
|
|
88
|
+
/**
|
|
89
|
+
* Container color while disabled. Unset keeps the platform's disabled look.
|
|
90
|
+
* iOS: a `configurationUpdateHandler` on `isEnabled`. Android: the disabled
|
|
91
|
+
* state of the `backgroundTint` color state list.
|
|
92
|
+
*/
|
|
93
|
+
disabledColor?: ColorValue;
|
|
94
|
+
/**
|
|
95
|
+
* Label and icon color while disabled. Unset keeps the platform's disabled
|
|
96
|
+
* look. iOS: a `configurationUpdateHandler` on `isEnabled`. Android: the
|
|
97
|
+
* disabled state of the text color and `iconTint` color state lists.
|
|
98
|
+
*/
|
|
99
|
+
disabledTintColor?: ColorValue;
|
|
100
|
+
/** Label font. */
|
|
101
|
+
labelStyle?: LabelStyle;
|
|
102
|
+
/**
|
|
103
|
+
* Largest scale the label's font can reach with the system text size
|
|
104
|
+
* (Dynamic Type / font scale), as on `Text`: `undefined` or `0` means no
|
|
105
|
+
* cap; values of 1 or more cap it.
|
|
106
|
+
*/
|
|
107
|
+
maxFontSizeMultiplier?: number;
|
|
108
|
+
/** Screen-reader label. Defaults to `label`. */
|
|
109
|
+
accessibilityLabel?: string;
|
|
110
|
+
/**
|
|
111
|
+
* Haptic played when the user presses the button, flips a toggle or
|
|
112
|
+
* picks a menu item (not when a menu button opens its menu); not while
|
|
113
|
+
* `loading` or disabled. Default: none, like the native buttons. See
|
|
114
|
+
* {@link Haptics}.
|
|
115
|
+
*/
|
|
116
|
+
haptics?: Haptics;
|
|
117
|
+
/**
|
|
118
|
+
* Called when the button is pressed. A button with a `menu` opens the menu
|
|
119
|
+
* instead.
|
|
120
|
+
*/
|
|
121
|
+
onPress?: () => void;
|
|
122
|
+
/**
|
|
123
|
+
* Makes the button a toggle, with this as its controlled state. A press
|
|
124
|
+
* calls `onSelectedChange` with the opposite value; the button shows the
|
|
125
|
+
* new state once `selected` changes, and goes back if it doesn't.
|
|
126
|
+
*
|
|
127
|
+
* iOS: `changesSelectionAsPrimaryAction` and `isSelected`, with the
|
|
128
|
+
* configuration's selected look. Android: a checkable `MaterialButton`
|
|
129
|
+
* (`isChecked`), with the Material toggle button colors and shape.
|
|
130
|
+
*/
|
|
131
|
+
selected?: boolean;
|
|
132
|
+
/** Called when a toggle button is pressed, with the state it asks for. */
|
|
133
|
+
onSelectedChange?: (selected: boolean) => void;
|
|
134
|
+
/**
|
|
135
|
+
* A menu the button opens when pressed, in place of `onPress`. Same items
|
|
136
|
+
* as ContextMenu: submenus, sections, icons, states and attributes.
|
|
137
|
+
*
|
|
138
|
+
* iOS: `UIButton.menu` with `showsMenuAsPrimaryAction`. Android: a
|
|
139
|
+
* `PopupMenu` anchored to the button.
|
|
140
|
+
*/
|
|
141
|
+
menu?: readonly ContextMenuAction[];
|
|
142
|
+
/** Called when a menu item is picked, with its id and title. */
|
|
143
|
+
onMenuSelect?: (id: string, title: string) => void;
|
|
144
|
+
/** Called when the menu opens. */
|
|
145
|
+
onMenuOpen?: () => void;
|
|
146
|
+
/** Called when the menu closes. */
|
|
147
|
+
onMenuClose?: () => void;
|
|
148
|
+
/**
|
|
149
|
+
* iOS-specific configuration
|
|
150
|
+
*/
|
|
151
|
+
ios?: {
|
|
152
|
+
/**
|
|
153
|
+
* Animates the SF Symbol icon (`UIImageView.addSymbolEffect`, iOS 17+;
|
|
154
|
+
* `wiggle`, `rotate` and `breathe` need iOS 18). Without
|
|
155
|
+
* `symbolEffectTrigger` the effect repeats until it is unset. Ignored
|
|
156
|
+
* for image icons and on Android.
|
|
157
|
+
*/
|
|
158
|
+
symbolEffect?: ButtonSymbolEffect;
|
|
159
|
+
/**
|
|
160
|
+
* Plays `symbolEffect` once each time this value changes, instead of
|
|
161
|
+
* repeating it. The first value doesn't play.
|
|
162
|
+
*/
|
|
163
|
+
symbolEffectTrigger?: number | string;
|
|
164
|
+
};
|
|
165
|
+
/**
|
|
166
|
+
* Android-specific configuration
|
|
167
|
+
*/
|
|
168
|
+
android?: {
|
|
169
|
+
/** Ripple color shown while pressing. */
|
|
170
|
+
rippleColor?: ColorValue;
|
|
171
|
+
/** Outline color (outlined variant). */
|
|
172
|
+
strokeColor?: ColorValue;
|
|
173
|
+
/**
|
|
174
|
+
* Material style: Material 3 Expressive (default), or the classic
|
|
175
|
+
* Material 3 button, which has one size and shape (`size` and `shape`
|
|
176
|
+
* are ignored).
|
|
177
|
+
*/
|
|
178
|
+
material?: AndroidMaterialStyle;
|
|
179
|
+
};
|
|
180
|
+
/** Test identifier */
|
|
181
|
+
testID?: string;
|
|
182
|
+
}
|
|
183
|
+
export declare function Button(props: ButtonProps): React.ReactElement;
|
|
184
|
+
//# sourceMappingURL=Button.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Button.d.ts","sourceRoot":"","sources":["../../../../src/Button.tsx"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,117 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import type { ColorValue, ViewProps } from 'react-native';
|
|
3
|
+
import type { ButtonShape, ButtonSize, ButtonVariant } from './Button';
|
|
4
|
+
import { type PlatformIcon } from './icons';
|
|
5
|
+
import { type LabelStyle } from './labelStyle';
|
|
6
|
+
import type { Haptics } from './haptics';
|
|
7
|
+
import type { AndroidMaterialStyle } from './sharedTypes';
|
|
8
|
+
/**
|
|
9
|
+
* Selection behavior of the group.
|
|
10
|
+
*
|
|
11
|
+
* - `none` (default): the buttons are plain actions.
|
|
12
|
+
* - `single`: at most one button is selected at a time.
|
|
13
|
+
* - `multiple`: any number of buttons can be selected.
|
|
14
|
+
*/
|
|
15
|
+
export type ButtonGroupSelection = 'none' | 'single' | 'multiple';
|
|
16
|
+
/**
|
|
17
|
+
* What happens to buttons that don't fit the group's width.
|
|
18
|
+
*
|
|
19
|
+
* - `none` (default): they are clipped.
|
|
20
|
+
* - `menu`: the trailing ones move into an overflow menu. Android: the
|
|
21
|
+
* `MaterialButtonGroup` overflow menu. iOS: a "…" button with a `UIMenu`.
|
|
22
|
+
* - `wrap`: they wrap onto more rows (Android only; iOS clips them).
|
|
23
|
+
*/
|
|
24
|
+
export type ButtonGroupOverflow = 'none' | 'menu' | 'wrap';
|
|
25
|
+
export interface ButtonGroupButtonProps {
|
|
26
|
+
/** Button text. Omit for an icon-only button. */
|
|
27
|
+
label?: string;
|
|
28
|
+
/** Unique value identifier for the button */
|
|
29
|
+
value: string;
|
|
30
|
+
/** Whether this specific button is disabled */
|
|
31
|
+
disabled?: boolean;
|
|
32
|
+
/** Optional icon. See {@link PlatformIcon}. */
|
|
33
|
+
icon?: PlatformIcon;
|
|
34
|
+
/** Screen-reader label. Defaults to `label`. */
|
|
35
|
+
accessibilityLabel?: string;
|
|
36
|
+
}
|
|
37
|
+
export interface ButtonGroupProps extends ViewProps {
|
|
38
|
+
/** Buttons to display */
|
|
39
|
+
buttons: readonly ButtonGroupButtonProps[];
|
|
40
|
+
/** Emphasis of every button. Default: `'outlined'`. */
|
|
41
|
+
variant?: ButtonVariant;
|
|
42
|
+
/** Size of every button. Default: `'small'`. */
|
|
43
|
+
size?: ButtonSize;
|
|
44
|
+
/** Corner shape of every button. Default: platform default. */
|
|
45
|
+
shape?: ButtonShape;
|
|
46
|
+
/**
|
|
47
|
+
* Connected group: the buttons share one outline with small inner corners
|
|
48
|
+
* (Material 3 "connected button group"). Default: `true` when `selection`
|
|
49
|
+
* is `'single'` or `'multiple'`, `false` otherwise.
|
|
50
|
+
*/
|
|
51
|
+
connected?: boolean;
|
|
52
|
+
/** Gap between buttons in points. Default: the platform's group spacing. */
|
|
53
|
+
spacing?: number;
|
|
54
|
+
/** Selection behavior. Default: `'none'`. See {@link ButtonGroupSelection}. */
|
|
55
|
+
selection?: ButtonGroupSelection;
|
|
56
|
+
/**
|
|
57
|
+
* Values of the selected buttons (controlled). Only the first value is
|
|
58
|
+
* used with `selection: 'single'`.
|
|
59
|
+
*/
|
|
60
|
+
selectedValues?: readonly string[];
|
|
61
|
+
/**
|
|
62
|
+
* Whether at least one button must stay selected. Default: `true` for
|
|
63
|
+
* `single`, `false` for `multiple`.
|
|
64
|
+
*/
|
|
65
|
+
selectionRequired?: boolean;
|
|
66
|
+
/** Whether the entire group is disabled */
|
|
67
|
+
disabled?: boolean;
|
|
68
|
+
/** Container (background) color of the buttons. */
|
|
69
|
+
color?: ColorValue;
|
|
70
|
+
/** Label and icon color of the buttons. */
|
|
71
|
+
tintColor?: ColorValue;
|
|
72
|
+
/** Label font. */
|
|
73
|
+
labelStyle?: LabelStyle;
|
|
74
|
+
/**
|
|
75
|
+
* What happens to buttons that don't fit the group's width. Default:
|
|
76
|
+
* `'none'`. See {@link ButtonGroupOverflow}. A pick from the overflow menu
|
|
77
|
+
* counts as a press of its button (`onPress`, and the selection).
|
|
78
|
+
*/
|
|
79
|
+
overflow?: ButtonGroupOverflow;
|
|
80
|
+
/**
|
|
81
|
+
* Haptic played when a button is pressed, in every selection mode.
|
|
82
|
+
* Default: none, like the native buttons. See {@link Haptics}.
|
|
83
|
+
*/
|
|
84
|
+
haptics?: Haptics;
|
|
85
|
+
/**
|
|
86
|
+
* Called when a button is pressed, in every selection mode.
|
|
87
|
+
* @param value - The button's value
|
|
88
|
+
* @param index - The button's index
|
|
89
|
+
*/
|
|
90
|
+
onPress?: (value: string, index: number) => void;
|
|
91
|
+
/**
|
|
92
|
+
* Called when the selection changes (`single` / `multiple` selection).
|
|
93
|
+
* @param values - Values of the selected buttons, in button order
|
|
94
|
+
*/
|
|
95
|
+
onSelectionChange?: (values: string[]) => void;
|
|
96
|
+
/**
|
|
97
|
+
* Android-specific configuration
|
|
98
|
+
*/
|
|
99
|
+
android?: {
|
|
100
|
+
/** @deprecated Use the cross-platform `overflow` prop. */
|
|
101
|
+
overflow?: ButtonGroupOverflow;
|
|
102
|
+
/** Ripple color shown while pressing a button. */
|
|
103
|
+
rippleColor?: ColorValue;
|
|
104
|
+
/** Outline color (outlined variant). */
|
|
105
|
+
strokeColor?: ColorValue;
|
|
106
|
+
/**
|
|
107
|
+
* Material style: Material 3 Expressive (default), or the classic
|
|
108
|
+
* Material 3 group, which has one size and shape (`size` and `shape`
|
|
109
|
+
* are ignored).
|
|
110
|
+
*/
|
|
111
|
+
material?: AndroidMaterialStyle;
|
|
112
|
+
};
|
|
113
|
+
/** Test identifier */
|
|
114
|
+
testID?: string;
|
|
115
|
+
}
|
|
116
|
+
export declare function ButtonGroup(props: ButtonGroupProps): React.ReactElement;
|
|
117
|
+
//# sourceMappingURL=ButtonGroup.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"ButtonGroup.d.ts","sourceRoot":"","sources":["../../../../src/ButtonGroup.tsx"],"names":[],"mappings":"AACA,OAAO,KAA+B,MAAM,OAAO,CAAC;AACpD,OAAO,KAAK,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAE1D,OAAO,KAAK,EAAE,WAAW,EAAE,UAAU,EAAE,aAAa,EAAE,MAAM,UAAU,CAAC;AAMvE,OAAO,EAAe,KAAK,YAAY,EAAE,MAAM,SAAS,CAAC;AACzD,OAAO,EAAuB,KAAK,UAAU,EAAE,MAAM,cAAc,CAAC;AACpE,OAAO,KAAK,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACzC,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,eAAe,CAAC;AAE1D;;;;;;GAMG;AACH,MAAM,MAAM,oBAAoB,GAAG,MAAM,GAAG,QAAQ,GAAG,UAAU,CAAC;AAElE;;;;;;;GAOG;AACH,MAAM,MAAM,mBAAmB,GAAG,MAAM,GAAG,MAAM,GAAG,MAAM,CAAC;AAE3D,MAAM,WAAW,sBAAsB;IACrC,iDAAiD;IACjD,KAAK,CAAC,EAAE,MAAM,CAAC;IAEf,6CAA6C;IAC7C,KAAK,EAAE,MAAM,CAAC;IAEd,+CAA+C;IAC/C,QAAQ,CAAC,EAAE,OAAO,CAAC;IAEnB,+CAA+C;IAC/C,IAAI,CAAC,EAAE,YAAY,CAAC;IAEpB,gDAAgD;IAChD,kBAAkB,CAAC,EAAE,MAAM,CAAC;CAC7B;AAED,MAAM,WAAW,gBAAiB,SAAQ,SAAS;IACjD,yBAAyB;IACzB,OAAO,EAAE,SAAS,sBAAsB,EAAE,CAAC;IAE3C,uDAAuD;IACvD,OAAO,CAAC,EAAE,aAAa,CAAC;IAExB,gDAAgD;IAChD,IAAI,CAAC,EAAE,UAAU,CAAC;IAElB,+DAA+D;IAC/D,KAAK,CAAC,EAAE,WAAW,CAAC;IAEpB;;;;OAIG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC;IAEpB,4EAA4E;IAC5E,OAAO,CAAC,EAAE,MAAM,CAAC;IAEjB,+EAA+E;IAC/E,SAAS,CAAC,EAAE,oBAAoB,CAAC;IAEjC;;;OAGG;IACH,cAAc,CAAC,EAAE,SAAS,MAAM,EAAE,CAAC;IAEnC;;;OAGG;IACH,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAE5B,2CAA2C;IAC3C,QAAQ,CAAC,EAAE,OAAO,CAAC;IAEnB,mDAAmD;IACnD,KAAK,CAAC,EAAE,UAAU,CAAC;IAEnB,2CAA2C;IAC3C,SAAS,CAAC,EAAE,UAAU,CAAC;IAEvB,kBAAkB;IAClB,UAAU,CAAC,EAAE,UAAU,CAAC;IAExB;;;;OAIG;IACH,QAAQ,CAAC,EAAE,mBAAmB,CAAC;IAE/B;;;OAGG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;IAElB;;;;OAIG;IACH,OAAO,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAEjD;;;OAGG;IACH,iBAAiB,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,EAAE,KAAK,IAAI,CAAC;IAE/C;;OAEG;IACH,OAAO,CAAC,EAAE;QACR,0DAA0D;QAC1D,QAAQ,CAAC,EAAE,mBAAmB,CAAC;QAE/B,kDAAkD;QAClD,WAAW,CAAC,EAAE,UAAU,CAAC;QAEzB,wCAAwC;QACxC,WAAW,CAAC,EAAE,UAAU,CAAC;QAEzB;;;;WAIG;QACH,QAAQ,CAAC,EAAE,oBAAoB,CAAC;KACjC,CAAC;IAEF,sBAAsB;IACtB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,wBAAgB,WAAW,CAAC,KAAK,EAAE,gBAAgB,GAAG,KAAK,CAAC,YAAY,CAkGvE"}
|
|
@@ -0,0 +1,154 @@
|
|
|
1
|
+
import type { ColorValue, HostComponent, ViewProps } from 'react-native';
|
|
2
|
+
import type { BubblingEventHandler, Double, Int32 } from './codegenTypes';
|
|
3
|
+
/**
|
|
4
|
+
* A single button in the group. Icons are pre-resolved on the JS side (see
|
|
5
|
+
* icons.ts) so native only deals with flat strings.
|
|
6
|
+
*/
|
|
7
|
+
export type ButtonGroupButton = Readonly<{
|
|
8
|
+
label: string;
|
|
9
|
+
value: string;
|
|
10
|
+
disabled: string;
|
|
11
|
+
iconType: string;
|
|
12
|
+
iconName: string;
|
|
13
|
+
iconRequest: string;
|
|
14
|
+
iconUri: string;
|
|
15
|
+
iconScale: Double;
|
|
16
|
+
iconTinted: string;
|
|
17
|
+
accessibilityLabel: string;
|
|
18
|
+
}>;
|
|
19
|
+
/**
|
|
20
|
+
* Event emitted when a button is pressed.
|
|
21
|
+
*/
|
|
22
|
+
export type ButtonGroupPressEvent = Readonly<{
|
|
23
|
+
index: Int32;
|
|
24
|
+
value: string;
|
|
25
|
+
}>;
|
|
26
|
+
/**
|
|
27
|
+
* Event emitted when the selection changes (single / multiple selection).
|
|
28
|
+
*/
|
|
29
|
+
export type ButtonGroupSelectionEvent = Readonly<{
|
|
30
|
+
/** Values of the selected buttons, in button order. */
|
|
31
|
+
values: string[];
|
|
32
|
+
}>;
|
|
33
|
+
/**
|
|
34
|
+
* Label font. Empty strings / 0 mean "platform default".
|
|
35
|
+
*/
|
|
36
|
+
export type ButtonGroupLabelStyleProps = Readonly<{
|
|
37
|
+
fontFamily?: string;
|
|
38
|
+
fontSize?: Double;
|
|
39
|
+
fontWeight?: string;
|
|
40
|
+
fontStyle?: string;
|
|
41
|
+
}>;
|
|
42
|
+
/**
|
|
43
|
+
* One item of the split button's menu, the shape of `ContextMenuItem` (see
|
|
44
|
+
* menuItems.ts). Every field is set; empty strings mean "none" and flags are
|
|
45
|
+
* 'true' | 'false'.
|
|
46
|
+
*/
|
|
47
|
+
export type ButtonGroupMenuItem = Readonly<{
|
|
48
|
+
id: string;
|
|
49
|
+
title: string;
|
|
50
|
+
subtitle: string;
|
|
51
|
+
/** Index of the parent submenu or section; -1 at the top level */
|
|
52
|
+
parent: Int32;
|
|
53
|
+
/** 'action' | 'menu' | 'section' */
|
|
54
|
+
kind: string;
|
|
55
|
+
/** '' | 'sfSymbol' | 'drawable' | 'image' */
|
|
56
|
+
iconType: string;
|
|
57
|
+
iconName: string;
|
|
58
|
+
iconRequest: string;
|
|
59
|
+
iconUri: string;
|
|
60
|
+
iconScale: Double;
|
|
61
|
+
iconTinted: string;
|
|
62
|
+
imageColor: string;
|
|
63
|
+
destructive: string;
|
|
64
|
+
disabled: string;
|
|
65
|
+
keepsMenuPresented: string;
|
|
66
|
+
/** '' | 'off' | 'on' | 'mixed' */
|
|
67
|
+
state: string;
|
|
68
|
+
/** The action's own haptics; '' = the component's */
|
|
69
|
+
haptics: string;
|
|
70
|
+
}>;
|
|
71
|
+
/** Event emitted when a split button menu item is picked. */
|
|
72
|
+
export type ButtonGroupMenuSelectEvent = Readonly<{
|
|
73
|
+
id: string;
|
|
74
|
+
title: string;
|
|
75
|
+
}>;
|
|
76
|
+
/**
|
|
77
|
+
* Android-specific configuration.
|
|
78
|
+
*/
|
|
79
|
+
export type ButtonGroupAndroidProps = Readonly<{
|
|
80
|
+
/** Material style: 'm3' | 'expressive' */
|
|
81
|
+
material?: string;
|
|
82
|
+
}>;
|
|
83
|
+
export interface ButtonGroupNativeProps extends ViewProps {
|
|
84
|
+
/** Buttons to display. */
|
|
85
|
+
buttons: ReadonlyArray<ButtonGroupButton>;
|
|
86
|
+
/**
|
|
87
|
+
* 'filled' | 'tonal' | 'outlined' | 'text' | 'elevated' | 'glass' |
|
|
88
|
+
* 'prominentGlass' | 'clearGlass' | 'prominentClearGlass'
|
|
89
|
+
*/
|
|
90
|
+
variant?: string;
|
|
91
|
+
/** 'xsmall' | 'small' | 'medium' | 'large' | 'xlarge' */
|
|
92
|
+
size?: string;
|
|
93
|
+
/** '' (platform default) | 'round' | 'square' */
|
|
94
|
+
shape?: string;
|
|
95
|
+
/** 'true' | 'false': connected group (shared outline, small inner corners) */
|
|
96
|
+
connected?: string;
|
|
97
|
+
/** Gap between buttons in points; negative means the platform default. */
|
|
98
|
+
spacing?: Double;
|
|
99
|
+
/** 'none' | 'single' | 'multiple' */
|
|
100
|
+
selection?: string;
|
|
101
|
+
/** Values of the selected buttons (single / multiple selection). */
|
|
102
|
+
selectedValues?: ReadonlyArray<string>;
|
|
103
|
+
/** 'true' | 'false': whether at least one button must stay selected */
|
|
104
|
+
selectionRequired?: string;
|
|
105
|
+
/** 'enabled' | 'disabled' */
|
|
106
|
+
interactivity?: string;
|
|
107
|
+
/** Container (background) color of the buttons. */
|
|
108
|
+
color?: ColorValue;
|
|
109
|
+
/** Label and icon color of the buttons. */
|
|
110
|
+
foregroundColor?: ColorValue;
|
|
111
|
+
/** Android: ripple color shown while pressing a button. */
|
|
112
|
+
androidRippleColor?: ColorValue;
|
|
113
|
+
/** Android: outline color (outlined variant). */
|
|
114
|
+
androidStrokeColor?: ColorValue;
|
|
115
|
+
/** Label font. */
|
|
116
|
+
labelStyle?: ButtonGroupLabelStyleProps;
|
|
117
|
+
/**
|
|
118
|
+
* What happens to buttons that don't fit: 'none' | 'menu' | 'wrap'
|
|
119
|
+
* ('wrap' is Android only)
|
|
120
|
+
*/
|
|
121
|
+
overflow?: string;
|
|
122
|
+
/**
|
|
123
|
+
* 'true' | 'false': a split button, the first button joined to a trailing
|
|
124
|
+
* button that opens `menu` (SplitButton).
|
|
125
|
+
*/
|
|
126
|
+
split?: string;
|
|
127
|
+
/** The split button's menu, flattened (see ButtonGroupMenuItem). */
|
|
128
|
+
menu?: ReadonlyArray<ButtonGroupMenuItem>;
|
|
129
|
+
/** Screen-reader label of the split button's menu button. */
|
|
130
|
+
menuAccessibilityLabel?: string;
|
|
131
|
+
/**
|
|
132
|
+
* Haptic played when a button is pressed: '' (none added) | 'none' | 'selection' |
|
|
133
|
+
* 'light' | 'medium' | 'heavy' | 'success' | 'warning' | 'error'
|
|
134
|
+
*/
|
|
135
|
+
haptics?: string;
|
|
136
|
+
/** Fired when a button is pressed. */
|
|
137
|
+
onButtonPress?: BubblingEventHandler<ButtonGroupPressEvent>;
|
|
138
|
+
/**
|
|
139
|
+
* Fired when the selection changes. Not `onSelectionChange`: React Native's
|
|
140
|
+
* TextInput registers `topSelectionChange` as a direct event, and an event
|
|
141
|
+
* name can't be both direct and bubbling.
|
|
142
|
+
*/
|
|
143
|
+
onGroupSelectionChange?: BubblingEventHandler<ButtonGroupSelectionEvent>;
|
|
144
|
+
/** Fired when a split button menu item is picked. */
|
|
145
|
+
onMenuSelect?: BubblingEventHandler<ButtonGroupMenuSelectEvent>;
|
|
146
|
+
/** Fired when the split button's menu opens. */
|
|
147
|
+
onMenuOpen?: BubblingEventHandler<Readonly<{}>>;
|
|
148
|
+
/** Fired when the split button's menu closes. */
|
|
149
|
+
onMenuClose?: BubblingEventHandler<Readonly<{}>>;
|
|
150
|
+
android?: ButtonGroupAndroidProps;
|
|
151
|
+
}
|
|
152
|
+
declare const _default: HostComponent<ButtonGroupNativeProps>;
|
|
153
|
+
export default _default;
|
|
154
|
+
//# sourceMappingURL=ButtonGroupNativeComponent.d.ts.map
|