@korsolutions/ui 0.0.52 → 0.0.53

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 (254) hide show
  1. package/AGENTS.md +3 -3
  2. package/dist/module/components/alert/components/alert-description.js.map +1 -1
  3. package/dist/module/components/index.js +1 -0
  4. package/dist/module/components/index.js.map +1 -1
  5. package/dist/module/components/input/numeric-input.js +1 -1
  6. package/dist/module/components/input/numeric-input.js.map +1 -1
  7. package/dist/module/components/input/variants/default.js +9 -2
  8. package/dist/module/components/input/variants/default.js.map +1 -1
  9. package/dist/module/components/input/variants/secondary.js +9 -2
  10. package/dist/module/components/input/variants/secondary.js.map +1 -1
  11. package/dist/module/components/link/variants/default.js.map +1 -1
  12. package/dist/module/components/menu/components/menu-trigger.js +1 -1
  13. package/dist/module/components/menu/components/menu-trigger.js.map +1 -1
  14. package/dist/module/components/phone-input/index.js +4 -0
  15. package/dist/module/components/phone-input/index.js.map +1 -0
  16. package/dist/module/components/phone-input/phone-input.js +165 -0
  17. package/dist/module/components/phone-input/phone-input.js.map +1 -0
  18. package/dist/module/components/phone-input/types.js +4 -0
  19. package/dist/module/components/phone-input/types.js.map +1 -0
  20. package/dist/module/components/phone-input/variants/default.js +128 -0
  21. package/dist/module/components/phone-input/variants/default.js.map +1 -0
  22. package/dist/module/components/phone-input/variants/index.js +7 -0
  23. package/dist/module/components/phone-input/variants/index.js.map +1 -0
  24. package/dist/module/components/select/components/select-trigger.js +2 -2
  25. package/dist/module/components/select/components/select-trigger.js.map +1 -1
  26. package/dist/module/components/tabs/variants/default.js.map +1 -1
  27. package/dist/module/components/toast/components/toast-icon.js.map +1 -1
  28. package/dist/module/components/toast/manager.js +2 -2
  29. package/dist/module/components/toast/manager.js.map +1 -1
  30. package/dist/module/components/typography/variants/body-lg.js.map +1 -1
  31. package/dist/module/components/typography/variants/body-md.js.map +1 -1
  32. package/dist/module/components/typography/variants/body-sm.js.map +1 -1
  33. package/dist/module/components/typography/variants/heading-lg.js.map +1 -1
  34. package/dist/module/components/typography/variants/heading-md.js.map +1 -1
  35. package/dist/module/components/typography/variants/heading-sm.js.map +1 -1
  36. package/dist/module/data/countries.js +476 -0
  37. package/dist/module/data/countries.js.map +1 -0
  38. package/dist/module/hooks/index.js +1 -0
  39. package/dist/module/hooks/index.js.map +1 -1
  40. package/dist/module/hooks/use-phone-mask.js +121 -0
  41. package/dist/module/hooks/use-phone-mask.js.map +1 -0
  42. package/dist/module/hooks/use-relative-position.js.map +1 -1
  43. package/dist/module/index.js +2 -2
  44. package/dist/module/index.js.map +1 -1
  45. package/dist/module/themes/provider.js.map +1 -1
  46. package/dist/module/themes/utils.js.map +1 -1
  47. package/dist/module/utils/input-utils.js.map +1 -1
  48. package/dist/module/utils/normalize-layout.js.map +1 -1
  49. package/dist/module/utils/use-themed-styles.js.map +1 -1
  50. package/dist/typescript/src/components/alert/components/alert-body.d.ts.map +1 -1
  51. package/dist/typescript/src/components/alert/components/alert-description.d.ts +2 -2
  52. package/dist/typescript/src/components/alert/components/alert-description.d.ts.map +1 -1
  53. package/dist/typescript/src/components/alert/components/alert-icon.d.ts.map +1 -1
  54. package/dist/typescript/src/components/alert/components/alert-root.d.ts.map +1 -1
  55. package/dist/typescript/src/components/alert/components/alert-title.d.ts.map +1 -1
  56. package/dist/typescript/src/components/alert/variants/default.d.ts +1 -1
  57. package/dist/typescript/src/components/alert/variants/default.d.ts.map +1 -1
  58. package/dist/typescript/src/components/alert/variants/destructive.d.ts +1 -1
  59. package/dist/typescript/src/components/alert/variants/destructive.d.ts.map +1 -1
  60. package/dist/typescript/src/components/alert-dialog/components/alert-dialog-trigger.d.ts.map +1 -1
  61. package/dist/typescript/src/components/alert-dialog/variants/default.d.ts +1 -1
  62. package/dist/typescript/src/components/alert-dialog/variants/default.d.ts.map +1 -1
  63. package/dist/typescript/src/components/avatar/variants/default.d.ts +1 -1
  64. package/dist/typescript/src/components/avatar/variants/default.d.ts.map +1 -1
  65. package/dist/typescript/src/components/badge/components/badge-root.d.ts.map +1 -1
  66. package/dist/typescript/src/components/badge/variants/default.d.ts +1 -1
  67. package/dist/typescript/src/components/badge/variants/default.d.ts.map +1 -1
  68. package/dist/typescript/src/components/badge/variants/secondary.d.ts +1 -1
  69. package/dist/typescript/src/components/badge/variants/secondary.d.ts.map +1 -1
  70. package/dist/typescript/src/components/button/components/button-label.d.ts.map +1 -1
  71. package/dist/typescript/src/components/button/variants/default.d.ts +1 -1
  72. package/dist/typescript/src/components/button/variants/default.d.ts.map +1 -1
  73. package/dist/typescript/src/components/button/variants/secondary.d.ts +1 -1
  74. package/dist/typescript/src/components/button/variants/secondary.d.ts.map +1 -1
  75. package/dist/typescript/src/components/calendar/variants/default.d.ts +1 -1
  76. package/dist/typescript/src/components/calendar/variants/default.d.ts.map +1 -1
  77. package/dist/typescript/src/components/card/card-body.d.ts.map +1 -1
  78. package/dist/typescript/src/components/card/card-footer.d.ts.map +1 -1
  79. package/dist/typescript/src/components/card/card-header.d.ts.map +1 -1
  80. package/dist/typescript/src/components/card/card-root.d.ts.map +1 -1
  81. package/dist/typescript/src/components/card/card-title.d.ts.map +1 -1
  82. package/dist/typescript/src/components/card/variants/default.d.ts +1 -1
  83. package/dist/typescript/src/components/card/variants/default.d.ts.map +1 -1
  84. package/dist/typescript/src/components/checkbox/variants/default.d.ts +1 -1
  85. package/dist/typescript/src/components/checkbox/variants/default.d.ts.map +1 -1
  86. package/dist/typescript/src/components/checkbox/variants/outlined.d.ts +1 -1
  87. package/dist/typescript/src/components/checkbox/variants/outlined.d.ts.map +1 -1
  88. package/dist/typescript/src/components/empty/variants/default.d.ts +1 -1
  89. package/dist/typescript/src/components/empty/variants/default.d.ts.map +1 -1
  90. package/dist/typescript/src/components/field/variants/default.d.ts +1 -1
  91. package/dist/typescript/src/components/field/variants/default.d.ts.map +1 -1
  92. package/dist/typescript/src/components/icon/icon.d.ts.map +1 -1
  93. package/dist/typescript/src/components/index.d.ts +1 -0
  94. package/dist/typescript/src/components/index.d.ts.map +1 -1
  95. package/dist/typescript/src/components/input/input.d.ts.map +1 -1
  96. package/dist/typescript/src/components/input/numeric-input.d.ts +1 -1
  97. package/dist/typescript/src/components/input/numeric-input.d.ts.map +1 -1
  98. package/dist/typescript/src/components/input/variants/default.d.ts +1 -1
  99. package/dist/typescript/src/components/input/variants/default.d.ts.map +1 -1
  100. package/dist/typescript/src/components/input/variants/secondary.d.ts +1 -1
  101. package/dist/typescript/src/components/input/variants/secondary.d.ts.map +1 -1
  102. package/dist/typescript/src/components/link/variants/default.d.ts.map +1 -1
  103. package/dist/typescript/src/components/menu/components/menu-trigger.d.ts +1 -1
  104. package/dist/typescript/src/components/menu/components/menu-trigger.d.ts.map +1 -1
  105. package/dist/typescript/src/components/menu/context.d.ts.map +1 -1
  106. package/dist/typescript/src/components/menu/variants/default.d.ts +1 -1
  107. package/dist/typescript/src/components/menu/variants/default.d.ts.map +1 -1
  108. package/dist/typescript/src/components/phone-input/index.d.ts +3 -0
  109. package/dist/typescript/src/components/phone-input/index.d.ts.map +1 -0
  110. package/dist/typescript/src/components/phone-input/phone-input.d.ts +16 -0
  111. package/dist/typescript/src/components/phone-input/phone-input.d.ts.map +1 -0
  112. package/dist/typescript/src/components/phone-input/types.d.ts +15 -0
  113. package/dist/typescript/src/components/phone-input/types.d.ts.map +1 -0
  114. package/dist/typescript/src/components/phone-input/variants/default.d.ts +3 -0
  115. package/dist/typescript/src/components/phone-input/variants/default.d.ts.map +1 -0
  116. package/dist/typescript/src/components/phone-input/variants/index.d.ts +5 -0
  117. package/dist/typescript/src/components/phone-input/variants/index.d.ts.map +1 -0
  118. package/dist/typescript/src/components/popover/components/popover-trigger.d.ts.map +1 -1
  119. package/dist/typescript/src/components/popover/context.d.ts.map +1 -1
  120. package/dist/typescript/src/components/popover/variants/default.d.ts +1 -1
  121. package/dist/typescript/src/components/popover/variants/default.d.ts.map +1 -1
  122. package/dist/typescript/src/components/popover/variants/unstyled.d.ts +1 -1
  123. package/dist/typescript/src/components/popover/variants/unstyled.d.ts.map +1 -1
  124. package/dist/typescript/src/components/progress/variants/default.d.ts +1 -1
  125. package/dist/typescript/src/components/progress/variants/default.d.ts.map +1 -1
  126. package/dist/typescript/src/components/select/components/select-trigger.d.ts.map +1 -1
  127. package/dist/typescript/src/components/select/context.d.ts.map +1 -1
  128. package/dist/typescript/src/components/select/variants/default.d.ts +1 -1
  129. package/dist/typescript/src/components/select/variants/default.d.ts.map +1 -1
  130. package/dist/typescript/src/components/tabs/variants/default.d.ts +1 -1
  131. package/dist/typescript/src/components/tabs/variants/default.d.ts.map +1 -1
  132. package/dist/typescript/src/components/tabs/variants/line.d.ts +1 -1
  133. package/dist/typescript/src/components/tabs/variants/line.d.ts.map +1 -1
  134. package/dist/typescript/src/components/textarea/variants/default.d.ts +1 -1
  135. package/dist/typescript/src/components/textarea/variants/default.d.ts.map +1 -1
  136. package/dist/typescript/src/components/toast/components/toast-icon.d.ts +1 -1
  137. package/dist/typescript/src/components/toast/components/toast-icon.d.ts.map +1 -1
  138. package/dist/typescript/src/components/toast/manager.d.ts.map +1 -1
  139. package/dist/typescript/src/components/typography/variants/body-lg.d.ts.map +1 -1
  140. package/dist/typescript/src/components/typography/variants/body-md.d.ts.map +1 -1
  141. package/dist/typescript/src/components/typography/variants/body-sm.d.ts.map +1 -1
  142. package/dist/typescript/src/components/typography/variants/heading-lg.d.ts.map +1 -1
  143. package/dist/typescript/src/components/typography/variants/heading-md.d.ts.map +1 -1
  144. package/dist/typescript/src/components/typography/variants/heading-sm.d.ts.map +1 -1
  145. package/dist/typescript/src/data/countries.d.ts +17 -0
  146. package/dist/typescript/src/data/countries.d.ts.map +1 -0
  147. package/dist/typescript/src/hooks/index.d.ts +1 -0
  148. package/dist/typescript/src/hooks/index.d.ts.map +1 -1
  149. package/dist/typescript/src/hooks/use-phone-mask.d.ts +20 -0
  150. package/dist/typescript/src/hooks/use-phone-mask.d.ts.map +1 -0
  151. package/dist/typescript/src/hooks/use-relative-position.d.ts +1 -1
  152. package/dist/typescript/src/hooks/use-relative-position.d.ts.map +1 -1
  153. package/dist/typescript/src/index.d.ts +2 -2
  154. package/dist/typescript/src/index.d.ts.map +1 -1
  155. package/dist/typescript/src/themes/provider.d.ts +1 -1
  156. package/dist/typescript/src/themes/provider.d.ts.map +1 -1
  157. package/dist/typescript/src/themes/utils.d.ts.map +1 -1
  158. package/dist/typescript/src/utils/input-utils.d.ts.map +1 -1
  159. package/dist/typescript/src/utils/normalize-layout.d.ts +1 -1
  160. package/dist/typescript/src/utils/normalize-layout.d.ts.map +1 -1
  161. package/dist/typescript/src/utils/use-themed-styles.d.ts.map +1 -1
  162. package/package.json +1 -1
  163. package/src/components/alert/components/alert-body.tsx +1 -1
  164. package/src/components/alert/components/alert-description.tsx +5 -3
  165. package/src/components/alert/components/alert-icon.tsx +1 -1
  166. package/src/components/alert/components/alert-root.tsx +1 -1
  167. package/src/components/alert/components/alert-title.tsx +2 -2
  168. package/src/components/alert/variants/default.tsx +2 -2
  169. package/src/components/alert/variants/destructive.tsx +2 -2
  170. package/src/components/alert-dialog/components/alert-dialog-trigger.tsx +1 -1
  171. package/src/components/alert-dialog/variants/default.tsx +2 -2
  172. package/src/components/avatar/variants/default.tsx +2 -2
  173. package/src/components/badge/components/badge-label.tsx +1 -1
  174. package/src/components/badge/components/badge-root.tsx +2 -2
  175. package/src/components/badge/variants/default.tsx +2 -2
  176. package/src/components/badge/variants/secondary.tsx +2 -2
  177. package/src/components/button/components/button-label.tsx +2 -2
  178. package/src/components/button/variants/default.tsx +3 -3
  179. package/src/components/button/variants/secondary.tsx +3 -3
  180. package/src/components/calendar/components/calendar-day.tsx +1 -1
  181. package/src/components/calendar/components/calendar-nav-button.tsx +1 -1
  182. package/src/components/calendar/components/calendar-title.tsx +1 -1
  183. package/src/components/calendar/components/calendar-weeks.tsx +1 -1
  184. package/src/components/calendar/variants/default.tsx +2 -2
  185. package/src/components/card/card-body.tsx +2 -2
  186. package/src/components/card/card-footer.tsx +2 -2
  187. package/src/components/card/card-header.tsx +2 -2
  188. package/src/components/card/card-root.tsx +2 -2
  189. package/src/components/card/card-title.tsx +3 -3
  190. package/src/components/card/variants/default.tsx +2 -2
  191. package/src/components/checkbox/variants/default.tsx +2 -2
  192. package/src/components/checkbox/variants/outlined.tsx +2 -2
  193. package/src/components/empty/variants/default.tsx +2 -2
  194. package/src/components/field/variants/default.tsx +2 -2
  195. package/src/components/icon/icon.tsx +1 -1
  196. package/src/components/icon/variants/default.tsx +1 -1
  197. package/src/components/index.ts +1 -0
  198. package/src/components/input/input.tsx +1 -1
  199. package/src/components/input/numeric-input.tsx +8 -2
  200. package/src/components/input/variants/default.tsx +10 -3
  201. package/src/components/input/variants/secondary.tsx +10 -3
  202. package/src/components/link/variants/default.tsx +2 -2
  203. package/src/components/menu/components/menu-content.tsx +1 -1
  204. package/src/components/menu/components/menu-root.tsx +1 -1
  205. package/src/components/menu/components/menu-trigger.tsx +40 -38
  206. package/src/components/menu/context.ts +1 -1
  207. package/src/components/menu/variants/default.tsx +2 -2
  208. package/src/components/phone-input/index.ts +2 -0
  209. package/src/components/phone-input/phone-input.tsx +220 -0
  210. package/src/components/phone-input/types.ts +20 -0
  211. package/src/components/phone-input/variants/default.tsx +124 -0
  212. package/src/components/phone-input/variants/index.ts +5 -0
  213. package/src/components/popover/components/popover-content.tsx +2 -2
  214. package/src/components/popover/components/popover-root.tsx +1 -1
  215. package/src/components/popover/components/popover-trigger.tsx +2 -2
  216. package/src/components/popover/context.ts +1 -1
  217. package/src/components/popover/variants/default.tsx +2 -2
  218. package/src/components/popover/variants/unstyled.tsx +2 -2
  219. package/src/components/progress/components/progress-indicator.tsx +1 -1
  220. package/src/components/progress/components/progress-root.tsx +1 -1
  221. package/src/components/progress/variants/default.tsx +2 -2
  222. package/src/components/scroll-bar/scroll-bar.tsx +1 -1
  223. package/src/components/select/components/select-content.tsx +2 -2
  224. package/src/components/select/components/select-option.tsx +1 -1
  225. package/src/components/select/components/select-overlay.tsx +1 -1
  226. package/src/components/select/components/select-root.tsx +2 -2
  227. package/src/components/select/components/select-trigger.tsx +35 -9
  228. package/src/components/select/context.ts +1 -1
  229. package/src/components/select/variants/default.tsx +2 -2
  230. package/src/components/tabs/variants/default.tsx +2 -2
  231. package/src/components/tabs/variants/line.tsx +2 -2
  232. package/src/components/textarea/variants/default.tsx +2 -2
  233. package/src/components/toast/components/toast-icon.tsx +8 -2
  234. package/src/components/toast/manager.tsx +11 -4
  235. package/src/components/toast/variants/danger.tsx +1 -1
  236. package/src/components/toast/variants/default.tsx +1 -1
  237. package/src/components/toast/variants/success.tsx +1 -1
  238. package/src/components/typography/variants/body-lg.tsx +1 -1
  239. package/src/components/typography/variants/body-md.tsx +1 -1
  240. package/src/components/typography/variants/body-sm.tsx +1 -1
  241. package/src/components/typography/variants/heading-lg.tsx +1 -1
  242. package/src/components/typography/variants/heading-md.tsx +1 -1
  243. package/src/components/typography/variants/heading-sm.tsx +1 -1
  244. package/src/data/countries.ts +88 -0
  245. package/src/hooks/index.ts +1 -0
  246. package/src/hooks/use-phone-mask.ts +183 -0
  247. package/src/hooks/use-relative-position.ts +94 -18
  248. package/src/index.tsx +8 -3
  249. package/src/themes/provider.tsx +23 -5
  250. package/src/themes/utils.ts +5 -2
  251. package/src/utils/input-utils.ts +5 -2
  252. package/src/utils/normalize-layout.ts +5 -2
  253. package/src/utils/use-themed-styles.ts +11 -3
  254. package/tsconfig.json +14 -7
