native-fn 1.2.1 → 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 +175 -39
  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
@@ -21,11 +21,11 @@ var Appearances;
21
21
  Appearances["Light"] = "light";
22
22
  Appearances["Dark"] = "dark";
23
23
  })(Appearances || (Appearances = {}));
24
- var MEDIA_QUERY_LIST;
24
+ var PREFERS_COLOR_SCHEME_MEDIA_QUERY_LIST;
25
25
  if (typeof globalThis.matchMedia !== 'undefined')
26
- MEDIA_QUERY_LIST = globalThis.matchMedia('(prefers-color-scheme: dark)');
26
+ PREFERS_COLOR_SCHEME_MEDIA_QUERY_LIST = globalThis.matchMedia('(prefers-color-scheme: dark)');
27
27
  else
28
- MEDIA_QUERY_LIST = FALLBACK_MEDIA_QUERY_LIST;
28
+ PREFERS_COLOR_SCHEME_MEDIA_QUERY_LIST = FALLBACK_MEDIA_QUERY_LIST;
29
29
  var CONTEXT = globalThis.document.createElement('canvas').getContext('2d', { willReadFrequently: true });
30
30
  var SVG_PIXEL_DATA_URL = 'data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIxIiBoZWlnaHQ9IjEiPjxwYXRoIGZpbGw9IiNmZmYiIGQ9Ik0wIDBoMXYxSDB6Ii8+PC9zdmc+';
31
31
 
@@ -118,11 +118,11 @@ var Browsers;
118
118
  Browsers["IE"] = "IE";
119
119
  Browsers["SamsungInternet"] = "SamsungInternet";
120
120
  })(Browsers || (Browsers = {}));
