native-fn 1.2.2 → 1.3.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.
Files changed (151) hide show
  1. package/README.md +32 -8
  2. package/dist/index.d.ts +42 -21
  3. package/dist/native.cjs +412 -110
  4. package/dist/native.min.cjs +1 -1
  5. package/dist/native.min.mjs +1 -1
  6. package/dist/native.mjs +412 -110
  7. package/dist/native.umd.js +412 -110
  8. package/dist/native.umd.min.js +1 -1
  9. package/dist/plugin/appearance/index.cjs +16 -18
  10. package/dist/plugin/appearance/index.d.ts +2 -2
  11. package/dist/plugin/appearance/index.mjs +17 -19
  12. package/dist/plugin/appearance/src/plugin/appearance/constants/index.d.ts +1 -1
  13. package/dist/plugin/appearance/src/plugin/dimension/constants/index.d.ts +2 -3
  14. package/dist/plugin/appearance/src/plugin/dimension/cores/index.d.ts +15 -0
  15. package/dist/plugin/appearance/src/plugin/dimension/types/dimensions.d.ts +26 -20
  16. package/dist/plugin/appearance/src/plugin/dimension/utils/create-env-observer.d.ts +16 -7
  17. package/dist/plugin/appearance/src/plugin/dimension/utils/create-environment-observer.d.ts +33 -0
  18. package/dist/plugin/appearance/src/plugin/platform/constants/index.d.ts +1 -1
  19. package/dist/plugin/appearance/src/utils/insert-sort.d.ts +1 -0
  20. package/dist/plugin/badge/src/plugin/appearance/constants/index.d.ts +1 -1
  21. package/dist/plugin/badge/src/plugin/dimension/constants/index.d.ts +2 -3
  22. package/dist/plugin/badge/src/plugin/dimension/cores/index.d.ts +15 -0
  23. package/dist/plugin/badge/src/plugin/dimension/types/dimensions.d.ts +26 -20
  24. package/dist/plugin/badge/src/plugin/dimension/utils/create-env-observer.d.ts +16 -7
  25. package/dist/plugin/badge/src/plugin/dimension/utils/create-environment-observer.d.ts +33 -0
  26. package/dist/plugin/badge/src/plugin/platform/constants/index.d.ts +1 -1
  27. package/dist/plugin/badge/src/utils/insert-sort.d.ts +1 -0
  28. package/dist/plugin/battery/index.cjs +4 -6
  29. package/dist/plugin/battery/index.mjs +4 -6
  30. package/dist/plugin/battery/src/plugin/appearance/constants/index.d.ts +1 -1
  31. package/dist/plugin/battery/src/plugin/dimension/constants/index.d.ts +2 -3
  32. package/dist/plugin/battery/src/plugin/dimension/cores/index.d.ts +15 -0
  33. package/dist/plugin/battery/src/plugin/dimension/types/dimensions.d.ts +26 -20
  34. package/dist/plugin/battery/src/plugin/dimension/utils/create-env-observer.d.ts +16 -7
  35. package/dist/plugin/battery/src/plugin/dimension/utils/create-environment-observer.d.ts +33 -0
  36. package/dist/plugin/battery/src/plugin/platform/constants/index.d.ts +1 -1
  37. package/dist/plugin/battery/src/utils/insert-sort.d.ts +1 -0
  38. package/dist/plugin/clipboard/src/plugin/appearance/constants/index.d.ts +1 -1
  39. package/dist/plugin/clipboard/src/plugin/dimension/constants/index.d.ts +2 -3
  40. package/dist/plugin/clipboard/src/plugin/dimension/cores/index.d.ts +15 -0
  41. package/dist/plugin/clipboard/src/plugin/dimension/types/dimensions.d.ts +26 -20
  42. package/dist/plugin/clipboard/src/plugin/dimension/utils/create-env-observer.d.ts +16 -7
  43. package/dist/plugin/clipboard/src/plugin/dimension/utils/create-environment-observer.d.ts +33 -0
  44. package/dist/plugin/clipboard/src/plugin/platform/constants/index.d.ts +1 -1
  45. package/dist/plugin/clipboard/src/utils/insert-sort.d.ts +1 -0
  46. package/dist/plugin/dimension/index.cjs +456 -97
  47. package/dist/plugin/dimension/index.d.ts +45 -24
  48. package/dist/plugin/dimension/index.mjs +457 -97
  49. package/dist/plugin/dimension/src/plugin/appearance/constants/index.d.ts +1 -1
  50. package/dist/plugin/dimension/src/plugin/dimension/constants/index.d.ts +2 -3
  51. package/dist/plugin/dimension/src/plugin/dimension/cores/index.d.ts +15 -0
  52. package/dist/plugin/dimension/src/plugin/dimension/types/dimensions.d.ts +26 -20
  53. package/dist/plugin/dimension/src/plugin/dimension/utils/create-env-observer.d.ts +16 -7
  54. package/dist/plugin/dimension/src/plugin/dimension/utils/create-environment-observer.d.ts +33 -0
  55. package/dist/plugin/dimension/src/plugin/platform/constants/index.d.ts +1 -1
  56. package/dist/plugin/dimension/src/utils/insert-sort.d.ts +1 -0
  57. package/dist/plugin/fullscreen/index.cjs +9 -11
  58. package/dist/plugin/fullscreen/index.mjs +9 -11
  59. package/dist/plugin/fullscreen/src/plugin/appearance/constants/index.d.ts +1 -1
  60. package/dist/plugin/fullscreen/src/plugin/dimension/constants/index.d.ts +2 -3
  61. package/dist/plugin/fullscreen/src/plugin/dimension/cores/index.d.ts +15 -0
  62. package/dist/plugin/fullscreen/src/plugin/dimension/types/dimensions.d.ts +26 -20
  63. package/dist/plugin/fullscreen/src/plugin/dimension/utils/create-env-observer.d.ts +16 -7
  64. package/dist/plugin/fullscreen/src/plugin/dimension/utils/create-environment-observer.d.ts +33 -0
  65. package/dist/plugin/fullscreen/src/plugin/platform/constants/index.d.ts +1 -1
  66. package/dist/plugin/fullscreen/src/utils/insert-sort.d.ts +1 -0
  67. package/dist/plugin/geolocation/index.cjs +4 -6
  68. package/dist/plugin/geolocation/index.mjs +4 -6
  69. package/dist/plugin/geolocation/src/plugin/appearance/constants/index.d.ts +1 -1
  70. package/dist/plugin/geolocation/src/plugin/dimension/constants/index.d.ts +2 -3
  71. package/dist/plugin/geolocation/src/plugin/dimension/cores/index.d.ts +15 -0
  72. package/dist/plugin/geolocation/src/plugin/dimension/types/dimensions.d.ts +26 -20
  73. package/dist/plugin/geolocation/src/plugin/dimension/utils/create-env-observer.d.ts +16 -7
  74. package/dist/plugin/geolocation/src/plugin/dimension/utils/create-environment-observer.d.ts +33 -0
  75. package/dist/plugin/geolocation/src/plugin/platform/constants/index.d.ts +1 -1
  76. package/dist/plugin/geolocation/src/utils/insert-sort.d.ts +1 -0
  77. package/dist/plugin/notification/src/plugin/appearance/constants/index.d.ts +1 -1
  78. package/dist/plugin/notification/src/plugin/dimension/constants/index.d.ts +2 -3
  79. package/dist/plugin/notification/src/plugin/dimension/cores/index.d.ts +15 -0
  80. package/dist/plugin/notification/src/plugin/dimension/types/dimensions.d.ts +26 -20
  81. package/dist/plugin/notification/src/plugin/dimension/utils/create-env-observer.d.ts +16 -7
  82. package/dist/plugin/notification/src/plugin/dimension/utils/create-environment-observer.d.ts +33 -0
  83. package/dist/plugin/notification/src/plugin/platform/constants/index.d.ts +1 -1
  84. package/dist/plugin/notification/src/utils/insert-sort.d.ts +1 -0
  85. package/dist/plugin/open/index.cjs +6 -6
  86. package/dist/plugin/open/index.d.ts +16 -0
  87. package/dist/plugin/open/index.mjs +6 -6
  88. package/dist/plugin/open/src/plugin/appearance/constants/index.d.ts +1 -1
  89. package/dist/plugin/open/src/plugin/dimension/constants/index.d.ts +2 -3
  90. package/dist/plugin/open/src/plugin/dimension/cores/index.d.ts +15 -0
  91. package/dist/plugin/open/src/plugin/dimension/types/dimensions.d.ts +26 -20
  92. package/dist/plugin/open/src/plugin/dimension/utils/create-env-observer.d.ts +16 -7
  93. package/dist/plugin/open/src/plugin/dimension/utils/create-environment-observer.d.ts +33 -0
  94. package/dist/plugin/open/src/plugin/platform/constants/index.d.ts +1 -1
  95. package/dist/plugin/open/src/utils/insert-sort.d.ts +1 -0
  96. package/dist/plugin/permission/src/plugin/appearance/constants/index.d.ts +1 -1
  97. package/dist/plugin/permission/src/plugin/dimension/constants/index.d.ts +2 -3
  98. package/dist/plugin/permission/src/plugin/dimension/cores/index.d.ts +15 -0
  99. package/dist/plugin/permission/src/plugin/dimension/types/dimensions.d.ts +26 -20
  100. package/dist/plugin/permission/src/plugin/dimension/utils/create-env-observer.d.ts +16 -7
  101. package/dist/plugin/permission/src/plugin/dimension/utils/create-environment-observer.d.ts +33 -0
  102. package/dist/plugin/permission/src/plugin/platform/constants/index.d.ts +1 -1
  103. package/dist/plugin/permission/src/utils/insert-sort.d.ts +1 -0
  104. package/dist/plugin/pip/index.cjs +9 -11
  105. package/dist/plugin/pip/index.mjs +9 -11
  106. package/dist/plugin/pip/src/plugin/appearance/constants/index.d.ts +1 -1
  107. package/dist/plugin/pip/src/plugin/dimension/constants/index.d.ts +2 -3
  108. package/dist/plugin/pip/src/plugin/dimension/cores/index.d.ts +15 -0
  109. package/dist/plugin/pip/src/plugin/dimension/types/dimensions.d.ts +26 -20
  110. package/dist/plugin/pip/src/plugin/dimension/utils/create-env-observer.d.ts +16 -7
  111. package/dist/plugin/pip/src/plugin/dimension/utils/create-environment-observer.d.ts +33 -0
  112. package/dist/plugin/pip/src/plugin/platform/constants/index.d.ts +1 -1
  113. package/dist/plugin/pip/src/utils/insert-sort.d.ts +1 -0
  114. package/dist/plugin/platform/index.cjs +11 -12
  115. package/dist/plugin/platform/index.d.ts +17 -1
  116. package/dist/plugin/platform/index.mjs +5 -5
  117. package/dist/plugin/platform/src/plugin/appearance/constants/index.d.ts +1 -1
  118. package/dist/plugin/platform/src/plugin/dimension/constants/index.d.ts +2 -3
  119. package/dist/plugin/platform/src/plugin/dimension/cores/index.d.ts +15 -0
  120. package/dist/plugin/platform/src/plugin/dimension/types/dimensions.d.ts +26 -20
  121. package/dist/plugin/platform/src/plugin/dimension/utils/create-env-observer.d.ts +16 -7
  122. package/dist/plugin/platform/src/plugin/dimension/utils/create-environment-observer.d.ts +33 -0
  123. package/dist/plugin/platform/src/plugin/platform/constants/index.d.ts +1 -1
  124. package/dist/plugin/platform/src/utils/insert-sort.d.ts +1 -0
  125. package/dist/plugin/theme/index.cjs +5 -5
  126. package/dist/plugin/theme/index.mjs +5 -5
  127. package/dist/plugin/theme/src/plugin/appearance/constants/index.d.ts +1 -1
  128. package/dist/plugin/theme/src/plugin/dimension/constants/index.d.ts +2 -3
  129. package/dist/plugin/theme/src/plugin/dimension/cores/index.d.ts +15 -0
  130. package/dist/plugin/theme/src/plugin/dimension/types/dimensions.d.ts +26 -20
  131. package/dist/plugin/theme/src/plugin/dimension/utils/create-env-observer.d.ts +16 -7
  132. package/dist/plugin/theme/src/plugin/dimension/utils/create-environment-observer.d.ts +33 -0
  133. package/dist/plugin/theme/src/plugin/platform/constants/index.d.ts +1 -1
  134. package/dist/plugin/theme/src/utils/insert-sort.d.ts +1 -0
  135. package/dist/plugin/vibration/src/plugin/appearance/constants/index.d.ts +1 -1
  136. package/dist/plugin/vibration/src/plugin/dimension/constants/index.d.ts +2 -3
  137. package/dist/plugin/vibration/src/plugin/dimension/cores/index.d.ts +15 -0
  138. package/dist/plugin/vibration/src/plugin/dimension/types/dimensions.d.ts +26 -20
  139. package/dist/plugin/vibration/src/plugin/dimension/utils/create-env-observer.d.ts +16 -7
  140. package/dist/plugin/vibration/src/plugin/dimension/utils/create-environment-observer.d.ts +33 -0
  141. package/dist/plugin/vibration/src/plugin/platform/constants/index.d.ts +1 -1
  142. package/dist/plugin/vibration/src/utils/insert-sort.d.ts +1 -0
  143. package/dist/src/plugin/appearance/constants/index.d.ts +1 -1
  144. package/dist/src/plugin/dimension/constants/index.d.ts +2 -3
  145. package/dist/src/plugin/dimension/cores/index.d.ts +15 -0
  146. package/dist/src/plugin/dimension/types/dimensions.d.ts +26 -20
  147. package/dist/src/plugin/dimension/utils/create-env-observer.d.ts +16 -7
  148. package/dist/src/plugin/dimension/utils/create-environment-observer.d.ts +33 -0
  149. package/dist/src/plugin/platform/constants/index.d.ts +1 -1
  150. package/dist/src/utils/insert-sort.d.ts +1 -0
  151. package/package.json +1 -1