@@ -1,8 +1,16 @@
1
- import type { SafeAreaInsets } from "@/safe-area";
2
1
  import { useMemo } from "react";
3
- import { useWindowDimensions, type DisplayMetrics, type LayoutRectangle, type ViewStyle } from "react-native";
2
+ import {
3
+ useWindowDimensions,
4
+ type DisplayMetrics,
5
+ type LayoutRectangle,
6
+ type ViewStyle,
7
+ } from "react-native";
8
+ import type { SafeAreaInsets } from "../safe-area";
4
9
 
5
- type UseRelativePositionArgs = Omit<GetContentStyleArgs, "triggerPosition" | "contentLayout" | "dimensions"> & {
10
+ type UseRelativePositionArgs = Omit<
11
+ GetContentStyleArgs,
12
+ "triggerPosition" | "contentLayout" | "dimensions"
13
+ > & {
6
14
  triggerPosition: LayoutPosition | null;
7
15
  contentLayout: LayoutRectangle | null;
8
16
  };
@@ -40,7 +48,17 @@ export function useRelativePosition({
40
48
  });
41
49
 
42
50
  return style;
43
- }, [align, preferredSide, alignOffset, insets, triggerPosition, contentLayout, dimensions.width, dimensions.height, sideOffset]);
51
+ }, [
52
+ align,
53
+ preferredSide,
54
+ alignOffset,
55
+ insets,
56
+ triggerPosition,
57
+ contentLayout,
58
+ dimensions.width,
59
+ dimensions.height,
60
+ sideOffset,
61
+ ]);
44
62
  }
