@capgo/capacitor-native-navigation 8.3.1 → 8.4.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/README.md +16 -36
- package/android/src/main/java/app/capgo/nativenavigation/NativeNavigationPlugin.java +1 -1
- package/dist/docs.json +1 -1
- package/dist/esm/definitions.d.ts +4 -2
- package/dist/esm/definitions.js.map +1 -1
- package/dist/plugin.cjs.js.map +1 -1
- package/dist/plugin.js.map +1 -1
- package/docs/iphone-duo-folded-center.webp +0 -0
- package/docs/iphone-duo-folded-system.webp +0 -0
- package/docs/iphone-duo-open-center.webp +0 -0
- package/docs/iphone-duo-open-system.webp +0 -0
- package/docs/iphone-duo-unfold.webp +0 -0
- package/ios/Sources/NativeNavigationPlugin/NativeNavigationPlugin.swift +42 -13
- package/package.json +15 -14
package/README.md
CHANGED
|
@@ -20,47 +20,27 @@
|
|
|
20
20
|
|
|
21
21
|
Native navbar, tabbar, safe-area handling, and WebView snapshot transitions for Capacitor apps. Your web framework keeps routing and page rendering while this plugin owns the platform surfaces users expect to feel native.
|
|
22
22
|
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
<img src="./docs/demo.webp" alt="Demo of capacitor-native-navigation in action" width="300" />
|
|
26
|
-
|
|
27
|
-
### Native navigation tap flow
|
|
23
|
+
**iOS 27 and iPhone Duo.** System tab bars, Liquid Glass, and the curved center button follow the window when a Duo folds and unfolds.
|
|
28
24
|
|
|
29
|
-
|
|
30
|
-
src="./docs/demo-navigation.webp"
|
|
31
|
-
alt="Animated native navigation tap flow showing tab selection, push transition, and native back"
|
|
32
|
-
width="320"
|
|
33
|
-
/>
|
|
34
|
-
|
|
35
|
-
### SVG icon descriptors
|
|
36
|
-
|
|
37
|
-
<img
|
|
38
|
-
src="./docs/demo-svg-icons.webp"
|
|
39
|
-
alt="Animated native SVG icon demo showing inline SVG icons, native tint, labels, and tab selection"
|
|
40
|
-
width="320"
|
|
41
|
-
/>
|
|
25
|
+
## Demo
|
|
42
26
|
|
|
43
|
-
|
|
27
|
+
| App | Tap flow | SVG icons | Styling |
|
|
28
|
+
| --- | --- | --- | --- |
|
|
29
|
+
| <img src="./docs/demo.webp" alt="Demo of capacitor-native-navigation in action" width="160" /> | <img src="./docs/demo-navigation.webp" alt="Animated native navigation tap flow showing tab selection, push transition, and native back" width="160" /> | <img src="./docs/demo-svg-icons.webp" alt="Animated native SVG icon demo showing inline SVG icons, native tint, labels, and tab selection" width="160" /> | <img src="./docs/demo-options.webp" alt="Animated native navigation options demo showing dynamic colors, selected labels, custom indicators, badges, system Liquid Glass, and zoom transitions" width="160" /> |
|
|
44
30
|
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
width="320"
|
|
49
|
-
/>
|
|
31
|
+
| iOS Liquid Glass | Android Liquid Glass | Curved tabbar |
|
|
32
|
+
| --- | --- | --- |
|
|
33
|
+
| <img src="./docs/native-liquid-glass-ios.webp" alt="iOS native Liquid Glass navbar and tabbar screenshot" width="160" /> | <img src="./docs/native-liquid-glass-android.webp" alt="Android Liquid Glass-style native navbar and tabbar screenshot" width="160" /> | <img src="./docs/native-screenshots/android-curved-tabbar.png" alt="Android native curved tabbar with raised center camera action and side margin" width="160" /> |
|
|
50
34
|
|
|
51
|
-
###
|
|
35
|
+
### iPhone Duo
|
|
52
36
|
|
|
53
|
-
|
|
54
|
-
| --- | --- |
|
|
55
|
-
| <img src="./docs/native-liquid-glass-ios.webp" alt="iOS native Liquid Glass navbar and tabbar screenshot" width="260" /> | <img src="./docs/native-liquid-glass-android.webp" alt="Android Liquid Glass-style native navbar and tabbar screenshot" width="260" /> |
|
|
37
|
+
Folded or open, iOS places the system tab bar as a vertical rail on the trailing edge. The curved center bar stays on the bottom, and its cradle stays a circle around the button when the window widens.
|
|
56
38
|
|
|
57
|
-
|
|
39
|
+
| Folded, center | Open, center | Open, system | Folded, system |
|
|
40
|
+
| --- | --- | --- | --- |
|
|
41
|
+
| <img src="./docs/iphone-duo-folded-center.webp" alt="iPhone Duo folded with a curved bottom tab bar and a circular center camera button" width="160" /> | <img src="./docs/iphone-duo-open-center.webp" alt="iPhone Duo open with the curved center camera button keeping a circular cradle" width="220" /> | <img src="./docs/iphone-duo-open-system.webp" alt="iPhone Duo open in landscape with the system tab bar as a vertical rail" width="220" /> | <img src="./docs/iphone-duo-folded-system.webp" alt="iPhone Duo folded with the system tab bar as a vertical rail" width="160" /> |
|
|
58
42
|
|
|
59
|
-
<img
|
|
60
|
-
src="./docs/native-screenshots/android-curved-tabbar.png"
|
|
61
|
-
alt="Android native curved tabbar with raised center camera action and side margin"
|
|
62
|
-
width="300"
|
|
63
|
-
/>
|
|
43
|
+
<img src="./docs/iphone-duo-unfold.webp" alt="iPhone Duo unfolding while the center camera cradle stays a circle around the button" width="280" />
|
|
64
44
|
|
|
65
45
|
## Features
|
|
66
46
|
|
|
@@ -81,7 +61,7 @@ Native navbar, tabbar, safe-area handling, and WebView snapshot transitions for
|
|
|
81
61
|
|
|
82
62
|
## Compatibility
|
|
83
63
|
|
|
84
|
-
`@capgo/capacitor-native-navigation` targets Capacitor 8 and Node.js 22+.
|
|
64
|
+
`@capgo/capacitor-native-navigation` targets Capacitor 8 and Node.js 22+. iOS 27 is supported, including iPhone Duo.
|
|
85
65
|
|
|
86
66
|
## Install
|
|
87
67
|
|
|
@@ -810,7 +790,7 @@ Native tabbar layout and background shape options.
|
|
|
810
790
|
| Prop | Type | Description |
|
|
811
791
|
| --------------------------- | ----------------------------------------------------------------------------------- | -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
812
792
|
| **`shape`** | <code><a href="#nativenavigationtabbarshape">NativeNavigationTabbarShape</a></code> | `floating` keeps the capsule tabbar. On iOS 26+ this uses the system-owned Liquid Glass `UITabBarController` unless a custom capsule path is required; earlier iOS and the custom capsule path use `UIGlassEffect` on iOS 26+ (blur material fallback otherwise). `curve` draws a full-width bar with an included center action. |
|
|
813
|
-
| **`height`** | <code>number</code> | Bar height in native points/dp.
|
|
793
|
+
| **`height`** | <code>number</code> | Bar height in native points/dp, not including the system bottom inset. Curve defaults to `49` on iOS (83pt once the home indicator is added) and `80` on Android (Material navigation bar). Floating defaults to `64`. Pass `height` to override either platform. |
|
|
814
794
|
| **`horizontalMargin`** | <code>number</code> | Horizontal margin in native points/dp. Defaults to `24` for `floating` and `0` for `curve`. |
|
|
815
795
|
| **`maxWidth`** | <code>number</code> | Maximum tabbar width in native points/dp. Defaults to `430` for `floating`; `curve` uses the available width unless this is set. |
|
|
816
796
|
| **`bottomGap`** | <code>number</code> | Bottom gap above the platform safe area in native points/dp. Defaults to `10` for `floating` and `0` for `curve`. |
|
|
@@ -1510,7 +1510,7 @@ public class NativeNavigationPlugin extends Plugin {
|
|
|
1510
1510
|
String requestedShape = rawStyle.getString("shape", "floating");
|
|
1511
1511
|
boolean curve = "curve".equalsIgnoreCase(requestedShape);
|
|
1512
1512
|
int centerButtonDiameter = Math.max(styleDimension(rawStyle, "centerButtonDiameter", 56), 44);
|
|
1513
|
-
int height = Math.max(styleDimension(rawStyle, "height", curve ?
|
|
1513
|
+
int height = Math.max(styleDimension(rawStyle, "height", curve ? 80 : DEFAULT_TABBAR_DP), 44);
|
|
1514
1514
|
int centerButtonLift = Math.max(styleDimension(rawStyle, "centerButtonLift", centerButtonDiameter / 2), 0);
|
|
1515
1515
|
int bottomGap = Math.max(styleDimension(rawStyle, "bottomGap", curve ? 0 : 10), 0);
|
|
1516
1516
|
int horizontalMargin = Math.max(styleDimension(rawStyle, "horizontalMargin", curve ? 0 : 24), 0);
|
package/dist/docs.json
CHANGED
|
@@ -954,7 +954,7 @@
|
|
|
954
954
|
{
|
|
955
955
|
"name": "height",
|
|
956
956
|
"tags": [],
|
|
957
|
-
"docs": "Bar height in native points/dp
|
|
957
|
+
"docs": "Bar height in native points/dp, not including the system bottom inset.\nCurve defaults to `49` on iOS (83pt once the home indicator is added) and\n`80` on Android (Material navigation bar). Floating defaults to `64`.\nPass `height` to override either platform.",
|
|
958
958
|
"complexTypes": [],
|
|
959
959
|
"type": "number | undefined"
|
|
960
960
|
},
|
|
@@ -351,8 +351,10 @@ export interface NativeNavigationTabbarStyle {
|
|
|
351
351
|
*/
|
|
352
352
|
shape?: NativeNavigationTabbarShape;
|
|
353
353
|
/**
|
|
354
|
-
* Bar height in native points/dp
|
|
355
|
-
*
|
|
354
|
+
* Bar height in native points/dp, not including the system bottom inset.
|
|
355
|
+
* Curve defaults to `49` on iOS (83pt once the home indicator is added) and
|
|
356
|
+
* `80` on Android (Material navigation bar). Floating defaults to `64`.
|
|
357
|
+
* Pass `height` to override either platform.
|
|
356
358
|
*/
|
|
357
359
|
height?: number;
|
|
358
360
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"definitions.js","sourceRoot":"","sources":["../../src/definitions.ts"],"names":[],"mappings":"","sourcesContent":["import type { PluginListenerHandle } from '@capacitor/core';\n\n/**\n * Platform rendering preference for the native bars.\n */\nexport type NativeNavigationPlatformStyle = 'auto' | 'ios' | 'android';\n\n/**\n * How the plugin exposes native bar sizes to web content.\n */\nexport type NativeNavigationContentInsetMode = 'css' | 'none';\n\n/**\n * Navigation animation direction.\n */\nexport type NativeNavigationTransitionDirection = 'forward' | 'back' | 'root' | 'tab' | 'zoom' | 'none';\n\n/**\n * Native material/blur effect preference.\n */\nexport type NativeNavigationBlurEffect =\n | 'none'\n | 'systemDefault'\n | 'extraLight'\n | 'light'\n | 'dark'\n | 'regular'\n | 'prominent'\n | 'systemUltraThinMaterial'\n | 'systemThinMaterial'\n | 'systemMaterial'\n | 'systemThickMaterial'\n | 'systemChromeMaterial'\n | 'systemUltraThinMaterialLight'\n | 'systemThinMaterialLight'\n | 'systemMaterialLight'\n | 'systemThickMaterialLight'\n | 'systemChromeMaterialLight'\n | 'systemUltraThinMaterialDark'\n | 'systemThinMaterialDark'\n | 'systemMaterialDark'\n | 'systemThickMaterialDark'\n | 'systemChromeMaterialDark';\n\n/**\n * Native glass background rendering preference.\n */\nexport type NativeNavigationGlassEffect = 'none' | 'liquidGlass';\n\n/**\n * Native glass background configuration.\n */\nexport interface NativeNavigationGlassOptions {\n /**\n * `liquidGlass` enables the Android 12+ live blurred WebView backdrop for\n * native bars. Android 11 and older keep a translucent surface fallback. iOS\n * uses the platform-owned Liquid Glass behavior.\n */\n effect?: NativeNavigationGlassEffect;\n\n /**\n * Android blur radius in native dp for `liquidGlass`. Defaults to `18`.\n */\n blurRadius?: number;\n\n /**\n * Alpha multiplier for the tint surface over the glass backdrop. Defaults to\n * `0.62`.\n */\n surfaceAlpha?: number;\n}\n\n/**\n * Native tab label visibility behavior.\n */\nexport type NativeNavigationTabLabelVisibilityMode = 'auto' | 'selected' | 'labeled' | 'unlabeled';\n\n/**\n * A rectangle in WebView viewport coordinates, expressed in native points/dp.\n */\nexport interface NativeNavigationRect {\n x: number;\n y: number;\n width: number;\n height: number;\n}\n\n/**\n * Native tabbar background shape.\n */\nexport type NativeNavigationTabbarShape = 'floating' | 'curve';\n\n/**\n * Native tab role for Liquid Glass tab bars.\n *\n * `search` (and `prominent` when the OS supports it) renders as a detached\n * trailing circular action beside the floating tab capsule — the Apple News /\n * Photos pattern. Only one detached trailing role is used; if multiple tabs\n * set `search` or `prominent`, the last one wins. Curve-shaped bars ignore\n * `role` and keep using the included center action instead.\n */\nexport type NativeNavigationTabRole = 'normal' | 'search' | 'prominent';\n\n/**\n * A serializable icon descriptor. Framework nodes are intentionally not accepted\n * because icons are rendered by native UI.\n */\nexport interface NativeNavigationIcon {\n /**\n * Cross-platform asset path or URL fallback.\n */\n src?: string;\n\n /**\n * Cross-platform inline SVG markup. The native renderers support common icon\n * shapes such as path, line, polyline, polygon, circle, and rect. SVG icons\n * are rendered as template images by default so native tint colors still\n * apply.\n */\n svg?: string;\n\n /**\n * Preferred rendered icon width in native points/dp. Defaults to `24`.\n */\n width?: number;\n\n /**\n * Preferred rendered icon height in native points/dp. Defaults to `24`.\n */\n height?: number;\n\n /**\n * When `true`, native tint colors are applied to the rendered SVG/image.\n * Defaults to `true`.\n */\n template?: boolean;\n\n /**\n * iOS-specific SF Symbol, bundled image name, or inline SVG.\n */\n ios?: {\n /**\n * SF Symbol name, for example `house.fill`.\n */\n sfSymbol?: string;\n\n /**\n * Bundled image name from the app asset catalog.\n */\n image?: string;\n\n /**\n * iOS-specific inline SVG markup.\n */\n svg?: string;\n };\n\n /**\n * Android-specific drawable resource, asset name, or inline SVG.\n */\n android?: {\n /**\n * Drawable resource name without the `R.drawable.` prefix.\n */\n resource?: string;\n\n /**\n * Bundled image asset name.\n */\n image?: string;\n\n /**\n * Android-specific inline SVG markup.\n */\n svg?: string;\n };\n}\n\n/**\n * Native bar colors. Use CSS-style hex strings (`#RRGGBB` or `#AARRGGBB`).\n */\nexport interface NativeNavigationColors {\n /**\n * When `true`, Android 12+ derives unspecified bar colors from Material You\n * system palettes. Explicit color fields still win.\n */\n dynamic?: boolean;\n\n /**\n * Tint color for active buttons/items.\n */\n tint?: string;\n\n /**\n * Color for inactive tab items. Ignored on iOS 26+ unless\n * `experimentalBakedTintColors` is enabled.\n */\n inactiveTint?: string;\n\n /**\n * Optional background tint. Ignored on iOS 26+ so UIKit can preserve the\n * system Liquid Glass navigation appearance.\n */\n background?: string;\n\n /**\n * Title and label text color where the native platform supports it.\n */\n foreground?: string;\n\n /**\n * Badge background color for native tab badges.\n */\n badgeBackground?: string;\n\n /**\n * Badge text color for native tab badges.\n */\n badgeText?: string;\n\n /**\n * Active tab indicator color on Android.\n */\n indicator?: string;\n\n /**\n * Tab press ripple color on Android.\n */\n ripple?: string;\n}\n\n/**\n * Global plugin configuration.\n */\nexport interface NativeNavigationConfigureOptions {\n /**\n * Enables or disables the native chrome host.\n */\n enabled?: boolean;\n\n /**\n * Native style preference. `auto` uses the current platform.\n */\n platformStyle?: NativeNavigationPlatformStyle;\n\n /**\n * When `css`, the plugin writes CSS variables on `document.documentElement`.\n */\n contentInsetMode?: NativeNavigationContentInsetMode;\n\n /**\n * Default native transition duration in milliseconds.\n */\n animationDuration?: number;\n\n /**\n * Shared color hints for native bars.\n */\n colors?: NativeNavigationColors;\n\n /**\n * Shared glass background defaults for native bars.\n */\n glass?: NativeNavigationGlassOptions;\n}\n\n/**\n * A button shown in the native navbar.\n */\nexport interface NativeNavigationBarButton {\n /**\n * Stable id returned in `navbarItemTap`.\n */\n id: string;\n\n /**\n * Visible text label.\n */\n title?: string;\n\n /**\n * Native icon descriptor.\n */\n icon?: NativeNavigationIcon;\n\n /**\n * Whether the action is enabled. Defaults to `true`.\n */\n enabled?: boolean;\n}\n\n/**\n * Native back button configuration.\n */\nexport interface NativeNavigationBackButton {\n /**\n * Show the native back affordance.\n */\n visible?: boolean;\n\n /**\n * Optional back title.\n */\n title?: string;\n}\n\n/**\n * Native navbar state.\n */\nexport interface NativeNavigationNavbarOptions {\n /**\n * Hide the native navbar.\n */\n hidden?: boolean;\n\n /**\n * Main title.\n */\n title?: string;\n\n /**\n * Secondary title where supported by the platform.\n */\n subtitle?: string;\n\n /**\n * Prefer a large iOS title style.\n */\n large?: boolean;\n\n /**\n * Prefer transparent/scroll-edge style.\n */\n transparent?: boolean;\n\n /**\n * iOS blur/material effect for the navbar background when glass is not\n * available. Defaults to `systemChromeMaterial` for transparent bars.\n */\n blurEffect?: NativeNavigationBlurEffect;\n\n /**\n * Optional glass background behavior. Overrides `configure({ glass })` for\n * this navbar update.\n */\n glass?: NativeNavigationGlassOptions;\n\n /**\n * Back button state.\n */\n backButton?: NativeNavigationBackButton;\n\n /**\n * Left-side action buttons.\n */\n leftItems?: NativeNavigationBarButton[];\n\n /**\n * Right-side action buttons.\n */\n rightItems?: NativeNavigationBarButton[];\n\n /**\n * Navbar color hints.\n */\n colors?: NativeNavigationColors;\n\n /**\n * Animate native navbar changes.\n */\n animated?: boolean;\n}\n\n/**\n * A native tab item.\n */\nexport interface NativeNavigationTab {\n /**\n * Stable tab id returned in `tabSelect`.\n */\n id: string;\n\n /**\n * Visible tab label.\n */\n title?: string;\n\n /**\n * Native icon descriptor.\n */\n icon?: NativeNavigationIcon;\n\n /**\n * Optional selected-state icon.\n */\n selectedIcon?: NativeNavigationIcon;\n\n /**\n * Optional badge. Numeric badges are supported on both platforms; text badge\n * support depends on platform capabilities.\n */\n badge?: string | number;\n\n /**\n * Whether the tab is enabled. Defaults to `true`.\n */\n enabled?: boolean;\n\n /**\n * Hide the tab item from the native tabbar. When the hidden tab is selected,\n * native platform constraints may keep it visible until another tab is\n * selected.\n */\n hidden?: boolean;\n\n /**\n * Optional tab role. On floating tabbars, `search` (or `prominent` when\n * available) becomes a detached trailing circular action beside the capsule\n * — including the iOS 26+ system Liquid Glass tab bar, Android floating\n * layout, and the custom floating capsule path. Only one detached trailing\n * role is used; if multiple tabs set `search` or `prominent`, the last one\n * wins. Curve-shaped bars ignore `role` and keep using the included center\n * action. Defaults to `normal`.\n */\n role?: NativeNavigationTabRole;\n}\n\n/**\n * Native tabbar layout and background shape options.\n */\nexport interface NativeNavigationTabbarStyle {\n /**\n * `floating` keeps the capsule tabbar. On iOS 26+ this uses the\n * system-owned Liquid Glass `UITabBarController` unless a custom capsule\n * path is required; earlier iOS and the custom capsule path use\n * `UIGlassEffect` on iOS 26+ (blur material fallback otherwise). `curve`\n * draws a full-width bar with an included center action.\n */\n shape?: NativeNavigationTabbarShape;\n\n /**\n * Bar height in native points/dp. Defaults to `64` for `floating` and `76`\n * for `curve`.\n */\n height?: number;\n\n /**\n * Horizontal margin in native points/dp. Defaults to `24` for `floating` and\n * `0` for `curve`.\n */\n horizontalMargin?: number;\n\n /**\n * Maximum tabbar width in native points/dp. Defaults to `430` for `floating`;\n * `curve` uses the available width unless this is set.\n */\n maxWidth?: number;\n\n /**\n * Bottom gap above the platform safe area in native points/dp. Defaults to\n * `10` for `floating` and `0` for `curve`.\n */\n bottomGap?: number;\n\n /**\n * Background corner radius in native points/dp. Defaults to a capsule radius\n * for `floating` and `0` for `curve`.\n */\n cornerRadius?: number;\n\n /**\n * Tab id promoted into the included center button for `curve`. Defaults to\n * the middle tab.\n */\n centerItemId?: string;\n\n /**\n * Included center button diameter in native points/dp. Defaults to `56`.\n */\n centerButtonDiameter?: number;\n\n /**\n * Distance from the top of the center button to the top edge of the bar in\n * native points/dp. Defaults to half of `centerButtonDiameter`.\n */\n centerButtonLift?: number;\n\n /**\n * Included center button color. Defaults to the active tint color.\n */\n centerButtonColor?: string;\n\n /**\n * Included center button icon color. Defaults to white.\n */\n centerButtonIconColor?: string;\n}\n\n/**\n * Native tabbar state.\n */\nexport interface NativeNavigationTabbarOptions {\n /**\n * Hide the native tabbar.\n */\n hidden?: boolean;\n\n /**\n * Tab definitions.\n */\n tabs?: NativeNavigationTab[];\n\n /**\n * Currently selected tab id.\n */\n selectedId?: string;\n\n /**\n * Show text labels. Defaults to `true`.\n */\n labels?: boolean;\n\n /**\n * Native label visibility mode. Overrides `labels` when provided.\n */\n labelVisibilityMode?: NativeNavigationTabLabelVisibilityMode;\n\n /**\n * Show icons. Defaults to `true`.\n */\n icons?: boolean;\n\n /**\n * Tabbar color hints.\n */\n colors?: NativeNavigationColors;\n\n /**\n * iOS blur/material effect for the tabbar background when glass is not\n * available.\n */\n blurEffect?: NativeNavigationBlurEffect;\n\n /**\n * Optional glass background behavior. Overrides `configure({ glass })` for\n * this tabbar update.\n */\n glass?: NativeNavigationGlassOptions;\n\n /**\n * Opt into the iOS 26 Liquid Glass tint workaround that renders active and\n * inactive tab items into baked images. This can affect badge positioning\n * and icon sizing, so it is disabled by default.\n */\n experimentalBakedTintColors?: boolean;\n\n /**\n * Keep the iOS scroll-edge tabbar appearance from becoming transparent.\n * Mirrors Expo Router native tabs' `disableTransparentOnScrollEdge` option.\n * Defaults to `false`.\n */\n disableTransparentOnScrollEdge?: boolean;\n\n /**\n * Disable the Android active tab indicator.\n */\n disableIndicator?: boolean;\n\n /**\n * Active tab indicator color on Android. `colors.indicator` is also\n * supported.\n */\n indicatorColor?: string;\n\n /**\n * Tab press ripple color on Android. `colors.ripple` is also supported.\n */\n rippleColor?: string;\n\n /**\n * Badge background color. `colors.badgeBackground` is also supported.\n */\n badgeBackgroundColor?: string;\n\n /**\n * Badge text color. `colors.badgeText` is also supported.\n */\n badgeTextColor?: string;\n\n /**\n * Optional native tabbar layout and shape customization.\n */\n style?: NativeNavigationTabbarStyle;\n\n /**\n * Animate native tabbar changes.\n */\n animated?: boolean;\n}\n\n/**\n * Insets exposed to web content.\n */\nexport interface NativeNavigationInsets {\n top: number;\n right: number;\n bottom: number;\n left: number;\n navbarHeight: number;\n tabbarHeight: number;\n}\n\n/**\n * Returned by methods that may change safe content bounds.\n */\nexport interface NativeNavigationInsetsResult {\n insets: NativeNavigationInsets;\n}\n\n/**\n * Begin a native transition transaction before JS changes route content.\n */\nexport interface NativeNavigationBeginTransitionOptions {\n id?: string;\n direction?: NativeNavigationTransitionDirection;\n duration?: number;\n /**\n * Source rectangle for `zoom` transitions. Use viewport coordinates such as\n * those returned by `Element.getBoundingClientRect()`.\n */\n sourceRect?: NativeNavigationRect;\n /**\n * Destination rectangle for shared-element-style `zoom` transitions.\n */\n targetRect?: NativeNavigationRect;\n /**\n * Corner radius used while animating a `zoom` transition.\n */\n cornerRadius?: number;\n}\n\n/**\n * Finish a native transition transaction after JS has changed route content.\n */\nexport interface NativeNavigationFinishTransitionOptions {\n id?: string;\n direction?: NativeNavigationTransitionDirection;\n duration?: number;\n /**\n * Source rectangle for `zoom` transitions when no active source was recorded.\n */\n sourceRect?: NativeNavigationRect;\n /**\n * Destination rectangle for shared-element-style `zoom` transitions.\n */\n targetRect?: NativeNavigationRect;\n /**\n * Corner radius used while animating a `zoom` transition.\n */\n cornerRadius?: number;\n}\n\n/**\n * Native transition result.\n */\nexport interface NativeNavigationTransitionResult {\n id: string;\n direction: NativeNavigationTransitionDirection;\n duration: number;\n}\n\n/**\n * Plugin version payload.\n */\nexport interface PluginVersionResult {\n /**\n * Version identifier returned by the platform implementation.\n */\n version: string;\n}\n\nexport interface NativeNavigationBackEvent {\n source: 'navbar';\n}\n\nexport interface NativeNavigationBarItemTapEvent {\n id: string;\n title?: string;\n placement: 'left' | 'right';\n}\n\nexport interface NativeNavigationTabSelectEvent {\n id: string;\n index: number;\n title?: string;\n}\n\nexport interface NativeNavigationSafeAreaChangedEvent {\n insets: NativeNavigationInsets;\n}\n\nexport interface NativeNavigationTransitionEvent {\n id: string;\n direction: NativeNavigationTransitionDirection;\n duration: number;\n}\n\n/**\n * Framework-agnostic native navigation chrome API.\n */\nexport interface NativeNavigationPlugin {\n /**\n * Configure the native chrome host and content inset behavior.\n */\n configure(options?: NativeNavigationConfigureOptions): Promise<NativeNavigationInsetsResult>;\n\n /**\n * Render or update the native navbar.\n */\n setNavbar(options: NativeNavigationNavbarOptions): Promise<NativeNavigationInsetsResult>;\n\n /**\n * Render or update the native tabbar.\n */\n setTabbar(options: NativeNavigationTabbarOptions): Promise<NativeNavigationInsetsResult>;\n\n /**\n * Capture the current WebView and prepare a native transition.\n */\n beginTransition(options?: NativeNavigationBeginTransitionOptions): Promise<NativeNavigationTransitionResult>;\n\n /**\n * Animate from the captured WebView snapshot to the current live WebView.\n */\n finishTransition(options?: NativeNavigationFinishTransitionOptions): Promise<NativeNavigationTransitionResult>;\n\n /**\n * Returns the platform implementation version marker.\n */\n getPluginVersion(): Promise<PluginVersionResult>;\n\n addListener(\n eventName: 'navbarBack',\n listenerFunc: (event: NativeNavigationBackEvent) => void,\n ): Promise<PluginListenerHandle>;\n\n addListener(\n eventName: 'navbarItemTap',\n listenerFunc: (event: NativeNavigationBarItemTapEvent) => void,\n ): Promise<PluginListenerHandle>;\n\n addListener(\n eventName: 'tabSelect',\n listenerFunc: (event: NativeNavigationTabSelectEvent) => void,\n ): Promise<PluginListenerHandle>;\n\n addListener(\n eventName: 'safeAreaChanged',\n listenerFunc: (event: NativeNavigationSafeAreaChangedEvent) => void,\n ): Promise<PluginListenerHandle>;\n\n addListener(\n eventName: 'transitionStart',\n listenerFunc: (event: NativeNavigationTransitionEvent) => void,\n ): Promise<PluginListenerHandle>;\n\n addListener(\n eventName: 'transitionEnd',\n listenerFunc: (event: NativeNavigationTransitionEvent) => void,\n ): Promise<PluginListenerHandle>;\n}\n"]}
|
|
1
|
+
{"version":3,"file":"definitions.js","sourceRoot":"","sources":["../../src/definitions.ts"],"names":[],"mappings":"","sourcesContent":["import type { PluginListenerHandle } from '@capacitor/core';\n\n/**\n * Platform rendering preference for the native bars.\n */\nexport type NativeNavigationPlatformStyle = 'auto' | 'ios' | 'android';\n\n/**\n * How the plugin exposes native bar sizes to web content.\n */\nexport type NativeNavigationContentInsetMode = 'css' | 'none';\n\n/**\n * Navigation animation direction.\n */\nexport type NativeNavigationTransitionDirection = 'forward' | 'back' | 'root' | 'tab' | 'zoom' | 'none';\n\n/**\n * Native material/blur effect preference.\n */\nexport type NativeNavigationBlurEffect =\n | 'none'\n | 'systemDefault'\n | 'extraLight'\n | 'light'\n | 'dark'\n | 'regular'\n | 'prominent'\n | 'systemUltraThinMaterial'\n | 'systemThinMaterial'\n | 'systemMaterial'\n | 'systemThickMaterial'\n | 'systemChromeMaterial'\n | 'systemUltraThinMaterialLight'\n | 'systemThinMaterialLight'\n | 'systemMaterialLight'\n | 'systemThickMaterialLight'\n | 'systemChromeMaterialLight'\n | 'systemUltraThinMaterialDark'\n | 'systemThinMaterialDark'\n | 'systemMaterialDark'\n | 'systemThickMaterialDark'\n | 'systemChromeMaterialDark';\n\n/**\n * Native glass background rendering preference.\n */\nexport type NativeNavigationGlassEffect = 'none' | 'liquidGlass';\n\n/**\n * Native glass background configuration.\n */\nexport interface NativeNavigationGlassOptions {\n /**\n * `liquidGlass` enables the Android 12+ live blurred WebView backdrop for\n * native bars. Android 11 and older keep a translucent surface fallback. iOS\n * uses the platform-owned Liquid Glass behavior.\n */\n effect?: NativeNavigationGlassEffect;\n\n /**\n * Android blur radius in native dp for `liquidGlass`. Defaults to `18`.\n */\n blurRadius?: number;\n\n /**\n * Alpha multiplier for the tint surface over the glass backdrop. Defaults to\n * `0.62`.\n */\n surfaceAlpha?: number;\n}\n\n/**\n * Native tab label visibility behavior.\n */\nexport type NativeNavigationTabLabelVisibilityMode = 'auto' | 'selected' | 'labeled' | 'unlabeled';\n\n/**\n * A rectangle in WebView viewport coordinates, expressed in native points/dp.\n */\nexport interface NativeNavigationRect {\n x: number;\n y: number;\n width: number;\n height: number;\n}\n\n/**\n * Native tabbar background shape.\n */\nexport type NativeNavigationTabbarShape = 'floating' | 'curve';\n\n/**\n * Native tab role for Liquid Glass tab bars.\n *\n * `search` (and `prominent` when the OS supports it) renders as a detached\n * trailing circular action beside the floating tab capsule — the Apple News /\n * Photos pattern. Only one detached trailing role is used; if multiple tabs\n * set `search` or `prominent`, the last one wins. Curve-shaped bars ignore\n * `role` and keep using the included center action instead.\n */\nexport type NativeNavigationTabRole = 'normal' | 'search' | 'prominent';\n\n/**\n * A serializable icon descriptor. Framework nodes are intentionally not accepted\n * because icons are rendered by native UI.\n */\nexport interface NativeNavigationIcon {\n /**\n * Cross-platform asset path or URL fallback.\n */\n src?: string;\n\n /**\n * Cross-platform inline SVG markup. The native renderers support common icon\n * shapes such as path, line, polyline, polygon, circle, and rect. SVG icons\n * are rendered as template images by default so native tint colors still\n * apply.\n */\n svg?: string;\n\n /**\n * Preferred rendered icon width in native points/dp. Defaults to `24`.\n */\n width?: number;\n\n /**\n * Preferred rendered icon height in native points/dp. Defaults to `24`.\n */\n height?: number;\n\n /**\n * When `true`, native tint colors are applied to the rendered SVG/image.\n * Defaults to `true`.\n */\n template?: boolean;\n\n /**\n * iOS-specific SF Symbol, bundled image name, or inline SVG.\n */\n ios?: {\n /**\n * SF Symbol name, for example `house.fill`.\n */\n sfSymbol?: string;\n\n /**\n * Bundled image name from the app asset catalog.\n */\n image?: string;\n\n /**\n * iOS-specific inline SVG markup.\n */\n svg?: string;\n };\n\n /**\n * Android-specific drawable resource, asset name, or inline SVG.\n */\n android?: {\n /**\n * Drawable resource name without the `R.drawable.` prefix.\n */\n resource?: string;\n\n /**\n * Bundled image asset name.\n */\n image?: string;\n\n /**\n * Android-specific inline SVG markup.\n */\n svg?: string;\n };\n}\n\n/**\n * Native bar colors. Use CSS-style hex strings (`#RRGGBB` or `#AARRGGBB`).\n */\nexport interface NativeNavigationColors {\n /**\n * When `true`, Android 12+ derives unspecified bar colors from Material You\n * system palettes. Explicit color fields still win.\n */\n dynamic?: boolean;\n\n /**\n * Tint color for active buttons/items.\n */\n tint?: string;\n\n /**\n * Color for inactive tab items. Ignored on iOS 26+ unless\n * `experimentalBakedTintColors` is enabled.\n */\n inactiveTint?: string;\n\n /**\n * Optional background tint. Ignored on iOS 26+ so UIKit can preserve the\n * system Liquid Glass navigation appearance.\n */\n background?: string;\n\n /**\n * Title and label text color where the native platform supports it.\n */\n foreground?: string;\n\n /**\n * Badge background color for native tab badges.\n */\n badgeBackground?: string;\n\n /**\n * Badge text color for native tab badges.\n */\n badgeText?: string;\n\n /**\n * Active tab indicator color on Android.\n */\n indicator?: string;\n\n /**\n * Tab press ripple color on Android.\n */\n ripple?: string;\n}\n\n/**\n * Global plugin configuration.\n */\nexport interface NativeNavigationConfigureOptions {\n /**\n * Enables or disables the native chrome host.\n */\n enabled?: boolean;\n\n /**\n * Native style preference. `auto` uses the current platform.\n */\n platformStyle?: NativeNavigationPlatformStyle;\n\n /**\n * When `css`, the plugin writes CSS variables on `document.documentElement`.\n */\n contentInsetMode?: NativeNavigationContentInsetMode;\n\n /**\n * Default native transition duration in milliseconds.\n */\n animationDuration?: number;\n\n /**\n * Shared color hints for native bars.\n */\n colors?: NativeNavigationColors;\n\n /**\n * Shared glass background defaults for native bars.\n */\n glass?: NativeNavigationGlassOptions;\n}\n\n/**\n * A button shown in the native navbar.\n */\nexport interface NativeNavigationBarButton {\n /**\n * Stable id returned in `navbarItemTap`.\n */\n id: string;\n\n /**\n * Visible text label.\n */\n title?: string;\n\n /**\n * Native icon descriptor.\n */\n icon?: NativeNavigationIcon;\n\n /**\n * Whether the action is enabled. Defaults to `true`.\n */\n enabled?: boolean;\n}\n\n/**\n * Native back button configuration.\n */\nexport interface NativeNavigationBackButton {\n /**\n * Show the native back affordance.\n */\n visible?: boolean;\n\n /**\n * Optional back title.\n */\n title?: string;\n}\n\n/**\n * Native navbar state.\n */\nexport interface NativeNavigationNavbarOptions {\n /**\n * Hide the native navbar.\n */\n hidden?: boolean;\n\n /**\n * Main title.\n */\n title?: string;\n\n /**\n * Secondary title where supported by the platform.\n */\n subtitle?: string;\n\n /**\n * Prefer a large iOS title style.\n */\n large?: boolean;\n\n /**\n * Prefer transparent/scroll-edge style.\n */\n transparent?: boolean;\n\n /**\n * iOS blur/material effect for the navbar background when glass is not\n * available. Defaults to `systemChromeMaterial` for transparent bars.\n */\n blurEffect?: NativeNavigationBlurEffect;\n\n /**\n * Optional glass background behavior. Overrides `configure({ glass })` for\n * this navbar update.\n */\n glass?: NativeNavigationGlassOptions;\n\n /**\n * Back button state.\n */\n backButton?: NativeNavigationBackButton;\n\n /**\n * Left-side action buttons.\n */\n leftItems?: NativeNavigationBarButton[];\n\n /**\n * Right-side action buttons.\n */\n rightItems?: NativeNavigationBarButton[];\n\n /**\n * Navbar color hints.\n */\n colors?: NativeNavigationColors;\n\n /**\n * Animate native navbar changes.\n */\n animated?: boolean;\n}\n\n/**\n * A native tab item.\n */\nexport interface NativeNavigationTab {\n /**\n * Stable tab id returned in `tabSelect`.\n */\n id: string;\n\n /**\n * Visible tab label.\n */\n title?: string;\n\n /**\n * Native icon descriptor.\n */\n icon?: NativeNavigationIcon;\n\n /**\n * Optional selected-state icon.\n */\n selectedIcon?: NativeNavigationIcon;\n\n /**\n * Optional badge. Numeric badges are supported on both platforms; text badge\n * support depends on platform capabilities.\n */\n badge?: string | number;\n\n /**\n * Whether the tab is enabled. Defaults to `true`.\n */\n enabled?: boolean;\n\n /**\n * Hide the tab item from the native tabbar. When the hidden tab is selected,\n * native platform constraints may keep it visible until another tab is\n * selected.\n */\n hidden?: boolean;\n\n /**\n * Optional tab role. On floating tabbars, `search` (or `prominent` when\n * available) becomes a detached trailing circular action beside the capsule\n * — including the iOS 26+ system Liquid Glass tab bar, Android floating\n * layout, and the custom floating capsule path. Only one detached trailing\n * role is used; if multiple tabs set `search` or `prominent`, the last one\n * wins. Curve-shaped bars ignore `role` and keep using the included center\n * action. Defaults to `normal`.\n */\n role?: NativeNavigationTabRole;\n}\n\n/**\n * Native tabbar layout and background shape options.\n */\nexport interface NativeNavigationTabbarStyle {\n /**\n * `floating` keeps the capsule tabbar. On iOS 26+ this uses the\n * system-owned Liquid Glass `UITabBarController` unless a custom capsule\n * path is required; earlier iOS and the custom capsule path use\n * `UIGlassEffect` on iOS 26+ (blur material fallback otherwise). `curve`\n * draws a full-width bar with an included center action.\n */\n shape?: NativeNavigationTabbarShape;\n\n /**\n * Bar height in native points/dp, not including the system bottom inset.\n * Curve defaults to `49` on iOS (83pt once the home indicator is added) and\n * `80` on Android (Material navigation bar). Floating defaults to `64`.\n * Pass `height` to override either platform.\n */\n height?: number;\n\n /**\n * Horizontal margin in native points/dp. Defaults to `24` for `floating` and\n * `0` for `curve`.\n */\n horizontalMargin?: number;\n\n /**\n * Maximum tabbar width in native points/dp. Defaults to `430` for `floating`;\n * `curve` uses the available width unless this is set.\n */\n maxWidth?: number;\n\n /**\n * Bottom gap above the platform safe area in native points/dp. Defaults to\n * `10` for `floating` and `0` for `curve`.\n */\n bottomGap?: number;\n\n /**\n * Background corner radius in native points/dp. Defaults to a capsule radius\n * for `floating` and `0` for `curve`.\n */\n cornerRadius?: number;\n\n /**\n * Tab id promoted into the included center button for `curve`. Defaults to\n * the middle tab.\n */\n centerItemId?: string;\n\n /**\n * Included center button diameter in native points/dp. Defaults to `56`.\n */\n centerButtonDiameter?: number;\n\n /**\n * Distance from the top of the center button to the top edge of the bar in\n * native points/dp. Defaults to half of `centerButtonDiameter`.\n */\n centerButtonLift?: number;\n\n /**\n * Included center button color. Defaults to the active tint color.\n */\n centerButtonColor?: string;\n\n /**\n * Included center button icon color. Defaults to white.\n */\n centerButtonIconColor?: string;\n}\n\n/**\n * Native tabbar state.\n */\nexport interface NativeNavigationTabbarOptions {\n /**\n * Hide the native tabbar.\n */\n hidden?: boolean;\n\n /**\n * Tab definitions.\n */\n tabs?: NativeNavigationTab[];\n\n /**\n * Currently selected tab id.\n */\n selectedId?: string;\n\n /**\n * Show text labels. Defaults to `true`.\n */\n labels?: boolean;\n\n /**\n * Native label visibility mode. Overrides `labels` when provided.\n */\n labelVisibilityMode?: NativeNavigationTabLabelVisibilityMode;\n\n /**\n * Show icons. Defaults to `true`.\n */\n icons?: boolean;\n\n /**\n * Tabbar color hints.\n */\n colors?: NativeNavigationColors;\n\n /**\n * iOS blur/material effect for the tabbar background when glass is not\n * available.\n */\n blurEffect?: NativeNavigationBlurEffect;\n\n /**\n * Optional glass background behavior. Overrides `configure({ glass })` for\n * this tabbar update.\n */\n glass?: NativeNavigationGlassOptions;\n\n /**\n * Opt into the iOS 26 Liquid Glass tint workaround that renders active and\n * inactive tab items into baked images. This can affect badge positioning\n * and icon sizing, so it is disabled by default.\n */\n experimentalBakedTintColors?: boolean;\n\n /**\n * Keep the iOS scroll-edge tabbar appearance from becoming transparent.\n * Mirrors Expo Router native tabs' `disableTransparentOnScrollEdge` option.\n * Defaults to `false`.\n */\n disableTransparentOnScrollEdge?: boolean;\n\n /**\n * Disable the Android active tab indicator.\n */\n disableIndicator?: boolean;\n\n /**\n * Active tab indicator color on Android. `colors.indicator` is also\n * supported.\n */\n indicatorColor?: string;\n\n /**\n * Tab press ripple color on Android. `colors.ripple` is also supported.\n */\n rippleColor?: string;\n\n /**\n * Badge background color. `colors.badgeBackground` is also supported.\n */\n badgeBackgroundColor?: string;\n\n /**\n * Badge text color. `colors.badgeText` is also supported.\n */\n badgeTextColor?: string;\n\n /**\n * Optional native tabbar layout and shape customization.\n */\n style?: NativeNavigationTabbarStyle;\n\n /**\n * Animate native tabbar changes.\n */\n animated?: boolean;\n}\n\n/**\n * Insets exposed to web content.\n */\nexport interface NativeNavigationInsets {\n top: number;\n right: number;\n bottom: number;\n left: number;\n navbarHeight: number;\n tabbarHeight: number;\n}\n\n/**\n * Returned by methods that may change safe content bounds.\n */\nexport interface NativeNavigationInsetsResult {\n insets: NativeNavigationInsets;\n}\n\n/**\n * Begin a native transition transaction before JS changes route content.\n */\nexport interface NativeNavigationBeginTransitionOptions {\n id?: string;\n direction?: NativeNavigationTransitionDirection;\n duration?: number;\n /**\n * Source rectangle for `zoom` transitions. Use viewport coordinates such as\n * those returned by `Element.getBoundingClientRect()`.\n */\n sourceRect?: NativeNavigationRect;\n /**\n * Destination rectangle for shared-element-style `zoom` transitions.\n */\n targetRect?: NativeNavigationRect;\n /**\n * Corner radius used while animating a `zoom` transition.\n */\n cornerRadius?: number;\n}\n\n/**\n * Finish a native transition transaction after JS has changed route content.\n */\nexport interface NativeNavigationFinishTransitionOptions {\n id?: string;\n direction?: NativeNavigationTransitionDirection;\n duration?: number;\n /**\n * Source rectangle for `zoom` transitions when no active source was recorded.\n */\n sourceRect?: NativeNavigationRect;\n /**\n * Destination rectangle for shared-element-style `zoom` transitions.\n */\n targetRect?: NativeNavigationRect;\n /**\n * Corner radius used while animating a `zoom` transition.\n */\n cornerRadius?: number;\n}\n\n/**\n * Native transition result.\n */\nexport interface NativeNavigationTransitionResult {\n id: string;\n direction: NativeNavigationTransitionDirection;\n duration: number;\n}\n\n/**\n * Plugin version payload.\n */\nexport interface PluginVersionResult {\n /**\n * Version identifier returned by the platform implementation.\n */\n version: string;\n}\n\nexport interface NativeNavigationBackEvent {\n source: 'navbar';\n}\n\nexport interface NativeNavigationBarItemTapEvent {\n id: string;\n title?: string;\n placement: 'left' | 'right';\n}\n\nexport interface NativeNavigationTabSelectEvent {\n id: string;\n index: number;\n title?: string;\n}\n\nexport interface NativeNavigationSafeAreaChangedEvent {\n insets: NativeNavigationInsets;\n}\n\nexport interface NativeNavigationTransitionEvent {\n id: string;\n direction: NativeNavigationTransitionDirection;\n duration: number;\n}\n\n/**\n * Framework-agnostic native navigation chrome API.\n */\nexport interface NativeNavigationPlugin {\n /**\n * Configure the native chrome host and content inset behavior.\n */\n configure(options?: NativeNavigationConfigureOptions): Promise<NativeNavigationInsetsResult>;\n\n /**\n * Render or update the native navbar.\n */\n setNavbar(options: NativeNavigationNavbarOptions): Promise<NativeNavigationInsetsResult>;\n\n /**\n * Render or update the native tabbar.\n */\n setTabbar(options: NativeNavigationTabbarOptions): Promise<NativeNavigationInsetsResult>;\n\n /**\n * Capture the current WebView and prepare a native transition.\n */\n beginTransition(options?: NativeNavigationBeginTransitionOptions): Promise<NativeNavigationTransitionResult>;\n\n /**\n * Animate from the captured WebView snapshot to the current live WebView.\n */\n finishTransition(options?: NativeNavigationFinishTransitionOptions): Promise<NativeNavigationTransitionResult>;\n\n /**\n * Returns the platform implementation version marker.\n */\n getPluginVersion(): Promise<PluginVersionResult>;\n\n addListener(\n eventName: 'navbarBack',\n listenerFunc: (event: NativeNavigationBackEvent) => void,\n ): Promise<PluginListenerHandle>;\n\n addListener(\n eventName: 'navbarItemTap',\n listenerFunc: (event: NativeNavigationBarItemTapEvent) => void,\n ): Promise<PluginListenerHandle>;\n\n addListener(\n eventName: 'tabSelect',\n listenerFunc: (event: NativeNavigationTabSelectEvent) => void,\n ): Promise<PluginListenerHandle>;\n\n addListener(\n eventName: 'safeAreaChanged',\n listenerFunc: (event: NativeNavigationSafeAreaChangedEvent) => void,\n ): Promise<PluginListenerHandle>;\n\n addListener(\n eventName: 'transitionStart',\n listenerFunc: (event: NativeNavigationTransitionEvent) => void,\n ): Promise<PluginListenerHandle>;\n\n addListener(\n eventName: 'transitionEnd',\n listenerFunc: (event: NativeNavigationTransitionEvent) => void,\n ): Promise<PluginListenerHandle>;\n}\n"]}
|
package/dist/plugin.cjs.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"plugin.cjs.js","sources":["esm/plugin.js","esm/components.js","esm/index.js","esm/web.js"],"sourcesContent":["export const createNativeNavigationWeb = () => import('./web').then((m) => new m.NativeNavigationWeb());\n//# sourceMappingURL=plugin.js.map","const parseBoolean = (value, defaultValue = false) => {\n if (value === null) {\n return defaultValue;\n }\n return value === '' || value === 'true' || value === '1';\n};\nconst normalizeAttribute = (value) => (value ? value : undefined);\nconst typedAttribute = (element, name) => normalizeAttribute(element.getAttribute(name));\nconst parseJsonAttribute = (element, name, fallback) => {\n const value = element.getAttribute(name);\n if (!value) {\n return fallback;\n }\n try {\n return JSON.parse(value);\n }\n catch (_a) {\n return fallback;\n }\n};\nconst getNativeNavigation = async () => (await import('./index')).NativeNavigation;\nexport function defineNativeNavigationElements() {\n if (typeof customElements === 'undefined' || typeof HTMLElement === 'undefined') {\n return;\n }\n class CapNativeNavigationProvider extends HTMLElement {\n static get observedAttributes() {\n return ['enabled', 'platform-style', 'content-inset-mode', 'animation-duration', 'colors', 'glass'];\n }\n connectedCallback() {\n void this.sync();\n }\n attributeChangedCallback() {\n if (this.isConnected) {\n void this.sync();\n }\n }\n async sync() {\n var _a, _b;\n const duration = this.getAttribute('animation-duration');\n const options = {\n enabled: parseBoolean(this.getAttribute('enabled'), true),\n platformStyle: (_a = typedAttribute(this, 'platform-style')) !== null && _a !== void 0 ? _a : 'auto',\n contentInsetMode: (_b = typedAttribute(this, 'content-inset-mode')) !== null && _b !== void 0 ? _b : 'css',\n colors: parseJsonAttribute(this, 'colors', undefined),\n glass: parseJsonAttribute(this, 'glass', undefined),\n };\n if (duration) {\n options.animationDuration = Number(duration);\n }\n const NativeNavigation = await getNativeNavigation();\n await NativeNavigation.configure(options);\n }\n }\n class CapNativeNavbar extends HTMLElement {\n static get observedAttributes() {\n return [\n 'hidden',\n 'title',\n 'subtitle',\n 'large',\n 'transparent',\n 'blur-effect',\n 'back-button',\n 'back-title',\n 'left-items',\n 'right-items',\n 'colors',\n 'glass',\n 'animated',\n ];\n }\n connectedCallback() {\n void this.sync();\n }\n attributeChangedCallback() {\n if (this.isConnected) {\n void this.sync();\n }\n }\n async sync() {\n var _a, _b;\n const options = {\n hidden: parseBoolean(this.getAttribute('hidden')),\n title: (_a = this.getAttribute('title')) !== null && _a !== void 0 ? _a : undefined,\n subtitle: (_b = this.getAttribute('subtitle')) !== null && _b !== void 0 ? _b : undefined,\n large: parseBoolean(this.getAttribute('large')),\n transparent: parseBoolean(this.getAttribute('transparent')),\n blurEffect: typedAttribute(this, 'blur-effect'),\n backButton: {\n visible: parseBoolean(this.getAttribute('back-button')),\n title: normalizeAttribute(this.getAttribute('back-title')),\n },\n leftItems: parseJsonAttribute(this, 'left-items', []),\n rightItems: parseJsonAttribute(this, 'right-items', []),\n colors: parseJsonAttribute(this, 'colors', undefined),\n glass: parseJsonAttribute(this, 'glass', undefined),\n animated: parseBoolean(this.getAttribute('animated')),\n };\n const NativeNavigation = await getNativeNavigation();\n await NativeNavigation.setNavbar(options);\n }\n }\n class CapNativeTabbar extends HTMLElement {\n static get observedAttributes() {\n return [\n 'hidden',\n 'tabs',\n 'selected-id',\n 'labels',\n 'label-visibility-mode',\n 'icons',\n 'colors',\n 'glass',\n 'blur-effect',\n 'disable-indicator',\n 'indicator-color',\n 'ripple-color',\n 'badge-background-color',\n 'badge-text-color',\n 'experimental-baked-tint-colors',\n 'animated',\n ];\n }\n connectedCallback() {\n void this.sync();\n }\n attributeChangedCallback() {\n if (this.isConnected) {\n void this.sync();\n }\n }\n async sync() {\n const options = {\n hidden: parseBoolean(this.getAttribute('hidden')),\n tabs: parseJsonAttribute(this, 'tabs', []),\n selectedId: normalizeAttribute(this.getAttribute('selected-id')),\n labels: parseBoolean(this.getAttribute('labels'), true),\n labelVisibilityMode: typedAttribute(this, 'label-visibility-mode'),\n icons: parseBoolean(this.getAttribute('icons'), true),\n colors: parseJsonAttribute(this, 'colors', undefined),\n glass: parseJsonAttribute(this, 'glass', undefined),\n blurEffect: typedAttribute(this, 'blur-effect'),\n disableIndicator: parseBoolean(this.getAttribute('disable-indicator')),\n indicatorColor: normalizeAttribute(this.getAttribute('indicator-color')),\n rippleColor: normalizeAttribute(this.getAttribute('ripple-color')),\n badgeBackgroundColor: normalizeAttribute(this.getAttribute('badge-background-color')),\n experimentalBakedTintColors: parseBoolean(this.getAttribute('experimental-baked-tint-colors')),\n badgeTextColor: normalizeAttribute(this.getAttribute('badge-text-color')),\n animated: parseBoolean(this.getAttribute('animated')),\n };\n const NativeNavigation = await getNativeNavigation();\n await NativeNavigation.setTabbar(options);\n }\n }\n if (!customElements.get('cap-native-navigation-provider')) {\n customElements.define('cap-native-navigation-provider', CapNativeNavigationProvider);\n }\n if (!customElements.get('cap-native-navbar')) {\n customElements.define('cap-native-navbar', CapNativeNavbar);\n }\n if (!customElements.get('cap-native-tabbar')) {\n customElements.define('cap-native-tabbar', CapNativeTabbar);\n }\n}\n//# sourceMappingURL=components.js.map","import { registerPlugin } from '@capacitor/core';\nimport { createNativeNavigationWeb } from './plugin';\nexport const NativeNavigation = registerPlugin('NativeNavigation', {\n web: createNativeNavigationWeb,\n});\nexport * from './definitions';\nexport { defineNativeNavigationElements } from './components';\nconst isElement = (target) => typeof Element !== 'undefined' && target instanceof Element;\nconst isDomRect = (target) => typeof DOMRect !== 'undefined' && target instanceof DOMRect;\n/**\n * Convert an element or DOMRect into viewport coordinates accepted by native\n * zoom transitions.\n */\nexport const getNativeNavigationRect = (target) => {\n const rect = isElement(target) ? target.getBoundingClientRect() : target;\n if (isDomRect(rect)) {\n return {\n x: rect.x,\n y: rect.y,\n width: rect.width,\n height: rect.height,\n };\n }\n return {\n x: rect.x,\n y: rect.y,\n width: rect.width,\n height: rect.height,\n };\n};\n/**\n * Begin an Apple-Zoom-style native transition from a DOM element or rect.\n */\nexport const beginZoomTransition = (target, options = {}) => NativeNavigation.beginTransition(Object.assign(Object.assign({}, options), { direction: 'zoom', sourceRect: getNativeNavigationRect(target) }));\n/**\n * Finish an Apple-Zoom-style native transition into an optional DOM element or\n * rect on the destination route.\n */\nexport const finishZoomTransition = (target, options = {}) => NativeNavigation.finishTransition(Object.assign(Object.assign({}, options), { direction: 'zoom', targetRect: target ? getNativeNavigationRect(target) : undefined }));\n//# sourceMappingURL=index.js.map","import { WebPlugin } from '@capacitor/core';\nconst DEFAULT_NAVBAR_HEIGHT = 44;\nconst DEFAULT_TABBAR_HEIGHT = 49;\nconst DEFAULT_TRANSITION_DURATION = 350;\nexport class NativeNavigationWeb extends WebPlugin {\n constructor() {\n super(...arguments);\n this.config = {\n contentInsetMode: 'css',\n enabled: true,\n platformStyle: 'auto',\n };\n this.navbar = { hidden: true };\n this.tabbar = { hidden: true };\n this.activeTransition = null;\n }\n async configure(options = {}) {\n this.config = Object.assign(Object.assign(Object.assign({}, this.config), options), { colors: Object.assign(Object.assign({}, this.config.colors), options.colors), glass: Object.assign(Object.assign({}, this.config.glass), options.glass) });\n return this.applyInsets();\n }\n async setNavbar(options) {\n this.navbar = Object.assign(Object.assign(Object.assign({}, this.navbar), options), { colors: Object.assign(Object.assign({}, this.navbar.colors), options.colors), glass: Object.assign(Object.assign({}, this.navbar.glass), options.glass) });\n return this.applyInsets();\n }\n async setTabbar(options) {\n this.tabbar = Object.assign(Object.assign(Object.assign({}, this.tabbar), options), { colors: Object.assign(Object.assign({}, this.tabbar.colors), options.colors), style: Object.assign(Object.assign({}, this.tabbar.style), options.style), glass: Object.assign(Object.assign({}, this.tabbar.glass), options.glass) });\n return this.applyInsets();\n }\n async beginTransition(options = {}) {\n const transition = this.createTransition(options.id, options.direction, options.duration);\n this.activeTransition = transition;\n this.notifyListeners('transitionStart', transition);\n this.dispatchWindowEvent('transitionStart', transition);\n return transition;\n }\n async finishTransition(options = {}) {\n var _a, _b;\n const transition = this.activeTransition && (!options.id || options.id === this.activeTransition.id)\n ? Object.assign(Object.assign({}, this.activeTransition), { direction: (_a = options.direction) !== null && _a !== void 0 ? _a : this.activeTransition.direction, duration: (_b = options.duration) !== null && _b !== void 0 ? _b : this.activeTransition.duration }) : this.createTransition(options.id, options.direction, options.duration);\n this.activeTransition = null;\n this.notifyListeners('transitionEnd', transition);\n this.dispatchWindowEvent('transitionEnd', transition);\n return transition;\n }\n async getPluginVersion() {\n return {\n version: 'web',\n };\n }\n createTransition(id, direction, duration) {\n var _a;\n if (id === void 0) { id = `transition-${Date.now()}`; }\n if (direction === void 0) { direction = 'forward'; }\n if (duration === void 0) { duration = (_a = this.config.animationDuration) !== null && _a !== void 0 ? _a : DEFAULT_TRANSITION_DURATION; }\n return { id, direction, duration };\n }\n currentTabbarHeight() {\n var _a, _b, _c, _d;\n const style = this.tabbar.style;\n if (!style) {\n return DEFAULT_TABBAR_HEIGHT;\n }\n const defaultHeight = style.shape === 'curve' ? 76 : style.shape === 'floating' ? 64 : DEFAULT_TABBAR_HEIGHT;\n const height = (_a = style.height) !== null && _a !== void 0 ? _a : defaultHeight;\n const bottomGap = (_b = style.bottomGap) !== null && _b !== void 0 ? _b : (style.shape === 'curve' ? 0 : 10);\n const centerButtonLift = style.shape === 'curve' ? ((_c = style.centerButtonLift) !== null && _c !== void 0 ? _c : ((_d = style.centerButtonDiameter) !== null && _d !== void 0 ? _d : 56) / 2) : 0;\n return Math.ceil(height + bottomGap + centerButtonLift);\n }\n applyInsets() {\n const enabled = this.config.enabled !== false;\n const navbarVisible = enabled && this.navbar.hidden !== true;\n const tabbarVisible = enabled && this.tabbar.hidden !== true;\n const tabbarHeight = tabbarVisible ? this.currentTabbarHeight() : 0;\n const insets = {\n top: navbarVisible ? DEFAULT_NAVBAR_HEIGHT : 0,\n right: 0,\n bottom: tabbarHeight,\n left: 0,\n navbarHeight: navbarVisible ? DEFAULT_NAVBAR_HEIGHT : 0,\n tabbarHeight,\n };\n if (this.config.contentInsetMode !== 'none' && typeof document !== 'undefined') {\n const root = document.documentElement;\n root.style.setProperty('--cap-native-navigation-top', `${insets.top}px`);\n root.style.setProperty('--cap-native-navigation-right', `${insets.right}px`);\n root.style.setProperty('--cap-native-navigation-bottom', `${insets.bottom}px`);\n root.style.setProperty('--cap-native-navigation-left', `${insets.left}px`);\n root.style.setProperty('--cap-native-navbar-height', `${insets.navbarHeight}px`);\n root.style.setProperty('--cap-native-tabbar-height', `${insets.tabbarHeight}px`);\n }\n const event = { insets };\n this.notifyListeners('safeAreaChanged', event);\n this.dispatchWindowEvent('safeAreaChanged', event);\n return { insets };\n }\n dispatchWindowEvent(name, detail) {\n if (typeof window === 'undefined') {\n return;\n }\n window.dispatchEvent(new CustomEvent(`capNativeNavigation:${name}`, { detail }));\n }\n}\n//# sourceMappingURL=web.js.map"],"names":["registerPlugin","WebPlugin"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"plugin.cjs.js","sources":["esm/plugin.js","esm/components.js","esm/index.js","esm/web.js"],"sourcesContent":["export const createNativeNavigationWeb = () => import('./web').then((m) => new m.NativeNavigationWeb());\n//# sourceMappingURL=plugin.js.map","const parseBoolean = (value, defaultValue = false) => {\n if (value === null) {\n return defaultValue;\n }\n return value === '' || value === 'true' || value === '1';\n};\nconst normalizeAttribute = (value) => (value ? value : undefined);\nconst typedAttribute = (element, name) => normalizeAttribute(element.getAttribute(name));\nconst parseJsonAttribute = (element, name, fallback) => {\n const value = element.getAttribute(name);\n if (!value) {\n return fallback;\n }\n try {\n return JSON.parse(value);\n }\n catch (_a) {\n return fallback;\n }\n};\nconst getNativeNavigation = async () => (await import('./index')).NativeNavigation;\nexport function defineNativeNavigationElements() {\n if (typeof customElements === 'undefined' || typeof HTMLElement === 'undefined') {\n return;\n }\n class CapNativeNavigationProvider extends HTMLElement {\n static get observedAttributes() {\n return ['enabled', 'platform-style', 'content-inset-mode', 'animation-duration', 'colors', 'glass'];\n }\n connectedCallback() {\n void this.sync();\n }\n attributeChangedCallback() {\n if (this.isConnected) {\n void this.sync();\n }\n }\n async sync() {\n var _a, _b;\n const duration = this.getAttribute('animation-duration');\n const options = {\n enabled: parseBoolean(this.getAttribute('enabled'), true),\n platformStyle: (_a = typedAttribute(this, 'platform-style')) !== null && _a !== void 0 ? _a : 'auto',\n contentInsetMode: (_b = typedAttribute(this, 'content-inset-mode')) !== null && _b !== void 0 ? _b : 'css',\n colors: parseJsonAttribute(this, 'colors', undefined),\n glass: parseJsonAttribute(this, 'glass', undefined),\n };\n if (duration) {\n options.animationDuration = Number(duration);\n }\n const NativeNavigation = await getNativeNavigation();\n await NativeNavigation.configure(options);\n }\n }\n class CapNativeNavbar extends HTMLElement {\n static get observedAttributes() {\n return [\n 'hidden',\n 'title',\n 'subtitle',\n 'large',\n 'transparent',\n 'blur-effect',\n 'back-button',\n 'back-title',\n 'left-items',\n 'right-items',\n 'colors',\n 'glass',\n 'animated',\n ];\n }\n connectedCallback() {\n void this.sync();\n }\n attributeChangedCallback() {\n if (this.isConnected) {\n void this.sync();\n }\n }\n async sync() {\n var _a, _b;\n const options = {\n hidden: parseBoolean(this.getAttribute('hidden')),\n title: (_a = this.getAttribute('title')) !== null && _a !== void 0 ? _a : undefined,\n subtitle: (_b = this.getAttribute('subtitle')) !== null && _b !== void 0 ? _b : undefined,\n large: parseBoolean(this.getAttribute('large')),\n transparent: parseBoolean(this.getAttribute('transparent')),\n blurEffect: typedAttribute(this, 'blur-effect'),\n backButton: {\n visible: parseBoolean(this.getAttribute('back-button')),\n title: normalizeAttribute(this.getAttribute('back-title')),\n },\n leftItems: parseJsonAttribute(this, 'left-items', []),\n rightItems: parseJsonAttribute(this, 'right-items', []),\n colors: parseJsonAttribute(this, 'colors', undefined),\n glass: parseJsonAttribute(this, 'glass', undefined),\n animated: parseBoolean(this.getAttribute('animated')),\n };\n const NativeNavigation = await getNativeNavigation();\n await NativeNavigation.setNavbar(options);\n }\n }\n class CapNativeTabbar extends HTMLElement {\n static get observedAttributes() {\n return [\n 'hidden',\n 'tabs',\n 'selected-id',\n 'labels',\n 'label-visibility-mode',\n 'icons',\n 'colors',\n 'glass',\n 'blur-effect',\n 'disable-indicator',\n 'indicator-color',\n 'ripple-color',\n 'badge-background-color',\n 'badge-text-color',\n 'experimental-baked-tint-colors',\n 'animated',\n ];\n }\n connectedCallback() {\n void this.sync();\n }\n attributeChangedCallback() {\n if (this.isConnected) {\n void this.sync();\n }\n }\n async sync() {\n const options = {\n hidden: parseBoolean(this.getAttribute('hidden')),\n tabs: parseJsonAttribute(this, 'tabs', []),\n selectedId: normalizeAttribute(this.getAttribute('selected-id')),\n labels: parseBoolean(this.getAttribute('labels'), true),\n labelVisibilityMode: typedAttribute(this, 'label-visibility-mode'),\n icons: parseBoolean(this.getAttribute('icons'), true),\n colors: parseJsonAttribute(this, 'colors', undefined),\n glass: parseJsonAttribute(this, 'glass', undefined),\n blurEffect: typedAttribute(this, 'blur-effect'),\n disableIndicator: parseBoolean(this.getAttribute('disable-indicator')),\n indicatorColor: normalizeAttribute(this.getAttribute('indicator-color')),\n rippleColor: normalizeAttribute(this.getAttribute('ripple-color')),\n badgeBackgroundColor: normalizeAttribute(this.getAttribute('badge-background-color')),\n experimentalBakedTintColors: parseBoolean(this.getAttribute('experimental-baked-tint-colors')),\n badgeTextColor: normalizeAttribute(this.getAttribute('badge-text-color')),\n animated: parseBoolean(this.getAttribute('animated')),\n };\n const NativeNavigation = await getNativeNavigation();\n await NativeNavigation.setTabbar(options);\n }\n }\n if (!customElements.get('cap-native-navigation-provider')) {\n customElements.define('cap-native-navigation-provider', CapNativeNavigationProvider);\n }\n if (!customElements.get('cap-native-navbar')) {\n customElements.define('cap-native-navbar', CapNativeNavbar);\n }\n if (!customElements.get('cap-native-tabbar')) {\n customElements.define('cap-native-tabbar', CapNativeTabbar);\n }\n}\n//# sourceMappingURL=components.js.map","import { registerPlugin } from '@capacitor/core';\nimport { createNativeNavigationWeb } from './plugin';\nexport const NativeNavigation = registerPlugin('NativeNavigation', {\n web: createNativeNavigationWeb,\n});\nexport * from './definitions';\nexport { defineNativeNavigationElements } from './components';\nconst isElement = (target) => typeof Element !== 'undefined' && target instanceof Element;\nconst isDomRect = (target) => typeof DOMRect !== 'undefined' && target instanceof DOMRect;\n/**\n * Convert an element or DOMRect into viewport coordinates accepted by native\n * zoom transitions.\n */\nexport const getNativeNavigationRect = (target) => {\n const rect = isElement(target) ? target.getBoundingClientRect() : target;\n if (isDomRect(rect)) {\n return {\n x: rect.x,\n y: rect.y,\n width: rect.width,\n height: rect.height,\n };\n }\n return {\n x: rect.x,\n y: rect.y,\n width: rect.width,\n height: rect.height,\n };\n};\n/**\n * Begin an Apple-Zoom-style native transition from a DOM element or rect.\n */\nexport const beginZoomTransition = (target, options = {}) => NativeNavigation.beginTransition(Object.assign(Object.assign({}, options), { direction: 'zoom', sourceRect: getNativeNavigationRect(target) }));\n/**\n * Finish an Apple-Zoom-style native transition into an optional DOM element or\n * rect on the destination route.\n */\nexport const finishZoomTransition = (target, options = {}) => NativeNavigation.finishTransition(Object.assign(Object.assign({}, options), { direction: 'zoom', targetRect: target ? getNativeNavigationRect(target) : undefined }));\n//# sourceMappingURL=index.js.map","import { WebPlugin } from '@capacitor/core';\nconst DEFAULT_NAVBAR_HEIGHT = 44;\nconst DEFAULT_TABBAR_HEIGHT = 49;\nconst DEFAULT_TRANSITION_DURATION = 350;\nexport class NativeNavigationWeb extends WebPlugin {\n constructor() {\n super(...arguments);\n this.config = {\n contentInsetMode: 'css',\n enabled: true,\n platformStyle: 'auto',\n };\n this.navbar = { hidden: true };\n this.tabbar = { hidden: true };\n this.activeTransition = null;\n }\n async configure(options = {}) {\n this.config = Object.assign(Object.assign(Object.assign({}, this.config), options), { colors: Object.assign(Object.assign({}, this.config.colors), options.colors), glass: Object.assign(Object.assign({}, this.config.glass), options.glass) });\n return this.applyInsets();\n }\n async setNavbar(options) {\n this.navbar = Object.assign(Object.assign(Object.assign({}, this.navbar), options), { colors: Object.assign(Object.assign({}, this.navbar.colors), options.colors), glass: Object.assign(Object.assign({}, this.navbar.glass), options.glass) });\n return this.applyInsets();\n }\n async setTabbar(options) {\n this.tabbar = Object.assign(Object.assign(Object.assign({}, this.tabbar), options), { colors: Object.assign(Object.assign({}, this.tabbar.colors), options.colors), style: Object.assign(Object.assign({}, this.tabbar.style), options.style), glass: Object.assign(Object.assign({}, this.tabbar.glass), options.glass) });\n return this.applyInsets();\n }\n async beginTransition(options = {}) {\n const transition = this.createTransition(options.id, options.direction, options.duration);\n this.activeTransition = transition;\n this.notifyListeners('transitionStart', transition);\n this.dispatchWindowEvent('transitionStart', transition);\n return transition;\n }\n async finishTransition(options = {}) {\n var _a, _b;\n const transition = this.activeTransition && (!options.id || options.id === this.activeTransition.id)\n ? Object.assign(Object.assign({}, this.activeTransition), { direction: (_a = options.direction) !== null && _a !== void 0 ? _a : this.activeTransition.direction, duration: (_b = options.duration) !== null && _b !== void 0 ? _b : this.activeTransition.duration }) : this.createTransition(options.id, options.direction, options.duration);\n this.activeTransition = null;\n this.notifyListeners('transitionEnd', transition);\n this.dispatchWindowEvent('transitionEnd', transition);\n return transition;\n }\n async getPluginVersion() {\n return {\n version: 'web',\n };\n }\n createTransition(id, direction, duration) {\n var _a;\n if (id === void 0) { id = `transition-${Date.now()}`; }\n if (direction === void 0) { direction = 'forward'; }\n if (duration === void 0) { duration = (_a = this.config.animationDuration) !== null && _a !== void 0 ? _a : DEFAULT_TRANSITION_DURATION; }\n return { id, direction, duration };\n }\n currentTabbarHeight() {\n var _a, _b, _c, _d;\n const style = this.tabbar.style;\n if (!style) {\n return DEFAULT_TABBAR_HEIGHT;\n }\n const defaultHeight = style.shape === 'curve' ? 76 : style.shape === 'floating' ? 64 : DEFAULT_TABBAR_HEIGHT;\n const height = (_a = style.height) !== null && _a !== void 0 ? _a : defaultHeight;\n const bottomGap = (_b = style.bottomGap) !== null && _b !== void 0 ? _b : (style.shape === 'curve' ? 0 : 10);\n const centerButtonLift = style.shape === 'curve' ? ((_c = style.centerButtonLift) !== null && _c !== void 0 ? _c : ((_d = style.centerButtonDiameter) !== null && _d !== void 0 ? _d : 56) / 2) : 0;\n return Math.ceil(height + bottomGap + centerButtonLift);\n }\n applyInsets() {\n const enabled = this.config.enabled !== false;\n const navbarVisible = enabled && this.navbar.hidden !== true;\n const tabbarVisible = enabled && this.tabbar.hidden !== true;\n const tabbarHeight = tabbarVisible ? this.currentTabbarHeight() : 0;\n const insets = {\n top: navbarVisible ? DEFAULT_NAVBAR_HEIGHT : 0,\n right: 0,\n bottom: tabbarHeight,\n left: 0,\n navbarHeight: navbarVisible ? DEFAULT_NAVBAR_HEIGHT : 0,\n tabbarHeight,\n };\n if (this.config.contentInsetMode !== 'none' && typeof document !== 'undefined') {\n const root = document.documentElement;\n root.style.setProperty('--cap-native-navigation-top', `${insets.top}px`);\n root.style.setProperty('--cap-native-navigation-right', `${insets.right}px`);\n root.style.setProperty('--cap-native-navigation-bottom', `${insets.bottom}px`);\n root.style.setProperty('--cap-native-navigation-left', `${insets.left}px`);\n root.style.setProperty('--cap-native-navbar-height', `${insets.navbarHeight}px`);\n root.style.setProperty('--cap-native-tabbar-height', `${insets.tabbarHeight}px`);\n }\n const event = { insets };\n this.notifyListeners('safeAreaChanged', event);\n this.dispatchWindowEvent('safeAreaChanged', event);\n return { insets };\n }\n dispatchWindowEvent(name, detail) {\n if (typeof window === 'undefined') {\n return;\n }\n window.dispatchEvent(new CustomEvent(`capNativeNavigation:${name}`, { detail }));\n }\n}\n//# sourceMappingURL=web.js.map"],"names":["registerPlugin","WebPlugin"],"mappings":"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"}
|
package/dist/plugin.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"plugin.js","sources":["esm/plugin.js","esm/components.js","esm/index.js","esm/web.js"],"sourcesContent":["export const createNativeNavigationWeb = () => import('./web').then((m) => new m.NativeNavigationWeb());\n//# sourceMappingURL=plugin.js.map","const parseBoolean = (value, defaultValue = false) => {\n if (value === null) {\n return defaultValue;\n }\n return value === '' || value === 'true' || value === '1';\n};\nconst normalizeAttribute = (value) => (value ? value : undefined);\nconst typedAttribute = (element, name) => normalizeAttribute(element.getAttribute(name));\nconst parseJsonAttribute = (element, name, fallback) => {\n const value = element.getAttribute(name);\n if (!value) {\n return fallback;\n }\n try {\n return JSON.parse(value);\n }\n catch (_a) {\n return fallback;\n }\n};\nconst getNativeNavigation = async () => (await import('./index')).NativeNavigation;\nexport function defineNativeNavigationElements() {\n if (typeof customElements === 'undefined' || typeof HTMLElement === 'undefined') {\n return;\n }\n class CapNativeNavigationProvider extends HTMLElement {\n static get observedAttributes() {\n return ['enabled', 'platform-style', 'content-inset-mode', 'animation-duration', 'colors', 'glass'];\n }\n connectedCallback() {\n void this.sync();\n }\n attributeChangedCallback() {\n if (this.isConnected) {\n void this.sync();\n }\n }\n async sync() {\n var _a, _b;\n const duration = this.getAttribute('animation-duration');\n const options = {\n enabled: parseBoolean(this.getAttribute('enabled'), true),\n platformStyle: (_a = typedAttribute(this, 'platform-style')) !== null && _a !== void 0 ? _a : 'auto',\n contentInsetMode: (_b = typedAttribute(this, 'content-inset-mode')) !== null && _b !== void 0 ? _b : 'css',\n colors: parseJsonAttribute(this, 'colors', undefined),\n glass: parseJsonAttribute(this, 'glass', undefined),\n };\n if (duration) {\n options.animationDuration = Number(duration);\n }\n const NativeNavigation = await getNativeNavigation();\n await NativeNavigation.configure(options);\n }\n }\n class CapNativeNavbar extends HTMLElement {\n static get observedAttributes() {\n return [\n 'hidden',\n 'title',\n 'subtitle',\n 'large',\n 'transparent',\n 'blur-effect',\n 'back-button',\n 'back-title',\n 'left-items',\n 'right-items',\n 'colors',\n 'glass',\n 'animated',\n ];\n }\n connectedCallback() {\n void this.sync();\n }\n attributeChangedCallback() {\n if (this.isConnected) {\n void this.sync();\n }\n }\n async sync() {\n var _a, _b;\n const options = {\n hidden: parseBoolean(this.getAttribute('hidden')),\n title: (_a = this.getAttribute('title')) !== null && _a !== void 0 ? _a : undefined,\n subtitle: (_b = this.getAttribute('subtitle')) !== null && _b !== void 0 ? _b : undefined,\n large: parseBoolean(this.getAttribute('large')),\n transparent: parseBoolean(this.getAttribute('transparent')),\n blurEffect: typedAttribute(this, 'blur-effect'),\n backButton: {\n visible: parseBoolean(this.getAttribute('back-button')),\n title: normalizeAttribute(this.getAttribute('back-title')),\n },\n leftItems: parseJsonAttribute(this, 'left-items', []),\n rightItems: parseJsonAttribute(this, 'right-items', []),\n colors: parseJsonAttribute(this, 'colors', undefined),\n glass: parseJsonAttribute(this, 'glass', undefined),\n animated: parseBoolean(this.getAttribute('animated')),\n };\n const NativeNavigation = await getNativeNavigation();\n await NativeNavigation.setNavbar(options);\n }\n }\n class CapNativeTabbar extends HTMLElement {\n static get observedAttributes() {\n return [\n 'hidden',\n 'tabs',\n 'selected-id',\n 'labels',\n 'label-visibility-mode',\n 'icons',\n 'colors',\n 'glass',\n 'blur-effect',\n 'disable-indicator',\n 'indicator-color',\n 'ripple-color',\n 'badge-background-color',\n 'badge-text-color',\n 'experimental-baked-tint-colors',\n 'animated',\n ];\n }\n connectedCallback() {\n void this.sync();\n }\n attributeChangedCallback() {\n if (this.isConnected) {\n void this.sync();\n }\n }\n async sync() {\n const options = {\n hidden: parseBoolean(this.getAttribute('hidden')),\n tabs: parseJsonAttribute(this, 'tabs', []),\n selectedId: normalizeAttribute(this.getAttribute('selected-id')),\n labels: parseBoolean(this.getAttribute('labels'), true),\n labelVisibilityMode: typedAttribute(this, 'label-visibility-mode'),\n icons: parseBoolean(this.getAttribute('icons'), true),\n colors: parseJsonAttribute(this, 'colors', undefined),\n glass: parseJsonAttribute(this, 'glass', undefined),\n blurEffect: typedAttribute(this, 'blur-effect'),\n disableIndicator: parseBoolean(this.getAttribute('disable-indicator')),\n indicatorColor: normalizeAttribute(this.getAttribute('indicator-color')),\n rippleColor: normalizeAttribute(this.getAttribute('ripple-color')),\n badgeBackgroundColor: normalizeAttribute(this.getAttribute('badge-background-color')),\n experimentalBakedTintColors: parseBoolean(this.getAttribute('experimental-baked-tint-colors')),\n badgeTextColor: normalizeAttribute(this.getAttribute('badge-text-color')),\n animated: parseBoolean(this.getAttribute('animated')),\n };\n const NativeNavigation = await getNativeNavigation();\n await NativeNavigation.setTabbar(options);\n }\n }\n if (!customElements.get('cap-native-navigation-provider')) {\n customElements.define('cap-native-navigation-provider', CapNativeNavigationProvider);\n }\n if (!customElements.get('cap-native-navbar')) {\n customElements.define('cap-native-navbar', CapNativeNavbar);\n }\n if (!customElements.get('cap-native-tabbar')) {\n customElements.define('cap-native-tabbar', CapNativeTabbar);\n }\n}\n//# sourceMappingURL=components.js.map","import { registerPlugin } from '@capacitor/core';\nimport { createNativeNavigationWeb } from './plugin';\nexport const NativeNavigation = registerPlugin('NativeNavigation', {\n web: createNativeNavigationWeb,\n});\nexport * from './definitions';\nexport { defineNativeNavigationElements } from './components';\nconst isElement = (target) => typeof Element !== 'undefined' && target instanceof Element;\nconst isDomRect = (target) => typeof DOMRect !== 'undefined' && target instanceof DOMRect;\n/**\n * Convert an element or DOMRect into viewport coordinates accepted by native\n * zoom transitions.\n */\nexport const getNativeNavigationRect = (target) => {\n const rect = isElement(target) ? target.getBoundingClientRect() : target;\n if (isDomRect(rect)) {\n return {\n x: rect.x,\n y: rect.y,\n width: rect.width,\n height: rect.height,\n };\n }\n return {\n x: rect.x,\n y: rect.y,\n width: rect.width,\n height: rect.height,\n };\n};\n/**\n * Begin an Apple-Zoom-style native transition from a DOM element or rect.\n */\nexport const beginZoomTransition = (target, options = {}) => NativeNavigation.beginTransition(Object.assign(Object.assign({}, options), { direction: 'zoom', sourceRect: getNativeNavigationRect(target) }));\n/**\n * Finish an Apple-Zoom-style native transition into an optional DOM element or\n * rect on the destination route.\n */\nexport const finishZoomTransition = (target, options = {}) => NativeNavigation.finishTransition(Object.assign(Object.assign({}, options), { direction: 'zoom', targetRect: target ? getNativeNavigationRect(target) : undefined }));\n//# sourceMappingURL=index.js.map","import { WebPlugin } from '@capacitor/core';\nconst DEFAULT_NAVBAR_HEIGHT = 44;\nconst DEFAULT_TABBAR_HEIGHT = 49;\nconst DEFAULT_TRANSITION_DURATION = 350;\nexport class NativeNavigationWeb extends WebPlugin {\n constructor() {\n super(...arguments);\n this.config = {\n contentInsetMode: 'css',\n enabled: true,\n platformStyle: 'auto',\n };\n this.navbar = { hidden: true };\n this.tabbar = { hidden: true };\n this.activeTransition = null;\n }\n async configure(options = {}) {\n this.config = Object.assign(Object.assign(Object.assign({}, this.config), options), { colors: Object.assign(Object.assign({}, this.config.colors), options.colors), glass: Object.assign(Object.assign({}, this.config.glass), options.glass) });\n return this.applyInsets();\n }\n async setNavbar(options) {\n this.navbar = Object.assign(Object.assign(Object.assign({}, this.navbar), options), { colors: Object.assign(Object.assign({}, this.navbar.colors), options.colors), glass: Object.assign(Object.assign({}, this.navbar.glass), options.glass) });\n return this.applyInsets();\n }\n async setTabbar(options) {\n this.tabbar = Object.assign(Object.assign(Object.assign({}, this.tabbar), options), { colors: Object.assign(Object.assign({}, this.tabbar.colors), options.colors), style: Object.assign(Object.assign({}, this.tabbar.style), options.style), glass: Object.assign(Object.assign({}, this.tabbar.glass), options.glass) });\n return this.applyInsets();\n }\n async beginTransition(options = {}) {\n const transition = this.createTransition(options.id, options.direction, options.duration);\n this.activeTransition = transition;\n this.notifyListeners('transitionStart', transition);\n this.dispatchWindowEvent('transitionStart', transition);\n return transition;\n }\n async finishTransition(options = {}) {\n var _a, _b;\n const transition = this.activeTransition && (!options.id || options.id === this.activeTransition.id)\n ? Object.assign(Object.assign({}, this.activeTransition), { direction: (_a = options.direction) !== null && _a !== void 0 ? _a : this.activeTransition.direction, duration: (_b = options.duration) !== null && _b !== void 0 ? _b : this.activeTransition.duration }) : this.createTransition(options.id, options.direction, options.duration);\n this.activeTransition = null;\n this.notifyListeners('transitionEnd', transition);\n this.dispatchWindowEvent('transitionEnd', transition);\n return transition;\n }\n async getPluginVersion() {\n return {\n version: 'web',\n };\n }\n createTransition(id, direction, duration) {\n var _a;\n if (id === void 0) { id = `transition-${Date.now()}`; }\n if (direction === void 0) { direction = 'forward'; }\n if (duration === void 0) { duration = (_a = this.config.animationDuration) !== null && _a !== void 0 ? _a : DEFAULT_TRANSITION_DURATION; }\n return { id, direction, duration };\n }\n currentTabbarHeight() {\n var _a, _b, _c, _d;\n const style = this.tabbar.style;\n if (!style) {\n return DEFAULT_TABBAR_HEIGHT;\n }\n const defaultHeight = style.shape === 'curve' ? 76 : style.shape === 'floating' ? 64 : DEFAULT_TABBAR_HEIGHT;\n const height = (_a = style.height) !== null && _a !== void 0 ? _a : defaultHeight;\n const bottomGap = (_b = style.bottomGap) !== null && _b !== void 0 ? _b : (style.shape === 'curve' ? 0 : 10);\n const centerButtonLift = style.shape === 'curve' ? ((_c = style.centerButtonLift) !== null && _c !== void 0 ? _c : ((_d = style.centerButtonDiameter) !== null && _d !== void 0 ? _d : 56) / 2) : 0;\n return Math.ceil(height + bottomGap + centerButtonLift);\n }\n applyInsets() {\n const enabled = this.config.enabled !== false;\n const navbarVisible = enabled && this.navbar.hidden !== true;\n const tabbarVisible = enabled && this.tabbar.hidden !== true;\n const tabbarHeight = tabbarVisible ? this.currentTabbarHeight() : 0;\n const insets = {\n top: navbarVisible ? DEFAULT_NAVBAR_HEIGHT : 0,\n right: 0,\n bottom: tabbarHeight,\n left: 0,\n navbarHeight: navbarVisible ? DEFAULT_NAVBAR_HEIGHT : 0,\n tabbarHeight,\n };\n if (this.config.contentInsetMode !== 'none' && typeof document !== 'undefined') {\n const root = document.documentElement;\n root.style.setProperty('--cap-native-navigation-top', `${insets.top}px`);\n root.style.setProperty('--cap-native-navigation-right', `${insets.right}px`);\n root.style.setProperty('--cap-native-navigation-bottom', `${insets.bottom}px`);\n root.style.setProperty('--cap-native-navigation-left', `${insets.left}px`);\n root.style.setProperty('--cap-native-navbar-height', `${insets.navbarHeight}px`);\n root.style.setProperty('--cap-native-tabbar-height', `${insets.tabbarHeight}px`);\n }\n const event = { insets };\n this.notifyListeners('safeAreaChanged', event);\n this.dispatchWindowEvent('safeAreaChanged', event);\n return { insets };\n }\n dispatchWindowEvent(name, detail) {\n if (typeof window === 'undefined') {\n return;\n }\n window.dispatchEvent(new CustomEvent(`capNativeNavigation:${name}`, { detail }));\n }\n}\n//# sourceMappingURL=web.js.map"],"names":["registerPlugin","WebPlugin"],"mappings":";;;IAAO,MAAM,yBAAyB,GAAG,MAAM,mDAAe,CAAC,IAAI,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC,CAAC,mBAAmB,EAAE,CAAC;;ICAvG,MAAM,YAAY,GAAG,CAAC,KAAK,EAAE,YAAY,GAAG,KAAK,KAAK;IACtD,IAAI,IAAI,KAAK,KAAK,IAAI,EAAE;IACxB,QAAQ,OAAO,YAAY;IAC3B,IAAI;IACJ,IAAI,OAAO,KAAK,KAAK,EAAE,IAAI,KAAK,KAAK,MAAM,IAAI,KAAK,KAAK,GAAG;IAC5D,CAAC;IACD,MAAM,kBAAkB,GAAG,CAAC,KAAK,MAAM,KAAK,GAAG,KAAK,GAAG,SAAS,CAAC;IACjE,MAAM,cAAc,GAAG,CAAC,OAAO,EAAE,IAAI,KAAK,kBAAkB,CAAC,OAAO,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;IACxF,MAAM,kBAAkB,GAAG,CAAC,OAAO,EAAE,IAAI,EAAE,QAAQ,KAAK;IACxD,IAAI,MAAM,KAAK,GAAG,OAAO,CAAC,YAAY,CAAC,IAAI,CAAC;IAC5C,IAAI,IAAI,CAAC,KAAK,EAAE;IAChB,QAAQ,OAAO,QAAQ;IACvB,IAAI;IACJ,IAAI,IAAI;IACR,QAAQ,OAAO,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC;IAChC,IAAI;IACJ,IAAI,OAAO,EAAE,EAAE;IACf,QAAQ,OAAO,QAAQ;IACvB,IAAI;IACJ,CAAC;IACD,MAAM,mBAAmB,GAAG,YAAY,CAAC,MAAM,qDAAiB,EAAE,gBAAgB;IAC3E,SAAS,8BAA8B,GAAG;IACjD,IAAI,IAAI,OAAO,cAAc,KAAK,WAAW,IAAI,OAAO,WAAW,KAAK,WAAW,EAAE;IACrF,QAAQ;IACR,IAAI;IACJ,IAAI,MAAM,2BAA2B,SAAS,WAAW,CAAC;IAC1D,QAAQ,WAAW,kBAAkB,GAAG;IACxC,YAAY,OAAO,CAAC,SAAS,EAAE,gBAAgB,EAAE,oBAAoB,EAAE,oBAAoB,EAAE,QAAQ,EAAE,OAAO,CAAC;IAC/G,QAAQ;IACR,QAAQ,iBAAiB,GAAG;IAC5B,YAAY,KAAK,IAAI,CAAC,IAAI,EAAE;IAC5B,QAAQ;IACR,QAAQ,wBAAwB,GAAG;IACnC,YAAY,IAAI,IAAI,CAAC,WAAW,EAAE;IAClC,gBAAgB,KAAK,IAAI,CAAC,IAAI,EAAE;IAChC,YAAY;IACZ,QAAQ;IACR,QAAQ,MAAM,IAAI,GAAG;IACrB,YAAY,IAAI,EAAE,EAAE,EAAE;IACtB,YAAY,MAAM,QAAQ,GAAG,IAAI,CAAC,YAAY,CAAC,oBAAoB,CAAC;IACpE,YAAY,MAAM,OAAO,GAAG;IAC5B,gBAAgB,OAAO,EAAE,YAAY,CAAC,IAAI,CAAC,YAAY,CAAC,SAAS,CAAC,EAAE,IAAI,CAAC;IACzE,gBAAgB,aAAa,EAAE,CAAC,EAAE,GAAG,cAAc,CAAC,IAAI,EAAE,gBAAgB,CAAC,MAAM,IAAI,IAAI,EAAE,KAAK,MAAM,GAAG,EAAE,GAAG,MAAM;IACpH,gBAAgB,gBAAgB,EAAE,CAAC,EAAE,GAAG,cAAc,CAAC,IAAI,EAAE,oBAAoB,CAAC,MAAM,IAAI,IAAI,EAAE,KAAK,MAAM,GAAG,EAAE,GAAG,KAAK;IAC1H,gBAAgB,MAAM,EAAE,kBAAkB,CAAC,IAAI,EAAE,QAAQ,EAAE,SAAS,CAAC;IACrE,gBAAgB,KAAK,EAAE,kBAAkB,CAAC,IAAI,EAAE,OAAO,EAAE,SAAS,CAAC;IACnE,aAAa;IACb,YAAY,IAAI,QAAQ,EAAE;IAC1B,gBAAgB,OAAO,CAAC,iBAAiB,GAAG,MAAM,CAAC,QAAQ,CAAC;IAC5D,YAAY;IACZ,YAAY,MAAM,gBAAgB,GAAG,MAAM,mBAAmB,EAAE;IAChE,YAAY,MAAM,gBAAgB,CAAC,SAAS,CAAC,OAAO,CAAC;IACrD,QAAQ;IACR;IACA,IAAI,MAAM,eAAe,SAAS,WAAW,CAAC;IAC9C,QAAQ,WAAW,kBAAkB,GAAG;IACxC,YAAY,OAAO;IACnB,gBAAgB,QAAQ;IACxB,gBAAgB,OAAO;IACvB,gBAAgB,UAAU;IAC1B,gBAAgB,OAAO;IACvB,gBAAgB,aAAa;IAC7B,gBAAgB,aAAa;IAC7B,gBAAgB,aAAa;IAC7B,gBAAgB,YAAY;IAC5B,gBAAgB,YAAY;IAC5B,gBAAgB,aAAa;IAC7B,gBAAgB,QAAQ;IACxB,gBAAgB,OAAO;IACvB,gBAAgB,UAAU;IAC1B,aAAa;IACb,QAAQ;IACR,QAAQ,iBAAiB,GAAG;IAC5B,YAAY,KAAK,IAAI,CAAC,IAAI,EAAE;IAC5B,QAAQ;IACR,QAAQ,wBAAwB,GAAG;IACnC,YAAY,IAAI,IAAI,CAAC,WAAW,EAAE;IAClC,gBAAgB,KAAK,IAAI,CAAC,IAAI,EAAE;IAChC,YAAY;IACZ,QAAQ;IACR,QAAQ,MAAM,IAAI,GAAG;IACrB,YAAY,IAAI,EAAE,EAAE,EAAE;IACtB,YAAY,MAAM,OAAO,GAAG;IAC5B,gBAAgB,MAAM,EAAE,YAAY,CAAC,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;IACjE,gBAAgB,KAAK,EAAE,CAAC,EAAE,GAAG,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,MAAM,IAAI,IAAI,EAAE,KAAK,MAAM,GAAG,EAAE,GAAG,SAAS;IACnG,gBAAgB,QAAQ,EAAE,CAAC,EAAE,GAAG,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC,MAAM,IAAI,IAAI,EAAE,KAAK,MAAM,GAAG,EAAE,GAAG,SAAS;IACzG,gBAAgB,KAAK,EAAE,YAAY,CAAC,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC;IAC/D,gBAAgB,WAAW,EAAE,YAAY,CAAC,IAAI,CAAC,YAAY,CAAC,aAAa,CAAC,CAAC;IAC3E,gBAAgB,UAAU,EAAE,cAAc,CAAC,IAAI,EAAE,aAAa,CAAC;IAC/D,gBAAgB,UAAU,EAAE;IAC5B,oBAAoB,OAAO,EAAE,YAAY,CAAC,IAAI,CAAC,YAAY,CAAC,aAAa,CAAC,CAAC;IAC3E,oBAAoB,KAAK,EAAE,kBAAkB,CAAC,IAAI,CAAC,YAAY,CAAC,YAAY,CAAC,CAAC;IAC9E,iBAAiB;IACjB,gBAAgB,SAAS,EAAE,kBAAkB,CAAC,IAAI,EAAE,YAAY,EAAE,EAAE,CAAC;IACrE,gBAAgB,UAAU,EAAE,kBAAkB,CAAC,IAAI,EAAE,aAAa,EAAE,EAAE,CAAC;IACvE,gBAAgB,MAAM,EAAE,kBAAkB,CAAC,IAAI,EAAE,QAAQ,EAAE,SAAS,CAAC;IACrE,gBAAgB,KAAK,EAAE,kBAAkB,CAAC,IAAI,EAAE,OAAO,EAAE,SAAS,CAAC;IACnE,gBAAgB,QAAQ,EAAE,YAAY,CAAC,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC,CAAC;IACrE,aAAa;IACb,YAAY,MAAM,gBAAgB,GAAG,MAAM,mBAAmB,EAAE;IAChE,YAAY,MAAM,gBAAgB,CAAC,SAAS,CAAC,OAAO,CAAC;IACrD,QAAQ;IACR;IACA,IAAI,MAAM,eAAe,SAAS,WAAW,CAAC;IAC9C,QAAQ,WAAW,kBAAkB,GAAG;IACxC,YAAY,OAAO;IACnB,gBAAgB,QAAQ;IACxB,gBAAgB,MAAM;IACtB,gBAAgB,aAAa;IAC7B,gBAAgB,QAAQ;IACxB,gBAAgB,uBAAuB;IACvC,gBAAgB,OAAO;IACvB,gBAAgB,QAAQ;IACxB,gBAAgB,OAAO;IACvB,gBAAgB,aAAa;IAC7B,gBAAgB,mBAAmB;IACnC,gBAAgB,iBAAiB;IACjC,gBAAgB,cAAc;IAC9B,gBAAgB,wBAAwB;IACxC,gBAAgB,kBAAkB;IAClC,gBAAgB,gCAAgC;IAChD,gBAAgB,UAAU;IAC1B,aAAa;IACb,QAAQ;IACR,QAAQ,iBAAiB,GAAG;IAC5B,YAAY,KAAK,IAAI,CAAC,IAAI,EAAE;IAC5B,QAAQ;IACR,QAAQ,wBAAwB,GAAG;IACnC,YAAY,IAAI,IAAI,CAAC,WAAW,EAAE;IAClC,gBAAgB,KAAK,IAAI,CAAC,IAAI,EAAE;IAChC,YAAY;IACZ,QAAQ;IACR,QAAQ,MAAM,IAAI,GAAG;IACrB,YAAY,MAAM,OAAO,GAAG;IAC5B,gBAAgB,MAAM,EAAE,YAAY,CAAC,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;IACjE,gBAAgB,IAAI,EAAE,kBAAkB,CAAC,IAAI,EAAE,MAAM,EAAE,EAAE,CAAC;IAC1D,gBAAgB,UAAU,EAAE,kBAAkB,CAAC,IAAI,CAAC,YAAY,CAAC,aAAa,CAAC,CAAC;IAChF,gBAAgB,MAAM,EAAE,YAAY,CAAC,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,EAAE,IAAI,CAAC;IACvE,gBAAgB,mBAAmB,EAAE,cAAc,CAAC,IAAI,EAAE,uBAAuB,CAAC;IAClF,gBAAgB,KAAK,EAAE,YAAY,CAAC,IAAI,CAAC,YAAY,CAAC,OAAO,CAAC,EAAE,IAAI,CAAC;IACrE,gBAAgB,MAAM,EAAE,kBAAkB,CAAC,IAAI,EAAE,QAAQ,EAAE,SAAS,CAAC;IACrE,gBAAgB,KAAK,EAAE,kBAAkB,CAAC,IAAI,EAAE,OAAO,EAAE,SAAS,CAAC;IACnE,gBAAgB,UAAU,EAAE,cAAc,CAAC,IAAI,EAAE,aAAa,CAAC;IAC/D,gBAAgB,gBAAgB,EAAE,YAAY,CAAC,IAAI,CAAC,YAAY,CAAC,mBAAmB,CAAC,CAAC;IACtF,gBAAgB,cAAc,EAAE,kBAAkB,CAAC,IAAI,CAAC,YAAY,CAAC,iBAAiB,CAAC,CAAC;IACxF,gBAAgB,WAAW,EAAE,kBAAkB,CAAC,IAAI,CAAC,YAAY,CAAC,cAAc,CAAC,CAAC;IAClF,gBAAgB,oBAAoB,EAAE,kBAAkB,CAAC,IAAI,CAAC,YAAY,CAAC,wBAAwB,CAAC,CAAC;IACrG,gBAAgB,2BAA2B,EAAE,YAAY,CAAC,IAAI,CAAC,YAAY,CAAC,gCAAgC,CAAC,CAAC;IAC9G,gBAAgB,cAAc,EAAE,kBAAkB,CAAC,IAAI,CAAC,YAAY,CAAC,kBAAkB,CAAC,CAAC;IACzF,gBAAgB,QAAQ,EAAE,YAAY,CAAC,IAAI,CAAC,YAAY,CAAC,UAAU,CAAC,CAAC;IACrE,aAAa;IACb,YAAY,MAAM,gBAAgB,GAAG,MAAM,mBAAmB,EAAE;IAChE,YAAY,MAAM,gBAAgB,CAAC,SAAS,CAAC,OAAO,CAAC;IACrD,QAAQ;IACR;IACA,IAAI,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,gCAAgC,CAAC,EAAE;IAC/D,QAAQ,cAAc,CAAC,MAAM,CAAC,gCAAgC,EAAE,2BAA2B,CAAC;IAC5F,IAAI;IACJ,IAAI,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,mBAAmB,CAAC,EAAE;IAClD,QAAQ,cAAc,CAAC,MAAM,CAAC,mBAAmB,EAAE,eAAe,CAAC;IACnE,IAAI;IACJ,IAAI,IAAI,CAAC,cAAc,CAAC,GAAG,CAAC,mBAAmB,CAAC,EAAE;IAClD,QAAQ,cAAc,CAAC,MAAM,CAAC,mBAAmB,EAAE,eAAe,CAAC;IACnE,IAAI;IACJ;;AClKY,UAAC,gBAAgB,GAAGA,mBAAc,CAAC,kBAAkB,EAAE;IACnE,IAAI,GAAG,EAAE,yBAAyB;IAClC,CAAC;IAGD,MAAM,SAAS,GAAG,CAAC,MAAM,KAAK,OAAO,OAAO,KAAK,WAAW,IAAI,MAAM,YAAY,OAAO;IACzF,MAAM,SAAS,GAAG,CAAC,MAAM,KAAK,OAAO,OAAO,KAAK,WAAW,IAAI,MAAM,YAAY,OAAO;IACzF;IACA;IACA;IACA;AACY,UAAC,uBAAuB,GAAG,CAAC,MAAM,KAAK;IACnD,IAAI,MAAM,IAAI,GAAG,SAAS,CAAC,MAAM,CAAC,GAAG,MAAM,CAAC,qBAAqB,EAAE,GAAG,MAAM;IAC5E,IAAI,IAAI,SAAS,CAAC,IAAI,CAAC,EAAE;IACzB,QAAQ,OAAO;IACf,YAAY,CAAC,EAAE,IAAI,CAAC,CAAC;IACrB,YAAY,CAAC,EAAE,IAAI,CAAC,CAAC;IACrB,YAAY,KAAK,EAAE,IAAI,CAAC,KAAK;IAC7B,YAAY,MAAM,EAAE,IAAI,CAAC,MAAM;IAC/B,SAAS;IACT,IAAI;IACJ,IAAI,OAAO;IACX,QAAQ,CAAC,EAAE,IAAI,CAAC,CAAC;IACjB,QAAQ,CAAC,EAAE,IAAI,CAAC,CAAC;IACjB,QAAQ,KAAK,EAAE,IAAI,CAAC,KAAK;IACzB,QAAQ,MAAM,EAAE,IAAI,CAAC,MAAM;IAC3B,KAAK;IACL;IACA;IACA;IACA;AACY,UAAC,mBAAmB,GAAG,CAAC,MAAM,EAAE,OAAO,GAAG,EAAE,KAAK,gBAAgB,CAAC,eAAe,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,OAAO,CAAC,EAAE,EAAE,SAAS,EAAE,MAAM,EAAE,UAAU,EAAE,uBAAuB,CAAC,MAAM,CAAC,EAAE,CAAC;IAC3M;IACA;IACA;IACA;AACY,UAAC,oBAAoB,GAAG,CAAC,MAAM,EAAE,OAAO,GAAG,EAAE,KAAK,gBAAgB,CAAC,gBAAgB,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,OAAO,CAAC,EAAE,EAAE,SAAS,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,GAAG,uBAAuB,CAAC,MAAM,CAAC,GAAG,SAAS,EAAE,CAAC;;;;;;;;;;;ICrClO,MAAM,qBAAqB,GAAG,EAAE;IAChC,MAAM,qBAAqB,GAAG,EAAE;IAChC,MAAM,2BAA2B,GAAG,GAAG;IAChC,MAAM,mBAAmB,SAASC,cAAS,CAAC;IACnD,IAAI,WAAW,GAAG;IAClB,QAAQ,KAAK,CAAC,GAAG,SAAS,CAAC;IAC3B,QAAQ,IAAI,CAAC,MAAM,GAAG;IACtB,YAAY,gBAAgB,EAAE,KAAK;IACnC,YAAY,OAAO,EAAE,IAAI;IACzB,YAAY,aAAa,EAAE,MAAM;IACjC,SAAS;IACT,QAAQ,IAAI,CAAC,MAAM,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE;IACtC,QAAQ,IAAI,CAAC,MAAM,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE;IACtC,QAAQ,IAAI,CAAC,gBAAgB,GAAG,IAAI;IACpC,IAAI;IACJ,IAAI,MAAM,SAAS,CAAC,OAAO,GAAG,EAAE,EAAE;IAClC,QAAQ,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,IAAI,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;IACxP,QAAQ,OAAO,IAAI,CAAC,WAAW,EAAE;IACjC,IAAI;IACJ,IAAI,MAAM,SAAS,CAAC,OAAO,EAAE;IAC7B,QAAQ,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,IAAI,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;IACxP,QAAQ,OAAO,IAAI,CAAC,WAAW,EAAE;IACjC,IAAI;IACJ,IAAI,MAAM,SAAS,CAAC,OAAO,EAAE;IAC7B,QAAQ,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,IAAI,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC,EAAE,EAAE,MAAM,EAAE,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,OAAO,CAAC,KAAK,CAAC,EAAE,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,EAAE,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;IACnU,QAAQ,OAAO,IAAI,CAAC,WAAW,EAAE;IACjC,IAAI;IACJ,IAAI,MAAM,eAAe,CAAC,OAAO,GAAG,EAAE,EAAE;IACxC,QAAQ,MAAM,UAAU,GAAG,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,EAAE,EAAE,OAAO,CAAC,SAAS,EAAE,OAAO,CAAC,QAAQ,CAAC;IACjG,QAAQ,IAAI,CAAC,gBAAgB,GAAG,UAAU;IAC1C,QAAQ,IAAI,CAAC,eAAe,CAAC,iBAAiB,EAAE,UAAU,CAAC;IAC3D,QAAQ,IAAI,CAAC,mBAAmB,CAAC,iBAAiB,EAAE,UAAU,CAAC;IAC/D,QAAQ,OAAO,UAAU;IACzB,IAAI;IACJ,IAAI,MAAM,gBAAgB,CAAC,OAAO,GAAG,EAAE,EAAE;IACzC,QAAQ,IAAI,EAAE,EAAE,EAAE;IAClB,QAAQ,MAAM,UAAU,GAAG,IAAI,CAAC,gBAAgB,KAAK,CAAC,OAAO,CAAC,EAAE,IAAI,OAAO,CAAC,EAAE,KAAK,IAAI,CAAC,gBAAgB,CAAC,EAAE;IAC3G,cAAc,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,EAAE,IAAI,CAAC,gBAAgB,CAAC,EAAE,EAAE,SAAS,EAAE,CAAC,EAAE,GAAG,OAAO,CAAC,SAAS,MAAM,IAAI,IAAI,EAAE,KAAK,MAAM,GAAG,EAAE,GAAG,IAAI,CAAC,gBAAgB,CAAC,SAAS,EAAE,QAAQ,EAAE,CAAC,EAAE,GAAG,OAAO,CAAC,QAAQ,MAAM,IAAI,IAAI,EAAE,KAAK,MAAM,GAAG,EAAE,GAAG,IAAI,CAAC,gBAAgB,CAAC,QAAQ,EAAE,CAAC,GAAG,IAAI,CAAC,gBAAgB,CAAC,OAAO,CAAC,EAAE,EAAE,OAAO,CAAC,SAAS,EAAE,OAAO,CAAC,QAAQ,CAAC;IAC3V,QAAQ,IAAI,CAAC,gBAAgB,GAAG,IAAI;IACpC,QAAQ,IAAI,CAAC,eAAe,CAAC,eAAe,EAAE,UAAU,CAAC;IACzD,QAAQ,IAAI,CAAC,mBAAmB,CAAC,eAAe,EAAE,UAAU,CAAC;IAC7D,QAAQ,OAAO,UAAU;IACzB,IAAI;IACJ,IAAI,MAAM,gBAAgB,GAAG;IAC7B,QAAQ,OAAO;IACf,YAAY,OAAO,EAAE,KAAK;IAC1B,SAAS;IACT,IAAI;IACJ,IAAI,gBAAgB,CAAC,EAAE,EAAE,SAAS,EAAE,QAAQ,EAAE;IAC9C,QAAQ,IAAI,EAAE;IACd,QAAQ,IAAI,EAAE,KAAK,MAAM,EAAE,EAAE,EAAE,GAAG,CAAC,WAAW,EAAE,IAAI,CAAC,GAAG,EAAE,CAAC,CAAC,CAAC,CAAC;IAC9D,QAAQ,IAAI,SAAS,KAAK,MAAM,EAAE,EAAE,SAAS,GAAG,SAAS,CAAC,CAAC;IAC3D,QAAQ,IAAI,QAAQ,KAAK,MAAM,EAAE,EAAE,QAAQ,GAAG,CAAC,EAAE,GAAG,IAAI,CAAC,MAAM,CAAC,iBAAiB,MAAM,IAAI,IAAI,EAAE,KAAK,MAAM,GAAG,EAAE,GAAG,2BAA2B,CAAC,CAAC;IACjJ,QAAQ,OAAO,EAAE,EAAE,EAAE,SAAS,EAAE,QAAQ,EAAE;IAC1C,IAAI;IACJ,IAAI,mBAAmB,GAAG;IAC1B,QAAQ,IAAI,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE,EAAE;IAC1B,QAAQ,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK;IACvC,QAAQ,IAAI,CAAC,KAAK,EAAE;IACpB,YAAY,OAAO,qBAAqB;IACxC,QAAQ;IACR,QAAQ,MAAM,aAAa,GAAG,KAAK,CAAC,KAAK,KAAK,OAAO,GAAG,EAAE,GAAG,KAAK,CAAC,KAAK,KAAK,UAAU,GAAG,EAAE,GAAG,qBAAqB;IACpH,QAAQ,MAAM,MAAM,GAAG,CAAC,EAAE,GAAG,KAAK,CAAC,MAAM,MAAM,IAAI,IAAI,EAAE,KAAK,MAAM,GAAG,EAAE,GAAG,aAAa;IACzF,QAAQ,MAAM,SAAS,GAAG,CAAC,EAAE,GAAG,KAAK,CAAC,SAAS,MAAM,IAAI,IAAI,EAAE,KAAK,MAAM,GAAG,EAAE,IAAI,KAAK,CAAC,KAAK,KAAK,OAAO,GAAG,CAAC,GAAG,EAAE,CAAC;IACpH,QAAQ,MAAM,gBAAgB,GAAG,KAAK,CAAC,KAAK,KAAK,OAAO,IAAI,CAAC,EAAE,GAAG,KAAK,CAAC,gBAAgB,MAAM,IAAI,IAAI,EAAE,KAAK,MAAM,GAAG,EAAE,GAAG,CAAC,CAAC,EAAE,GAAG,KAAK,CAAC,oBAAoB,MAAM,IAAI,IAAI,EAAE,KAAK,MAAM,GAAG,EAAE,GAAG,EAAE,IAAI,CAAC,IAAI,CAAC;IAC3M,QAAQ,OAAO,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,SAAS,GAAG,gBAAgB,CAAC;IAC/D,IAAI;IACJ,IAAI,WAAW,GAAG;IAClB,QAAQ,MAAM,OAAO,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO,KAAK,KAAK;IACrD,QAAQ,MAAM,aAAa,GAAG,OAAO,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,KAAK,IAAI;IACpE,QAAQ,MAAM,aAAa,GAAG,OAAO,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,KAAK,IAAI;IACpE,QAAQ,MAAM,YAAY,GAAG,aAAa,GAAG,IAAI,CAAC,mBAAmB,EAAE,GAAG,CAAC;IAC3E,QAAQ,MAAM,MAAM,GAAG;IACvB,YAAY,GAAG,EAAE,aAAa,GAAG,qBAAqB,GAAG,CAAC;IAC1D,YAAY,KAAK,EAAE,CAAC;IACpB,YAAY,MAAM,EAAE,YAAY;IAChC,YAAY,IAAI,EAAE,CAAC;IACnB,YAAY,YAAY,EAAE,aAAa,GAAG,qBAAqB,GAAG,CAAC;IACnE,YAAY,YAAY;IACxB,SAAS;IACT,QAAQ,IAAI,IAAI,CAAC,MAAM,CAAC,gBAAgB,KAAK,MAAM,IAAI,OAAO,QAAQ,KAAK,WAAW,EAAE;IACxF,YAAY,MAAM,IAAI,GAAG,QAAQ,CAAC,eAAe;IACjD,YAAY,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,6BAA6B,EAAE,CAAC,EAAE,MAAM,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IACpF,YAAY,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,+BAA+B,EAAE,CAAC,EAAE,MAAM,CAAC,KAAK,CAAC,EAAE,CAAC,CAAC;IACxF,YAAY,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,gCAAgC,EAAE,CAAC,EAAE,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC;IAC1F,YAAY,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,8BAA8B,EAAE,CAAC,EAAE,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC;IACtF,YAAY,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,4BAA4B,EAAE,CAAC,EAAE,MAAM,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC;IAC5F,YAAY,IAAI,CAAC,KAAK,CAAC,WAAW,CAAC,4BAA4B,EAAE,CAAC,EAAE,MAAM,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC;IAC5F,QAAQ;IACR,QAAQ,MAAM,KAAK,GAAG,EAAE,MAAM,EAAE;IAChC,QAAQ,IAAI,CAAC,eAAe,CAAC,iBAAiB,EAAE,KAAK,CAAC;IACtD,QAAQ,IAAI,CAAC,mBAAmB,CAAC,iBAAiB,EAAE,KAAK,CAAC;IAC1D,QAAQ,OAAO,EAAE,MAAM,EAAE;IACzB,IAAI;IACJ,IAAI,mBAAmB,CAAC,IAAI,EAAE,MAAM,EAAE;IACtC,QAAQ,IAAI,OAAO,MAAM,KAAK,WAAW,EAAE;IAC3C,YAAY;IACZ,QAAQ;IACR,QAAQ,MAAM,CAAC,aAAa,CAAC,IAAI,WAAW,CAAC,CAAC,oBAAoB,EAAE,IAAI,CAAC,CAAC,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC;IACxF,IAAI;IACJ;;;;;;;;;;;;;;;;;;;"}
|
|
1
|
+
{"version":3,"file":"plugin.js","sources":["esm/plugin.js","esm/components.js","esm/index.js","esm/web.js"],"sourcesContent":["export const createNativeNavigationWeb = () => import('./web').then((m) => new m.NativeNavigationWeb());\n//# sourceMappingURL=plugin.js.map","const parseBoolean = (value, defaultValue = false) => {\n if (value === null) {\n return defaultValue;\n }\n return value === '' || value === 'true' || value === '1';\n};\nconst normalizeAttribute = (value) => (value ? value : undefined);\nconst typedAttribute = (element, name) => normalizeAttribute(element.getAttribute(name));\nconst parseJsonAttribute = (element, name, fallback) => {\n const value = element.getAttribute(name);\n if (!value) {\n return fallback;\n }\n try {\n return JSON.parse(value);\n }\n catch (_a) {\n return fallback;\n }\n};\nconst getNativeNavigation = async () => (await import('./index')).NativeNavigation;\nexport function defineNativeNavigationElements() {\n if (typeof customElements === 'undefined' || typeof HTMLElement === 'undefined') {\n return;\n }\n class CapNativeNavigationProvider extends HTMLElement {\n static get observedAttributes() {\n return ['enabled', 'platform-style', 'content-inset-mode', 'animation-duration', 'colors', 'glass'];\n }\n connectedCallback() {\n void this.sync();\n }\n attributeChangedCallback() {\n if (this.isConnected) {\n void this.sync();\n }\n }\n async sync() {\n var _a, _b;\n const duration = this.getAttribute('animation-duration');\n const options = {\n enabled: parseBoolean(this.getAttribute('enabled'), true),\n platformStyle: (_a = typedAttribute(this, 'platform-style')) !== null && _a !== void 0 ? _a : 'auto',\n contentInsetMode: (_b = typedAttribute(this, 'content-inset-mode')) !== null && _b !== void 0 ? _b : 'css',\n colors: parseJsonAttribute(this, 'colors', undefined),\n glass: parseJsonAttribute(this, 'glass', undefined),\n };\n if (duration) {\n options.animationDuration = Number(duration);\n }\n const NativeNavigation = await getNativeNavigation();\n await NativeNavigation.configure(options);\n }\n }\n class CapNativeNavbar extends HTMLElement {\n static get observedAttributes() {\n return [\n 'hidden',\n 'title',\n 'subtitle',\n 'large',\n 'transparent',\n 'blur-effect',\n 'back-button',\n 'back-title',\n 'left-items',\n 'right-items',\n 'colors',\n 'glass',\n 'animated',\n ];\n }\n connectedCallback() {\n void this.sync();\n }\n attributeChangedCallback() {\n if (this.isConnected) {\n void this.sync();\n }\n }\n async sync() {\n var _a, _b;\n const options = {\n hidden: parseBoolean(this.getAttribute('hidden')),\n title: (_a = this.getAttribute('title')) !== null && _a !== void 0 ? _a : undefined,\n subtitle: (_b = this.getAttribute('subtitle')) !== null && _b !== void 0 ? _b : undefined,\n large: parseBoolean(this.getAttribute('large')),\n transparent: parseBoolean(this.getAttribute('transparent')),\n blurEffect: typedAttribute(this, 'blur-effect'),\n backButton: {\n visible: parseBoolean(this.getAttribute('back-button')),\n title: normalizeAttribute(this.getAttribute('back-title')),\n },\n leftItems: parseJsonAttribute(this, 'left-items', []),\n rightItems: parseJsonAttribute(this, 'right-items', []),\n colors: parseJsonAttribute(this, 'colors', undefined),\n glass: parseJsonAttribute(this, 'glass', undefined),\n animated: parseBoolean(this.getAttribute('animated')),\n };\n const NativeNavigation = await getNativeNavigation();\n await NativeNavigation.setNavbar(options);\n }\n }\n class CapNativeTabbar extends HTMLElement {\n static get observedAttributes() {\n return [\n 'hidden',\n 'tabs',\n 'selected-id',\n 'labels',\n 'label-visibility-mode',\n 'icons',\n 'colors',\n 'glass',\n 'blur-effect',\n 'disable-indicator',\n 'indicator-color',\n 'ripple-color',\n 'badge-background-color',\n 'badge-text-color',\n 'experimental-baked-tint-colors',\n 'animated',\n ];\n }\n connectedCallback() {\n void this.sync();\n }\n attributeChangedCallback() {\n if (this.isConnected) {\n void this.sync();\n }\n }\n async sync() {\n const options = {\n hidden: parseBoolean(this.getAttribute('hidden')),\n tabs: parseJsonAttribute(this, 'tabs', []),\n selectedId: normalizeAttribute(this.getAttribute('selected-id')),\n labels: parseBoolean(this.getAttribute('labels'), true),\n labelVisibilityMode: typedAttribute(this, 'label-visibility-mode'),\n icons: parseBoolean(this.getAttribute('icons'), true),\n colors: parseJsonAttribute(this, 'colors', undefined),\n glass: parseJsonAttribute(this, 'glass', undefined),\n blurEffect: typedAttribute(this, 'blur-effect'),\n disableIndicator: parseBoolean(this.getAttribute('disable-indicator')),\n indicatorColor: normalizeAttribute(this.getAttribute('indicator-color')),\n rippleColor: normalizeAttribute(this.getAttribute('ripple-color')),\n badgeBackgroundColor: normalizeAttribute(this.getAttribute('badge-background-color')),\n experimentalBakedTintColors: parseBoolean(this.getAttribute('experimental-baked-tint-colors')),\n badgeTextColor: normalizeAttribute(this.getAttribute('badge-text-color')),\n animated: parseBoolean(this.getAttribute('animated')),\n };\n const NativeNavigation = await getNativeNavigation();\n await NativeNavigation.setTabbar(options);\n }\n }\n if (!customElements.get('cap-native-navigation-provider')) {\n customElements.define('cap-native-navigation-provider', CapNativeNavigationProvider);\n }\n if (!customElements.get('cap-native-navbar')) {\n customElements.define('cap-native-navbar', CapNativeNavbar);\n }\n if (!customElements.get('cap-native-tabbar')) {\n customElements.define('cap-native-tabbar', CapNativeTabbar);\n }\n}\n//# sourceMappingURL=components.js.map","import { registerPlugin } from '@capacitor/core';\nimport { createNativeNavigationWeb } from './plugin';\nexport const NativeNavigation = registerPlugin('NativeNavigation', {\n web: createNativeNavigationWeb,\n});\nexport * from './definitions';\nexport { defineNativeNavigationElements } from './components';\nconst isElement = (target) => typeof Element !== 'undefined' && target instanceof Element;\nconst isDomRect = (target) => typeof DOMRect !== 'undefined' && target instanceof DOMRect;\n/**\n * Convert an element or DOMRect into viewport coordinates accepted by native\n * zoom transitions.\n */\nexport const getNativeNavigationRect = (target) => {\n const rect = isElement(target) ? target.getBoundingClientRect() : target;\n if (isDomRect(rect)) {\n return {\n x: rect.x,\n y: rect.y,\n width: rect.width,\n height: rect.height,\n };\n }\n return {\n x: rect.x,\n y: rect.y,\n width: rect.width,\n height: rect.height,\n };\n};\n/**\n * Begin an Apple-Zoom-style native transition from a DOM element or rect.\n */\nexport const beginZoomTransition = (target, options = {}) => NativeNavigation.beginTransition(Object.assign(Object.assign({}, options), { direction: 'zoom', sourceRect: getNativeNavigationRect(target) }));\n/**\n * Finish an Apple-Zoom-style native transition into an optional DOM element or\n * rect on the destination route.\n */\nexport const finishZoomTransition = (target, options = {}) => NativeNavigation.finishTransition(Object.assign(Object.assign({}, options), { direction: 'zoom', targetRect: target ? getNativeNavigationRect(target) : undefined }));\n//# sourceMappingURL=index.js.map","import { WebPlugin } from '@capacitor/core';\nconst DEFAULT_NAVBAR_HEIGHT = 44;\nconst DEFAULT_TABBAR_HEIGHT = 49;\nconst DEFAULT_TRANSITION_DURATION = 350;\nexport class NativeNavigationWeb extends WebPlugin {\n constructor() {\n super(...arguments);\n this.config = {\n contentInsetMode: 'css',\n enabled: true,\n platformStyle: 'auto',\n };\n this.navbar = { hidden: true };\n this.tabbar = { hidden: true };\n this.activeTransition = null;\n }\n async configure(options = {}) {\n this.config = Object.assign(Object.assign(Object.assign({}, this.config), options), { colors: Object.assign(Object.assign({}, this.config.colors), options.colors), glass: Object.assign(Object.assign({}, this.config.glass), options.glass) });\n return this.applyInsets();\n }\n async setNavbar(options) {\n this.navbar = Object.assign(Object.assign(Object.assign({}, this.navbar), options), { colors: Object.assign(Object.assign({}, this.navbar.colors), options.colors), glass: Object.assign(Object.assign({}, this.navbar.glass), options.glass) });\n return this.applyInsets();\n }\n async setTabbar(options) {\n this.tabbar = Object.assign(Object.assign(Object.assign({}, this.tabbar), options), { colors: Object.assign(Object.assign({}, this.tabbar.colors), options.colors), style: Object.assign(Object.assign({}, this.tabbar.style), options.style), glass: Object.assign(Object.assign({}, this.tabbar.glass), options.glass) });\n return this.applyInsets();\n }\n async beginTransition(options = {}) {\n const transition = this.createTransition(options.id, options.direction, options.duration);\n this.activeTransition = transition;\n this.notifyListeners('transitionStart', transition);\n this.dispatchWindowEvent('transitionStart', transition);\n return transition;\n }\n async finishTransition(options = {}) {\n var _a, _b;\n const transition = this.activeTransition && (!options.id || options.id === this.activeTransition.id)\n ? Object.assign(Object.assign({}, this.activeTransition), { direction: (_a = options.direction) !== null && _a !== void 0 ? _a : this.activeTransition.direction, duration: (_b = options.duration) !== null && _b !== void 0 ? _b : this.activeTransition.duration }) : this.createTransition(options.id, options.direction, options.duration);\n this.activeTransition = null;\n this.notifyListeners('transitionEnd', transition);\n this.dispatchWindowEvent('transitionEnd', transition);\n return transition;\n }\n async getPluginVersion() {\n return {\n version: 'web',\n };\n }\n createTransition(id, direction, duration) {\n var _a;\n if (id === void 0) { id = `transition-${Date.now()}`; }\n if (direction === void 0) { direction = 'forward'; }\n if (duration === void 0) { duration = (_a = this.config.animationDuration) !== null && _a !== void 0 ? _a : DEFAULT_TRANSITION_DURATION; }\n return { id, direction, duration };\n }\n currentTabbarHeight() {\n var _a, _b, _c, _d;\n const style = this.tabbar.style;\n if (!style) {\n return DEFAULT_TABBAR_HEIGHT;\n }\n const defaultHeight = style.shape === 'curve' ? 76 : style.shape === 'floating' ? 64 : DEFAULT_TABBAR_HEIGHT;\n const height = (_a = style.height) !== null && _a !== void 0 ? _a : defaultHeight;\n const bottomGap = (_b = style.bottomGap) !== null && _b !== void 0 ? _b : (style.shape === 'curve' ? 0 : 10);\n const centerButtonLift = style.shape === 'curve' ? ((_c = style.centerButtonLift) !== null && _c !== void 0 ? _c : ((_d = style.centerButtonDiameter) !== null && _d !== void 0 ? _d : 56) / 2) : 0;\n return Math.ceil(height + bottomGap + centerButtonLift);\n }\n applyInsets() {\n const enabled = this.config.enabled !== false;\n const navbarVisible = enabled && this.navbar.hidden !== true;\n const tabbarVisible = enabled && this.tabbar.hidden !== true;\n const tabbarHeight = tabbarVisible ? this.currentTabbarHeight() : 0;\n const insets = {\n top: navbarVisible ? DEFAULT_NAVBAR_HEIGHT : 0,\n right: 0,\n bottom: tabbarHeight,\n left: 0,\n navbarHeight: navbarVisible ? DEFAULT_NAVBAR_HEIGHT : 0,\n tabbarHeight,\n };\n if (this.config.contentInsetMode !== 'none' && typeof document !== 'undefined') {\n const root = document.documentElement;\n root.style.setProperty('--cap-native-navigation-top', `${insets.top}px`);\n root.style.setProperty('--cap-native-navigation-right', `${insets.right}px`);\n root.style.setProperty('--cap-native-navigation-bottom', `${insets.bottom}px`);\n root.style.setProperty('--cap-native-navigation-left', `${insets.left}px`);\n root.style.setProperty('--cap-native-navbar-height', `${insets.navbarHeight}px`);\n root.style.setProperty('--cap-native-tabbar-height', `${insets.tabbarHeight}px`);\n }\n const event = { insets };\n this.notifyListeners('safeAreaChanged', event);\n this.dispatchWindowEvent('safeAreaChanged', event);\n return { insets };\n }\n dispatchWindowEvent(name, detail) {\n if (typeof window === 'undefined') {\n return;\n }\n window.dispatchEvent(new CustomEvent(`capNativeNavigation:${name}`, { detail }));\n }\n}\n//# sourceMappingURL=web.js.map"],"names":["registerPlugin","WebPlugin"],"mappings":"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"}
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
@@ -220,6 +220,11 @@ public class NativeNavigationPlugin: CAPPlugin, CAPBridgedPlugin, UITabBarContro
|
|
|
220
220
|
let icons = call.getBool("icons", true)
|
|
221
221
|
|
|
222
222
|
if self.usesSystemLiquidGlass && self.tabbarStyle.shape != .curve {
|
|
223
|
+
self.floatingTabBar?.isHidden = true
|
|
224
|
+
self.tabContainer?.isHidden = true
|
|
225
|
+
// Unhide before rehosting. setTabBarHidden does not recover on iOS 26
|
|
226
|
+
// after the controller view itself was hidden.
|
|
227
|
+
self.tabBarController?.view.isHidden = false
|
|
223
228
|
let tabBar = self.ensureTabBar()
|
|
224
229
|
let (items, selectedIndex) = self.makeTabBarItems(
|
|
225
230
|
tabs,
|
|
@@ -227,8 +232,6 @@ public class NativeNavigationPlugin: CAPPlugin, CAPBridgedPlugin, UITabBarContro
|
|
|
227
232
|
labelVisibilityMode: labelVisibilityMode,
|
|
228
233
|
icons: icons
|
|
229
234
|
)
|
|
230
|
-
self.floatingTabBar?.isHidden = true
|
|
231
|
-
self.tabContainer?.isHidden = true
|
|
232
235
|
self.applySystemTabBarItems(items, selectedIndex: selectedIndex, animated: call.getBool("animated", false))
|
|
233
236
|
self.applyTabBarAppearance(tabBar: tabBar, options: call)
|
|
234
237
|
if items.isEmpty {
|
|
@@ -239,7 +242,6 @@ public class NativeNavigationPlugin: CAPPlugin, CAPBridgedPlugin, UITabBarContro
|
|
|
239
242
|
}
|
|
240
243
|
} else {
|
|
241
244
|
self.restoreWebViewFromSystemTabController()
|
|
242
|
-
self.setSystemTabBarHidden(true)
|
|
243
245
|
self.tabBarController?.view.isHidden = true
|
|
244
246
|
let tabBar = self.ensureFloatingTabBar()
|
|
245
247
|
let (items, selectedIndex) = self.makeFloatingTabBarItems(
|
|
@@ -1396,7 +1398,7 @@ public class NativeNavigationPlugin: CAPPlugin, CAPBridgedPlugin, UITabBarContro
|
|
|
1396
1398
|
let shape: NativeNavigationTabbarShape = requestedShape == "curve" ? .curve : .floating
|
|
1397
1399
|
let isCurve = shape == .curve
|
|
1398
1400
|
let centerDiameter = max(number(from: rawStyle["centerButtonDiameter"]) ?? 56, 44)
|
|
1399
|
-
let height = max(number(from: rawStyle["height"]) ?? (isCurve ?
|
|
1401
|
+
let height = max(number(from: rawStyle["height"]) ?? (isCurve ? 49 : 64), 44)
|
|
1400
1402
|
let centerLift = max(number(from: rawStyle["centerButtonLift"]) ?? (centerDiameter / 2), 0)
|
|
1401
1403
|
let bottomGap = max(number(from: rawStyle["bottomGap"]) ?? (isCurve ? 0 : 10), 0)
|
|
1402
1404
|
let horizontalMargin = max(number(from: rawStyle["horizontalMargin"]) ?? (isCurve ? 0 : 24), 0)
|
|
@@ -1598,7 +1600,10 @@ public class NativeNavigationPlugin: CAPPlugin, CAPBridgedPlugin, UITabBarContro
|
|
|
1598
1600
|
}
|
|
1599
1601
|
|
|
1600
1602
|
let opaqueBackground = backgroundTint ?? .systemBackground
|
|
1601
|
-
if
|
|
1603
|
+
if tabbarStyle.shape == .curve {
|
|
1604
|
+
// Curve hides the glass effect view, so the drawn fill has to stay visible.
|
|
1605
|
+
tabBar.backgroundFillColor = backgroundColor
|
|
1606
|
+
} else if prefersOpaqueTabBarBackground() {
|
|
1602
1607
|
tabBar.backgroundFillColor = opaqueBackground
|
|
1603
1608
|
} else if usesLiquidGlass {
|
|
1604
1609
|
// Keep the hand-drawn fill clear so UIGlassEffect can show through.
|
|
@@ -1803,9 +1808,17 @@ public class NativeNavigationPlugin: CAPPlugin, CAPBridgedPlugin, UITabBarContro
|
|
|
1803
1808
|
let trailingGap: CGFloat = 10
|
|
1804
1809
|
let trailingExtra = hasDetachedTrailing ? trailingDiameter + trailingGap : 0
|
|
1805
1810
|
let tabbarWidth = min(availableWidth, maxWidth + trailingExtra)
|
|
1811
|
+
let curveExtendsToBottom = tabbarStyle.shape == .curve && tabbarStyle.horizontalMargin == 0 && tabbarStyle.bottomGap == 0
|
|
1812
|
+
let bottomExtension = curveExtendsToBottom ? safeInsets.bottom : 0
|
|
1813
|
+
let contentHeight = tabbarStyle.height
|
|
1814
|
+
let barTop = tabbarStyle.shape == .curve ? tabbarStyle.centerButtonLift : 0
|
|
1815
|
+
let totalHeight = contentHeight + barTop
|
|
1806
1816
|
let originX = (width - tabbarWidth) / 2
|
|
1807
|
-
|
|
1808
|
-
|
|
1817
|
+
// Keep the home-indicator fill inside the screen. The previous origin
|
|
1818
|
+
// pushed that extension below the bezel and left labels on the edge.
|
|
1819
|
+
let originY = height - tabbarStyle.bottomGap - totalHeight - bottomExtension - (curveExtendsToBottom ? 0 : safeInsets.bottom)
|
|
1820
|
+
container.frame = CGRect(x: originX, y: originY, width: tabbarWidth, height: totalHeight + bottomExtension)
|
|
1821
|
+
floatingTabBar?.curveContentHeightOverride = tabbarStyle.shape == .curve ? contentHeight : nil
|
|
1809
1822
|
floatingTabBar?.frame = container.bounds
|
|
1810
1823
|
floatingTabBar?.layer.cornerRadius = 0
|
|
1811
1824
|
floatingTabBar?.layoutIfNeeded()
|
|
@@ -2106,7 +2119,7 @@ private enum NativeNavigationTabbarBackgroundPath {
|
|
|
2106
2119
|
return UIBezierPath(roundedRect: bounds, cornerRadius: style.cornerRadius)
|
|
2107
2120
|
}
|
|
2108
2121
|
|
|
2109
|
-
let barRect = CGRect(x: 0, y: style.barTop, width: bounds.width, height: max(style.
|
|
2122
|
+
let barRect = CGRect(x: 0, y: style.barTop, width: bounds.width, height: max(bounds.maxY - style.barTop, 1))
|
|
2110
2123
|
let cornerRadius = min(style.cornerRadius, barRect.height / 2)
|
|
2111
2124
|
let centerX = bounds.midX
|
|
2112
2125
|
let centerRadius = style.centerButtonDiameter / 2
|
|
@@ -2152,6 +2165,7 @@ private struct NativeNavigationFloatingTabStyle {
|
|
|
2152
2165
|
let centerButtonIconColor: UIColor
|
|
2153
2166
|
let badgeBackgroundColor: UIColor
|
|
2154
2167
|
let badgeTextColor: UIColor
|
|
2168
|
+
let showsSelectionBackground: Bool
|
|
2155
2169
|
}
|
|
2156
2170
|
|
|
2157
2171
|
private final class NativeNavigationFloatingTabBar: UIView {
|
|
@@ -2161,6 +2175,7 @@ private final class NativeNavigationFloatingTabBar: UIView {
|
|
|
2161
2175
|
private var iconsVisible = true
|
|
2162
2176
|
private let backgroundShapeView = NativeNavigationTabbarBackgroundView()
|
|
2163
2177
|
private var tabbarStyle = NativeNavigationTabbarStyleConfig()
|
|
2178
|
+
var curveContentHeightOverride: CGFloat?
|
|
2164
2179
|
|
|
2165
2180
|
var selectedIndex = 0
|
|
2166
2181
|
var selectedTintColor = UIColor.systemBlue {
|
|
@@ -2242,6 +2257,9 @@ private final class NativeNavigationFloatingTabBar: UIView {
|
|
|
2242
2257
|
super.layoutSubviews()
|
|
2243
2258
|
let capsule = capsuleBounds(in: bounds)
|
|
2244
2259
|
backgroundShapeView.frame = capsule
|
|
2260
|
+
// Unfolding resizes the bar without a new style pass. Rebuild the shadow
|
|
2261
|
+
// from the current bounds so the cradle stays a circle around the button.
|
|
2262
|
+
superview?.layer.shadowPath = NativeNavigationTabbarBackgroundPath.path(in: capsule, style: tabbarStyle).cgPath
|
|
2245
2263
|
guard !buttons.isEmpty else {
|
|
2246
2264
|
return
|
|
2247
2265
|
}
|
|
@@ -2249,7 +2267,7 @@ private final class NativeNavigationFloatingTabBar: UIView {
|
|
|
2249
2267
|
if let centerIndex = centerButtonIndex(), buttons.indices.contains(centerIndex) {
|
|
2250
2268
|
let buttonDiameter = tabbarStyle.centerButtonDiameter
|
|
2251
2269
|
let centerGap = min(buttonDiameter + 4, bounds.width * 0.34)
|
|
2252
|
-
let barFrame = CGRect(x: 0, y: tabbarStyle.barTop, width: bounds.width, height: tabbarStyle.height)
|
|
2270
|
+
let barFrame = CGRect(x: 0, y: tabbarStyle.barTop, width: bounds.width, height: curveContentHeightOverride ?? tabbarStyle.height)
|
|
2253
2271
|
let leftWidth = max(0, bounds.midX - centerGap / 2)
|
|
2254
2272
|
let rightX = min(bounds.width, bounds.midX + centerGap / 2)
|
|
2255
2273
|
let centerFrame = CGRect(
|
|
@@ -2357,7 +2375,8 @@ private final class NativeNavigationFloatingTabBar: UIView {
|
|
|
2357
2375
|
centerButtonColor: tabbarStyle.centerButtonColor ?? selectedTintColor,
|
|
2358
2376
|
centerButtonIconColor: tabbarStyle.centerButtonIconColor,
|
|
2359
2377
|
badgeBackgroundColor: badgeBackgroundColor,
|
|
2360
|
-
badgeTextColor: badgeTextColor
|
|
2378
|
+
badgeTextColor: badgeTextColor,
|
|
2379
|
+
showsSelectionBackground: isCenter || tabbarStyle.shape != .curve
|
|
2361
2380
|
)
|
|
2362
2381
|
}
|
|
2363
2382
|
|
|
@@ -2398,6 +2417,8 @@ private final class NativeNavigationTabbarBackgroundView: UIView {
|
|
|
2398
2417
|
super.init(frame: frame)
|
|
2399
2418
|
isOpaque = false
|
|
2400
2419
|
backgroundColor = .clear
|
|
2420
|
+
// Default scaleToFill stretches the last bitmap when the bar widens.
|
|
2421
|
+
contentMode = .redraw
|
|
2401
2422
|
}
|
|
2402
2423
|
|
|
2403
2424
|
required init?(coder: NSCoder) {
|
|
@@ -2472,7 +2493,7 @@ private final class NativeNavigationFloatingTabButton: UIControl {
|
|
|
2472
2493
|
selectedView.backgroundColor = style.isCenter
|
|
2473
2494
|
? style.centerButtonColor
|
|
2474
2495
|
: style.selectedTint.withAlphaComponent(style.selected && !isDetachedTrailing ? 0.16 : 0)
|
|
2475
|
-
selectedView.alpha = style.isCenter || (style.selected && !isDetachedTrailing) ? 1 : 0
|
|
2496
|
+
selectedView.alpha = style.isCenter || (style.selected && style.showsSelectionBackground && !isDetachedTrailing) ? 1 : 0
|
|
2476
2497
|
|
|
2477
2498
|
layer.shadowColor = UIColor.black.cgColor
|
|
2478
2499
|
layer.shadowOpacity = style.isCenter ? 0.2 : 0
|
|
@@ -2518,8 +2539,16 @@ private final class NativeNavigationFloatingTabButton: UIControl {
|
|
|
2518
2539
|
titleLabel.frame = CGRect(x: 8, y: (bounds.height - 18) / 2, width: bounds.width - 16, height: 18)
|
|
2519
2540
|
}
|
|
2520
2541
|
} else if hasIcon && hasLabel {
|
|
2521
|
-
|
|
2522
|
-
|
|
2542
|
+
let labelHeight: CGFloat = 14
|
|
2543
|
+
let gap: CGFloat = 2
|
|
2544
|
+
let stackHeight = iconSize + gap + labelHeight
|
|
2545
|
+
// Tall curve cells sit above the home indicator. Keep the label
|
|
2546
|
+
// under the icon, not on the bezel.
|
|
2547
|
+
let stackY = bounds.height >= 72
|
|
2548
|
+
? max(6, bounds.height - 10 - stackHeight)
|
|
2549
|
+
: max(4, (bounds.height - stackHeight) / 2)
|
|
2550
|
+
imageView.frame = CGRect(x: (bounds.width - iconSize) / 2, y: stackY, width: iconSize, height: iconSize)
|
|
2551
|
+
titleLabel.frame = CGRect(x: 4, y: stackY + iconSize + gap, width: bounds.width - 8, height: labelHeight)
|
|
2523
2552
|
} else if hasIcon {
|
|
2524
2553
|
imageView.frame = CGRect(x: (bounds.width - iconSize) / 2, y: (bounds.height - iconSize) / 2, width: iconSize, height: iconSize)
|
|
2525
2554
|
titleLabel.frame = .zero
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@capgo/capacitor-native-navigation",
|
|
3
|
-
"version": "8.
|
|
3
|
+
"version": "8.4.0",
|
|
4
4
|
"description": "Capacitor plugin for native navbar, tabbar, safe-area handling, and WebView snapshot transitions.",
|
|
5
5
|
"main": "dist/plugin.cjs.js",
|
|
6
6
|
"module": "dist/esm/index.js",
|
|
@@ -37,14 +37,14 @@
|
|
|
37
37
|
"liquid-glass"
|
|
38
38
|
],
|
|
39
39
|
"scripts": {
|
|
40
|
+
"prettier": "prettier \"**/*.ts\"",
|
|
41
|
+
"eslint": "eslint",
|
|
40
42
|
"verify": "bun run verify:ios && bun run verify:android && bun run verify:web",
|
|
41
43
|
"verify:ios": "xcodebuild -scheme CapgoCapacitorNativeNavigation -destination generic/platform=iOS",
|
|
42
44
|
"verify:android": "cd android && ./gradlew clean build test && cd ..",
|
|
43
45
|
"verify:web": "bun run build",
|
|
44
46
|
"lint": "bun run eslint && bun run prettier -- --check && bun run swiftlint -- lint",
|
|
45
47
|
"fmt": "bun run eslint -- --fix && bun run prettier -- --write && bun run swiftlint -- --fix --format",
|
|
46
|
-
"eslint": "eslint . --ext .ts",
|
|
47
|
-
"prettier": "prettier-pretty-check \"**/*.{css,html,ts,js,java}\" --plugin=prettier-plugin-java",
|
|
48
48
|
"swiftlint": "node-swiftlint",
|
|
49
49
|
"docgen": "docgen --api NativeNavigationPlugin --output-readme README.md --output-json dist/docs.json",
|
|
50
50
|
"build": "bun run clean && bun run docgen && tsc && rollup -c rollup.config.mjs",
|
|
@@ -52,6 +52,7 @@
|
|
|
52
52
|
"watch": "tsc --watch",
|
|
53
53
|
"prepublishOnly": "bun run build",
|
|
54
54
|
"check:wiring": "node scripts/check-capacitor-plugin-wiring.mjs",
|
|
55
|
+
"check:cap9-deprecated": "node scripts/check-cap9-deprecated.mjs",
|
|
55
56
|
"demo:readme": "bun scripts/generate-readme-demos.mjs",
|
|
56
57
|
"example:build": "bun run build && cd example-app && bun install --frozen-lockfile && bun run build",
|
|
57
58
|
"example:sync": "bun run example:build && cd example-app && bunx cap sync",
|
|
@@ -61,25 +62,25 @@
|
|
|
61
62
|
"changelog:ai": "node scripts/generate-ai-changelog.mjs"
|
|
62
63
|
},
|
|
63
64
|
"devDependencies": {
|
|
64
|
-
"@capacitor/android": "^8.
|
|
65
|
-
"@capacitor/cli": "^8.
|
|
66
|
-
"@capacitor/core": "^8.
|
|
65
|
+
"@capacitor/android": "^8.5.2",
|
|
66
|
+
"@capacitor/cli": "^8.5.2",
|
|
67
|
+
"@capacitor/core": "^8.5.2",
|
|
67
68
|
"@capacitor/docgen": "^0.3.1",
|
|
68
|
-
"@capacitor/ios": "^8.
|
|
69
|
-
"@ionic/eslint-config": "^0.
|
|
69
|
+
"@capacitor/ios": "^8.5.2",
|
|
70
|
+
"@ionic/eslint-config": "^0.5.0",
|
|
70
71
|
"@ionic/prettier-config": "^4.0.0",
|
|
71
72
|
"@ionic/swiftlint-config": "^2.0.0",
|
|
72
|
-
"@types/node": "^24.
|
|
73
|
-
"eslint": "^
|
|
73
|
+
"@types/node": "^24.13.6",
|
|
74
|
+
"eslint": "^10.11.0",
|
|
74
75
|
"eslint-plugin-import": "^2.31.0",
|
|
75
76
|
"husky": "^9.1.7",
|
|
76
|
-
"prettier": "^3.
|
|
77
|
+
"prettier": "^3.9.8",
|
|
78
|
+
"prettier-plugin-java": "^2.10.4",
|
|
77
79
|
"prettier-pretty-check": "^0.2.0",
|
|
78
|
-
"prettier-plugin-java": "^2.7.7",
|
|
79
80
|
"rimraf": "^6.1.0",
|
|
80
|
-
"rollup": "^4.
|
|
81
|
+
"rollup": "^4.63.4",
|
|
81
82
|
"swiftlint": "^2.0.0",
|
|
82
|
-
"typescript": "
|
|
83
|
+
"typescript": "6"
|
|
83
84
|
},
|
|
84
85
|
"peerDependencies": {
|
|
85
86
|
"@capacitor/core": ">=8.0.0"
|