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
package/README.md CHANGED
@@ -592,6 +592,16 @@ const unsubscribe = Native.dimension.environment.safeAreaInset.onChange((inset)
592
592
  document.body.style.paddingBottom = inset.bottom + 'px';
593
593
  });
594
594
  unsubscribe();
595
+
596
+ // Sync safe area insets to CSS variables
597
+ // Usage in CSS: var(--sai-top), var(--sai-bottom), var(--sai-left), var(--sai-right)
598
+ const releaseSai = Native.dimension.environment.safeAreaInset.useCssVariable('sai');
599
+ releaseSai(); // removes all --sai-* variables
600
+
601
+ // Sync viewport segments to CSS variables (e.g. foldable devices)
602
+ // Usage in CSS: var(--vs-0-width), var(--vs-0-height), var(--vs-1-top), ...
603
+ const releaseVs = Native.dimension.environment.viewportSegment.useCssVariable('vs');
604
+ releaseVs(); // removes all --vs-{index}-* variables
595
605
  ```
596
606
 
597
607
  **Returns**
@@ -603,16 +613,30 @@ Environment
603
613
 
604
614
  ```ts
605
615
  interface Environment {
606
- safeAreaInset: EnvironmentPreset<'safe-area-inset'>;
607
- safeAreaMaxInset: EnvironmentPreset<'safe-area-max-inset'>;
608
- keyboardInset: EnvironmentPreset<'keyboard-inset'>;
609
- titlebarArea: EnvironmentPreset<'titlebar-area'>;
610
- viewportSegment: EnvironmentPreset<'viewport-segment'>;
616
+ safeAreaInset: EnvironmentObserver<'safe-area-inset'>;
617
+ safeAreaMaxInset: EnvironmentObserver<'safe-area-max-inset'>;
618
+ keyboardInset: EnvironmentObserver<'keyboard-inset'>;
619
+ titlebarArea: EnvironmentObserver<'titlebar-area'>;
620
+ viewportSegment: EnvironmentObserver<'viewport-segment'>;
611
621
  }
612
622
 
613
- interface EnvironmentPreset<K> {
614
- get value(): EnvironmentPresetValues<K>;
615
- onChange(listener: (value: EnvironmentPresetValues<K>) => void, options?: AddEventListenerOptions): () => void;
623
+ type EnvironmentObserver<K extends EnvironmentPresetKey> =
624
+ K extends 'viewport-segment'
625
+ ? SegmentsObserver
626
+ : {
627
+ get value(): EnvironmentPresetValues<K>;
628
+
629
+ onChange(listener: (value: EnvironmentPresetValues<K>) => void, options?: AddEventListenerOptions): () => void;
630
+
631
+ useCssVariable(prefix: string): () => void;
632
+ };
633
+
634
+ interface SegmentsObserver {
635
+ get value(): EnvironmentPresetValues<'viewport-segment'>[];
636
+
637
+ onChange(listener: (value: EnvironmentPresetValues<'viewport-segment'>[]) => void, options?: AddEventListenerOptions): () => void;
638
+
639
+ useCssVariable(prefix: string): () => void;
616
640
  }
617
641
  ```
618
642
 
package/dist/index.d.ts CHANGED
@@ -109,19 +109,27 @@ declare const ENV_PRESETS: {
109
109
  };
110
110
 
111
111
  type EnvironmentPresetKey = keyof typeof ENV_PRESETS;
112
- type EnvironmentPresetAttr<K extends EnvironmentPresetKey> = keyof typeof ENV_PRESETS[K];
112
+ type EnvironmentPresetAttribute<K extends EnvironmentPresetKey> = keyof typeof ENV_PRESETS[K];
113
113
  type EnvironmentPresetValues<K extends EnvironmentPresetKey> = {
114
- [P in EnvironmentPresetAttr<K>]: number;
114
+ [P in EnvironmentPresetAttribute<K>]: number;
115
+ };
116
+ declare interface Environment {
117
+ safeAreaInset: EnvironmentObserver<'safe-area-inset'>;
118
+ safeAreaMaxInset: EnvironmentObserver<'safe-area-max-inset'>;
119
+ keyboardInset: EnvironmentObserver<'keyboard-inset'>;
120
+ titlebarArea: EnvironmentObserver<'titlebar-area'>;
121
+ viewportSegment: EnvironmentObserver<'viewport-segment'>;
122
+ }
123
+ declare interface SegmentsObserver {
124
+ get value(): EnvironmentPresetValues<'viewport-segment'>[];
125
+ onChange(listener: (value: EnvironmentPresetValues<'viewport-segment'>[]) => void, options?: AddEventListenerOptions): () => void;
126
+ useCssVariable(prefix: string): () => void;
127
+ }
128
+ declare type EnvironmentObserver<K extends EnvironmentPresetKey> = K extends 'viewport-segment' ? SegmentsObserver : {
129
+ get value(): EnvironmentPresetValues<K>;
130
+ onChange(listener: (value: EnvironmentPresetValues<K>) => void, options?: AddEventListenerOptions): () => void;
131
+ useCssVariable(prefix: string): () => void;
115
132
  };
116
- declare interface DimensionInstance {
117
- get value(): Dimensions;
118
- environment: Environment;
119
- onChange(listener: (dimension: Dimensions) => void, options?: AddEventListenerOptions): () => void;
120
- Constants: {
121
- Orientation: typeof Orientation;
122
- };
123
- Errors: {};
124
- }
125
133
  declare interface Dimensions {
126
134
  outerWidth: number;
127
135
  outerHeight: number;
@@ -130,18 +138,31 @@ declare interface Dimensions {
130
138
  scale: number;
131
139
  orientation: Orientation;
132
140
  }
133
- declare interface EnvironmentPreset<K extends EnvironmentPresetKey> {
134
- get value(): EnvironmentPresetValues<K>;
135
- onChange(listener: (value: EnvironmentPresetValues<K>) => void, options?: AddEventListenerOptions): () => void;
136
- }
137
- declare interface Environment {
138
- safeAreaInset: EnvironmentPreset<'safe-area-inset'>;
139
- safeAreaMaxInset: EnvironmentPreset<'safe-area-max-inset'>;
140
- keyboardInset: EnvironmentPreset<'keyboard-inset'>;
141
- titlebarArea: EnvironmentPreset<'titlebar-area'>;
142
- viewportSegment: EnvironmentPreset<'viewport-segment'>;
141
+ declare interface DimensionInstance {
142
+ get value(): Dimensions;
143
+ environment: Environment;
144
+ onChange(listener: (dimension: Dimensions) => void, options?: AddEventListenerOptions): () => void;
145
+ Constants: {
146
+ Orientation: typeof Orientation;
147
+ };
148
+ Errors: {};
143
149
  }
144
150
 
151
+ declare global {
152
+ interface DOMRectReadOnly {
153
+ readonly x: number;
154
+ readonly y: number;
155
+ readonly width: number;
156
+ readonly height: number;
157
+ readonly top: number;
158
+ readonly right: number;
159
+ readonly bottom: number;
160
+ readonly left: number;
161
+ }
162
+ interface VisualViewport {
163
+ readonly segments?: DOMRectReadOnly[];
164
+ }
165
+ }
145
166
  declare const Dimension: DimensionInstance;
146
167
 
147
168
  declare const InvalidStateError: ErrorConstructor;