45
63
 
46
64
  export interface LayoutPosition {
@@ -62,8 +80,18 @@ interface GetSidePositionArgs extends GetPositionArgs {
62
80
  sideOffset: number;
63
81
  }
64
82
 
65
- export const DEFAULT_LAYOUT: LayoutRectangle = { x: 0, y: 0, width: 0, height: 0 };
66
- export const DEFAULT_POSITION: LayoutPosition = { height: 0, width: 0, pageX: 0, pageY: 0 };
83
+ export const DEFAULT_LAYOUT: LayoutRectangle = {
84
+ x: 0,
85
+ y: 0,
86
+ width: 0,
87
+ height: 0,
88
+ };
89
+ export const DEFAULT_POSITION: LayoutPosition = {
90
+ height: 0,
91
+ width: 0,
92
+ pageX: 0,
93
+ pageY: 0,
94
+ };
67
95
 
68
96
  interface GetSideArgs {
69
97
  preferredSide: "top" | "bottom";
@@ -75,7 +103,15 @@ interface GetSideArgs {
75
103
  dimensions: DisplayMetrics;
76
104
  }
77
105
 
78
- function getSide({ preferredSide, insetTop, insetBottom, positionTop, positionBottom, contentLayout, dimensions }: GetSideArgs) {
106
+ function getSide({
107
+ preferredSide,
108
+ insetTop,
109
+ insetBottom,
110
+ positionTop,
111
+ positionBottom,
112
+ contentLayout,
113
+ dimensions,
114
+ }: GetSideArgs) {
79
115
  if (preferredSide === "bottom") {
80
116
  const spaceBelow = dimensions.height - insetBottom - positionBottom;
81
117
  if (spaceBelow >= contentLayout.height) {
@@ -98,11 +134,20 @@ function getSide({ preferredSide, insetTop, insetBottom, positionTop, positionBo
98
134
  return "top";
99
135
  }
100
136
 
101
- function getSidePosition({ preferredSide, triggerPosition, contentLayout, sideOffset, insets, dimensions }: GetSidePositionArgs) {
137
+ function getSidePosition({
138
+ preferredSide,
139
+ triggerPosition,
140
+ contentLayout,
141
+ sideOffset,
142
+ insets,
143
+ dimensions,
144
+ }: GetSidePositionArgs) {
102
145
  const insetTop = insets?.top ?? 0;
103
146
  const insetBottom = insets?.bottom ?? 0;
104
- const positionTop = triggerPosition?.pageY - sideOffset - contentLayout.height;
105
- const positionBottom = triggerPosition.pageY + triggerPosition.height + sideOffset;
147
+ const positionTop =
148
+ triggerPosition?.pageY - sideOffset - contentLayout.height;
149
+ const positionBottom =
150
+ triggerPosition.pageY + triggerPosition.height + sideOffset;
106
151
 
107
152
  const side = getSide({
108
153
  preferredSide,
@@ -116,12 +161,18 @@ function getSidePosition({ preferredSide, triggerPosition, contentLayout, sideOf
116
161
 
117
162
  if (side === "top") {
118
163
  return {
119
- top: Math.min(Math.max(insetTop, positionTop), dimensions.height - insetBottom - contentLayout.height),
164
+ top: Math.min(
165
+ Math.max(insetTop, positionTop),
166
+ dimensions.height - insetBottom - contentLayout.height,
167
+ ),
120
168
  };
121
169
  }
122
170
 
123
171
  return {
124
- top: Math.min(dimensions.height - insetBottom - contentLayout.height, positionBottom),
172
+ top: Math.min(
173
+ dimensions.height - insetBottom - contentLayout.height,
174
+ positionBottom,
175
+ ),
125
176
  };
126
177
  }
127
178
 
@@ -130,16 +181,33 @@ interface GetAlignPositionArgs extends GetPositionArgs {
130
181
  alignOffset: number;
131
182
  }
132
183
 
133
- function getAlignPosition({ align, contentLayout, triggerPosition, alignOffset, insets, dimensions }: GetAlignPositionArgs) {
184
+ function getAlignPosition({
185
+ align,
186
+ contentLayout,
187
+ triggerPosition,
188
+ alignOffset,
189
+ insets,
190
+ dimensions,
191
+ }: GetAlignPositionArgs) {
134
192
  const insetLeft = insets?.left ?? 0;
135
193
  const insetRight = insets?.right ?? 0;
136
194
  const maxContentWidth = dimensions.width - insetLeft - insetRight;
137
195
 
138
196
  const contentWidth = Math.min(contentLayout.width, maxContentWidth);
139
197
 
140
- let left = getLeftPosition(align, triggerPosition.pageX, triggerPosition.width, contentWidth, alignOffset, insetLeft, insetRight, dimensions);
198
+ let left = getLeftPosition(
199
+ align,
200
+ triggerPosition.pageX,
201
+ triggerPosition.width,
202
+ contentWidth,
203
+ alignOffset,
204
+ insetLeft,
205
+ insetRight,
206
+ dimensions,
207
+ );
141
208
 
142
- const doesCollide = left < insetLeft || left + contentWidth > dimensions.width - insetRight;
209
+ const doesCollide =
210
+ left < insetLeft || left + contentWidth > dimensions.width - insetRight;
143
211
  if (doesCollide) {
144
212
  const spaceLeft = left - insetLeft;
145
213
  const spaceRight = dimensions.width - insetRight - (left + contentWidth);
@@ -149,7 +217,10 @@ function getAlignPosition({ align, contentLayout, triggerPosition, alignOffset,
149
217
  } else if (spaceRight >= contentWidth) {
150
218
  left = dimensions.width - insetRight - contentWidth;
151
219
  } else {
152
- const centeredPosition = Math.max(insetLeft, (dimensions.width - contentWidth - insetRight) / 2);
220
+ const centeredPosition = Math.max(
221
+ insetLeft,
222
+ (dimensions.width - contentWidth - insetRight) / 2,
223
+ );
153
224
  left = centeredPosition;
154
225
  }
155
226
  }
@@ -177,10 +248,15 @@ function getLeftPosition(
177
248
  if (align === "end") {
178
249
  left = triggerPageX + triggerWidth - contentWidth;
179
250
  }
180
- return Math.max(insetLeft, Math.min(left + alignOffset, dimensions.width - contentWidth - insetRight));
251
+ return Math.max(
252
+ insetLeft,
253
+ Math.min(left + alignOffset, dimensions.width - contentWidth - insetRight),
254
+ );
181
255
  }
182
256
 
183
- type GetContentStyleArgs = GetPositionArgs & GetSidePositionArgs & GetAlignPositionArgs;
257
+ type GetContentStyleArgs = GetPositionArgs &
258
+ GetSidePositionArgs &
259
+ GetAlignPositionArgs;
184
260
 
185
261
  function getContentStyle(args: GetContentStyleArgs): ViewStyle {
186
262
  return {
package/src/index.tsx CHANGED
@@ -1,9 +1,9 @@
1
- import { SafeAreaProvider, type SafeAreaInsets } from "@/safe-area";
2
- import { ThemeProvider, type ThemeProviderProps } from "@/themes";
3
1
  import { AsyncAlertDialogManager } from "./components/alert-dialog/async-alert-dialog";
4
2
  import { PortalHost } from "./components/portal";
5
3
  import { type PortalHostProps } from "./components/portal/portal.constants";
6
4
  import { ToastContainer } from "./components/toast/manager";
5
+ import { SafeAreaProvider, type SafeAreaInsets } from "./safe-area";
6
+ import { ThemeProvider, type ThemeProviderProps } from "./themes";
7
7
 
8
8
  export interface ProviderProps {
9
9
  children: React.ReactNode;
@@ -12,7 +12,12 @@ export interface ProviderProps {
12
12
  safeAreaInsets?: SafeAreaInsets;
13
13
  }
14
14
 
15
- export const UIProvider = ({ children, portalContainer, theme, safeAreaInsets }: ProviderProps) => {
15
+ export const UIProvider = ({
16
+ children,
17
+ portalContainer,
18
+ theme,
19
+ safeAreaInsets,
20
+ }: ProviderProps) => {
16
21
  return (
17
22
  <SafeAreaProvider insets={safeAreaInsets}>
18
23
  <ThemeProvider theme={theme}>
@@ -1,8 +1,22 @@
1
- import type { DeepPartial } from "@/types/util.types";
2
- import { createContext, type PropsWithChildren, useContext, useEffect, useState } from "react";
1
+ import {
2
+ createContext,
3
+ type PropsWithChildren,
4
+ useContext,
5
+ useEffect,
6
+ useState,
7
+ } from "react";
3
8
  import { useColorScheme } from "react-native";
9
+ import type { DeepPartial } from "../types/util.types";
4
10
  import { defaultThemeAssets } from "./default";
5
- import type { Colors, ColorScheme, FontFamily, FontSize, LetterSpacing, Radius, ThemeAssets } from "./types";
11
+ import type {
12
+ Colors,
13
+ ColorScheme,
14
+ FontFamily,
15
+ FontSize,
16
+ LetterSpacing,
17
+ Radius,
18
+ ThemeAssets,
19
+ } from "./types";
6
20
  import { mergeThemeAssets } from "./utils";
7
21
 
8
22
  interface ThemeContext {
@@ -25,9 +39,13 @@ export const ThemeProvider = (props: ThemeProviderProps) => {
25
39
  const { children, theme } = props;
26
40
 
27
41
  const systemColorScheme = useColorScheme();
28
- const [colorScheme, setColorScheme] = useState<ColorScheme>(systemColorScheme === "dark" ? "dark" : "light");
42
+ const [colorScheme, setColorScheme] = useState<ColorScheme>(
43
+ systemColorScheme === "dark" ? "dark" : "light",
44
+ );
29
45
 
30
- const themeAssets = theme ? mergeThemeAssets(defaultThemeAssets, theme) : defaultThemeAssets;
46
+ const themeAssets = theme
47
+ ? mergeThemeAssets(defaultThemeAssets, theme)
48
+ : defaultThemeAssets;
31
49
 
32
50
  const colors = themeAssets.colors[colorScheme];
33
51
 
@@ -1,7 +1,10 @@
1
- import type { DeepPartial } from "@/types/util.types";
1
+ import type { DeepPartial } from "../types/util.types";
2
2
  import type { ThemeAssets } from "./types";
3
3
 
4
- export function mergeThemeAssets(base: ThemeAssets, override: DeepPartial<ThemeAssets>): ThemeAssets {
4
+ export function mergeThemeAssets(
5
+ base: ThemeAssets,
6
+ override: DeepPartial<ThemeAssets>,
7
+ ): ThemeAssets {
5
8
  return {
6
9
  colors: {
7
10
  light: { ...base.colors.light, ...override.colors?.light },
@@ -1,7 +1,10 @@
1
- import type { TextInputRef } from "@/types/element.types";
2
1
  import { Platform } from "react-native";
2
+ import type { TextInputRef } from "../types/element.types";
3
3
 
4
- export function setInnerInputValue(element: HTMLInputElement | TextInputRef, value: string) {
4
+ export function setInnerInputValue(
5
+ element: HTMLInputElement | TextInputRef,
6
+ value: string,
7
+ ) {
5
8
  if (Platform.OS === "web") {
6
9
  (element as HTMLInputElement).value = value;
7
10
  } else {
@@ -1,5 +1,5 @@
1
- import type { LayoutPosition } from "@/hooks";
2
1
  import type { HostInstance, LayoutRectangle } from "react-native";
2
+ import type { LayoutPosition } from "../hooks";
3
3
 
4
4
  export const normalizeLayout = (layout: LayoutRectangle) => {
5
5
  const _layout = { ...layout };
@@ -21,7 +21,10 @@ const isValidNumber = (value: unknown): value is number => {
21
21
  return isValid;
22
22
  };
23
23
 
24
- export const measureLayoutPosition = (ref: HostInstance | null, callback: (layout: LayoutPosition) => void) => {
24
+ export const measureLayoutPosition = (
25
+ ref: HostInstance | null,
26
+ callback: (layout: LayoutPosition) => void,
27
+ ) => {
25
28
  ref?.measureInWindow((pageX, pageY, width, height) => {
26
29
  callback({
27
30
  height: isValidNumber(height) ? height : 0,
@@ -1,5 +1,11 @@
1
- import { useTheme } from "@/themes";
2
- import type { Colors, FontFamily, FontSize, LetterSpacing, Radius } from "@/themes/types";
1
+ import { useTheme } from "../themes";
2
+ import type {
3
+ Colors,
4
+ FontFamily,
5
+ FontSize,
6
+ LetterSpacing,
7
+ Radius,
8
+ } from "../themes/types";
3
9
 
4
10
  interface CallbackProps {
5
11
  colors: Colors;
@@ -9,7 +15,9 @@ interface CallbackProps {
9
15
  fontSize: FontSize;
10
16
  }
11
17
 
12
- export const useThemedStyles = <T>(callback: (props: CallbackProps) => T): T => {
18
+ export const useThemedStyles = <T>(
19
+ callback: (props: CallbackProps) => T,
20
+ ): T => {
13
21
  const theme = useTheme();
14
22
  return callback({
15
23
  colors: theme.colors,
package/tsconfig.json CHANGED
@@ -1,10 +1,17 @@
1
1
  {
2
2
  "compilerOptions": {
3
- "customConditions": ["dev-source", "react-native", "react-native-strict-api"],
3
+ "customConditions": [
4
+ "dev-source",
5
+ "react-native",
6
+ "react-native-strict-api"
7
+ ],
4
8
  "allowJs": true,
5
9
  "esModuleInterop": true,
6
10
  "jsx": "react-native",
7
- "lib": ["DOM", "ESNext"],
11
+ "lib": [
12
+ "DOM",
13
+ "ESNext"
14
+ ],
8
15
  "module": "preserve",
9
16
  "moduleDetection": "force",
10
17
  "moduleResolution": "bundler",
@@ -24,9 +31,9 @@
24
31
  "noUncheckedIndexedAccess": true,
25
32
  "noUnusedLocals": true,
26
33
  "noUnusedParameters": true,
27
- "paths": {
28
- "@/*": ["./src/*"]
29
- }
30
34
  },
31
- "exclude": ["node_modules", "dist"]
32
- }
35
+ "exclude": [
36
+ "node_modules",
37
+ "dist"
38
+ ]
39
+ }