fluent-styles 1.54.0 → 1.55.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 (872) hide show
  1. package/README.md +4065 -77
  2. package/lib/commonjs/actionSheet/actionSheet.js +372 -0
  3. package/lib/commonjs/actionSheet/actionSheet.js.map +1 -0
  4. package/lib/commonjs/actionSheet/index.js +20 -0
  5. package/lib/commonjs/actionSheet/index.js.map +1 -0
  6. package/lib/commonjs/actionSheet/useActionSheet.js +89 -0
  7. package/lib/commonjs/actionSheet/useActionSheet.js.map +1 -0
  8. package/lib/commonjs/badge/index.js +148 -0
  9. package/lib/commonjs/badge/index.js.map +1 -0
  10. package/lib/commonjs/barChart/index.js +298 -0
  11. package/lib/commonjs/barChart/index.js.map +1 -0
  12. package/lib/commonjs/button/index.js +228 -0
  13. package/lib/commonjs/button/index.js.map +1 -0
  14. package/lib/commonjs/card/index.js +202 -0
  15. package/lib/commonjs/card/index.js.map +1 -0
  16. package/lib/commonjs/checkBox/index.js +90 -0
  17. package/lib/commonjs/checkBox/index.js.map +1 -0
  18. package/lib/commonjs/chips/index.js +239 -0
  19. package/lib/commonjs/chips/index.js.map +1 -0
  20. package/lib/commonjs/circularProgress/index.js +265 -0
  21. package/lib/commonjs/circularProgress/index.js.map +1 -0
  22. package/lib/commonjs/collapsible/Collapse.js +293 -0
  23. package/lib/commonjs/collapsible/Collapse.js.map +1 -0
  24. package/lib/commonjs/collapsible/CollapseGroup.js +137 -0
  25. package/lib/commonjs/collapsible/CollapseGroup.js.map +1 -0
  26. package/lib/commonjs/collapsible/index.js +64 -0
  27. package/lib/commonjs/collapsible/index.js.map +1 -0
  28. package/lib/commonjs/collapsible/interface.js +39 -0
  29. package/lib/commonjs/collapsible/interface.js.map +1 -0
  30. package/lib/commonjs/collapsible/style.js +161 -0
  31. package/lib/commonjs/collapsible/style.js.map +1 -0
  32. package/lib/commonjs/datePicker/index.js +915 -0
  33. package/lib/commonjs/datePicker/index.js.map +1 -0
  34. package/lib/commonjs/dialog/dialogue.js +205 -0
  35. package/lib/commonjs/dialog/dialogue.js.map +1 -0
  36. package/lib/commonjs/dialog/index.js +393 -0
  37. package/lib/commonjs/dialog/index.js.map +1 -0
  38. package/lib/commonjs/dialog/useDialogue.js +117 -0
  39. package/lib/commonjs/dialog/useDialogue.js.map +1 -0
  40. package/lib/commonjs/divider/index.js +37 -0
  41. package/lib/commonjs/divider/index.js.map +1 -0
  42. package/lib/commonjs/drawer/Drawer.js +587 -0
  43. package/lib/commonjs/drawer/Drawer.js.map +1 -0
  44. package/lib/commonjs/drawer/index.js +51 -0
  45. package/lib/commonjs/drawer/index.js.map +1 -0
  46. package/lib/commonjs/drawer/interface.js +84 -0
  47. package/lib/commonjs/drawer/interface.js.map +1 -0
  48. package/lib/commonjs/dropdown/index.js +859 -0
  49. package/lib/commonjs/dropdown/index.js.map +1 -0
  50. package/lib/commonjs/emptyState/index.js +231 -0
  51. package/lib/commonjs/emptyState/index.js.map +1 -0
  52. package/lib/commonjs/form/index.js +2 -0
  53. package/lib/commonjs/form/index.js.map +1 -0
  54. package/lib/commonjs/header/index.js +147 -0
  55. package/lib/commonjs/header/index.js.map +1 -0
  56. package/lib/commonjs/header/statusBar/index.js +20 -0
  57. package/lib/commonjs/header/statusBar/index.js.map +1 -0
  58. package/lib/commonjs/icons/backArrow.js +42 -0
  59. package/lib/commonjs/icons/backArrow.js.map +1 -0
  60. package/lib/commonjs/icons/bellFill.js +43 -0
  61. package/lib/commonjs/icons/bellFill.js.map +1 -0
  62. package/lib/commonjs/icons/bellOutline.js +43 -0
  63. package/lib/commonjs/icons/bellOutline.js.map +1 -0
  64. package/lib/commonjs/icons/checkmark.js +36 -0
  65. package/lib/commonjs/icons/checkmark.js.map +1 -0
  66. package/lib/commonjs/icons/delete.js +53 -0
  67. package/lib/commonjs/icons/delete.js.map +1 -0
  68. package/lib/commonjs/icons/downChevron.js +36 -0
  69. package/lib/commonjs/icons/downChevron.js.map +1 -0
  70. package/lib/commonjs/icons/error.js +41 -0
  71. package/lib/commonjs/icons/error.js.map +1 -0
  72. package/lib/commonjs/icons/forwardArrow.js +42 -0
  73. package/lib/commonjs/icons/forwardArrow.js.map +1 -0
  74. package/lib/commonjs/icons/index.js +111 -0
  75. package/lib/commonjs/icons/index.js.map +1 -0
  76. package/lib/commonjs/icons/info.js +48 -0
  77. package/lib/commonjs/icons/info.js.map +1 -0
  78. package/lib/commonjs/icons/leftChevron.js +36 -0
  79. package/lib/commonjs/icons/leftChevron.js.map +1 -0
  80. package/lib/commonjs/icons/rightChevron.js +36 -0
  81. package/lib/commonjs/icons/rightChevron.js.map +1 -0
  82. package/lib/commonjs/icons/save.js +50 -0
  83. package/lib/commonjs/icons/save.js.map +1 -0
  84. package/lib/commonjs/icons/success.js +43 -0
  85. package/lib/commonjs/icons/success.js.map +1 -0
  86. package/lib/commonjs/icons/upChevron.js +36 -0
  87. package/lib/commonjs/icons/upChevron.js.map +1 -0
  88. package/lib/commonjs/icons/warning.js +48 -0
  89. package/lib/commonjs/icons/warning.js.map +1 -0
  90. package/lib/commonjs/image/index.js +47 -0
  91. package/lib/commonjs/image/index.js.map +1 -0
  92. package/lib/commonjs/index.js +519 -138
  93. package/lib/commonjs/index.js.map +1 -1
  94. package/lib/commonjs/input/index.js +488 -0
  95. package/lib/commonjs/input/index.js.map +1 -0
  96. package/lib/commonjs/loading/circular.js +116 -0
  97. package/lib/commonjs/loading/circular.js.map +1 -0
  98. package/lib/commonjs/loading/index.js +34 -0
  99. package/lib/commonjs/loading/index.js.map +1 -0
  100. package/lib/commonjs/loading/loader.js +247 -0
  101. package/lib/commonjs/loading/loader.js.map +1 -0
  102. package/lib/commonjs/loading/spinner.js +90 -0
  103. package/lib/commonjs/loading/spinner.js.map +1 -0
  104. package/lib/commonjs/loading/useLoader.js +62 -0
  105. package/lib/commonjs/loading/useLoader.js.map +1 -0
  106. package/lib/commonjs/loading/useLoaderBinding.js +34 -0
  107. package/lib/commonjs/loading/useLoaderBinding.js.map +1 -0
  108. package/lib/commonjs/notification/index.js +269 -0
  109. package/lib/commonjs/notification/index.js.map +1 -0
  110. package/lib/commonjs/notification/useNotification.js +62 -0
  111. package/lib/commonjs/notification/useNotification.js.map +1 -0
  112. package/lib/commonjs/page/index.js +22 -0
  113. package/lib/commonjs/page/index.js.map +1 -0
  114. package/lib/commonjs/popup/Popup.js +332 -0
  115. package/lib/commonjs/popup/Popup.js.map +1 -0
  116. package/lib/commonjs/popup/helpers.js +168 -0
  117. package/lib/commonjs/popup/helpers.js.map +1 -0
  118. package/lib/commonjs/popup/index.js +51 -0
  119. package/lib/commonjs/popup/index.js.map +1 -0
  120. package/lib/commonjs/popup/interface.js +45 -0
  121. package/lib/commonjs/popup/interface.js.map +1 -0
  122. package/lib/commonjs/portal/GlobalPortalProvider.js +68 -0
  123. package/lib/commonjs/portal/GlobalPortalProvider.js.map +1 -0
  124. package/lib/commonjs/portal/PortalContext.js +38 -0
  125. package/lib/commonjs/portal/PortalContext.js.map +1 -0
  126. package/lib/commonjs/portal/PortalInstance.js +123 -0
  127. package/lib/commonjs/portal/PortalInstance.js.map +1 -0
  128. package/lib/commonjs/portal/PortalManager.js +87 -0
  129. package/lib/commonjs/portal/PortalManager.js.map +1 -0
  130. package/lib/commonjs/portal/PortalRenderer.js +57 -0
  131. package/lib/commonjs/portal/PortalRenderer.js.map +1 -0
  132. package/lib/commonjs/portal/index.js +54 -0
  133. package/lib/commonjs/portal/index.js.map +1 -0
  134. package/lib/commonjs/portal/portal.test.js +154 -0
  135. package/lib/commonjs/portal/portal.test.js.map +1 -0
  136. package/lib/commonjs/portal/types.js +6 -0
  137. package/lib/commonjs/portal/types.js.map +1 -0
  138. package/lib/commonjs/pressable/index.js +18 -0
  139. package/lib/commonjs/pressable/index.js.map +1 -0
  140. package/lib/commonjs/progressBar/index.js +512 -0
  141. package/lib/commonjs/progressBar/index.js.map +1 -0
  142. package/lib/commonjs/radio/index.js +368 -0
  143. package/lib/commonjs/radio/index.js.map +1 -0
  144. package/lib/commonjs/safeAreaProvider/index.js +12 -0
  145. package/lib/commonjs/safeAreaProvider/index.js.map +1 -0
  146. package/lib/commonjs/safeAreaView/index.js +14 -0
  147. package/lib/commonjs/safeAreaView/index.js.map +1 -0
  148. package/lib/commonjs/scrollView/index.js +14 -0
  149. package/lib/commonjs/scrollView/index.js.map +1 -0
  150. package/lib/commonjs/searchBar/index.js +356 -0
  151. package/lib/commonjs/searchBar/index.js.map +1 -0
  152. package/lib/commonjs/seperator/index.js +44 -0
  153. package/lib/commonjs/seperator/index.js.map +1 -0
  154. package/lib/commonjs/services/index.js +185 -0
  155. package/lib/commonjs/services/index.js.map +1 -0
  156. package/lib/commonjs/shape/index.js +36 -0
  157. package/lib/commonjs/shape/index.js.map +1 -0
  158. package/lib/commonjs/skeleton/index.js +430 -0
  159. package/lib/commonjs/skeleton/index.js.map +1 -0
  160. package/lib/commonjs/slider/index.js +499 -0
  161. package/lib/commonjs/slider/index.js.map +1 -0
  162. package/lib/commonjs/spacer/index.js +14 -0
  163. package/lib/commonjs/spacer/index.js.map +1 -0
  164. package/lib/commonjs/stack/index.js +52 -0
  165. package/lib/commonjs/stack/index.js.map +1 -0
  166. package/lib/commonjs/switch/Switch.js +289 -0
  167. package/lib/commonjs/switch/Switch.js.map +1 -0
  168. package/lib/commonjs/switch/_index.js +118 -0
  169. package/lib/commonjs/switch/_index.js.map +1 -0
  170. package/lib/commonjs/switch/index.js +26 -0
  171. package/lib/commonjs/switch/index.js.map +1 -0
  172. package/lib/commonjs/switch/interface.js +47 -0
  173. package/lib/commonjs/switch/interface.js.map +1 -0
  174. package/lib/commonjs/tabBar/TabBar.js +409 -0
  175. package/lib/commonjs/tabBar/TabBar.js.map +1 -0
  176. package/lib/commonjs/tabBar/TabBarUsage.js +441 -0
  177. package/lib/commonjs/tabBar/TabBarUsage.js.map +1 -0
  178. package/lib/commonjs/tabBar/index.js +26 -0
  179. package/lib/commonjs/tabBar/index.js.map +1 -0
  180. package/lib/commonjs/tabBar/interface.js +43 -0
  181. package/lib/commonjs/tabBar/interface.js.map +1 -0
  182. package/lib/commonjs/text/index.js +65 -0
  183. package/lib/commonjs/text/index.js.map +1 -0
  184. package/lib/commonjs/timeline/index.js +264 -0
  185. package/lib/commonjs/timeline/index.js.map +1 -0
  186. package/lib/commonjs/toast/index.js +203 -0
  187. package/lib/commonjs/toast/index.js.map +1 -0
  188. package/lib/commonjs/toast/useToast.js +82 -0
  189. package/lib/commonjs/toast/useToast.js.map +1 -0
  190. package/lib/commonjs/utiles/createIcon.js +49 -0
  191. package/lib/commonjs/utiles/createIcon.js.map +1 -0
  192. package/lib/commonjs/utiles/fontStyles.js +36 -0
  193. package/lib/commonjs/utiles/fontStyles.js.map +1 -0
  194. package/lib/commonjs/utiles/position.js +98 -0
  195. package/lib/commonjs/utiles/position.js.map +1 -0
  196. package/lib/commonjs/utiles/statusBar.js +425 -0
  197. package/lib/commonjs/utiles/statusBar.js.map +1 -0
  198. package/lib/commonjs/utiles/styled.js +42 -0
  199. package/lib/commonjs/utiles/styled.js.map +1 -0
  200. package/lib/commonjs/utiles/styles.js +30 -0
  201. package/lib/commonjs/utiles/styles.js.map +1 -0
  202. package/lib/commonjs/utiles/theme.js +680 -0
  203. package/lib/commonjs/utiles/theme.js.map +1 -0
  204. package/lib/commonjs/utiles/validators.js +31 -0
  205. package/lib/commonjs/utiles/validators.js.map +1 -0
  206. package/lib/commonjs/utiles/viewStyleProps.js +6 -0
  207. package/lib/commonjs/utiles/viewStyleProps.js.map +1 -0
  208. package/lib/commonjs/utiles/viewStyleVariants.js +546 -0
  209. package/lib/commonjs/utiles/viewStyleVariants.js.map +1 -0
  210. package/lib/module/actionSheet/actionSheet.js +368 -0
  211. package/lib/module/actionSheet/actionSheet.js.map +1 -0
  212. package/lib/module/actionSheet/index.js +5 -0
  213. package/lib/module/actionSheet/index.js.map +1 -0
  214. package/lib/module/actionSheet/useActionSheet.js +85 -0
  215. package/lib/module/actionSheet/useActionSheet.js.map +1 -0
  216. package/lib/module/badge/index.js +147 -0
  217. package/lib/module/badge/index.js.map +1 -0
  218. package/lib/module/barChart/index.js +292 -0
  219. package/lib/module/barChart/index.js.map +1 -0
  220. package/lib/module/button/index.js +224 -0
  221. package/lib/module/button/index.js.map +1 -0
  222. package/lib/module/card/index.js +198 -0
  223. package/lib/module/card/index.js.map +1 -0
  224. package/lib/module/checkBox/index.js +86 -0
  225. package/lib/module/checkBox/index.js.map +1 -0
  226. package/lib/module/chips/index.js +232 -0
  227. package/lib/module/chips/index.js.map +1 -0
  228. package/lib/module/circularProgress/index.js +259 -0
  229. package/lib/module/circularProgress/index.js.map +1 -0
  230. package/lib/module/collapsible/Collapse.js +288 -0
  231. package/lib/module/collapsible/Collapse.js.map +1 -0
  232. package/lib/module/collapsible/CollapseGroup.js +133 -0
  233. package/lib/module/collapsible/CollapseGroup.js.map +1 -0
  234. package/lib/module/collapsible/index.js +40 -0
  235. package/lib/module/collapsible/index.js.map +1 -0
  236. package/lib/module/collapsible/interface.js +35 -0
  237. package/lib/module/collapsible/interface.js.map +1 -0
  238. package/lib/module/collapsible/style.js +153 -0
  239. package/lib/module/collapsible/style.js.map +1 -0
  240. package/lib/module/datePicker/index.js +908 -0
  241. package/lib/module/datePicker/index.js.map +1 -0
  242. package/lib/module/dialog/dialogue.js +189 -0
  243. package/lib/module/dialog/dialogue.js.map +1 -0
  244. package/lib/module/dialog/index.js +386 -0
  245. package/lib/module/dialog/index.js.map +1 -0
  246. package/lib/module/dialog/useDialogue.js +113 -0
  247. package/lib/module/dialog/useDialogue.js.map +1 -0
  248. package/lib/module/divider/index.js +34 -0
  249. package/lib/module/divider/index.js.map +1 -0
  250. package/lib/module/drawer/Drawer.js +583 -0
  251. package/lib/module/drawer/Drawer.js.map +1 -0
  252. package/lib/module/drawer/index.js +60 -0
  253. package/lib/module/drawer/index.js.map +1 -0
  254. package/lib/module/drawer/interface.js +80 -0
  255. package/lib/module/drawer/interface.js.map +1 -0
  256. package/lib/module/dropdown/index.js +854 -0
  257. package/lib/module/dropdown/index.js.map +1 -0
  258. package/lib/module/emptyState/index.js +225 -0
  259. package/lib/module/emptyState/index.js.map +1 -0
  260. package/lib/module/form/index.js +2 -0
  261. package/lib/module/form/index.js.map +1 -0
  262. package/lib/module/header/index.js +143 -0
  263. package/lib/module/header/index.js.map +1 -0
  264. package/lib/module/header/statusBar/index.js +15 -0
  265. package/lib/module/header/statusBar/index.js.map +1 -0
  266. package/lib/module/icons/backArrow.js +37 -0
  267. package/lib/module/icons/backArrow.js.map +1 -0
  268. package/lib/module/icons/bellFill.js +38 -0
  269. package/lib/module/icons/bellFill.js.map +1 -0
  270. package/lib/module/icons/bellOutline.js +38 -0
  271. package/lib/module/icons/bellOutline.js.map +1 -0
  272. package/lib/module/icons/checkmark.js +31 -0
  273. package/lib/module/icons/checkmark.js.map +1 -0
  274. package/lib/module/icons/delete.js +48 -0
  275. package/lib/module/icons/delete.js.map +1 -0
  276. package/lib/module/icons/downChevron.js +31 -0
  277. package/lib/module/icons/downChevron.js.map +1 -0
  278. package/lib/module/icons/error.js +36 -0
  279. package/lib/module/icons/error.js.map +1 -0
  280. package/lib/module/icons/forwardArrow.js +37 -0
  281. package/lib/module/icons/forwardArrow.js.map +1 -0
  282. package/lib/module/icons/index.js +18 -0
  283. package/lib/module/icons/index.js.map +1 -0
  284. package/lib/module/icons/info.js +43 -0
  285. package/lib/module/icons/info.js.map +1 -0
  286. package/lib/module/icons/leftChevron.js +31 -0
  287. package/lib/module/icons/leftChevron.js.map +1 -0
  288. package/lib/module/icons/rightChevron.js +31 -0
  289. package/lib/module/icons/rightChevron.js.map +1 -0
  290. package/lib/module/icons/save.js +45 -0
  291. package/lib/module/icons/save.js.map +1 -0
  292. package/lib/module/icons/success.js +38 -0
  293. package/lib/module/icons/success.js.map +1 -0
  294. package/lib/module/icons/upChevron.js +31 -0
  295. package/lib/module/icons/upChevron.js.map +1 -0
  296. package/lib/module/icons/warning.js +43 -0
  297. package/lib/module/icons/warning.js.map +1 -0
  298. package/lib/module/image/index.js +43 -0
  299. package/lib/module/image/index.js.map +1 -0
  300. package/lib/module/index.js +56 -24
  301. package/lib/module/index.js.map +1 -1
  302. package/lib/module/input/index.js +483 -0
  303. package/lib/module/input/index.js.map +1 -0
  304. package/lib/module/loading/circular.js +111 -0
  305. package/lib/module/loading/circular.js.map +1 -0
  306. package/lib/module/loading/index.js +7 -0
  307. package/lib/module/loading/index.js.map +1 -0
  308. package/lib/module/loading/loader.js +242 -0
  309. package/lib/module/loading/loader.js.map +1 -0
  310. package/lib/module/loading/spinner.js +85 -0
  311. package/lib/module/loading/spinner.js.map +1 -0
  312. package/lib/module/loading/useLoader.js +58 -0
  313. package/lib/module/loading/useLoader.js.map +1 -0
  314. package/lib/module/loading/useLoaderBinding.js +28 -0
  315. package/lib/module/loading/useLoaderBinding.js.map +1 -0
  316. package/lib/module/notification/index.js +253 -0
  317. package/lib/module/notification/index.js.map +1 -0
  318. package/lib/module/notification/useNotification.js +58 -0
  319. package/lib/module/notification/useNotification.js.map +1 -0
  320. package/lib/module/page/index.js +17 -0
  321. package/lib/module/page/index.js.map +1 -0
  322. package/lib/module/popup/Popup.js +328 -0
  323. package/lib/module/popup/Popup.js.map +1 -0
  324. package/lib/module/popup/helpers.js +159 -0
  325. package/lib/module/popup/helpers.js.map +1 -0
  326. package/lib/module/popup/index.js +45 -0
  327. package/lib/module/popup/index.js.map +1 -0
  328. package/lib/module/popup/interface.js +41 -0
  329. package/lib/module/popup/interface.js.map +1 -0
  330. package/lib/module/portal/GlobalPortalProvider.js +62 -0
  331. package/lib/module/portal/GlobalPortalProvider.js.map +1 -0
  332. package/lib/module/portal/PortalContext.js +33 -0
  333. package/lib/module/portal/PortalContext.js.map +1 -0
  334. package/lib/module/portal/PortalInstance.js +118 -0
  335. package/lib/module/portal/PortalInstance.js.map +1 -0
  336. package/lib/module/portal/PortalManager.js +81 -0
  337. package/lib/module/portal/PortalManager.js.map +1 -0
  338. package/lib/module/portal/PortalRenderer.js +51 -0
  339. package/lib/module/portal/PortalRenderer.js.map +1 -0
  340. package/lib/module/portal/index.js +56 -0
  341. package/lib/module/portal/index.js.map +1 -0
  342. package/lib/module/portal/portal.test.js +155 -0
  343. package/lib/module/portal/portal.test.js.map +1 -0
  344. package/lib/module/portal/types.js +4 -0
  345. package/lib/module/portal/types.js.map +1 -0
  346. package/lib/module/pressable/index.js +15 -0
  347. package/lib/module/pressable/index.js.map +1 -0
  348. package/lib/module/progressBar/index.js +506 -0
  349. package/lib/module/progressBar/index.js.map +1 -0
  350. package/lib/module/radio/index.js +361 -0
  351. package/lib/module/radio/index.js.map +1 -0
  352. package/lib/module/safeAreaProvider/index.js +9 -0
  353. package/lib/module/safeAreaProvider/index.js.map +1 -0
  354. package/lib/module/safeAreaView/index.js +11 -0
  355. package/lib/module/safeAreaView/index.js.map +1 -0
  356. package/lib/module/scrollView/index.js +11 -0
  357. package/lib/module/scrollView/index.js.map +1 -0
  358. package/lib/module/searchBar/index.js +350 -0
  359. package/lib/module/searchBar/index.js.map +1 -0
  360. package/lib/module/seperator/index.js +40 -0
  361. package/lib/module/seperator/index.js.map +1 -0
  362. package/lib/module/services/index.js +181 -0
  363. package/lib/module/services/index.js.map +1 -0
  364. package/lib/module/shape/index.js +33 -0
  365. package/lib/module/shape/index.js.map +1 -0
  366. package/lib/module/skeleton/index.js +425 -0
  367. package/lib/module/skeleton/index.js.map +1 -0
  368. package/lib/module/slider/index.js +493 -0
  369. package/lib/module/slider/index.js.map +1 -0
  370. package/lib/module/spacer/index.js +11 -0
  371. package/lib/module/spacer/index.js.map +1 -0
  372. package/lib/module/stack/index.js +50 -0
  373. package/lib/module/stack/index.js.map +1 -0
  374. package/lib/module/switch/Switch.js +285 -0
  375. package/lib/module/switch/Switch.js.map +1 -0
  376. package/lib/module/switch/_index.js +114 -0
  377. package/lib/module/switch/_index.js.map +1 -0
  378. package/lib/module/switch/index.js +64 -0
  379. package/lib/module/switch/index.js.map +1 -0
  380. package/lib/module/switch/interface.js +43 -0
  381. package/lib/module/switch/interface.js.map +1 -0
  382. package/lib/module/tabBar/TabBar.js +405 -0
  383. package/lib/module/tabBar/TabBar.js.map +1 -0
  384. package/lib/module/tabBar/TabBarUsage.js +437 -0
  385. package/lib/module/tabBar/TabBarUsage.js.map +1 -0
  386. package/lib/module/tabBar/index.js +54 -0
  387. package/lib/module/tabBar/index.js.map +1 -0
  388. package/lib/module/tabBar/interface.js +39 -0
  389. package/lib/module/tabBar/interface.js.map +1 -0
  390. package/lib/module/text/index.js +62 -0
  391. package/lib/module/text/index.js.map +1 -0
  392. package/lib/module/timeline/index.js +258 -0
  393. package/lib/module/timeline/index.js.map +1 -0
  394. package/lib/module/toast/index.js +187 -0
  395. package/lib/module/toast/index.js.map +1 -0
  396. package/lib/module/toast/useToast.js +78 -0
  397. package/lib/module/toast/useToast.js.map +1 -0
  398. package/lib/module/utiles/createIcon.js +45 -0
  399. package/lib/module/utiles/createIcon.js.map +1 -0
  400. package/lib/module/utiles/fontStyles.js +31 -0
  401. package/lib/module/utiles/fontStyles.js.map +1 -0
  402. package/lib/module/utiles/position.js +94 -0
  403. package/lib/module/utiles/position.js.map +1 -0
  404. package/lib/module/utiles/statusBar.js +401 -0
  405. package/lib/module/utiles/statusBar.js.map +1 -0
  406. package/lib/module/utiles/styled.js +37 -0
  407. package/lib/module/utiles/styled.js.map +1 -0
  408. package/lib/module/utiles/styles.js +27 -0
  409. package/lib/module/utiles/styles.js.map +1 -0
  410. package/lib/module/{package → utiles}/theme.js +305 -17
  411. package/lib/module/utiles/theme.js.map +1 -0
  412. package/lib/module/utiles/validators.js +24 -0
  413. package/lib/module/utiles/validators.js.map +1 -0
  414. package/lib/module/utiles/viewStyleProps.js +4 -0
  415. package/lib/module/utiles/viewStyleProps.js.map +1 -0
  416. package/lib/module/utiles/viewStyleVariants.js +542 -0
  417. package/lib/module/utiles/viewStyleVariants.js.map +1 -0
  418. package/lib/typescript/actionSheet/actionSheet.d.ts +82 -0
  419. package/lib/typescript/actionSheet/actionSheet.d.ts.map +1 -0
  420. package/lib/typescript/actionSheet/index.d.ts +4 -0
  421. package/lib/typescript/actionSheet/index.d.ts.map +1 -0
  422. package/lib/typescript/actionSheet/useActionSheet.d.ts +82 -0
  423. package/lib/typescript/actionSheet/useActionSheet.d.ts.map +1 -0
  424. package/lib/typescript/badge/index.d.ts +37 -0
  425. package/lib/typescript/badge/index.d.ts.map +1 -0
  426. package/lib/typescript/barChart/index.d.ts +125 -0
  427. package/lib/typescript/barChart/index.d.ts.map +1 -0
  428. package/lib/typescript/button/index.d.ts +86 -0
  429. package/lib/typescript/button/index.d.ts.map +1 -0
  430. package/lib/typescript/card/index.d.ts +53 -0
  431. package/lib/typescript/card/index.d.ts.map +1 -0
  432. package/lib/typescript/checkBox/index.d.ts +28 -0
  433. package/lib/typescript/checkBox/index.d.ts.map +1 -0
  434. package/lib/typescript/chips/index.d.ts +104 -0
  435. package/lib/typescript/chips/index.d.ts.map +1 -0
  436. package/lib/typescript/circularProgress/index.d.ts +36 -0
  437. package/lib/typescript/circularProgress/index.d.ts.map +1 -0
  438. package/lib/typescript/collapsible/Collapse.d.ts +5 -0
  439. package/lib/typescript/collapsible/Collapse.d.ts.map +1 -0
  440. package/lib/typescript/collapsible/CollapseGroup.d.ts +49 -0
  441. package/lib/typescript/collapsible/CollapseGroup.d.ts.map +1 -0
  442. package/lib/typescript/collapsible/index.d.ts +38 -0
  443. package/lib/typescript/collapsible/index.d.ts.map +1 -0
  444. package/lib/typescript/collapsible/interface.d.ts +116 -0
  445. package/lib/typescript/collapsible/interface.d.ts.map +1 -0
  446. package/lib/typescript/collapsible/style.d.ts +92 -0
  447. package/lib/typescript/collapsible/style.d.ts.map +1 -0
  448. package/lib/typescript/datePicker/index.d.ts +91 -0
  449. package/lib/typescript/datePicker/index.d.ts.map +1 -0
  450. package/lib/typescript/dialog/dialogue.d.ts +20 -0
  451. package/lib/typescript/dialog/dialogue.d.ts.map +1 -0
  452. package/lib/typescript/dialog/index.d.ts +175 -0
  453. package/lib/typescript/dialog/index.d.ts.map +1 -0
  454. package/lib/typescript/dialog/useDialogue.d.ts +21 -0
  455. package/lib/typescript/dialog/useDialogue.d.ts.map +1 -0
  456. package/lib/typescript/divider/index.d.ts +12 -0
  457. package/lib/typescript/divider/index.d.ts.map +1 -0
  458. package/lib/typescript/drawer/Drawer.d.ts +4 -0
  459. package/lib/typescript/drawer/Drawer.d.ts.map +1 -0
  460. package/lib/typescript/drawer/index.d.ts +48 -0
  461. package/lib/typescript/drawer/index.d.ts.map +1 -0
  462. package/lib/typescript/drawer/interface.d.ts +232 -0
  463. package/lib/typescript/drawer/interface.d.ts.map +1 -0
  464. package/lib/typescript/dropdown/index.d.ts +54 -0
  465. package/lib/typescript/dropdown/index.d.ts.map +1 -0
  466. package/lib/typescript/emptyState/index.d.ts +57 -0
  467. package/lib/typescript/emptyState/index.d.ts.map +1 -0
  468. package/lib/typescript/form/index.d.ts +1 -0
  469. package/lib/typescript/form/index.d.ts.map +1 -0
  470. package/lib/typescript/header/index.d.ts +44 -0
  471. package/lib/typescript/header/index.d.ts.map +1 -0
  472. package/lib/typescript/header/statusBar/index.d.ts +6 -0
  473. package/lib/typescript/header/statusBar/index.d.ts.map +1 -0
  474. package/lib/typescript/icons/backArrow.d.ts +12 -0
  475. package/lib/typescript/icons/backArrow.d.ts.map +1 -0
  476. package/lib/typescript/icons/bellFill.d.ts +12 -0
  477. package/lib/typescript/icons/bellFill.d.ts.map +1 -0
  478. package/lib/typescript/icons/bellOutline.d.ts +12 -0
  479. package/lib/typescript/icons/bellOutline.d.ts.map +1 -0
  480. package/lib/typescript/icons/checkmark.d.ts +12 -0
  481. package/lib/typescript/icons/checkmark.d.ts.map +1 -0
  482. package/lib/typescript/icons/delete.d.ts +12 -0
  483. package/lib/typescript/icons/delete.d.ts.map +1 -0
  484. package/lib/typescript/icons/downChevron.d.ts +12 -0
  485. package/lib/typescript/icons/downChevron.d.ts.map +1 -0
  486. package/lib/typescript/icons/error.d.ts +12 -0
  487. package/lib/typescript/icons/error.d.ts.map +1 -0
  488. package/lib/typescript/icons/forwardArrow.d.ts +12 -0
  489. package/lib/typescript/icons/forwardArrow.d.ts.map +1 -0
  490. package/lib/typescript/icons/index.d.ts +16 -0
  491. package/lib/typescript/icons/index.d.ts.map +1 -0
  492. package/lib/typescript/icons/info.d.ts +12 -0
  493. package/lib/typescript/icons/info.d.ts.map +1 -0
  494. package/lib/typescript/icons/leftChevron.d.ts +12 -0
  495. package/lib/typescript/icons/leftChevron.d.ts.map +1 -0
  496. package/lib/typescript/icons/rightChevron.d.ts +12 -0
  497. package/lib/typescript/icons/rightChevron.d.ts.map +1 -0
  498. package/lib/typescript/icons/save.d.ts +12 -0
  499. package/lib/typescript/icons/save.d.ts.map +1 -0
  500. package/lib/typescript/icons/success.d.ts +12 -0
  501. package/lib/typescript/icons/success.d.ts.map +1 -0
  502. package/lib/typescript/icons/upChevron.d.ts +12 -0
  503. package/lib/typescript/icons/upChevron.d.ts.map +1 -0
  504. package/lib/typescript/icons/warning.d.ts +12 -0
  505. package/lib/typescript/icons/warning.d.ts.map +1 -0
  506. package/lib/typescript/image/index.d.ts +15 -0
  507. package/lib/typescript/image/index.d.ts.map +1 -0
  508. package/lib/typescript/index.d.ts +56 -0
  509. package/lib/typescript/index.d.ts.map +1 -0
  510. package/lib/typescript/input/index.d.ts +89 -0
  511. package/lib/typescript/input/index.d.ts.map +1 -0
  512. package/lib/typescript/loading/circular.d.ts +10 -0
  513. package/lib/typescript/loading/circular.d.ts.map +1 -0
  514. package/lib/typescript/loading/index.d.ts +7 -0
  515. package/lib/typescript/loading/index.d.ts.map +1 -0
  516. package/lib/typescript/loading/loader.d.ts +23 -0
  517. package/lib/typescript/loading/loader.d.ts.map +1 -0
  518. package/lib/typescript/loading/spinner.d.ts +22 -0
  519. package/lib/typescript/loading/spinner.d.ts.map +1 -0
  520. package/lib/typescript/loading/useLoader.d.ts +27 -0
  521. package/lib/typescript/loading/useLoader.d.ts.map +1 -0
  522. package/lib/typescript/loading/useLoaderBinding.d.ts +9 -0
  523. package/lib/typescript/loading/useLoaderBinding.d.ts.map +1 -0
  524. package/lib/typescript/notification/index.d.ts +21 -0
  525. package/lib/typescript/notification/index.d.ts.map +1 -0
  526. package/lib/typescript/notification/useNotification.d.ts +30 -0
  527. package/lib/typescript/notification/useNotification.d.ts.map +1 -0
  528. package/lib/typescript/page/index.d.ts +12 -0
  529. package/lib/typescript/page/index.d.ts.map +1 -0
  530. package/lib/typescript/popup/Popup.d.ts +4 -0
  531. package/lib/typescript/popup/Popup.d.ts.map +1 -0
  532. package/lib/typescript/popup/helpers.d.ts +9 -0
  533. package/lib/typescript/popup/helpers.d.ts.map +1 -0
  534. package/lib/typescript/popup/index.d.ts +43 -0
  535. package/lib/typescript/popup/index.d.ts.map +1 -0
  536. package/lib/typescript/popup/interface.d.ts +103 -0
  537. package/lib/typescript/popup/interface.d.ts.map +1 -0
  538. package/lib/typescript/portal/GlobalPortalProvider.d.ts +44 -0
  539. package/lib/typescript/portal/GlobalPortalProvider.d.ts.map +1 -0
  540. package/lib/typescript/portal/PortalContext.d.ts +25 -0
  541. package/lib/typescript/portal/PortalContext.d.ts.map +1 -0
  542. package/lib/typescript/portal/PortalInstance.d.ts +72 -0
  543. package/lib/typescript/portal/PortalInstance.d.ts.map +1 -0
  544. package/lib/typescript/portal/PortalManager.d.ts +7 -0
  545. package/lib/typescript/portal/PortalManager.d.ts.map +1 -0
  546. package/lib/typescript/portal/PortalRenderer.d.ts +27 -0
  547. package/lib/typescript/portal/PortalRenderer.d.ts.map +1 -0
  548. package/lib/typescript/portal/index.d.ts +43 -0
  549. package/lib/typescript/portal/index.d.ts.map +1 -0
  550. package/lib/typescript/portal/portal.test.d.ts +11 -0
  551. package/lib/typescript/portal/portal.test.d.ts.map +1 -0
  552. package/lib/typescript/portal/types.d.ts +30 -0
  553. package/lib/typescript/portal/types.d.ts.map +1 -0
  554. package/lib/typescript/pressable/index.d.ts +8 -0
  555. package/lib/typescript/pressable/index.d.ts.map +1 -0
  556. package/lib/typescript/progressBar/index.d.ts +155 -0
  557. package/lib/typescript/progressBar/index.d.ts.map +1 -0
  558. package/lib/typescript/radio/index.d.ts +144 -0
  559. package/lib/typescript/radio/index.d.ts.map +1 -0
  560. package/lib/typescript/safeAreaProvider/index.d.ts +7 -0
  561. package/lib/typescript/safeAreaProvider/index.d.ts.map +1 -0
  562. package/lib/typescript/safeAreaView/index.d.ts +8 -0
  563. package/lib/typescript/safeAreaView/index.d.ts.map +1 -0
  564. package/lib/typescript/scrollView/index.d.ts +8 -0
  565. package/lib/typescript/scrollView/index.d.ts.map +1 -0
  566. package/lib/typescript/searchBar/index.d.ts +70 -0
  567. package/lib/typescript/searchBar/index.d.ts.map +1 -0
  568. package/lib/typescript/seperator/index.d.ts +13 -0
  569. package/lib/typescript/seperator/index.d.ts.map +1 -0
  570. package/lib/typescript/services/index.d.ts +56 -0
  571. package/lib/typescript/services/index.d.ts.map +1 -0
  572. package/lib/typescript/shape/index.d.ts +11 -0
  573. package/lib/typescript/shape/index.d.ts.map +1 -0
  574. package/lib/typescript/skeleton/index.d.ts +63 -0
  575. package/lib/typescript/skeleton/index.d.ts.map +1 -0
  576. package/lib/typescript/slider/index.d.ts +60 -0
  577. package/lib/typescript/slider/index.d.ts.map +1 -0
  578. package/lib/typescript/spacer/index.d.ts +8 -0
  579. package/lib/typescript/spacer/index.d.ts.map +1 -0
  580. package/lib/typescript/stack/index.d.ts +24 -0
  581. package/lib/typescript/stack/index.d.ts.map +1 -0
  582. package/lib/typescript/switch/Switch.d.ts +6 -0
  583. package/lib/typescript/switch/Switch.d.ts.map +1 -0
  584. package/lib/typescript/switch/_index.d.ts +11 -0
  585. package/lib/typescript/switch/_index.d.ts.map +1 -0
  586. package/lib/typescript/switch/index.d.ts +62 -0
  587. package/lib/typescript/switch/index.d.ts.map +1 -0
  588. package/lib/typescript/switch/interface.d.ts +74 -0
  589. package/lib/typescript/switch/interface.d.ts.map +1 -0
  590. package/lib/typescript/tabBar/TabBar.d.ts +5 -0
  591. package/lib/typescript/tabBar/TabBar.d.ts.map +1 -0
  592. package/lib/typescript/tabBar/TabBarUsage.d.ts +6 -0
  593. package/lib/typescript/tabBar/TabBarUsage.d.ts.map +1 -0
  594. package/lib/typescript/tabBar/index.d.ts +52 -0
  595. package/lib/typescript/tabBar/index.d.ts.map +1 -0
  596. package/lib/typescript/tabBar/interface.d.ts +119 -0
  597. package/lib/typescript/tabBar/interface.d.ts.map +1 -0
  598. package/lib/typescript/text/index.d.ts +16 -0
  599. package/lib/typescript/text/index.d.ts.map +1 -0
  600. package/lib/typescript/timeline/index.d.ts +125 -0
  601. package/lib/typescript/timeline/index.d.ts.map +1 -0
  602. package/lib/typescript/toast/index.d.ts +28 -0
  603. package/lib/typescript/toast/index.d.ts.map +1 -0
  604. package/lib/typescript/toast/useToast.d.ts +31 -0
  605. package/lib/typescript/toast/useToast.d.ts.map +1 -0
  606. package/lib/typescript/utiles/createIcon.d.ts +39 -0
  607. package/lib/typescript/utiles/createIcon.d.ts.map +1 -0
  608. package/lib/typescript/utiles/fontStyles.d.ts +9 -0
  609. package/lib/typescript/utiles/fontStyles.d.ts.map +1 -0
  610. package/lib/typescript/utiles/position.d.ts +13 -0
  611. package/lib/typescript/utiles/position.d.ts.map +1 -0
  612. package/lib/typescript/utiles/statusBar.d.ts +128 -0
  613. package/lib/typescript/utiles/statusBar.d.ts.map +1 -0
  614. package/lib/typescript/utiles/styled.d.ts +14 -0
  615. package/lib/typescript/utiles/styled.d.ts.map +1 -0
  616. package/lib/typescript/utiles/styles.d.ts +31 -0
  617. package/lib/typescript/utiles/styles.d.ts.map +1 -0
  618. package/lib/typescript/utiles/theme.d.ts +918 -0
  619. package/lib/typescript/utiles/theme.d.ts.map +1 -0
  620. package/lib/typescript/utiles/validators.d.ts +14 -0
  621. package/lib/typescript/utiles/validators.d.ts.map +1 -0
  622. package/lib/typescript/utiles/viewStyleProps.d.ts +4 -0
  623. package/lib/typescript/utiles/viewStyleProps.d.ts.map +1 -0
  624. package/lib/typescript/utiles/viewStyleVariants.d.ts +121 -0
  625. package/lib/typescript/utiles/viewStyleVariants.d.ts.map +1 -0
  626. package/package.json +146 -52
  627. package/src/actionSheet/actionSheet.tsx +471 -0
  628. package/src/actionSheet/index.tsx +3 -0
  629. package/src/actionSheet/useActionSheet.tsx +140 -0
  630. package/src/badge/index.tsx +185 -0
  631. package/src/barChart/index.tsx +386 -0
  632. package/src/button/index.tsx +335 -0
  633. package/src/card/index.tsx +220 -0
  634. package/src/checkBox/index.tsx +137 -0
  635. package/src/chips/index.tsx +293 -0
  636. package/src/circularProgress/index.tsx +349 -0
  637. package/src/collapsible/Collapse.tsx +366 -0
  638. package/src/collapsible/CollapseGroup.tsx +161 -0
  639. package/src/collapsible/index.ts +48 -0
  640. package/src/collapsible/interface.ts +187 -0
  641. package/src/collapsible/style.ts +130 -0
  642. package/src/datePicker/index.tsx +961 -0
  643. package/src/dialog/dialogue.tsx +155 -0
  644. package/src/dialog/index.tsx +604 -0
  645. package/src/dialog/useDialogue.tsx +158 -0
  646. package/src/divider/index.tsx +45 -0
  647. package/src/drawer/Drawer.tsx +655 -0
  648. package/src/drawer/index.ts +60 -0
  649. package/src/drawer/interface.ts +391 -0
  650. package/src/dropdown/index.tsx +1081 -0
  651. package/src/emptyState/index.tsx +287 -0
  652. package/src/form/index.tsx +0 -0
  653. package/src/header/index.tsx +217 -0
  654. package/src/header/statusBar/index.tsx +11 -0
  655. package/src/icons/backArrow.tsx +17 -0
  656. package/src/icons/bellFill.tsx +19 -0
  657. package/src/icons/bellOutline.tsx +18 -0
  658. package/src/icons/checkmark.tsx +18 -0
  659. package/src/icons/delete.tsx +19 -0
  660. package/src/icons/downChevron.tsx +18 -0
  661. package/src/icons/error.tsx +17 -0
  662. package/src/icons/forwardArrow.tsx +19 -0
  663. package/src/icons/index.ts +15 -0
  664. package/src/icons/info.tsx +19 -0
  665. package/src/icons/leftChevron.tsx +18 -0
  666. package/src/icons/rightChevron.tsx +18 -0
  667. package/src/icons/save.tsx +18 -0
  668. package/src/icons/success.tsx +17 -0
  669. package/src/icons/upChevron.tsx +18 -0
  670. package/src/icons/warning.tsx +19 -0
  671. package/src/image/index.tsx +45 -0
  672. package/src/index.ts +72 -0
  673. package/src/input/index.tsx +668 -0
  674. package/src/loading/circular.tsx +141 -0
  675. package/src/loading/index.tsx +6 -0
  676. package/src/loading/loader.tsx +191 -0
  677. package/src/loading/spinner.tsx +126 -0
  678. package/src/loading/useLoader.tsx +78 -0
  679. package/src/loading/useLoaderBinding.tsx +38 -0
  680. package/src/notification/index.tsx +189 -0
  681. package/src/notification/useNotification.tsx +64 -0
  682. package/src/page/index.tsx +19 -0
  683. package/src/popup/Popup.tsx +398 -0
  684. package/src/popup/helpers.ts +123 -0
  685. package/src/popup/index.ts +45 -0
  686. package/src/popup/interface.ts +178 -0
  687. package/src/portal/GlobalPortalProvider.tsx +63 -0
  688. package/src/portal/PortalContext.ts +37 -0
  689. package/src/portal/PortalInstance.ts +118 -0
  690. package/src/portal/PortalManager.tsx +84 -0
  691. package/src/portal/PortalRenderer.tsx +72 -0
  692. package/src/portal/index.ts +60 -0
  693. package/src/portal/portal.test.ts +157 -0
  694. package/src/portal/types.ts +49 -0
  695. package/src/pressable/index.tsx +19 -0
  696. package/src/progressBar/index.tsx +564 -0
  697. package/src/radio/index.tsx +469 -0
  698. package/src/safeAreaProvider/index.ts +16 -0
  699. package/src/safeAreaView/index.tsx +17 -0
  700. package/src/scrollView/index.ts +15 -0
  701. package/src/searchBar/index.tsx +383 -0
  702. package/src/seperator/index.tsx +59 -0
  703. package/src/services/index.ts +149 -0
  704. package/src/shape/index.tsx +38 -0
  705. package/src/skeleton/index.tsx +350 -0
  706. package/src/slider/index.tsx +637 -0
  707. package/src/spacer/index.ts +29 -0
  708. package/src/stack/index.ts +58 -0
  709. package/src/switch/Switch.tsx +343 -0
  710. package/src/switch/_index.tsx +135 -0
  711. package/src/switch/index.ts +62 -0
  712. package/src/switch/interface.ts +120 -0
  713. package/src/tabBar/TabBar.tsx +503 -0
  714. package/src/tabBar/TabBarUsage.tsx +366 -0
  715. package/src/tabBar/index.ts +59 -0
  716. package/src/tabBar/interface.ts +196 -0
  717. package/src/text/index.ts +73 -0
  718. package/src/timeline/index.tsx +374 -0
  719. package/src/toast/index.tsx +172 -0
  720. package/src/toast/useToast.tsx +93 -0
  721. package/src/utiles/createIcon.ts +44 -0
  722. package/src/utiles/fontStyles.js +31 -0
  723. package/src/utiles/position.ts +100 -0
  724. package/src/utiles/statusBar.ts +410 -0
  725. package/src/utiles/styled.tsx +48 -0
  726. package/src/utiles/styles.ts +25 -0
  727. package/src/utiles/theme.ts +727 -0
  728. package/src/utiles/validators.ts +21 -0
  729. package/src/utiles/viewStyleProps.ts +41 -0
  730. package/src/utiles/viewStyleVariants.ts +411 -0
  731. package/lib/commonjs/assets/img/blank_1.png +0 -0
  732. package/lib/commonjs/assets/img/blank_2.png +0 -0
  733. package/lib/commonjs/assets/img/doctor.png +0 -0
  734. package/lib/commonjs/package/badge/index.js +0 -161
  735. package/lib/commonjs/package/badge/index.js.map +0 -1
  736. package/lib/commonjs/package/button/index.js +0 -99
  737. package/lib/commonjs/package/button/index.js.map +0 -1
  738. package/lib/commonjs/package/card/index.js +0 -46
  739. package/lib/commonjs/package/card/index.js.map +0 -1
  740. package/lib/commonjs/package/checkBox/index.js +0 -97
  741. package/lib/commonjs/package/checkBox/index.js.map +0 -1
  742. package/lib/commonjs/package/cycle/index.js +0 -43
  743. package/lib/commonjs/package/cycle/index.js.map +0 -1
  744. package/lib/commonjs/package/dialog/index.js +0 -216
  745. package/lib/commonjs/package/dialog/index.js.map +0 -1
  746. package/lib/commonjs/package/dropdown/index.js +0 -112
  747. package/lib/commonjs/package/dropdown/index.js.map +0 -1
  748. package/lib/commonjs/package/form/index.js +0 -190
  749. package/lib/commonjs/package/form/index.js.map +0 -1
  750. package/lib/commonjs/package/header/index.js +0 -99
  751. package/lib/commonjs/package/header/index.js.map +0 -1
  752. package/lib/commonjs/package/image/index.js +0 -326
  753. package/lib/commonjs/package/image/index.js.map +0 -1
  754. package/lib/commonjs/package/radioButton/index.js +0 -75
  755. package/lib/commonjs/package/radioButton/index.js.map +0 -1
  756. package/lib/commonjs/package/safeAreaView/index.js +0 -26
  757. package/lib/commonjs/package/safeAreaView/index.js.map +0 -1
  758. package/lib/commonjs/package/scrollView/index.js +0 -23
  759. package/lib/commonjs/package/scrollView/index.js.map +0 -1
  760. package/lib/commonjs/package/separator/index.js +0 -33
  761. package/lib/commonjs/package/separator/index.js.map +0 -1
  762. package/lib/commonjs/package/spacer/index.js +0 -18
  763. package/lib/commonjs/package/spacer/index.js.map +0 -1
  764. package/lib/commonjs/package/spinner/index.js +0 -43
  765. package/lib/commonjs/package/spinner/index.js.map +0 -1
  766. package/lib/commonjs/package/stack/__test__/index.test.js +0 -91
  767. package/lib/commonjs/package/stack/__test__/index.test.js.map +0 -1
  768. package/lib/commonjs/package/stack/index.js +0 -54
  769. package/lib/commonjs/package/stack/index.js.map +0 -1
  770. package/lib/commonjs/package/styled/__test__/index.test.js +0 -161
  771. package/lib/commonjs/package/styled/__test__/index.test.js.map +0 -1
  772. package/lib/commonjs/package/styled/index.js +0 -42
  773. package/lib/commonjs/package/styled/index.js.map +0 -1
  774. package/lib/commonjs/package/switch/index.js +0 -43
  775. package/lib/commonjs/package/switch/index.js.map +0 -1
  776. package/lib/commonjs/package/text/index.js +0 -81
  777. package/lib/commonjs/package/text/index.js.map +0 -1
  778. package/lib/commonjs/package/theme.js +0 -385
  779. package/lib/commonjs/package/theme.js.map +0 -1
  780. package/lib/commonjs/package/utils/index.js +0 -130
  781. package/lib/commonjs/package/utils/index.js.map +0 -1
  782. package/lib/commonjs/package/utils/statusBar.js +0 -70
  783. package/lib/commonjs/package/utils/statusBar.js.map +0 -1
  784. package/lib/commonjs/package/utils/validator.js +0 -40
  785. package/lib/commonjs/package/utils/validator.js.map +0 -1
  786. package/lib/commonjs/styled.code-workspace +0 -9
  787. package/lib/module/assets/img/blank_1.png +0 -0
  788. package/lib/module/assets/img/blank_2.png +0 -0
  789. package/lib/module/assets/img/doctor.png +0 -0
  790. package/lib/module/package/badge/index.js +0 -153
  791. package/lib/module/package/badge/index.js.map +0 -1
  792. package/lib/module/package/button/index.js +0 -92
  793. package/lib/module/package/button/index.js.map +0 -1
  794. package/lib/module/package/card/index.js +0 -39
  795. package/lib/module/package/card/index.js.map +0 -1
  796. package/lib/module/package/checkBox/index.js +0 -88
  797. package/lib/module/package/checkBox/index.js.map +0 -1
  798. package/lib/module/package/cycle/index.js +0 -36
  799. package/lib/module/package/cycle/index.js.map +0 -1
  800. package/lib/module/package/dialog/index.js +0 -206
  801. package/lib/module/package/dialog/index.js.map +0 -1
  802. package/lib/module/package/dropdown/index.js +0 -102
  803. package/lib/module/package/dropdown/index.js.map +0 -1
  804. package/lib/module/package/form/index.js +0 -182
  805. package/lib/module/package/form/index.js.map +0 -1
  806. package/lib/module/package/header/index.js +0 -93
  807. package/lib/module/package/header/index.js.map +0 -1
  808. package/lib/module/package/image/index.js +0 -315
  809. package/lib/module/package/image/index.js.map +0 -1
  810. package/lib/module/package/radioButton/index.js +0 -66
  811. package/lib/module/package/radioButton/index.js.map +0 -1
  812. package/lib/module/package/safeAreaView/index.js +0 -21
  813. package/lib/module/package/safeAreaView/index.js.map +0 -1
  814. package/lib/module/package/scrollView/index.js +0 -18
  815. package/lib/module/package/scrollView/index.js.map +0 -1
  816. package/lib/module/package/separator/index.js +0 -26
  817. package/lib/module/package/separator/index.js.map +0 -1
  818. package/lib/module/package/spacer/index.js +0 -11
  819. package/lib/module/package/spacer/index.js.map +0 -1
  820. package/lib/module/package/spinner/index.js +0 -36
  821. package/lib/module/package/spinner/index.js.map +0 -1
  822. package/lib/module/package/stack/__test__/index.test.js +0 -89
  823. package/lib/module/package/stack/__test__/index.test.js.map +0 -1
  824. package/lib/module/package/stack/index.js +0 -49
  825. package/lib/module/package/stack/index.js.map +0 -1
  826. package/lib/module/package/styled/__test__/index.test.js +0 -158
  827. package/lib/module/package/styled/__test__/index.test.js.map +0 -1
  828. package/lib/module/package/styled/index.js +0 -35
  829. package/lib/module/package/styled/index.js.map +0 -1
  830. package/lib/module/package/switch/index.js +0 -36
  831. package/lib/module/package/switch/index.js.map +0 -1
  832. package/lib/module/package/text/index.js +0 -76
  833. package/lib/module/package/text/index.js.map +0 -1
  834. package/lib/module/package/theme.js.map +0 -1
  835. package/lib/module/package/utils/index.js +0 -120
  836. package/lib/module/package/utils/index.js.map +0 -1
  837. package/lib/module/package/utils/statusBar.js +0 -57
  838. package/lib/module/package/utils/statusBar.js.map +0 -1
  839. package/lib/module/package/utils/validator.js +0 -34
  840. package/lib/module/package/utils/validator.js.map +0 -1
  841. package/lib/module/styled.code-workspace +0 -9
  842. package/src/assets/img/blank_1.png +0 -0
  843. package/src/assets/img/blank_2.png +0 -0
  844. package/src/assets/img/doctor.png +0 -0
  845. package/src/index.js +0 -24
  846. package/src/package/badge/index.jsx +0 -135
  847. package/src/package/button/index.jsx +0 -83
  848. package/src/package/card/index.jsx +0 -52
  849. package/src/package/checkBox/index.jsx +0 -102
  850. package/src/package/cycle/index.jsx +0 -49
  851. package/src/package/dialog/index.jsx +0 -263
  852. package/src/package/dropdown/index.jsx +0 -101
  853. package/src/package/form/index.jsx +0 -144
  854. package/src/package/header/index.jsx +0 -96
  855. package/src/package/image/index.jsx +0 -300
  856. package/src/package/radioButton/index.jsx +0 -74
  857. package/src/package/safeAreaView/index.jsx +0 -20
  858. package/src/package/scrollView/index.jsx +0 -17
  859. package/src/package/separator/index.jsx +0 -27
  860. package/src/package/spacer/index.jsx +0 -13
  861. package/src/package/spinner/index.jsx +0 -33
  862. package/src/package/stack/__test__/index.test.js +0 -68
  863. package/src/package/stack/index.jsx +0 -50
  864. package/src/package/styled/__test__/index.test.js +0 -132
  865. package/src/package/styled/index.js +0 -32
  866. package/src/package/switch/index.jsx +0 -33
  867. package/src/package/text/index.jsx +0 -67
  868. package/src/package/theme.js +0 -377
  869. package/src/package/utils/index.js +0 -109
  870. package/src/package/utils/statusBar.js +0 -65
  871. package/src/package/utils/validator.js +0 -38
  872. package/src/styled.code-workspace +0 -9