@@ -1,18 +1,26 @@
1
1
  import { ENV_PRESETS, Orientation } from "../constants";
2
2
  export type EnvironmentPresetKey = keyof typeof ENV_PRESETS;
3
- export type EnvironmentPresetAttr<K extends EnvironmentPresetKey> = keyof typeof ENV_PRESETS[K];
3
+ export type EnvironmentPresetAttribute<K extends EnvironmentPresetKey> = keyof typeof ENV_PRESETS[K];
4
4
  export type EnvironmentPresetValues<K extends EnvironmentPresetKey> = {
5
- [P in EnvironmentPresetAttr<K>]: number;
5
+ [P in EnvironmentPresetAttribute<K>]: number;
6
6
  };
7
- export declare interface DimensionInstance {
8
- get value(): Dimensions;
9
- environment: Environment;
10
- onChange(listener: (dimension: Dimensions) => void, options?: AddEventListenerOptions): () => void;
11
- Constants: {
12
- Orientation: typeof Orientation;
13
- };
14
- Errors: {};
7
+ export declare interface Environment {
8
+ safeAreaInset: EnvironmentObserver<'safe-area-inset'>;
9
+ safeAreaMaxInset: EnvironmentObserver<'safe-area-max-inset'>;
10
+ keyboardInset: EnvironmentObserver<'keyboard-inset'>;
11
+ titlebarArea: EnvironmentObserver<'titlebar-area'>;
12
+ viewportSegment: EnvironmentObserver<'viewport-segment'>;
13
+ }
14
+ export declare interface SegmentsObserver {
15
+ get value(): EnvironmentPresetValues<'viewport-segment'>[];
16
+ onChange(listener: (value: EnvironmentPresetValues<'viewport-segment'>[]) => void, options?: AddEventListenerOptions): () => void;
17
+ useCssVariable(prefix: string): () => void;
15
18
  }
19
+ export declare type EnvironmentObserver<K extends EnvironmentPresetKey> = K extends 'viewport-segment' ? SegmentsObserver : {
20
+ get value(): EnvironmentPresetValues<K>;
21
+ onChange(listener: (value: EnvironmentPresetValues<K>) => void, options?: AddEventListenerOptions): () => void;
22
+ useCssVariable(prefix: string): () => void;
23
+ };
16
24
  export declare interface Dimensions {
17
25
  outerWidth: number;
18
26
  outerHeight: number;
@@ -21,14 +29,12 @@ export declare interface Dimensions {
21
29
  scale: number;
22
30
  orientation: Orientation;
23
31
  }
24
- export declare interface EnvironmentPreset<K extends EnvironmentPresetKey> {
25
- get value(): EnvironmentPresetValues<K>;
26
- onChange(listener: (value: EnvironmentPresetValues<K>) => void, options?: AddEventListenerOptions): () => void;
27
- }
28
- export declare interface Environment {
29
- safeAreaInset: EnvironmentPreset<'safe-area-inset'>;
30
- safeAreaMaxInset: EnvironmentPreset<'safe-area-max-inset'>;
31
- keyboardInset: EnvironmentPreset<'keyboard-inset'>;
32
- titlebarArea: EnvironmentPreset<'titlebar-area'>;
33
- viewportSegment: EnvironmentPreset<'viewport-segment'>;
32
+ export declare interface DimensionInstance {
33
+ get value(): Dimensions;
34
+ environment: Environment;
35
+ onChange(listener: (dimension: Dimensions) => void, options?: AddEventListenerOptions): () => void;
36
+ Constants: {
37
+ Orientation: typeof Orientation;
38
+ };
39
+ Errors: {};
34
40
  }
@@ -1,10 +1,15 @@
1
- import { EnvironmentPresetKey, EnvironmentPresetValues } from "../types";
1
+ import { EnvironmentObserver, EnvironmentPresetKey } from "../types";
2
2
  declare global {
3
3
  interface Navigator {
4
4
  readonly virtualKeyboard?: VirtualKeyboard;
5
+ readonly devicePosture?: DevicePosture;
5
6
  }
7
+ var viewport: BrowsingContextViewport | undefined;
8
+ }
9
+ interface DevicePosture extends EventTarget {
10
+ readonly type: 'continuous' | 'folded';
11
+ onchange: ((this: DevicePosture, ev: Event) => any) | null;
6
12
  }
7
- type ChangeCallback<K extends EnvironmentPresetKey> = (values: EnvironmentPresetValues<K>) => void;
8
13
  interface VirtualKeyboardEventMap {
9
14
  geometrychange: Event;
10
15
  }
@@ -16,9 +21,13 @@ interface VirtualKeyboard extends EventTarget {
16
21
  addEventListener<K extends keyof VirtualKeyboardEventMap>(type: K, listener: (this: VirtualKeyboard, ev: VirtualKeyboardEventMap[K]) => any, options?: AddEventListenerOptions): void;
17
22
  removeEventListener<K extends keyof VirtualKeyboardEventMap>(type: K, listener: (this: VirtualKeyboard, ev: VirtualKeyboardEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
18
23
  }
19
- export type EnvObserver<K extends EnvironmentPresetKey> = {
20
- get(): EnvironmentPresetValues<K>;
21
- onChange(callback: ChangeCallback<K>, options?: AddEventListenerOptions): () => void;
22
- };
23
- export default function createEnvObserver<K extends EnvironmentPresetKey>(preset: K): EnvObserver<K>;
24
+ interface BrowsingContextViewportEventMap {
25
+ change: Event;
26
+ }
27
+ interface BrowsingContextViewport extends EventTarget {
28
+ readonly segments: ReadonlyArray<DOMRectReadOnly> | null;
29
+ addEventListener<K extends keyof BrowsingContextViewportEventMap>(type: K, listener: (this: BrowsingContextViewport, ev: BrowsingContextViewportEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
30
+ removeEventListener<K extends keyof BrowsingContextViewportEventMap>(type: K, listener: (this: BrowsingContextViewport, ev: BrowsingContextViewportEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
31
+ }
32
+ export default function createEnvObserver<K extends EnvironmentPresetKey>(preset: K): EnvironmentObserver<K>;
24
33
  export {};
@@ -0,0 +1,33 @@
1
+ import { EnvironmentObserver, EnvironmentPresetKey } from "../types";
2
+ declare global {
3
+ interface Navigator {
4
+ readonly virtualKeyboard?: VirtualKeyboard;
5
+ readonly devicePosture?: DevicePosture;
6
+ }
7
+ var viewport: BrowsingContextViewport | undefined;
8
+ }
9
+ interface DevicePosture extends EventTarget {
10
+ readonly type: 'continuous' | 'folded';
11
+ onchange: ((this: DevicePosture, ev: Event) => any) | null;
12
+ }
13
+ interface VirtualKeyboardEventMap {
14
+ geometrychange: Event;
15
+ }
16
+ interface VirtualKeyboard extends EventTarget {
17
+ readonly boundingRect: DOMRect;
18
+ overlaysContent: boolean;
19
+ show(): void;
20
+ hide(): void;
21
+ addEventListener<K extends keyof VirtualKeyboardEventMap>(type: K, listener: (this: VirtualKeyboard, ev: VirtualKeyboardEventMap[K]) => any, options?: AddEventListenerOptions): void;
22
+ removeEventListener<K extends keyof VirtualKeyboardEventMap>(type: K, listener: (this: VirtualKeyboard, ev: VirtualKeyboardEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
23
+ }
24
+ interface BrowsingContextViewportEventMap {
25
+ change: Event;
26
+ }
27
+ interface BrowsingContextViewport extends EventTarget {
28
+ readonly segments: ReadonlyArray<DOMRectReadOnly> | null;
29
+ addEventListener<K extends keyof BrowsingContextViewportEventMap>(type: K, listener: (this: BrowsingContextViewport, ev: BrowsingContextViewportEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
30
+ removeEventListener<K extends keyof BrowsingContextViewportEventMap>(type: K, listener: (this: BrowsingContextViewport, ev: BrowsingContextViewportEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
31
+ }
32
+ export default function createEnvironmentObserver<K extends EnvironmentPresetKey>(preset: K): EnvironmentObserver<K>;
33
+ export {};
@@ -34,7 +34,7 @@ export declare enum Browsers {
34
34
  IE = "IE",
35
35
  SamsungInternet = "SamsungInternet"
36
36
  }
37
- export declare const USER_AGENT: string;
37
+ export declare let USER_AGENT: string;
38
38
  export declare const HIGH_ENTROPY_BRAND_NAME_MAP: Record<string, string>;
39
39
  export declare const RTL_LANGUAGES: string[];
40
40
  export declare const OS_RESOLVER_MAP: [RegExp, OS, VersionResolver?][];
@@ -0,0 +1 @@
1
+ export default function insertionSort(arr: number[]): void;
@@ -233,6 +233,8 @@ function createSubscriptionManager(attach, detach) {
233
233
  },
234
234
  subscribe: function (listener, options) {
235
235
  if (options === void 0) { options = {}; }
236
+ if (typeof options.signal !== 'undefined' && options.signal.aborted)
237
+ return function () { };
236
238
  var entry = { fn: listener, once: false };
237
239
  if (typeof options.once !== 'undefined')
238
240
  entry.once = options.once;
@@ -251,12 +253,8 @@ function createSubscriptionManager(attach, detach) {
251
253
  EventListener.remove(entry.signal, { type: 'abort', callback: cleanup });
252
254
  removeEntry(entry);
253
255
  };
254
- if (typeof entry.signal !== 'undefined') {
255
- if (entry.signal.aborted)
256
- removeEntry(entry);
257
- else
258
- EventListener.add(entry.signal, { type: 'abort', callback: cleanup });
259
- }
256
+ if (typeof entry.signal !== 'undefined')
257
+ EventListener.add(entry.signal, { type: 'abort', callback: cleanup });
260
258
  return function unsubscribe() {
261
259
  removeEntry(entry);
262
260
  };
@@ -439,11 +437,11 @@ var Browsers;
439
437
  Browsers["IE"] = "IE";
440
438
  Browsers["SamsungInternet"] = "SamsungInternet";
441
439
  })(Browsers || (Browsers = {}));
442
- var USER_AGENT = (function () {
443
- if (typeof globalThis.navigator.userAgent !== 'undefined')
444
- return globalThis.navigator.userAgent;
445
- return '';
446
- })();
440
+ var USER_AGENT;
441
+ if (typeof globalThis.navigator.userAgent !== 'undefined')
442
+ USER_AGENT = globalThis.navigator.userAgent;
443
+ else
444
+ USER_AGENT = '';
447
445
  var HIGH_ENTROPY_BRAND_NAME_MAP = {
448
446
  'Google Chrome': 'Chrome',
449
447
  'Microsoft Edge': 'Edge',
@@ -231,6 +231,8 @@ function createSubscriptionManager(attach, detach) {
231
231
  },
232
232
  subscribe: function (listener, options) {
233
233
  if (options === void 0) { options = {}; }
234
+ if (typeof options.signal !== 'undefined' && options.signal.aborted)
235
+ return function () { };
234
236
  var entry = { fn: listener, once: false };
235
237
  if (typeof options.once !== 'undefined')
236
238
  entry.once = options.once;
@@ -249,12 +251,8 @@ function createSubscriptionManager(attach, detach) {
249
251
  EventListener.remove(entry.signal, { type: 'abort', callback: cleanup });
250
252
  removeEntry(entry);
251
253
  };
252
- if (typeof entry.signal !== 'undefined') {
253
- if (entry.signal.aborted)
254
- removeEntry(entry);
255
- else
256
- EventListener.add(entry.signal, { type: 'abort', callback: cleanup });
257
- }
254
+ if (typeof entry.signal !== 'undefined')
255
+ EventListener.add(entry.signal, { type: 'abort', callback: cleanup });
258
256
  return function unsubscribe() {
259
257
  removeEntry(entry);
260
258
  };
@@ -437,11 +435,11 @@ var Browsers;
437
435
  Browsers["IE"] = "IE";
438
436
  Browsers["SamsungInternet"] = "SamsungInternet";
439
437
  })(Browsers || (Browsers = {}));
440
- var USER_AGENT = (function () {
441
- if (typeof globalThis.navigator.userAgent !== 'undefined')
442
- return globalThis.navigator.userAgent;
443
- return '';
444
- })();
438
+ var USER_AGENT;
439
+ if (typeof globalThis.navigator.userAgent !== 'undefined')
440
+ USER_AGENT = globalThis.navigator.userAgent;
441
+ else
442
+ USER_AGENT = '';
445
443
  var HIGH_ENTROPY_BRAND_NAME_MAP = {
446
444
  'Google Chrome': 'Chrome',
447
445
  'Microsoft Edge': 'Edge',
@@ -3,6 +3,6 @@ export declare enum Appearances {
3
3
  Light = "light",
4
4
  Dark = "dark"
5
5
  }
6
- export declare let MEDIA_QUERY_LIST: MediaQueryList;
6
+ export declare let PREFERS_COLOR_SCHEME_MEDIA_QUERY_LIST: MediaQueryList;
7
7
  export declare const CONTEXT: CanvasRenderingContext2D | null;
8
8
  export declare const SVG_PIXEL_DATA_URL: string;
@@ -1,4 +1,3 @@
1
- import { Dimensions } from "../types";
2
1
  export declare enum Orientation {
3
2
  Portrait = "portrait",
4
3
  Landscape = "landscape",
@@ -40,5 +39,5 @@ export declare const ENV_PRESETS: {
40
39
  readonly left: "viewport-segment-left";
41
40
  };
42
41
  };
43
- export declare const FALLBACK_DIMENSION: Dimensions;
44
- export declare let MEDIA_QUERY_LIST: MediaQueryList;
42
+ export declare let ORIENTATION_MEDIA_QUERY_LIST: MediaQueryList;
43
+ export declare let DEVICE_POSTURE_MEDIA_QUERY_LIST: MediaQueryList;
@@ -1,3 +1,18 @@
1
1
  import { DimensionInstance } from "../types";
2
+ declare global {
3
+ interface DOMRectReadOnly {
4
+ readonly x: number;
5
+ readonly y: number;
6
+ readonly width: number;
7
+ readonly height: number;
8
+ readonly top: number;
9
+ readonly right: number;
10
+ readonly bottom: number;
11
+ readonly left: number;
12
+ }
13
+ interface VisualViewport {
14
+ readonly segments?: DOMRectReadOnly[];
15
+ }
16
+ }
2
17
  declare const Dimension: DimensionInstance;
3
18
  export default Dimension;
@@ -1,18 +1,26 @@
1
1
  import { ENV_PRESETS, Orientation } from "../constants";
2
2
  export type EnvironmentPresetKey = keyof typeof ENV_PRESETS;
3
- export type EnvironmentPresetAttr<K extends EnvironmentPresetKey> = keyof typeof ENV_PRESETS[K];
3
+ export type EnvironmentPresetAttribute<K extends EnvironmentPresetKey> = keyof typeof ENV_PRESETS[K];
4
4
  export type EnvironmentPresetValues<K extends EnvironmentPresetKey> = {
5
- [P in EnvironmentPresetAttr<K>]: number;
5
+ [P in EnvironmentPresetAttribute<K>]: number;
6
6
  };
7
- export declare interface DimensionInstance {
8
- get value(): Dimensions;
9
- environment: Environment;
10
- onChange(listener: (dimension: Dimensions) => void, options?: AddEventListenerOptions): () => void;
11
- Constants: {
12
- Orientation: typeof Orientation;
13
- };
14
- Errors: {};
7
+ export declare interface Environment {
8
+ safeAreaInset: EnvironmentObserver<'safe-area-inset'>;
9
+ safeAreaMaxInset: EnvironmentObserver<'safe-area-max-inset'>;
10
+ keyboardInset: EnvironmentObserver<'keyboard-inset'>;
11
+ titlebarArea: EnvironmentObserver<'titlebar-area'>;
12
+ viewportSegment: EnvironmentObserver<'viewport-segment'>;
13
+ }
14
+ export declare interface SegmentsObserver {
15
+ get value(): EnvironmentPresetValues<'viewport-segment'>[];
16
+ onChange(listener: (value: EnvironmentPresetValues<'viewport-segment'>[]) => void, options?: AddEventListenerOptions): () => void;
17
+ useCssVariable(prefix: string): () => void;
15
18
  }
19
+ export declare type EnvironmentObserver<K extends EnvironmentPresetKey> = K extends 'viewport-segment' ? SegmentsObserver : {
20
+ get value(): EnvironmentPresetValues<K>;
21
+ onChange(listener: (value: EnvironmentPresetValues<K>) => void, options?: AddEventListenerOptions): () => void;
22
+ useCssVariable(prefix: string): () => void;
23
+ };
16
24
  export declare interface Dimensions {
17
25
  outerWidth: number;
18
26
  outerHeight: number;
@@ -21,14 +29,12 @@ export declare interface Dimensions {
21
29
  scale: number;
22
30
  orientation: Orientation;
23
31
  }
24
- export declare interface EnvironmentPreset<K extends EnvironmentPresetKey> {
25
- get value(): EnvironmentPresetValues<K>;
26
- onChange(listener: (value: EnvironmentPresetValues<K>) => void, options?: AddEventListenerOptions): () => void;
27
- }
28
- export declare interface Environment {
29
- safeAreaInset: EnvironmentPreset<'safe-area-inset'>;
30
- safeAreaMaxInset: EnvironmentPreset<'safe-area-max-inset'>;
31
- keyboardInset: EnvironmentPreset<'keyboard-inset'>;
32
- titlebarArea: EnvironmentPreset<'titlebar-area'>;
33
- viewportSegment: EnvironmentPreset<'viewport-segment'>;
32
+ export declare interface DimensionInstance {
33
+ get value(): Dimensions;
34
+ environment: Environment;
35
+ onChange(listener: (dimension: Dimensions) => void, options?: AddEventListenerOptions): () => void;
36
+ Constants: {
37
+ Orientation: typeof Orientation;
38
+ };
39
+ Errors: {};
34
40
  }
@@ -1,10 +1,15 @@
1
- import { EnvironmentPresetKey, EnvironmentPresetValues } from "../types";
1
+ import { EnvironmentObserver, EnvironmentPresetKey } from "../types";
2
2
  declare global {
3
3
  interface Navigator {
4
4
  readonly virtualKeyboard?: VirtualKeyboard;
5
+ readonly devicePosture?: DevicePosture;
5
6
  }
7
+ var viewport: BrowsingContextViewport | undefined;
8
+ }
9
+ interface DevicePosture extends EventTarget {
10
+ readonly type: 'continuous' | 'folded';
11
+ onchange: ((this: DevicePosture, ev: Event) => any) | null;
6
12
  }
7
- type ChangeCallback<K extends EnvironmentPresetKey> = (values: EnvironmentPresetValues<K>) => void;
8
13
  interface VirtualKeyboardEventMap {
9
14
  geometrychange: Event;
10
15
  }
@@ -16,9 +21,13 @@ interface VirtualKeyboard extends EventTarget {
16
21
  addEventListener<K extends keyof VirtualKeyboardEventMap>(type: K, listener: (this: VirtualKeyboard, ev: VirtualKeyboardEventMap[K]) => any, options?: AddEventListenerOptions): void;
17
22
  removeEventListener<K extends keyof VirtualKeyboardEventMap>(type: K, listener: (this: VirtualKeyboard, ev: VirtualKeyboardEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
18
23
  }
19
- export type EnvObserver<K extends EnvironmentPresetKey> = {
20
- get(): EnvironmentPresetValues<K>;
21
- onChange(callback: ChangeCallback<K>, options?: AddEventListenerOptions): () => void;
22
- };
23
- export default function createEnvObserver<K extends EnvironmentPresetKey>(preset: K): EnvObserver<K>;
24
+ interface BrowsingContextViewportEventMap {
25
+ change: Event;
26
+ }
27
+ interface BrowsingContextViewport extends EventTarget {
28
+ readonly segments: ReadonlyArray<DOMRectReadOnly> | null;
29
+ addEventListener<K extends keyof BrowsingContextViewportEventMap>(type: K, listener: (this: BrowsingContextViewport, ev: BrowsingContextViewportEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
30
+ removeEventListener<K extends keyof BrowsingContextViewportEventMap>(type: K, listener: (this: BrowsingContextViewport, ev: BrowsingContextViewportEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
31
+ }
32
+ export default function createEnvObserver<K extends EnvironmentPresetKey>(preset: K): EnvironmentObserver<K>;
24
33
  export {};
@@ -0,0 +1,33 @@
1
+ import { EnvironmentObserver, EnvironmentPresetKey } from "../types";
2
+ declare global {
3
+ interface Navigator {
4
+ readonly virtualKeyboard?: VirtualKeyboard;
5
+ readonly devicePosture?: DevicePosture;
6
+ }
7
+ var viewport: BrowsingContextViewport | undefined;
8
+ }
9
+ interface DevicePosture extends EventTarget {
10
+ readonly type: 'continuous' | 'folded';
11
+ onchange: ((this: DevicePosture, ev: Event) => any) | null;
12
+ }
13
+ interface VirtualKeyboardEventMap {
14
+ geometrychange: Event;
15
+ }
16
+ interface VirtualKeyboard extends EventTarget {
17
+ readonly boundingRect: DOMRect;
18
+ overlaysContent: boolean;
19
+ show(): void;
20
+ hide(): void;
21
+ addEventListener<K extends keyof VirtualKeyboardEventMap>(type: K, listener: (this: VirtualKeyboard, ev: VirtualKeyboardEventMap[K]) => any, options?: AddEventListenerOptions): void;
22
+ removeEventListener<K extends keyof VirtualKeyboardEventMap>(type: K, listener: (this: VirtualKeyboard, ev: VirtualKeyboardEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
23
+ }
24
+ interface BrowsingContextViewportEventMap {
25
+ change: Event;
26
+ }
27
+ interface BrowsingContextViewport extends EventTarget {
28
+ readonly segments: ReadonlyArray<DOMRectReadOnly> | null;
29
+ addEventListener<K extends keyof BrowsingContextViewportEventMap>(type: K, listener: (this: BrowsingContextViewport, ev: BrowsingContextViewportEventMap[K]) => any, options?: boolean | AddEventListenerOptions): void;
30
+ removeEventListener<K extends keyof BrowsingContextViewportEventMap>(type: K, listener: (this: BrowsingContextViewport, ev: BrowsingContextViewportEventMap[K]) => any, options?: boolean | EventListenerOptions): void;
31
+ }
32
+ export default function createEnvironmentObserver<K extends EnvironmentPresetKey>(preset: K): EnvironmentObserver<K>;
33
+ export {};
@@ -34,7 +34,7 @@ export declare enum Browsers {
34
34
  IE = "IE",
35
35
  SamsungInternet = "SamsungInternet"
36
36
  }
37
- export declare const USER_AGENT: string;
37
+ export declare let USER_AGENT: string;
38
38
  export declare const HIGH_ENTROPY_BRAND_NAME_MAP: Record<string, string>;
39
39
  export declare const RTL_LANGUAGES: string[];
40
40
  export declare const OS_RESOLVER_MAP: [RegExp, OS, VersionResolver?][];
@@ -0,0 +1 @@
1
+ export default function insertionSort(arr: number[]): void;
@@ -91,11 +91,11 @@ exports.Browsers = void 0;
91
91
  Browsers["IE"] = "IE";
92
92
  Browsers["SamsungInternet"] = "SamsungInternet";
93
93
  })(exports.Browsers || (exports.Browsers = {}));
94
- var USER_AGENT = (function () {
95
- if (typeof globalThis.navigator.userAgent !== 'undefined')
96
- return globalThis.navigator.userAgent;
97
- return '';
98
- })();
94
+ exports.USER_AGENT = void 0;
95
+ if (typeof globalThis.navigator.userAgent !== 'undefined')
96
+ exports.USER_AGENT = globalThis.navigator.userAgent;
97
+ else
98
+ exports.USER_AGENT = '';
99
99
  var HIGH_ENTROPY_BRAND_NAME_MAP = {
100
100
  'Google Chrome': 'Chrome',
101
101
  'Microsoft Edge': 'Edge',
@@ -370,7 +370,7 @@ var EventListener = {
370
370
  },
371
371
  };
372
372
 
373
- var currentUserAgent = USER_AGENT;
373
+ var currentUserAgent = exports.USER_AGENT;
374
374
  var parsedCache = null;
375
375
  var parsedFromHighEntropyValuesOS = {};
376
376
  var parsedFromHighEntropyValuesBrowser = {};
@@ -457,7 +457,7 @@ function parseOS() {
457
457
  result.version = version[1];
458
458
  }
459
459
  }
460
- if (currentUserAgent === USER_AGENT) {
460
+ if (currentUserAgent === exports.USER_AGENT) {
461
461
  if (typeof parsedFromHighEntropyValuesOS.name !== 'undefined')
462
462
  result.name = parsedFromHighEntropyValuesOS.name;
463
463
  if (typeof parsedFromHighEntropyValuesOS.version !== 'undefined')
@@ -478,7 +478,7 @@ function parseBrowser() {
478
478
  break;
479
479
  }
480
480
  }
481
- if (currentUserAgent === USER_AGENT) {
481
+ if (currentUserAgent === exports.USER_AGENT) {
482
482
  if (typeof parsedFromHighEntropyValuesBrowser.name !== 'undefined')
483
483
  result.name = parsedFromHighEntropyValuesBrowser.name;
484
484
  if (typeof parsedFromHighEntropyValuesBrowser.version !== 'undefined')
@@ -497,7 +497,7 @@ function parseEngine() {
497
497
  break;
498
498
  }
499
499
  }
500
- if (currentUserAgent === USER_AGENT) {
500
+ if (currentUserAgent === exports.USER_AGENT) {
501
501
  if (typeof parsedFromHighEntropyValuesEngine.name !== 'undefined')
502
502
  result.name = parsedFromHighEntropyValuesEngine.name;
503
503
  if (typeof parsedFromHighEntropyValuesEngine.version !== 'undefined')
@@ -596,7 +596,7 @@ function getLocale() {
596
596
  return cachedLocale;
597
597
  }
598
598
  function getDevice() {
599
- if (currentUserAgent === USER_AGENT && parsedFromHighEntropyValuesDevice !== null)
599
+ if (currentUserAgent === exports.USER_AGENT && parsedFromHighEntropyValuesDevice !== null)
600
600
  return parsedFromHighEntropyValuesDevice;
601
601
  var osName = getParsedCache().os.name;
602
602
  if (osName === exports.OS.iOS || osName === exports.OS.Android)
@@ -734,7 +734,7 @@ var Platform = {
734
734
  return;
735
735
  currentUserAgent = value;
736
736
  invalidateCache();
737
- if (value === USER_AGENT) {
737
+ if (value === exports.USER_AGENT) {
738
738
  ready = Promise.all([
739
739
  parseFromHighEntropyValues(),
740
740
  parseFromNavigatorGPU(),
@@ -774,5 +774,4 @@ exports.ENGINE_RESOLVER_MAP = ENGINE_RESOLVER_MAP;
774
774
  exports.HIGH_ENTROPY_BRAND_NAME_MAP = HIGH_ENTROPY_BRAND_NAME_MAP;
775
775
  exports.OS_RESOLVER_MAP = OS_RESOLVER_MAP;
776
776
  exports.RTL_LANGUAGES = RTL_LANGUAGES;
777
- exports.USER_AGENT = USER_AGENT;
778
777
  exports.default = Platform;
@@ -33,7 +33,7 @@ declare enum Browsers {
33
33
  IE = "IE",
34
34
  SamsungInternet = "SamsungInternet"
35
35
  }
36
- declare const USER_AGENT: string;
36
+ declare let USER_AGENT: string;
37
37
  declare const HIGH_ENTROPY_BRAND_NAME_MAP: Record<string, string>;
38
38
  declare const RTL_LANGUAGES: string[];
39
39
  declare const OS_RESOLVER_MAP: [RegExp, OS, VersionResolver?][];
@@ -57,6 +57,22 @@ interface BatteryManager extends EventTarget {
57
57
  onlevelchange: ((this: BatteryManager, ev: Event) => any) | null;
58
58
  }
59
59
 
60
+ declare global {
61
+ interface DOMRectReadOnly {
62
+ readonly x: number;
63
+ readonly y: number;
64
+ readonly width: number;
65
+ readonly height: number;
66
+ readonly top: number;
67
+ readonly right: number;
68
+ readonly bottom: number;
69
+ readonly left: number;
70
+ }
71
+ interface VisualViewport {
72
+ readonly segments?: DOMRectReadOnly[];
73
+ }
74
+ }
75
+
60
76
  declare global {
61
77
  interface HTMLVideoElement {
62
78
  webkitEnterFullscreen?: () => void;
@@ -87,11 +87,11 @@ var Browsers;
87
87
  Browsers["IE"] = "IE";
88
88
  Browsers["SamsungInternet"] = "SamsungInternet";
89
89
  })(Browsers || (Browsers = {}));
90
- var USER_AGENT = (function () {
91
- if (typeof globalThis.navigator.userAgent !== 'undefined')
92
- return globalThis.navigator.userAgent;
93
- return '';
94
- })();
90
+ var USER_AGENT;
91
+ if (typeof globalThis.navigator.userAgent !== 'undefined')
92
+ USER_AGENT = globalThis.navigator.userAgent;
93
+ else
94
+ USER_AGENT = '';
95
95
  var HIGH_ENTROPY_BRAND_NAME_MAP = {
96
96
  'Google Chrome': 'Chrome',
97
97
  'Microsoft Edge': 'Edge',
@@ -3,6 +3,6 @@ export declare enum Appearances {
3
3
  Light = "light",
4
4
  Dark = "dark"
5
5
  }
6
- export declare let MEDIA_QUERY_LIST: MediaQueryList;
6
+ export declare let PREFERS_COLOR_SCHEME_MEDIA_QUERY_LIST: MediaQueryList;
7
7
  export declare const CONTEXT: CanvasRenderingContext2D | null;
8
8
  export declare const SVG_PIXEL_DATA_URL: string;
@@ -1,4 +1,3 @@
1
- import { Dimensions } from "../types";
2
1
  export declare enum Orientation {
3
2
  Portrait = "portrait",
4
3
  Landscape = "landscape",
@@ -40,5 +39,5 @@ export declare const ENV_PRESETS: {
40
39
  readonly left: "viewport-segment-left";
41
40
  };
42
41
  };
43
- export declare const FALLBACK_DIMENSION: Dimensions;
44
- export declare let MEDIA_QUERY_LIST: MediaQueryList;
42
+ export declare let ORIENTATION_MEDIA_QUERY_LIST: MediaQueryList;
43
+ export declare let DEVICE_POSTURE_MEDIA_QUERY_LIST: MediaQueryList;
@@ -1,3 +1,18 @@
1
1
  import { DimensionInstance } from "../types";
2
+ declare global {
3
+ interface DOMRectReadOnly {
4
+ readonly x: number;
5
+ readonly y: number;
6
+ readonly width: number;
7
+ readonly height: number;
8
+ readonly top: number;
9
+ readonly right: number;
10
+ readonly bottom: number;
11
+ readonly left: number;
12
+ }
13
+ interface VisualViewport {
14
+ readonly segments?: DOMRectReadOnly[];
15
+ }
16
+ }
2
17
  declare const Dimension: DimensionInstance;
3
18
  export default Dimension;
@@ -1,18 +1,26 @@
1
1
  import { ENV_PRESETS, Orientation } from "../constants";
2
2
  export type EnvironmentPresetKey = keyof typeof ENV_PRESETS;
3
- export type EnvironmentPresetAttr<K extends EnvironmentPresetKey> = keyof typeof ENV_PRESETS[K];
3
+ export type EnvironmentPresetAttribute<K extends EnvironmentPresetKey> = keyof typeof ENV_PRESETS[K];
4
4
  export type EnvironmentPresetValues<K extends EnvironmentPresetKey> = {
5
- [P in EnvironmentPresetAttr<K>]: number;
5
+ [P in EnvironmentPresetAttribute<K>]: number;
6
6
  };
7
- export declare interface DimensionInstance {
8
- get value(): Dimensions;
9
- environment: Environment;
10
- onChange(listener: (dimension: Dimensions) => void, options?: AddEventListenerOptions): () => void;
11
- Constants: {
12
- Orientation: typeof Orientation;
13
- };
14
- Errors: {};
7
+ export declare interface Environment {
8
+ safeAreaInset: EnvironmentObserver<'safe-area-inset'>;
9
+ safeAreaMaxInset: EnvironmentObserver<'safe-area-max-inset'>;
10
+ keyboardInset: EnvironmentObserver<'keyboard-inset'>;
11
+ titlebarArea: EnvironmentObserver<'titlebar-area'>;
12
+ viewportSegment: EnvironmentObserver<'viewport-segment'>;
13
+ }
14
+ export declare interface SegmentsObserver {
15
+ get value(): EnvironmentPresetValues<'viewport-segment'>[];
16
+ onChange(listener: (value: EnvironmentPresetValues<'viewport-segment'>[]) => void, options?: AddEventListenerOptions): () => void;
17
+ useCssVariable(prefix: string): () => void;
15
18
  }
19
+ export declare type EnvironmentObserver<K extends EnvironmentPresetKey> = K extends 'viewport-segment' ? SegmentsObserver : {
20
+ get value(): EnvironmentPresetValues<K>;
21
+ onChange(listener: (value: EnvironmentPresetValues<K>) => void, options?: AddEventListenerOptions): () => void;
22
+ useCssVariable(prefix: string): () => void;
23
+ };
16
24
  export declare interface Dimensions {
17
25
  outerWidth: number;
18
26
  outerHeight: number;
@@ -21,14 +29,12 @@ export declare interface Dimensions {
21
29
  scale: number;
22
30
  orientation: Orientation;
23
31
  }
24
- export declare interface EnvironmentPreset<K extends EnvironmentPresetKey> {
25
- get value(): EnvironmentPresetValues<K>;
26
- onChange(listener: (value: EnvironmentPresetValues<K>) => void, options?: AddEventListenerOptions): () => void;
27
- }
28
- export declare interface Environment {
29
- safeAreaInset: EnvironmentPreset<'safe-area-inset'>;
30
- safeAreaMaxInset: EnvironmentPreset<'safe-area-max-inset'>;
31
- keyboardInset: EnvironmentPreset<'keyboard-inset'>;
32
- titlebarArea: EnvironmentPreset<'titlebar-area'>;
33
- viewportSegment: EnvironmentPreset<'viewport-segment'>;
32
+ export declare interface DimensionInstance {
33
+ get value(): Dimensions;
34
+ environment: Environment;
35
+ onChange(listener: (dimension: Dimensions) => void, options?: AddEventListenerOptions): () => void;
36
+ Constants: {
37
+ Orientation: typeof Orientation;
38
+ };
39
+ Errors: {};
34
40
  }