@symbiote-native/blur 0.0.0 → 0.1.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 CHANGED
@@ -4,17 +4,72 @@
4
4
  [SymbioteNative](../../README.md) adapter: React, Vue, Svelte, Solid and Angular. `BlurView` blurs
5
5
  what is behind it, `BlurTargetView` marks the content Android blurs.
6
6
 
7
+ Built the same way as [`@symbiote-native/clipboard`](../clipboard)'s `ClipboardPasteButton`, an
8
+ `expo-modules-core` native view reached through `requireNativeViewManager` (see the
9
+ `symbiote-expo-native-module` project skill: why `expo-modules-core` is depended on directly and never
10
+ the `expo` meta-package, why the upstream JS is hand-ported into `core/`, and how autolinking finds the
11
+ native module). One render function in `core/` returns a descriptor and every adapter only turns it into
12
+ its own element.
13
+
7
14
  ## Install
8
15
 
16
+ **New app:**
17
+
18
+ ```bash
19
+ npx @symbiote-native/cli new my-app --blur
20
+ ```
21
+
22
+ **Existing SymbioteNative app:**
23
+
9
24
  ```bash
10
- npx @symbiote-native/cli new my-app --blur # new app
11
- npx @symbiote-native/cli add --blur # existing app
25
+ npx @symbiote-native/cli add --blur
26
+ ```
27
+
28
+ Either way: installs `@symbiote-native/blur` and wires the native autolinking automatically,
29
+ see [`@symbiote-native/cli`](../cli).
30
+
31
+ <details>
32
+ <summary>Manual install (no CLI - installing and wiring native autolinking by hand)</summary>
33
+
34
+ ```bash
35
+ npm install @symbiote-native/blur
36
+ ```
37
+
38
+ Depends on `expo-blur` and `expo-modules-core` directly (regular dependencies, pinned to exact
39
+ versions, since this package's `core/` is hand-ported against one specific native API shape).
40
+ Never install `expo-blur` yourself, and never add the `expo` package to this project: it bundles
41
+ its own Metro/Babel pipeline that conflicts with this project's own.
42
+
43
+ ### Required one-time step: native autolinking wiring
44
+
45
+ `expo-blur`'s native code is discovered by `expo-modules-autolinking`, not by RN's own
46
+ `react-native.config.cjs` mechanism. Wire it into the native host app **once**, it covers this package
47
+ and every other `expo-modules-core` package with zero further changes. The steps and the
48
+ mechanics behind them are in the `symbiote-expo-native-module` skill and in
49
+ [`@symbiote-native/network`](../network)'s README; the reference app is `examples/expo-react`.
50
+
51
+ </details>
52
+
53
+ ## Shape
54
+
12
55
  ```
56
+ src/core/ blur.ts - props, the blurMethod warning, watchBlurTarget, renderBlurView
57
+ (a View carrying style over an absolute-fill native blur, both platforms) and
58
+ renderBlurTargetView (native on Android, a plain View on iOS).
59
+ src/react/ @symbiote-native/blur/react - BlurView, BlurTargetView
60
+ src/vue/ @symbiote-native/blur/vue - BlurView, BlurTargetView
61
+ src/svelte/ @symbiote-native/blur/svelte - BlurView, BlurTargetView (.svelte)
62
+ src/solid/ @symbiote-native/blur/solid - BlurView, BlurTargetView
63
+ src/angular/ @symbiote-native/blur/angular - BlurView, BlurTargetView
64
+ ```
65
+
66
+ `blurTarget` is each adapter's own reference to a `BlurTargetView`. The package resolves it to a node
67
+ and waits for the commit (`watchBlurTarget`) before telling native, so a Vue or Svelte render order cannot
68
+ hand native a tag that does not exist yet.
13
69
 
14
- Manual: `npm install @symbiote-native/blur`, then wire `expo-modules-autolinking` once per app.
15
- Never install `expo-blur` or the `expo` meta-package yourself.
70
+ ## Use it
16
71
 
17
- ## Usage
72
+ ### React
18
73
 
19
74
  ```tsx
20
75
  import { BlurTargetView, BlurView } from '@symbiote-native/blur/react';
@@ -29,24 +84,135 @@ const target = useRef<IHostInstance>(null);
29
84
  </BlurView>;
30
85
  ```
31
86
 
32
- Same props on every adapter: `tint`, `intensity`, `blurMethod`, `blurReductionFactor` and the View
33
- surface. `blurTarget` takes each framework's own reference to the `BlurTargetView`:
87
+ ### Vue
88
+
89
+ ```vue
90
+ <script setup lang="ts">
91
+ import { ref } from '@vue/runtime-core';
92
+ import { BlurTargetView, BlurView } from '@symbiote-native/blur/vue';
93
+
94
+ const target = ref(null);
95
+ </script>
96
+
97
+ <template>
98
+ <BlurTargetView ref="target"><image :source="photo" /></BlurTargetView>
99
+ <BlurView :blur-target="target" blur-method="dimezisBlurView" tint="light" :intensity="60">
100
+ <text>Over the blur</text>
101
+ </BlurView>
102
+ </template>
103
+ ```
104
+
105
+ ### Angular
106
+
107
+ ```ts
108
+ import { BlurTargetView, BlurView } from '@symbiote-native/blur/angular';
109
+
110
+ @Component({
111
+ imports: [BlurTargetView, BlurView],
112
+ template: `
113
+ <BlurTargetView #target><image [source]="photo" /></BlurTargetView>
114
+ <BlurView [blurTarget]="target" blurMethod="dimezisBlurView" tint="light" [intensity]="60">
115
+ <text>Over the blur</text>
116
+ </BlurView>
117
+ `,
118
+ })
119
+ export class Card {}
120
+ ```
121
+
122
+ ### Svelte
123
+
124
+ ```svelte
125
+ <script lang="ts">
126
+ import { BlurTargetView, BlurView } from '@symbiote-native/blur/svelte';
127
+
128
+ let target = $state<unknown>();
129
+ </script>
130
+
131
+ <BlurTargetView bind:ref={target}><image source={photo} /></BlurTargetView>
132
+ <BlurView blurTarget={target} blurMethod="dimezisBlurView" tint="light" intensity={60}>
133
+ <text>Over the blur</text>
134
+ </BlurView>
135
+ ```
136
+
137
+ ### Solid
138
+
139
+ ```tsx
140
+ import { createSignal } from 'solid-js';
141
+ import { BlurTargetView, BlurView } from '@symbiote-native/blur/solid';
142
+
143
+ const [target, setTarget] = createSignal<IHostInstance>();
144
+
145
+ <BlurTargetView ref={setTarget}><image source={photo} /></BlurTargetView>;
146
+ <BlurView blurTarget={target()} blurMethod="dimezisBlurView" tint="light" intensity={60}>
147
+ <text>Over the blur</text>
148
+ </BlurView>;
149
+ ```
150
+
151
+ ## API
152
+
153
+ ```ts
154
+ <BlurView
155
+ tint?={'default' | 'light' | 'dark' | 'extraLight' | 'regular' | system materials}
156
+ intensity?={number} // 1..100, default 50
157
+ blurMethod?={'none' | 'dimezisBlurView' | 'dimezisBlurViewSdk31Plus'} // Android, default 'none'
158
+ blurReductionFactor?={number} // Android, divides the intensity, default 4
159
+ blurTarget?={BlurTargetView ref} // Android, needed by the dimezis methods
160
+ style? testID? nativeID? onLayout? ...View accessibility and responder props
161
+ />
162
+ <BlurTargetView ref> // native on Android, a plain View on iOS
163
+ ```
164
+
165
+ Ported from upstream's `BlurView.tsx` and `BlurTargetView.tsx`.
166
+
167
+ ## Notes
168
+
169
+ - **Android blurs nothing until you ask for it.** `blurMethod` defaults to `none`, which is only a
170
+ translucent view. Pick `dimezisBlurView` (or `dimezisBlurViewSdk31Plus`) and pass a `blurTarget`.
171
+ Without a target the package warns and falls back to `none`.
172
+ - **One `BlurTargetView` can serve many `BlurView`s**, as long as they all sit inside its bounds.
173
+ That is cheaper than one target per blur.
174
+ - **The blur view must be above what it blurs.** Place it after the content in the tree (or give it
175
+ a higher `zIndex`), not beside or under it.
176
+ - **Every iOS tint adds a translucent layer.** Each `tint` is a system material that sits over the
177
+ blur, and iOS exposes no plain blur radius. Android and the fallback can go without a tint.
178
+ - **`blurReductionFactor` is Android only.** It divides the intensity to bring the Android blur
179
+ closer to iOS.
180
+ - **Without the native view you get a plain `View`.** The package logs
181
+ `BlurView is not available on this platform` and renders your children without a blur.
182
+ - **Not ported.** The web variant (`BlurView.web.tsx`, `getBackgroundColor`) and the Reanimated `getAnimatableRef` hook. Angular templates spell the Android target tag statically, so an `__expo_app_identifier__` suffix makes it warn instead of render.
34
183
 
35
- | Adapter | Target reference |
36
- | ------- | -------------------------------------- |
37
- | React | `ref` object on `BlurTargetView` |
38
- | Vue | template ref on `BlurTargetView` |
39
- | Svelte | `bind:ref` on `BlurTargetView` |
40
- | Solid | `ref={setTarget}` signal value |
41
- | Angular | template reference variable `#target` |
184
+ ## Common questions
42
185
 
43
- ## Layout
186
+ - **Nothing is blurred on Android.** `blurMethod` defaults to `none`. Wrap the content in a
187
+ `BlurTargetView`, pass its ref as `blurTarget` and set `blurMethod="dimezisBlurView"`.
188
+ - **The blur does not follow a scrolling list.** Render the blur view after the content, or give it
189
+ a higher `zIndex`. Beside or below the list it shows nothing.
190
+ - **Inside a `Modal` on Android.** Put the `Modal` inside the `BlurTargetView` and point the
191
+ `BlurView` in the `Modal` at that target. Not demoed in the canary apps.
192
+ - **Corners are not rounded.** Put `overflow: 'hidden'` next to the `borderRadius`.
193
+ - **Missing on some iPhones.** Settings > Accessibility > Display & Text Size > Reduce Transparency
194
+ turns blur off. Render a solid fallback.
195
+ - **No tint.** Not possible on iOS, every system blur style adds a tint layer.
196
+ - **Animating `intensity`.** It is a plain prop, drive it from state, a signal or a rune.
197
+ - **Android build cannot find `BlurView`.** The library comes from JitPack, which React Native's
198
+ Gradle plugin adds by default. It fails if `react.includeJitpackRepository=false`.
44
199
 
45
- A transparent `View` holds the style and children, with the native blur filling it behind them.
46
- `BlurTargetView` is native on Android and a plain `View` on iOS, where blur needs no target.
200
+ Sources: [Expo docs: BlurView](https://docs.expo.dev/versions/latest/sdk/blur-view/),
201
+ [expo/expo#6613](https://github.com/expo/expo/issues/6613),
202
+ [expo/expo#44165](https://github.com/expo/expo/issues/44165),
203
+ [expo/expo#18615](https://github.com/expo/expo/issues/18615),
204
+ [expo/expo#34737](https://github.com/expo/expo/issues/34737),
205
+ [expo/expo#49240](https://github.com/expo/expo/issues/49240),
206
+ [expo/expo#32781](https://github.com/expo/expo/issues/32781),
207
+ [expo/expo#34141](https://github.com/expo/expo/issues/34141).
47
208
 
48
- ## Not ported
209
+ ## Test it
49
210
 
50
- The web variant (`BlurView.web.tsx`, `getBackgroundColor`) and the Reanimated `getAnimatableRef` hook.
51
- Angular templates spell the Android target tag statically, so an `__expo_app_identifier__` suffix makes
52
- it warn instead of render.
211
+ No device is needed for the logic. The core tests (`src/core/*.test.ts`) replace `expo-modules-core`
212
+ (`requireNativeViewManager`, `Platform`) and assert the descriptor a render function returns. The
213
+ adapter tests (`src/{react,vue,solid,angular}/**/*.test.*`, `vitest`) render the real component over the
214
+ recording Fabric with an injected view config and assert the committed payload, and Svelte's
215
+ `*.smoke.test.ts` compile the `.svelte` files and mount them. Painting itself is verified on a device in
216
+ the six `examples/expo-*` canary apps (`examples/expo-react`, `examples/expo-vue-sfc`,
217
+ `examples/expo-vue-tsx`, `examples/expo-svelte`, `examples/expo-solid`, `examples/expo-angular`), see the
218
+ parent [README](../../README.md).
@@ -47,7 +47,10 @@ let BlurTargetView = (() => {
47
47
  schemas: [NO_ERRORS_SCHEMA],
48
48
  changeDetection: ChangeDetectionStrategy.OnPush,
49
49
  // Имя тега это нативное имя view, его нельзя собрать динамически
50
- template: `<ViewManagerAdapter_ExpoBlur_ExpoBlurTargetView #host [symbioteHostProps]="hostProps">
50
+ template: `<ViewManagerAdapter_ExpoBlur_ExpoBlurTargetView
51
+ #host
52
+ [symbioteHostProps]="hostProps"
53
+ >
51
54
  <ng-content />
52
55
  </ViewManagerAdapter_ExpoBlur_ExpoBlurTargetView>`,
53
56
  })];
@@ -43,7 +43,9 @@ let BlurView = (() => {
43
43
  imports: [DescriptorHost],
44
44
  changeDetection: ChangeDetectionStrategy.OnPush,
45
45
  template: `@if (descriptor; as node) {
46
- <symbiote-descriptor-host [node]="node"><ng-content /></symbiote-descriptor-host>
46
+ <symbiote-descriptor-host [node]="node"
47
+ ><ng-content
48
+ /></symbiote-descriptor-host>
47
49
  }`,
48
50
  })];
49
51
  let _classDescriptor;
@@ -1,4 +1,4 @@
1
- import { createEffect, createSignal, onCleanup, onMount, splitProps } from 'solid-js';
1
+ import { createEffect, createSignal, onCleanup, onMount, splitProps, } from 'solid-js';
2
2
  import { defineDescriptorComponent, descriptorToSolid, } from '@symbiote-native/solid';
3
3
  import { renderBlurTargetView, renderBlurView, warnBlurProps, watchBlurTarget, } from '../core/index.js';
4
4
  /** Solid twin of `expo-blur`'s `BlurView`, children paint over the blur */
@@ -16,7 +16,10 @@ export class BlurTargetView extends BlurTargetViewBase {
16
16
  return this.hostRef.nativeElement;
17
17
  }
18
18
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: BlurTargetView, deps: [], target: i0.ɵɵFactoryTarget.Component });
19
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "22.0.8", type: BlurTargetView, isStandalone: true, selector: "BlurTargetView", viewQueries: [{ propertyName: "hostRef", first: true, predicate: ["host"], descendants: true, read: ElementRef, static: true }], usesInheritance: true, ngImport: i0, template: `<ViewManagerAdapter_ExpoBlur_ExpoBlurTargetView #host [symbioteHostProps]="hostProps">
19
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "22.0.8", type: BlurTargetView, isStandalone: true, selector: "BlurTargetView", viewQueries: [{ propertyName: "hostRef", first: true, predicate: ["host"], descendants: true, read: ElementRef, static: true }], usesInheritance: true, ngImport: i0, template: `<ViewManagerAdapter_ExpoBlur_ExpoBlurTargetView
20
+ #host
21
+ [symbioteHostProps]="hostProps"
22
+ >
20
23
  <ng-content />
21
24
  </ViewManagerAdapter_ExpoBlur_ExpoBlurTargetView>`, isInline: true, dependencies: [{ kind: "directive", type: SymbioteHostPropsDirective, selector: "[symbioteHostProps]", inputs: ["symbioteHostProps"], exportAs: ["symbioteHost"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
22
25
  }
@@ -29,7 +32,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImpor
29
32
  schemas: [NO_ERRORS_SCHEMA],
30
33
  changeDetection: ChangeDetectionStrategy.OnPush,
31
34
  // Имя тега это нативное имя view, его нельзя собрать динамически
32
- template: `<ViewManagerAdapter_ExpoBlur_ExpoBlurTargetView #host [symbioteHostProps]="hostProps">
35
+ template: `<ViewManagerAdapter_ExpoBlur_ExpoBlurTargetView
36
+ #host
37
+ [symbioteHostProps]="hostProps"
38
+ >
33
39
  <ng-content />
34
40
  </ViewManagerAdapter_ExpoBlur_ExpoBlurTargetView>`,
35
41
  }]
@@ -1 +1 @@
1
- {"version":3,"file":"index.android.js","sourceRoot":"","sources":["../../../src/angular/blur-target-view/index.android.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,uBAAuB,EACvB,SAAS,EACT,UAAU,EACV,gBAAgB,EAChB,SAAS,GACV,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,uBAAuB,EAAE,MAAM,yBAAyB,CAAC;AAClE,OAAO,EAAE,0BAA0B,EAAE,MAAM,0BAA0B,CAAC;AACtE,OAAO,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAC9C,OAAO,EAAE,kBAAkB,EAAE,MAAM,UAAU,CAAC;;AAE9C,MAAM,YAAY,GAAG,gDAAgD,CAAC;AAEtE,wFAAwF;AAYxF,MAAM,OAAO,cAAe,SAAQ,kBAAkB;IAEnC,OAAO,CAAuB;IAE/C;QACE,KAAK,EAAE,CAAC;QACR,uBAAuB,CAAC,YAAY,EAAE,gBAAgB,EAAE,oBAAoB,CAAC,CAAC;IAChF,CAAC;IAED,IAAI,aAAa;QACf,OAAO,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC;IACpC,CAAC;uGAXU,cAAc;2FAAd,cAAc,sJACE,UAAU,kEAL3B;;oDAEwC,4DANxC,0BAA0B;;2FAQzB,cAAc;kBAX1B,SAAS;mBAAC;oBACT,QAAQ,EAAE,gBAAgB;oBAC1B,UAAU,EAAE,IAAI;oBAChB,OAAO,EAAE,CAAC,0BAA0B,CAAC;oBACrC,OAAO,EAAE,CAAC,gBAAgB,CAAC;oBAC3B,eAAe,EAAE,uBAAuB,CAAC,MAAM;oBAC/C,iEAAiE;oBACjE,QAAQ,EAAE;;oDAEwC;iBACnD;;sBAEE,SAAS;uBAAC,MAAM,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,EAAE,IAAI,EAAE"}
1
+ {"version":3,"file":"index.android.js","sourceRoot":"","sources":["../../../src/angular/blur-target-view/index.android.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,uBAAuB,EACvB,SAAS,EACT,UAAU,EACV,gBAAgB,EAChB,SAAS,GACV,MAAM,eAAe,CAAC;AACvB,OAAO,EAAE,uBAAuB,EAAE,MAAM,yBAAyB,CAAC;AAClE,OAAO,EAAE,0BAA0B,EAAE,MAAM,0BAA0B,CAAC;AACtE,OAAO,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAC9C,OAAO,EAAE,kBAAkB,EAAE,MAAM,UAAU,CAAC;;AAE9C,MAAM,YAAY,GAAG,gDAAgD,CAAC;AAEtE,wFAAwF;AAexF,MAAM,OAAO,cAAe,SAAQ,kBAAkB;IAEnC,OAAO,CAAuB;IAE/C;QACE,KAAK,EAAE,CAAC;QACR,uBAAuB,CACrB,YAAY,EACZ,gBAAgB,EAChB,oBAAoB,CACrB,CAAC;IACJ,CAAC;IAED,IAAI,aAAa;QACf,OAAO,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC;IACpC,CAAC;uGAfU,cAAc;2FAAd,cAAc,sJACE,UAAU,kEAR3B;;;;;oDAKwC,4DATxC,0BAA0B;;2FAWzB,cAAc;kBAd1B,SAAS;mBAAC;oBACT,QAAQ,EAAE,gBAAgB;oBAC1B,UAAU,EAAE,IAAI;oBAChB,OAAO,EAAE,CAAC,0BAA0B,CAAC;oBACrC,OAAO,EAAE,CAAC,gBAAgB,CAAC;oBAC3B,eAAe,EAAE,uBAAuB,CAAC,MAAM;oBAC/C,iEAAiE;oBACjE,QAAQ,EAAE;;;;;oDAKwC;iBACnD;;sBAEE,SAAS;uBAAC,MAAM,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,MAAM,EAAE,IAAI,EAAE"}
@@ -1 +1 @@
1
- {"version":3,"file":"shared.js","sourceRoot":"","sources":["../../../src/angular/blur-target-view/shared.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AACjD,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAE1D,OAAO,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAC;;AAElD,gEAAgE;AAEhE,MAAM,OAAgB,kBAAmB,SAAQ,cAAc;IAI1C,SAAS,GAAG,EAA2D,CAAC;IAExE,UAAU,CAAC,KAAa;QACzC,OAAO,oBAAoB,CAAC,KAAK,CAAC,CAAC;IACrC,CAAC;IAED,IAAI,SAAS;QACX,OAAO,IAAI,CAAC,UAAU,EAAE,KAAK,IAAI,EAAE,CAAC;IACtC,CAAC;uGAZmB,kBAAkB;2FAAlB,kBAAkB;;2FAAlB,kBAAkB;kBADvC,SAAS"}
1
+ {"version":3,"file":"shared.js","sourceRoot":"","sources":["../../../src/angular/blur-target-view/shared.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,eAAe,CAAC;AACjD,OAAO,EAAE,cAAc,EAAE,MAAM,0BAA0B,CAAC;AAE1D,OAAO,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAC;;AAElD,gEAAgE;AAEhE,MAAM,OAAgB,kBAAmB,SAAQ,cAAc;IAI1C,SAAS,GAC1B,EAA2D,CAAC;IAE3C,UAAU,CAAC,KAAa;QACzC,OAAO,oBAAoB,CAAC,KAAK,CAAC,CAAC;IACrC,CAAC;IAED,IAAI,SAAS;QACX,OAAO,IAAI,CAAC,UAAU,EAAE,KAAK,IAAI,EAAE,CAAC;IACtC,CAAC;uGAbmB,kBAAkB;2FAAlB,kBAAkB;;2FAAlB,kBAAkB;kBADvC,SAAS"}
@@ -47,7 +47,9 @@ export class BlurView extends NativeViewBase {
47
47
  }
48
48
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: BlurView, deps: null, target: i0.ɵɵFactoryTarget.Component });
49
49
  static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "22.0.8", type: BlurView, isStandalone: true, selector: "BlurView", inputs: { tint: "tint", intensity: "intensity", blurReductionFactor: "blurReductionFactor", experimentalBlurMethod: "experimentalBlurMethod", blurMethod: "blurMethod", blurTarget: "blurTarget" }, usesInheritance: true, usesOnChanges: true, ngImport: i0, template: `@if (descriptor; as node) {
50
- <symbiote-descriptor-host [node]="node"><ng-content /></symbiote-descriptor-host>
50
+ <symbiote-descriptor-host [node]="node"
51
+ ><ng-content
52
+ /></symbiote-descriptor-host>
51
53
  }`, isInline: true, dependencies: [{ kind: "component", type: DescriptorHost, selector: "symbiote-descriptor-host", inputs: ["node"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
52
54
  }
53
55
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImport: i0, type: BlurView, decorators: [{
@@ -58,7 +60,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "22.0.8", ngImpor
58
60
  imports: [DescriptorHost],
59
61
  changeDetection: ChangeDetectionStrategy.OnPush,
60
62
  template: `@if (descriptor; as node) {
61
- <symbiote-descriptor-host [node]="node"><ng-content /></symbiote-descriptor-host>
63
+ <symbiote-descriptor-host [node]="node"
64
+ ><ng-content
65
+ /></symbiote-descriptor-host>
62
66
  }`,
63
67
  }]
64
68
  }], propDecorators: { tint: [{
@@ -1 +1 @@
1
- {"version":3,"file":"blur-view.js","sourceRoot":"","sources":["../../src/angular/blur-view.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,uBAAuB,EACvB,SAAS,EACT,KAAK,GAKN,MAAM,eAAe,CAAC;AACvB,OAAO,EACL,cAAc,EACd,cAAc,EACd,UAAU,GACX,MAAM,0BAA0B,CAAC;AAElC,OAAO,EAAE,cAAc,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;;AAGzE,2FAA2F;AAU3F,MAAM,OAAO,QACX,SAAQ,cAAc;IAGb,IAAI,CAA0B;IAC9B,SAAS,CAA+B;IACxC,mBAAmB,CAAyC;IAC5D,sBAAsB,CAA4C;IAClE,UAAU,CAAgC;IACnD,4EAA4E;IACnE,UAAU,CAAW;IAEF,SAAS,GAAG;QACtC,MAAM;QACN,WAAW;QACX,qBAAqB;QACrB,wBAAwB;QACxB,YAAY;KACkC,CAAC;IAEzC,YAAY,CAAqB;IACjC,WAAW,GAAG,GAAS,EAAE,GAAE,CAAC,CAAC;IAC7B,WAAW,GAAG,KAAK,CAAC;IAET,UAAU,CAAC,KAAa;QACzC,OAAO,cAAc,CAAC,KAAK,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;IAClD,CAAC;IAED,kFAAkF;IAClF,eAAe;QACb,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;QACxB,IAAI,CAAC,WAAW,EAAE,CAAC;QACnB,aAAa,CACX,MAAM,CAAC,WAAW,CAChB,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,CAC5D,EACD,IAAI,CAAC,UAAU,KAAK,SAAS,CAC9B,CAAC;IACJ,CAAC;IAEQ,WAAW,CAAC,OAAsB;QACzC,KAAK,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;QAC3B,IAAI,IAAI,CAAC,WAAW,IAAI,YAAY,IAAI,OAAO;YAAE,IAAI,CAAC,WAAW,EAAE,CAAC;IACtE,CAAC;IAEkB,WAAW;QAC5B,IAAI,CAAC,WAAW,EAAE,CAAC;IACrB,CAAC;IAEO,WAAW;QACjB,IAAI,CAAC,WAAW,EAAE,CAAC;QACnB,IAAI,CAAC,WAAW,GAAG,eAAe,CAAC,UAAU,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,EAAE,CAAC,EAAE;YACnE,IAAI,CAAC,YAAY,GAAG,EAAE,CAAC;YACvB,IAAI,CAAC,cAAc,CAAC,YAAY,EAAE,CAAC;QACrC,CAAC,CAAC,CAAC;IACL,CAAC;uGAvDU,QAAQ;2FAAR,QAAQ,oTAJT;;IAER,4DAJQ,cAAc;;2FAMb,QAAQ;kBATpB,SAAS;mBAAC;oBACT,QAAQ,EAAE,UAAU;oBACpB,UAAU,EAAE,IAAI;oBAChB,OAAO,EAAE,CAAC,cAAc,CAAC;oBACzB,eAAe,EAAE,uBAAuB,CAAC,MAAM;oBAC/C,QAAQ,EAAE;;IAER;iBACH;;sBAKE,KAAK;;sBACL,KAAK;;sBACL,KAAK;;sBACL,KAAK;;sBACL,KAAK;;sBAEL,KAAK"}
1
+ {"version":3,"file":"blur-view.js","sourceRoot":"","sources":["../../src/angular/blur-view.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,uBAAuB,EACvB,SAAS,EACT,KAAK,GAKN,MAAM,eAAe,CAAC;AACvB,OAAO,EACL,cAAc,EACd,cAAc,EACd,UAAU,GACX,MAAM,0BAA0B,CAAC;AAElC,OAAO,EAAE,cAAc,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;;AAGzE,2FAA2F;AAY3F,MAAM,OAAO,QACX,SAAQ,cAAc;IAGb,IAAI,CAA0B;IAC9B,SAAS,CAA+B;IACxC,mBAAmB,CAAyC;IAC5D,sBAAsB,CAA4C;IAClE,UAAU,CAAgC;IACnD,4EAA4E;IACnE,UAAU,CAAW;IAEF,SAAS,GAAG;QACtC,MAAM;QACN,WAAW;QACX,qBAAqB;QACrB,wBAAwB;QACxB,YAAY;KACkC,CAAC;IAEzC,YAAY,CAAqB;IACjC,WAAW,GAAG,GAAS,EAAE,GAAE,CAAC,CAAC;IAC7B,WAAW,GAAG,KAAK,CAAC;IAET,UAAU,CAAC,KAAa;QACzC,OAAO,cAAc,CAAC,KAAK,EAAE,IAAI,CAAC,YAAY,CAAC,CAAC;IAClD,CAAC;IAED,kFAAkF;IAClF,eAAe;QACb,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC;QACxB,IAAI,CAAC,WAAW,EAAE,CAAC;QACnB,aAAa,CACX,MAAM,CAAC,WAAW,CAChB,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,CAAC,CAC5D,EACD,IAAI,CAAC,UAAU,KAAK,SAAS,CAC9B,CAAC;IACJ,CAAC;IAEQ,WAAW,CAAC,OAAsB;QACzC,KAAK,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;QAC3B,IAAI,IAAI,CAAC,WAAW,IAAI,YAAY,IAAI,OAAO;YAAE,IAAI,CAAC,WAAW,EAAE,CAAC;IACtE,CAAC;IAEkB,WAAW;QAC5B,IAAI,CAAC,WAAW,EAAE,CAAC;IACrB,CAAC;IAEO,WAAW;QACjB,IAAI,CAAC,WAAW,EAAE,CAAC;QACnB,IAAI,CAAC,WAAW,GAAG,eAAe,CAAC,UAAU,CAAC,IAAI,CAAC,UAAU,CAAC,EAAE,EAAE,CAAC,EAAE;YACnE,IAAI,CAAC,YAAY,GAAG,EAAE,CAAC;YACvB,IAAI,CAAC,cAAc,CAAC,YAAY,EAAE,CAAC;QACrC,CAAC,CAAC,CAAC;IACL,CAAC;uGAvDU,QAAQ;2FAAR,QAAQ,oTANT;;;;IAIR,4DANQ,cAAc;;2FAQb,QAAQ;kBAXpB,SAAS;mBAAC;oBACT,QAAQ,EAAE,UAAU;oBACpB,UAAU,EAAE,IAAI;oBAChB,OAAO,EAAE,CAAC,cAAc,CAAC;oBACzB,eAAe,EAAE,uBAAuB,CAAC,MAAM;oBAC/C,QAAQ,EAAE;;;;IAIR;iBACH;;sBAKE,KAAK;;sBACL,KAAK;;sBACL,KAAK;;sBACL,KAAK;;sBACL,KAAK;;sBAEL,KAAK"}
@@ -1 +1 @@
1
- {"version":3,"file":"blur.js","sourceRoot":"","sources":["../../src/core/blur.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"blur.js","sourceRoot":"","sources":["../../src/core/blur.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@symbiote-native/blur",
3
- "version": "0.0.0",
3
+ "version": "0.1.0",
4
4
  "description": "expo-blur wrapped for SymbioteNative — one framework-agnostic core, built once and reachable from the React, Vue, Svelte, Solid, and Angular adapters. A native view that blurs the content behind it, plus the Android blur target.",
5
5
  "license": "MIT",
6
6
  "repository": {
@@ -68,7 +68,7 @@
68
68
  "dependencies": {
69
69
  "expo-blur": "57.0.3",
70
70
  "expo-modules-core": "57.0.20",
71
- "@symbiote-native/components": "3.1.4"
71
+ "@symbiote-native/components": "3.2.0"
72
72
  },
73
73
  "peerDependencies": {
74
74
  "@angular/core": ">=20",
@@ -78,12 +78,12 @@
78
78
  "solid-js": ">=1.9.0",
79
79
  "svelte": ">=5.56.0",
80
80
  "vue": ">=3.5.0",
81
- "@symbiote-native/angular": "^3.2.0",
82
- "@symbiote-native/engine": "^1.5.0",
83
- "@symbiote-native/svelte": "^3.1.0",
84
- "@symbiote-native/react": "^3.2.0",
85
- "@symbiote-native/solid": "^3.1.0",
86
- "@symbiote-native/vue": "^3.2.0"
81
+ "@symbiote-native/angular": "^3.3.0",
82
+ "@symbiote-native/engine": "^1.6.0",
83
+ "@symbiote-native/react": "^3.3.0",
84
+ "@symbiote-native/solid": "^3.2.0",
85
+ "@symbiote-native/svelte": "^3.2.0",
86
+ "@symbiote-native/vue": "^3.3.0"
87
87
  },
88
88
  "peerDependenciesMeta": {
89
89
  "@symbiote-native/angular": {
@@ -131,13 +131,13 @@
131
131
  "solid-js": "^1.9.14",
132
132
  "svelte": "^5.56.0",
133
133
  "typescript": "~6.0.0",
134
- "@symbiote-native/angular": "3.2.0",
135
- "@symbiote-native/engine": "1.5.0",
136
- "@symbiote-native/test-utils": "0.4.6",
137
- "@symbiote-native/vue": "3.2.0",
138
- "@symbiote-native/react": "3.2.0",
139
- "@symbiote-native/svelte": "3.1.0",
140
- "@symbiote-native/solid": "3.1.0"
134
+ "@symbiote-native/angular": "3.3.0",
135
+ "@symbiote-native/engine": "1.6.0",
136
+ "@symbiote-native/react": "3.3.0",
137
+ "@symbiote-native/solid": "3.2.0",
138
+ "@symbiote-native/svelte": "3.2.0",
139
+ "@symbiote-native/test-utils": "0.4.7",
140
+ "@symbiote-native/vue": "3.3.0"
141
141
  },
142
142
  "scripts": {
143
143
  "typecheck": "tsc --build",
@@ -20,7 +20,10 @@ const TEMPLATE_TAG = 'ViewManagerAdapter_ExpoBlur_ExpoBlurTargetView';
20
20
  schemas: [NO_ERRORS_SCHEMA],
21
21
  changeDetection: ChangeDetectionStrategy.OnPush,
22
22
  // Имя тега это нативное имя view, его нельзя собрать динамически
23
- template: `<ViewManagerAdapter_ExpoBlur_ExpoBlurTargetView #host [symbioteHostProps]="hostProps">
23
+ template: `<ViewManagerAdapter_ExpoBlur_ExpoBlurTargetView
24
+ #host
25
+ [symbioteHostProps]="hostProps"
26
+ >
24
27
  <ng-content />
25
28
  </ViewManagerAdapter_ExpoBlur_ExpoBlurTargetView>`,
26
29
  })
@@ -30,7 +33,11 @@ export class BlurTargetView extends BlurTargetViewBase {
30
33
 
31
34
  constructor() {
32
35
  super();
33
- warnIfViewNameIsDynamic(TEMPLATE_TAG, BLUR_MODULE_NAME, 'ExpoBlurTargetView');
36
+ warnIfViewNameIsDynamic(
37
+ TEMPLATE_TAG,
38
+ BLUR_MODULE_NAME,
39
+ 'ExpoBlurTargetView',
40
+ );
34
41
  }
35
42
 
36
43
  get nativeElement(): unknown {
@@ -9,7 +9,8 @@ export abstract class BlurTargetViewBase extends NativeViewBase {
9
9
  /** Нужен свойству `blurTarget` у `BlurView`, чтобы найти host-узел */
10
10
  abstract readonly nativeElement: unknown;
11
11
 
12
- protected readonly propNames = [] as const satisfies readonly (keyof BlurTargetViewBase)[];
12
+ protected readonly propNames =
13
+ [] as const satisfies readonly (keyof BlurTargetViewBase)[];
13
14
 
14
15
  protected override renderView(props: object): IDescriptor {
15
16
  return renderBlurTargetView(props);
@@ -23,7 +23,9 @@ import type { IBlurViewProps } from '../core';
23
23
  imports: [DescriptorHost],
24
24
  changeDetection: ChangeDetectionStrategy.OnPush,
25
25
  template: `@if (descriptor; as node) {
26
- <symbiote-descriptor-host [node]="node"><ng-content /></symbiote-descriptor-host>
26
+ <symbiote-descriptor-host [node]="node"
27
+ ><ng-content
28
+ /></symbiote-descriptor-host>
27
29
  }`,
28
30
  })
29
31
  export class BlurView
package/src/core/blur.ts CHANGED
@@ -118,10 +118,14 @@ const DEPRECATED_METHOD_WARNING =
118
118
  'The `experimentalBlurMethod` prop has been depracated. Please use the `blurMethod` prop instead.';
119
119
 
120
120
  // Регистрация идёт при рендере: побочный эффект барреля теряется в release
121
- const views = defineExpoNativeViews(requireNativeViewManager, BLUR_MODULE_NAME, {
122
- blur: BLUR_VIEW_NAME,
123
- target: BLUR_TARGET_VIEW_NAME,
124
- });
121
+ const views = defineExpoNativeViews(
122
+ requireNativeViewManager,
123
+ BLUR_MODULE_NAME,
124
+ {
125
+ blur: BLUR_VIEW_NAME,
126
+ target: BLUR_TARGET_VIEW_NAME,
127
+ },
128
+ );
125
129
 
126
130
  export const blurViewName = views.blur.name;
127
131
  export const blurTargetViewName = views.target.name;
package/src/react/blur.ts CHANGED
@@ -35,7 +35,10 @@ export function BlurView(props: IBlurViewReactProps): ReactElement {
35
35
  useLayoutEffect(() => watchBlurTarget(blurTarget?.current, setBlurTargetId));
36
36
  useEffect(() => warnBlurProps(rest, blurTarget !== undefined), []);
37
37
 
38
- return descriptorToReactWithChildren(renderBlurView(rest, blurTargetId), children);
38
+ return descriptorToReactWithChildren(
39
+ renderBlurView(rest, blurTargetId),
40
+ children,
41
+ );
39
42
  }
40
43
 
41
44
  /** React twin of `expo-blur`'s `BlurTargetView`, native on Android and a plain View on iOS */
package/src/solid/blur.ts CHANGED
@@ -1,4 +1,10 @@
1
- import { createEffect, createSignal, onCleanup, onMount, splitProps } from 'solid-js';
1
+ import {
2
+ createEffect,
3
+ createSignal,
4
+ onCleanup,
5
+ onMount,
6
+ splitProps,
7
+ } from 'solid-js';
2
8
  import type { JSX } from 'solid-js';
3
9
  import {
4
10
  defineDescriptorComponent,