@@ -0,0 +1,123 @@
1
+ import { Dimensions } from 'react-native'
2
+ import type { ViewStyle } from 'react-native'
3
+
4
+ import type { PopupAnimation, PopupPosition } from './interface'
5
+
6
+ // ─── Resolve default animation per position ───────────────────────────────────
7
+
8
+ export function resolveAnimation(
9
+ animation: PopupAnimation | undefined,
10
+ position: PopupPosition,
11
+ ): PopupAnimation {
12
+ if (animation) return animation
13
+ return position === 'center' ? 'scale' : 'slide'
14
+ }
15
+
16
+ // ─── Animated value: "hidden" end-state ───────────────────────────────────────
17
+ // For slide: off-screen offset (px). For fade/scale: target opacity/scale.
18
+
19
+ export function hiddenValue(
20
+ animation: PopupAnimation,
21
+ position: PopupPosition,
22
+ ): number {
23
+ if (animation === 'fade') return 0 // opacity 0
24
+ if (animation === 'scale') return 0.88 // scale 0.88
25
+ if (animation === 'none') return 0
26
+
27
+ // slide — return the off-screen offset in the axis of motion
28
+ const { width, height } = Dimensions.get('window')
29
+ switch (position) {
30
+ case 'top': return -height
31
+ case 'bottom': return height
32
+ case 'left': return -width
33
+ case 'right': return width
34
+ default: return 0
35
+ }
36
+ }
37
+
38
+ export function visibleValue(animation: PopupAnimation): number {
39
+ if (animation === 'fade') return 1
40
+ if (animation === 'scale') return 1
41
+ return 0 // slide: 0 offset = on-screen
42
+ }
43
+
44
+ // ─── Build animated style from current value ──────────────────────────────────
45
+
46
+ export function animatedStyle(
47
+ animation: PopupAnimation,
48
+ position: PopupPosition,
49
+ value: any, // Animated.Value
50
+ ): ViewStyle {
51
+ switch (animation) {
52
+ case 'fade':
53
+ return { opacity: value }
54
+
55
+ case 'scale':
56
+ return {
57
+ opacity: value, // cross-fade opacity in parallel
58
+ transform: [{ scale: value }],
59
+ }
60
+
61
+ case 'slide': {
62
+ const isY = position === 'top' || position === 'bottom'
63
+ return {
64
+ transform: [
65
+ isY ? { translateY: value } : { translateX: value },
66
+ ],
67
+ }
68
+ }
69
+
70
+ case 'none':
71
+ default:
72
+ return {}
73
+ }
74
+ }
75
+
76
+ // ─── Border radius: round the corners facing the screen interior ──────────────
77
+
78
+ export function getBorderRadius(
79
+ position: PopupPosition,
80
+ round: boolean,
81
+ radius: number,
82
+ ): ViewStyle {
83
+ if (!round || position === 'center') return {}
84
+
85
+ const r = radius
86
+ switch (position) {
87
+ case 'bottom':
88
+ return { borderTopLeftRadius: r, borderTopRightRadius: r }
89
+ case 'top':
90
+ return { borderBottomLeftRadius: r, borderBottomRightRadius: r }
91
+ case 'left':
92
+ return { borderTopRightRadius: r, borderBottomRightRadius: r }
93
+ case 'right':
94
+ return { borderTopLeftRadius: r, borderBottomLeftRadius: r }
95
+ default:
96
+ return { borderRadius: r }
97
+ }
98
+ }
99
+
100
+ // ─── Absolute position style for the popup surface ────────────────────────────
101
+
102
+ export function getPositionStyle(position: PopupPosition): ViewStyle {
103
+ const fill: ViewStyle = { position: 'absolute', top: 0, left: 0, right: 0, bottom: 0 }
104
+
105
+ switch (position) {
106
+ case 'bottom':
107
+ return { position: 'absolute', left: 0, right: 0, bottom: 0 }
108
+ case 'top':
109
+ return { position: 'absolute', left: 0, right: 0, top: 0 }
110
+ case 'left':
111
+ return { position: 'absolute', top: 0, left: 0, bottom: 0 }
112
+ case 'right':
113
+ return { position: 'absolute', top: 0, right: 0, bottom: 0 }
114
+ case 'center':
115
+ return {
116
+ ...fill,
117
+ alignItems: 'center',
118
+ justifyContent: 'center',
119
+ }
120
+ default:
121
+ return fill
122
+ }
123
+ }
@@ -0,0 +1,45 @@
1
+ /**
2
+ * @module Popup
3
+ *
4
+ * ─── Bottom sheet (default) ──────────────────────────────────────────────────
5
+ * ```tsx
6
+ * import { Popup } from './popup'
7
+ *
8
+ * <Popup visible={open} onClose={() => setOpen(false)} title="Options" showClose>
9
+ * <Text>Content here</Text>
10
+ * </Popup>
11
+ * ```
12
+ *
13
+ * ─── Positions ───────────────────────────────────────────────────────────────
14
+ * ```tsx
15
+ * <Popup visible={open} position="top" onClose={close}>…</Popup>
16
+ * <Popup visible={open} position="left" onClose={close}>…</Popup>
17
+ * <Popup visible={open} position="right" onClose={close}>…</Popup>
18
+ * <Popup visible={open} position="center" onClose={close}>…</Popup>
19
+ * ```
20
+ *
21
+ * ─── Animation styles ────────────────────────────────────────────────────────
22
+ * ```tsx
23
+ * <Popup animation="slide" /> // default for side positions
24
+ * <Popup animation="scale" /> // default for center
25
+ * <Popup animation="fade" />
26
+ * <Popup animation="none" /> // instant
27
+ * ```
28
+ *
29
+ * ─── Spring physics ──────────────────────────────────────────────────────────
30
+ * ```tsx
31
+ * <Popup spring={{ damping: 20, stiffness: 300 }}>…</Popup>
32
+ * ```
33
+ *
34
+ * ─── Color overrides ─────────────────────────────────────────────────────────
35
+ * ```tsx
36
+ * <Popup colors={{ background: '#0f172a', headerTitle: '#f8fafc' }}>…</Popup>
37
+ * ```
38
+ */
39
+
40
+ export { Popup } from './Popup'
41
+ export type { PopupProps, PopupColors,
42
+ PopupPosition, PopupAnimation } from './interface'
43
+ export { POPUP_COLORS_LIGHT, POPUP_COLORS_DARK } from './interface'
44
+ export { getBorderRadius, getPositionStyle,
45
+ resolveAnimation, animatedStyle } from './helpers'
@@ -0,0 +1,178 @@
1
+ import type { PropsWithChildren, ReactNode } from 'react'
2
+ import type {
3
+ StyleProp,
4
+ ViewStyle,
5
+ TextStyle,
6
+ ColorValue,
7
+ ViewProps,
8
+ } from 'react-native'
9
+
10
+ // ─── Position ─────────────────────────────────────────────────────────────────
11
+
12
+ export type PopupPosition = 'top' | 'bottom' | 'left' | 'right' | 'center'
13
+
14
+ // ─── Animation style ──────────────────────────────────────────────────────────
15
+
16
+ /**
17
+ * Controls how the popup enters/exits.
18
+ * - `'slide'` — slides in from the edge (default for side positions)
19
+ * - `'fade'` — opacity only
20
+ * - `'scale'` — scale from center (good for center position)
21
+ * - `'none'` — instant, no animation
22
+ */
23
+ export type PopupAnimation = 'slide' | 'fade' | 'scale' | 'none'
24
+
25
+ // ─── Color tokens ─────────────────────────────────────────────────────────────
26
+
27
+ export type PopupColors = {
28
+ /** Popup surface background. */
29
+ background: string
30
+ /** Semi-transparent overlay behind the popup. */
31
+ overlay: string
32
+ /** Handle pill (bottom sheet). */
33
+ handle: string
34
+ /** Header title text. */
35
+ headerTitle: string
36
+ /** Header subtitle text. */
37
+ headerSubtitle: string
38
+ /** Header border / divider. */
39
+ headerBorder: string
40
+ /** Close button icon colour. */
41
+ closeIcon: string
42
+ /** Close button background. */
43
+ closeIconBg: string
44
+ }
45
+
46
+ export const POPUP_COLORS_LIGHT: PopupColors = {
47
+ background: '#ffffff',
48
+ overlay: 'rgba(0,0,0,0.5)',
49
+ handle: '#d4d4d8',
50
+ headerTitle: '#18181b',
51
+ headerSubtitle: '#71717a',
52
+ headerBorder: '#f4f4f5',
53
+ closeIcon: '#71717a',
54
+ closeIconBg: '#f4f4f5',
55
+ }
56
+
57
+ export const POPUP_COLORS_DARK: PopupColors = {
58
+ background: '#1c1c1e',
59
+ overlay: 'rgba(0,0,0,0.7)',
60
+ handle: '#3f3f46',
61
+ headerTitle: '#f4f4f5',
62
+ headerSubtitle: '#a1a1aa',
63
+ headerBorder: '#27272a',
64
+ closeIcon: '#a1a1aa',
65
+ closeIconBg: '#27272a',
66
+ }
67
+
68
+ // ─── Common lifecycle callbacks ────────────────────────────────────────────────
69
+
70
+ export type PopupLifecycle = {
71
+ /** Fires immediately when visibility changes to true. */
72
+ onOpen?: () => void
73
+ /** Fires after the open animation completes. */
74
+ onOpened?: () => void
75
+ /** Fires immediately when visibility changes to false. */
76
+ onClose?: () => void
77
+ /** Fires after the close animation completes. */
78
+ onClosed?: () => void
79
+ }
80
+
81
+ // ─── Popup props ──────────────────────────────────────────────────────────────
82
+
83
+ export interface PopupProps extends PropsWithChildren<{}>, PopupLifecycle {
84
+
85
+ // ── Visibility ────────────────────────────────────────────────────────────
86
+
87
+ /** Whether the popup is visible. */
88
+ visible: boolean
89
+
90
+ // ── Overlay ───────────────────────────────────────────────────────────────
91
+
92
+ /** Show a backdrop overlay. @default true */
93
+ overlay?: boolean
94
+ /** Custom overlay colour. Falls back to `colors.overlay`. */
95
+ overlayColor?: ColorValue
96
+ /** Close the popup when the overlay is pressed. @default true */
97
+ closeOnPressOverlay?: boolean
98
+ /** Called when the overlay is pressed. */
99
+ onPressOverlay?: () => void
100
+
101
+ // ── Position & animation ──────────────────────────────────────────────────
102
+
103
+ /** Where the popup enters from. @default 'bottom' */
104
+ position?: PopupPosition
105
+
106
+ /**
107
+ * Animation style.
108
+ * Defaults: `slide` for side positions, `scale` for center.
109
+ */
110
+ animation?: PopupAnimation
111
+
112
+ /** Animation duration in ms. @default 280 */
113
+ duration?: number
114
+
115
+ /**
116
+ * Spring physics for slide/scale animations.
117
+ * When set, overrides `duration` for the open animation.
118
+ */
119
+ spring?: {
120
+ damping: number
121
+ stiffness: number
122
+ mass?: number
123
+ }
124
+
125
+ // ── Shape ─────────────────────────────────────────────────────────────────
126
+
127
+ /** Round the corners facing the interior of the screen. @default true */
128
+ round?: boolean
129
+
130
+ /** Border radius value when `round` is true. @default 20 */
131
+ roundRadius?: number
132
+
133
+ // ── Safe area ─────────────────────────────────────────────────────────────
134
+
135
+ /** Add padding for the bottom safe area (notch / home bar). @default false */
136
+ safeAreaBottom?: boolean
137
+ /** Add padding for the top safe area (status bar). @default false */
138
+ safeAreaTop?: boolean
139
+
140
+ // ── Render strategy ───────────────────────────────────────────────────────
141
+
142
+ /** Only mount children after the first open. @default true */
143
+ lazyRender?: boolean
144
+ /** Unmount children when closed (resets to lazy state). @default false */
145
+ destroyOnClose?: boolean
146
+
147
+ // ── Header ────────────────────────────────────────────────────────────────
148
+
149
+ /** Optional header title. Enables the built-in header. */
150
+ title?: ReactNode
151
+ /** Optional subtitle rendered below the title. */
152
+ subtitle?: ReactNode
153
+ /** Show a drag handle pill above the header. @default true for bottom */
154
+ showHandle?: boolean
155
+ /** Show a close (×) button in the header. @default false */
156
+ showClose?: boolean
157
+ /** Called when the close button is pressed. */
158
+ onClose?: () => void
159
+
160
+ // ── Style overrides ───────────────────────────────────────────────────────
161
+
162
+ style?: StyleProp<ViewStyle>
163
+ overlayStyle?: StyleProp<ViewStyle>
164
+ headerStyle?: StyleProp<ViewStyle>
165
+ titleStyle?: StyleProp<TextStyle>
166
+ subtitleStyle?: StyleProp<TextStyle>
167
+
168
+ // ── Theming ───────────────────────────────────────────────────────────────
169
+
170
+ colors?: Partial<PopupColors>
171
+
172
+ // ── Android back button ───────────────────────────────────────────────────
173
+
174
+ /** Return true to handle the back button (Android). */
175
+ onRequestClose?: () => boolean
176
+
177
+ testID?: ViewProps['testID']
178
+ }
@@ -0,0 +1,63 @@
1
+ import React, { useEffect, useState } from 'react'
2
+ import { portal } from './PortalInstance'
3
+ import { PortalRenderer } from './PortalRenderer'
4
+ import type { PortalNode } from './types'
5
+
6
+ /**
7
+ * Subscribes to the global `portal` singleton and renders whatever portals
8
+ * it currently holds.
9
+ *
10
+ * ### Usage
11
+ * Wrap your app root (or the root of the navigable area) with this provider.
12
+ * You can then call `portal.show(...)` / `portal.hide(...)` from anywhere —
13
+ * including non-React code such as navigation helpers or async service
14
+ * callbacks.
15
+ *
16
+ * This component deliberately has **no** React context value; it exists purely
17
+ * to drive re-renders when the singleton changes. If you also need the
18
+ * declarative `usePortal()` hook, use `PortalManager` instead (or nest both).
19
+ *
20
+ * @example
21
+ * ```tsx
22
+ * // App root
23
+ * export default function App() {
24
+ * return (
25
+ * <GlobalPortalProvider>
26
+ * <Navigation />
27
+ * </GlobalPortalProvider>
28
+ * )
29
+ * }
30
+ *
31
+ * // Anywhere – including outside React
32
+ * import { portal } from '@/portal'
33
+ *
34
+ * function showNetworkError() {
35
+ * const id = portal.show(
36
+ * <ErrorBanner message="No internet connection" />,
37
+ * { position: 'top', backdrop: false },
38
+ * )
39
+ * setTimeout(() => portal.hide(id), 4000)
40
+ * }
41
+ * ```
42
+ */
43
+
44
+ type Props = { children: React.ReactNode }
45
+
46
+ export const GlobalPortalProvider: React.FC<Props> = ({ children }) => {
47
+ const [portals, setPortals] = useState<PortalNode[]>(() => portal.getPortals())
48
+
49
+ useEffect(() => {
50
+ // Sync state whenever the singleton changes.
51
+ const unsubscribe = portal.subscribe(() => {
52
+ setPortals(portal.getPortals())
53
+ })
54
+ return unsubscribe
55
+ }, [])
56
+
57
+ return (
58
+ <>
59
+ {children}
60
+ <PortalRenderer portals={portals} />
61
+ </>
62
+ )
63
+ }
@@ -0,0 +1,37 @@
1
+ import { createContext, useContext } from 'react'
2
+ import type { PortalContextType } from './types'
3
+
4
+ /**
5
+ * React context that carries the declarative mount / update / unmount API.
6
+ * Consumed by the `usePortal` hook below and provided by `PortalManager`.
7
+ */
8
+ export const PortalContext = createContext<PortalContextType | null>(null)
9
+
10
+ /**
11
+ * Returns the portal control API from the nearest `PortalManager` ancestor.
12
+ *
13
+ * @example
14
+ * ```tsx
15
+ * const { mount, unmount } = usePortal()
16
+ *
17
+ * const handleOpen = () => {
18
+ * const id = mount(<MyModal />, { backdrop: true, position: 'center' })
19
+ * // Later:
20
+ * unmount(id)
21
+ * }
22
+ * ```
23
+ *
24
+ * @throws If called outside a `PortalManager` tree.
25
+ */
26
+ export function usePortal(): PortalContextType {
27
+ const context = useContext(PortalContext)
28
+
29
+ if (!context) {
30
+ throw new Error(
31
+ '[Portal] `usePortal` must be called inside a `PortalManager` (or `GlobalPortalProvider`) tree. ' +
32
+ 'Ensure your app root is wrapped with one of those providers.',
33
+ )
34
+ }
35
+
36
+ return context
37
+ }
@@ -0,0 +1,118 @@
1
+ import type React from 'react'
2
+ import type { PortalNode, PortalOptions } from './types'
3
+
4
+ type Listener = () => void
5
+
6
+ /**
7
+ * Imperative, framework-agnostic portal registry.
8
+ *
9
+ * `PortalInstance` holds the source-of-truth for all portals that are managed
10
+ * outside the React tree (e.g. from plain TypeScript helpers, navigation
11
+ * handlers, or third-party libraries). React components subscribe to changes
12
+ * via `subscribe()` and re-render when the list changes.
13
+ *
14
+ * The exported `portal` singleton is the recommended way to interact with this
15
+ * class. Only create additional instances if you need isolated portal scopes
16
+ * (e.g. in tests or multi-window environments).
17
+ *
18
+ * @example
19
+ * ```ts
20
+ * // Show
21
+ * const id = portal.show(<Toast message="Saved!" />, { position: 'bottom' })
22
+ *
23
+ * // Later update the same portal without closing it
24
+ * portal.update(id, <Toast message="Updated!" />)
25
+ *
26
+ * // Dismiss
27
+ * portal.hide(id)
28
+ * ```
29
+ */
30
+ export class PortalInstance {
31
+ private nextId = 10_000
32
+ private portals = new Map<number, PortalNode>()
33
+ private listeners = new Set<Listener>()
34
+
35
+ // ─── Subscription ─────────────────────────────────────────────────────────
36
+
37
+ /**
38
+ * Registers a change listener. Returns an unsubscribe function.
39
+ *
40
+ * Consumers (e.g. `GlobalPortalProvider`) call this once on mount and
41
+ * invoke the returned cleanup on unmount.
42
+ */
43
+ subscribe(listener: Listener): () => void {
44
+ this.listeners.add(listener)
45
+ return () => {
46
+ this.listeners.delete(listener)
47
+ }
48
+ }
49
+
50
+ private notify(): void {
51
+ this.listeners.forEach(fn => fn())
52
+ }
53
+
54
+ // ─── Read ─────────────────────────────────────────────────────────────────
55
+
56
+ /** Returns a stable snapshot of all currently registered portals. */
57
+ getPortals(): PortalNode[] {
58
+ return Array.from(this.portals.values())
59
+ }
60
+
61
+ // ─── Write ────────────────────────────────────────────────────────────────
62
+
63
+ /**
64
+ * Registers a new portal and triggers a re-render in all subscribers.
65
+ *
66
+ * @returns The numeric `id` assigned to this portal – hold onto it to
67
+ * call `update` or `hide` later.
68
+ */
69
+ show(children: React.ReactNode, options: PortalOptions = {}): number {
70
+ const id = this.nextId++
71
+ this.portals.set(id, { id, children, options })
72
+ this.notify()
73
+ return id
74
+ }
75
+
76
+ /**
77
+ * Replaces the content / options of an existing portal in-place.
78
+ * If `id` is not found, the call is a silent no-op (safe to call
79
+ * unconditionally inside cleanup paths).
80
+ */
81
+ update(id: number, children: React.ReactNode, options?: PortalOptions): void {
82
+ const existing = this.portals.get(id)
83
+ if (!existing) return
84
+
85
+ this.portals.set(id, {
86
+ ...existing,
87
+ children,
88
+ options: options ?? existing.options,
89
+ })
90
+ this.notify()
91
+ }
92
+
93
+ /**
94
+ * Removes a portal and triggers a re-render.
95
+ * Safe to call with an `id` that has already been hidden.
96
+ */
97
+ hide(id: number): void {
98
+ if (this.portals.delete(id)) {
99
+ this.notify()
100
+ }
101
+ }
102
+
103
+ /**
104
+ * Removes **all** registered portals at once.
105
+ * Useful for screen transitions or hard resets.
106
+ */
107
+ hideAll(): void {
108
+ if (this.portals.size === 0) return
109
+ this.portals.clear()
110
+ this.notify()
111
+ }
112
+ }
113
+
114
+ /**
115
+ * Application-wide portal singleton.
116
+ * Import and use this wherever you need imperative portal control.
117
+ */
118
+ export const portal = new PortalInstance()
@@ -0,0 +1,84 @@
1
+ import React, { useCallback, useState } from 'react'
2
+ import { PortalContext } from './PortalContext'
3
+ import { PortalRenderer } from './PortalRenderer'
4
+ import type { PortalNode, PortalOptions } from './types'
5
+
6
+ /**
7
+ * Provides the **declarative** portal API to its React subtree via context.
8
+ *
9
+ * Place `PortalManager` at (or near) the root of your component tree so that
10
+ * any descendant can call `usePortal()` to imperatively mount floating UI.
11
+ *
12
+ * ### When to use `PortalManager` vs `GlobalPortalProvider`
13
+ * | Scenario | Recommended provider |
14
+ * |---|---|
15
+ * | React-component consumers using `usePortal()` | `PortalManager` |
16
+ * | Non-React code / navigation handlers | `GlobalPortalProvider` |
17
+ * | Both | Wrap with `GlobalPortalProvider`; it re-exports the hook too |
18
+ *
19
+ * @example
20
+ * ```tsx
21
+ * // App root
22
+ * export default function App() {
23
+ * return (
24
+ * <PortalManager>
25
+ * <Navigation />
26
+ * </PortalManager>
27
+ * )
28
+ * }
29
+ *
30
+ * // Somewhere deep in the tree
31
+ * function MyScreen() {
32
+ * const { mount, unmount } = usePortal()
33
+ * const idRef = useRef<number>()
34
+ *
35
+ * const open = () => {
36
+ * idRef.current = mount(<Modal />, { backdrop: true })
37
+ * }
38
+ * const close = () => idRef.current && unmount(idRef.current)
39
+ *
40
+ * return <Button onPress={open} title="Open" />
41
+ * }
42
+ * ```
43
+ */
44
+
45
+ let _nextId = 0
46
+
47
+ type Props = { children: React.ReactNode }
48
+
49
+ export const PortalManager: React.FC<Props> = ({ children }) => {
50
+ const [portals, setPortals] = useState<PortalNode[]>([])
51
+
52
+ const mount = useCallback(
53
+ (node: React.ReactNode, options: PortalOptions = {}): number => {
54
+ const id = _nextId++
55
+ setPortals(prev => [...prev, { id, children: node, options }])
56
+ return id
57
+ },
58
+ [],
59
+ )
60
+
61
+ const update = useCallback(
62
+ (id: number, node: React.ReactNode, options?: PortalOptions): void => {
63
+ setPortals(prev =>
64
+ prev.map(portal =>
65
+ portal.id === id
66
+ ? { ...portal, children: node, options: options ?? portal.options }
67
+ : portal,
68
+ ),
69
+ )
70
+ },
71
+ [],
72
+ )
73
+
74
+ const unmount = useCallback((id: number): void => {
75
+ setPortals(prev => prev.filter(portal => portal.id !== id))
76
+ }, [])
77
+
78
+ return (
79
+ <PortalContext.Provider value={{ mount, update, unmount }}>
80
+ {children}
81
+ <PortalRenderer portals={portals} />
82
+ </PortalContext.Provider>
83
+ )
84
+ }