@absolutejs/absolute 0.20.0-beta.26 → 0.20.0-beta.28
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 +22 -1
- package/dist/angular/components/core/streamingSlotRegistrar.js +1 -1
- package/dist/angular/components/core/streamingSlotRegistry.js +2 -2
- package/dist/build.js +14 -3
- package/dist/build.js.map +4 -4
- package/dist/cli/index.js +71 -2
- package/dist/dev/client/hmrClient.ts +23 -0
- package/dist/index.js +95 -29
- package/dist/index.js.map +7 -6
- package/dist/mobile/index.js +22 -3
- package/dist/mobile/index.js.map +4 -4
- package/dist/mobile/shellBootstrap.js +12 -0
- package/dist/src/core/devBuild.d.ts +1 -0
- package/dist/src/core/prepare.d.ts +24 -0
- package/dist/src/mobile/androidWebView.d.ts +1 -0
- package/dist/src/mobile/devDeviceAdapter.d.ts +3 -0
- package/dist/src/mobile/deviceCapabilities.d.ts +2 -0
- package/package.json +5 -4
package/README.md
CHANGED
|
@@ -218,11 +218,26 @@ does not silently replace a running application session.
|
|
|
218
218
|
Application code uses one provider-neutral API in web pages and Capacitor apps:
|
|
219
219
|
|
|
220
220
|
```ts
|
|
221
|
-
import {
|
|
221
|
+
import {
|
|
222
|
+
camera,
|
|
223
|
+
clipboard,
|
|
224
|
+
haptics,
|
|
225
|
+
keyboard,
|
|
226
|
+
photos,
|
|
227
|
+
share,
|
|
228
|
+
systemBars
|
|
229
|
+
} from '@absolutejs/devices';
|
|
222
230
|
|
|
223
231
|
await clipboard.writeText('Copied everywhere');
|
|
224
232
|
await share.share({ text: 'Shared everywhere', url: 'https://absolutejs.com' });
|
|
225
233
|
await haptics.impact('light');
|
|
234
|
+
const removeKeyboard = await keyboard.onChange(({ visible, heightPx }) => {
|
|
235
|
+
document.documentElement.style.setProperty(
|
|
236
|
+
'--keyboard-height',
|
|
237
|
+
visible ? `${heightPx}px` : '0px'
|
|
238
|
+
);
|
|
239
|
+
});
|
|
240
|
+
await systemBars.setAppearance('light', 'status');
|
|
226
241
|
const permission = await camera.requestPermission();
|
|
227
242
|
if (permission.state === 'granted') {
|
|
228
243
|
const capture = await camera.takePhoto();
|
|
@@ -239,6 +254,12 @@ edit Swift/Kotlin, or maintain native bootstrap code. Type-only imports and test
|
|
|
239
254
|
sources do not provision plugins. `absolute mobile doctor release` rejects a
|
|
240
255
|
missing or mismatched plugin before release.
|
|
241
256
|
|
|
257
|
+
`keyboard` provides portable visibility, CSS-pixel height, dismissal, and
|
|
258
|
+
cleanup-safe change events. `systemBars` controls modern edge-to-edge status and
|
|
259
|
+
navigation bar foreground appearance/visibility through Capacitor 8 core. Its
|
|
260
|
+
`light` and `dark` values name the icon/text foreground. Web appearance uses
|
|
261
|
+
best-effort `color-scheme`; browser chrome visibility reports unsupported.
|
|
262
|
+
|
|
242
263
|
Camera capture requires an explicit `camera.requestPermission()` call from an
|
|
243
264
|
intentional user action. `photos.pick()` uses the item-scoped system picker
|
|
244
265
|
without requesting broad library access. AbsoluteJS generates the required iOS
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
// @bun
|
|
2
2
|
var __require = import.meta.require;
|
|
3
3
|
|
|
4
|
-
// .angular-partial-tmp-
|
|
4
|
+
// .angular-partial-tmp-UWGZod/src/core/streamingSlotRegistrar.ts
|
|
5
5
|
var STREAMING_SLOT_REGISTRAR_KEY = Symbol.for("absolutejs.streamingSlotRegistrar");
|
|
6
6
|
var STREAMING_SLOT_WARNING_STORAGE_KEY = Symbol.for("absolutejs.streamingSlotWarningController");
|
|
7
7
|
var STREAMING_SLOT_COLLECTION_STORAGE_KEY = Symbol.for("absolutejs.streamingSlotCollectionController");
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
// @bun
|
|
2
2
|
var __require = import.meta.require;
|
|
3
3
|
|
|
4
|
-
// .angular-partial-tmp-
|
|
4
|
+
// .angular-partial-tmp-UWGZod/src/core/streamingSlotRegistrar.ts
|
|
5
5
|
var STREAMING_SLOT_REGISTRAR_KEY = Symbol.for("absolutejs.streamingSlotRegistrar");
|
|
6
6
|
var STREAMING_SLOT_WARNING_STORAGE_KEY = Symbol.for("absolutejs.streamingSlotWarningController");
|
|
7
7
|
var STREAMING_SLOT_COLLECTION_STORAGE_KEY = Symbol.for("absolutejs.streamingSlotCollectionController");
|
|
@@ -48,7 +48,7 @@ var warnMissingStreamingSlotCollector = (primitiveName) => {
|
|
|
48
48
|
getWarningController()?.maybeWarn(primitiveName);
|
|
49
49
|
};
|
|
50
50
|
|
|
51
|
-
// .angular-partial-tmp-
|
|
51
|
+
// .angular-partial-tmp-UWGZod/src/core/streamingSlotRegistry.ts
|
|
52
52
|
var STREAMING_SLOT_STORAGE_KEY = Symbol.for("absolutejs.streamingSlotAsyncLocalStorage");
|
|
53
53
|
var isObjectRecord2 = (value) => Boolean(value) && typeof value === "object";
|
|
54
54
|
var isAsyncLocalStorage = (value) => isObjectRecord2(value) && ("getStore" in value) && typeof value.getStore === "function" && ("run" in value) && typeof value.run === "function";
|
package/dist/build.js
CHANGED
|
@@ -12918,15 +12918,23 @@ var DEVICES_PACKAGE = "@absolutejs/devices", CAPACITOR_ADAPTER = "@absolutejs/de
|
|
|
12918
12918
|
return;
|
|
12919
12919
|
if (!object(value))
|
|
12920
12920
|
throw new TypeError(`${field} must be an object.`);
|
|
12921
|
-
const {
|
|
12921
|
+
const {
|
|
12922
|
+
privacyAccessedApis,
|
|
12923
|
+
pushNotifications,
|
|
12924
|
+
systemBars,
|
|
12925
|
+
usageDescriptions
|
|
12926
|
+
} = value;
|
|
12922
12927
|
if (pushNotifications !== undefined && pushNotifications !== true)
|
|
12923
12928
|
throw new TypeError(`${field}.pushNotifications must be true.`);
|
|
12929
|
+
if (systemBars !== undefined && systemBars !== true)
|
|
12930
|
+
throw new TypeError(`${field}.systemBars must be true.`);
|
|
12924
12931
|
if (usageDescriptions !== undefined && (!Array.isArray(usageDescriptions) || !usageDescriptions.every((purpose) => typeof purpose === "string" && IOS_USAGE_DESCRIPTIONS.has(purpose))))
|
|
12925
12932
|
throw new TypeError(`${field}.usageDescriptions contains an unsupported purpose.`);
|
|
12926
12933
|
const privacy = iosPrivacyAccessedApis(privacyAccessedApis, `${field}.privacyAccessedApis`);
|
|
12927
12934
|
return {
|
|
12928
12935
|
...privacy === undefined ? {} : { privacyAccessedApis: privacy },
|
|
12929
12936
|
...pushNotifications === true ? { pushNotifications: true } : {},
|
|
12937
|
+
...systemBars === true ? { systemBars: true } : {},
|
|
12930
12938
|
...usageDescriptions === undefined ? {} : { usageDescriptions: [...usageDescriptions] }
|
|
12931
12939
|
};
|
|
12932
12940
|
}, parseProvider = (name, value) => {
|
|
@@ -12983,6 +12991,7 @@ var DEVICES_PACKAGE = "@absolutejs/devices", CAPACITOR_ADAPTER = "@absolutejs/de
|
|
|
12983
12991
|
return reasons ? [{ api, reasons: [...reasons].sort() }] : [];
|
|
12984
12992
|
}),
|
|
12985
12993
|
iosPushNotifications: plan.capabilities.some((name) => plan.providers[name]?.native?.ios?.pushNotifications === true),
|
|
12994
|
+
iosSystemBars: plan.capabilities.some((name) => plan.providers[name]?.native?.ios?.systemBars === true),
|
|
12986
12995
|
iosUsageDescriptions: [
|
|
12987
12996
|
...new Set(plan.capabilities.flatMap((name) => plan.providers[name]?.native?.ios?.usageDescriptions ?? []))
|
|
12988
12997
|
].sort()
|
|
@@ -29884,6 +29893,7 @@ var init_buildDepVendor = __esm(() => {
|
|
|
29884
29893
|
var exports_devBuild = {};
|
|
29885
29894
|
__export(exports_devBuild, {
|
|
29886
29895
|
devBuild: () => devBuild,
|
|
29896
|
+
collectDepVendorSourceDirs: () => collectDepVendorSourceDirs,
|
|
29887
29897
|
applyConfigChanges: () => applyConfigChanges
|
|
29888
29898
|
});
|
|
29889
29899
|
import { readdir as readdir5 } from "fs/promises";
|
|
@@ -29896,7 +29906,8 @@ var FRAMEWORK_DIR_KEYS, collectDepVendorSourceDirs = (config) => {
|
|
|
29896
29906
|
config.vueDirectory,
|
|
29897
29907
|
config.angularDirectory,
|
|
29898
29908
|
config.htmlDirectory,
|
|
29899
|
-
config.htmxDirectory
|
|
29909
|
+
config.htmxDirectory,
|
|
29910
|
+
resolve44(import.meta.dir, "../dev/client")
|
|
29900
29911
|
].filter((dir) => Boolean(dir));
|
|
29901
29912
|
return Array.from(new Set(configuredDirs));
|
|
29902
29913
|
}, parseDirectoryConfig = (source) => {
|
|
@@ -30345,5 +30356,5 @@ export {
|
|
|
30345
30356
|
build
|
|
30346
30357
|
};
|
|
30347
30358
|
|
|
30348
|
-
//# debugId=
|
|
30359
|
+
//# debugId=77BBF44144F0D79F64756E2164756E21
|
|
30349
30360
|
//# sourceMappingURL=build.js.map
|