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,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
|