121
- var USER_AGENT = (function () {
122
- if (typeof globalThis.navigator.userAgent !== 'undefined')
123
- return globalThis.navigator.userAgent;
124
- return '';
125
- })();
121
+ var USER_AGENT;
122
+ if (typeof globalThis.navigator.userAgent !== 'undefined')
123
+ USER_AGENT = globalThis.navigator.userAgent;
124
+ else
125
+ USER_AGENT = '';
126
126
  var HIGH_ENTROPY_BRAND_NAME_MAP = {
127
127
  'Google Chrome': 'Chrome',
128
128
  'Microsoft Edge': 'Edge',
@@ -621,6 +621,8 @@ function createSubscriptionManager(attach, detach) {
621
621
  },
622
622
  subscribe: function (listener, options) {
623
623
  if (options === void 0) { options = {}; }
624
+ if (typeof options.signal !== 'undefined' && options.signal.aborted)
625
+ return function () { };
624
626
  var entry = { fn: listener, once: false };
625
627
  if (typeof options.once !== 'undefined')
626
628
  entry.once = options.once;
@@ -639,12 +641,8 @@ function createSubscriptionManager(attach, detach) {
639
641
  EventListener.remove(entry.signal, { type: 'abort', callback: cleanup });
640
642
  removeEntry(entry);
641
643
  };
642
- if (typeof entry.signal !== 'undefined') {
643
- if (entry.signal.aborted)
644
- removeEntry(entry);
645
- else
646
- EventListener.add(entry.signal, { type: 'abort', callback: cleanup });
647
- }
644
+ if (typeof entry.signal !== 'undefined')
645
+ EventListener.add(entry.signal, { type: 'abort', callback: cleanup });
648
646
  return function unsubscribe() {
649
647
  removeEntry(entry);
650
648
  };
@@ -678,9 +676,9 @@ function getAppearanceFromEngine() {
678
676
  return Appearances.Light;
679
677
  }
680
678
  function getAppearanceFromMediaQuery() {
681
- if (MEDIA_QUERY_LIST.media === 'not all')
679
+ if (PREFERS_COLOR_SCHEME_MEDIA_QUERY_LIST.media === 'not all')
682
680
  return Appearances.Unknown;
683
- if (MEDIA_QUERY_LIST.matches)
681
+ if (PREFERS_COLOR_SCHEME_MEDIA_QUERY_LIST.matches)
684
682
  return Appearances.Dark;
685
683
  return Appearances.Light;
686
684
  }
@@ -708,13 +706,13 @@ function stopPolling() {
708
706
  }
709
707
  function attachOnChange() {
710
708
  appearanceRef = getAppearanceFromMediaQuery();
711
- EventListener.add(MEDIA_QUERY_LIST, { type: 'change', callback: onMediaChange });
709
+ EventListener.add(PREFERS_COLOR_SCHEME_MEDIA_QUERY_LIST, { type: 'change', callback: onMediaChange });
712
710
  if (Platform.browser.name === Browsers.SamsungInternet)
713
711
  startPolling();
714
712
  }
715
713
  function detachOnChange() {
716
714
  appearanceRef = null;
717
- EventListener.remove(MEDIA_QUERY_LIST, { type: 'change', callback: onMediaChange });
715
+ EventListener.remove(PREFERS_COLOR_SCHEME_MEDIA_QUERY_LIST, { type: 'change', callback: onMediaChange });
718
716
  if (Platform.browser.name === Browsers.SamsungInternet)
719
717
  stopPolling();
720
718
  }
@@ -728,4 +726,4 @@ function onMediaChange(event) {
728
726
  onChangeSubscriptionManager.emit(appearanceRef = appearance);
729
727
  }
730
728
 
731
- export { Appearances, CONTEXT, MEDIA_QUERY_LIST, SVG_PIXEL_DATA_URL, Appearance as default };
729
+ export { Appearances, CONTEXT, PREFERS_COLOR_SCHEME_MEDIA_QUERY_LIST, SVG_PIXEL_DATA_URL, Appearance as default };
@@ -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;
@@ -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;
@@ -317,6 +317,8 @@ function createSubscriptionManager(attach, detach) {
317
317
  },
318
318
  subscribe: function (listener, options) {
319
319
  if (options === void 0) { options = {}; }
320
+ if (typeof options.signal !== 'undefined' && options.signal.aborted)
321
+ return function () { };
320
322
  var entry = { fn: listener, once: false };
321
323
  if (typeof options.once !== 'undefined')
322
324
  entry.once = options.once;
@@ -335,12 +337,8 @@ function createSubscriptionManager(attach, detach) {
335
337
  EventListener.remove(entry.signal, { type: 'abort', callback: cleanup });
336
338
  removeEntry(entry);
337
339
  };
338
- if (typeof entry.signal !== 'undefined') {
339
- if (entry.signal.aborted)
340
- removeEntry(entry);
341
- else
342
- EventListener.add(entry.signal, { type: 'abort', callback: cleanup });
343
- }
340
+ if (typeof entry.signal !== 'undefined')
341
+ EventListener.add(entry.signal, { type: 'abort', callback: cleanup });
344
342
  return function unsubscribe() {
345
343
  removeEntry(entry);
346
344
  };
@@ -315,6 +315,8 @@ function createSubscriptionManager(attach, detach) {
315
315
  },
316
316
  subscribe: function (listener, options) {
317
317
  if (options === void 0) { options = {}; }
318
+ if (typeof options.signal !== 'undefined' && options.signal.aborted)
319
+ return function () { };
318
320
  var entry = { fn: listener, once: false };
319
321
  if (typeof options.once !== 'undefined')
320
322
  entry.once = options.once;
@@ -333,12 +335,8 @@ function createSubscriptionManager(attach, detach) {
333
335
  EventListener.remove(entry.signal, { type: 'abort', callback: cleanup });
334
336
  removeEntry(entry);
335
337
  };
336
- if (typeof entry.signal !== 'undefined') {
337
- if (entry.signal.aborted)
338
- removeEntry(entry);
339
- else
340
- EventListener.add(entry.signal, { type: 'abort', callback: cleanup });
341
- }
338
+ if (typeof entry.signal !== 'undefined')
339
+ EventListener.add(entry.signal, { type: 'abort', callback: cleanup });
342
340
  return function unsubscribe() {
343
341
  removeEntry(entry);
344
342
  };
@@ -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
  }