tempest-react-sdk 0.22.0 → 0.23.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 (1887) hide show
  1. package/README.md +67 -64
  2. package/dist/access/Can.cjs +2 -0
  3. package/dist/access/Can.cjs.map +1 -0
  4. package/dist/access/Can.js +10 -0
  5. package/dist/access/Can.js.map +1 -0
  6. package/dist/access/access-control-context.cjs +2 -0
  7. package/dist/access/access-control-context.cjs.map +1 -0
  8. package/dist/access/access-control-context.js +14 -0
  9. package/dist/access/access-control-context.js.map +1 -0
  10. package/dist/access/create-role-access-control.cjs +2 -0
  11. package/dist/access/create-role-access-control.cjs.map +1 -0
  12. package/dist/access/create-role-access-control.js +19 -0
  13. package/dist/access/create-role-access-control.js.map +1 -0
  14. package/dist/access/permissions-from-token.cjs +2 -0
  15. package/dist/access/permissions-from-token.cjs.map +1 -0
  16. package/dist/access/permissions-from-token.js +21 -0
  17. package/dist/access/permissions-from-token.js.map +1 -0
  18. package/dist/access/use-can.cjs +2 -0
  19. package/dist/access/use-can.cjs.map +1 -0
  20. package/dist/access/use-can.js +34 -0
  21. package/dist/access/use-can.js.map +1 -0
  22. package/dist/app/AppProviders.cjs +2 -0
  23. package/dist/app/AppProviders.cjs.map +1 -0
  24. package/dist/app/AppProviders.js +13 -0
  25. package/dist/app/AppProviders.js.map +1 -0
  26. package/dist/audio/audio-player.cjs +2 -0
  27. package/dist/audio/audio-player.cjs.map +1 -0
  28. package/dist/audio/audio-player.js +39 -0
  29. package/dist/audio/audio-player.js.map +1 -0
  30. package/dist/audio/use-audio.cjs +2 -0
  31. package/dist/audio/use-audio.cjs.map +1 -0
  32. package/dist/audio/use-audio.js +18 -0
  33. package/dist/audio/use-audio.js.map +1 -0
  34. package/dist/auth/AuthGuard.cjs +2 -0
  35. package/dist/auth/AuthGuard.cjs.map +1 -0
  36. package/dist/auth/AuthGuard.js +8 -0
  37. package/dist/auth/AuthGuard.js.map +1 -0
  38. package/dist/auth/create-auth-store.cjs +2 -0
  39. package/dist/auth/create-auth-store.cjs.map +1 -0
  40. package/dist/auth/create-auth-store.js +30 -0
  41. package/dist/auth/create-auth-store.js.map +1 -0
  42. package/dist/auth/create-tempest-auth.cjs +2 -0
  43. package/dist/auth/create-tempest-auth.cjs.map +1 -0
  44. package/dist/auth/create-tempest-auth.js +70 -0
  45. package/dist/auth/create-tempest-auth.js.map +1 -0
  46. package/dist/auth/jwt.cjs +2 -0
  47. package/dist/auth/jwt.cjs.map +1 -0
  48. package/dist/auth/jwt.js +33 -0
  49. package/dist/auth/jwt.js.map +1 -0
  50. package/dist/auth/lazy-with-retry.cjs +2 -0
  51. package/dist/auth/lazy-with-retry.cjs.map +1 -0
  52. package/dist/auth/lazy-with-retry.js +18 -0
  53. package/dist/auth/lazy-with-retry.js.map +1 -0
  54. package/dist/auth/refresh-queue.cjs +2 -0
  55. package/dist/auth/refresh-queue.cjs.map +1 -0
  56. package/dist/auth/refresh-queue.js +14 -0
  57. package/dist/auth/refresh-queue.js.map +1 -0
  58. package/dist/br/BrazilMap.cjs +2 -0
  59. package/dist/br/BrazilMap.cjs.map +1 -0
  60. package/dist/br/BrazilMap.js +195 -0
  61. package/dist/br/BrazilMap.js.map +1 -0
  62. package/dist/br/BrazilMap.module.css.cjs +2 -0
  63. package/dist/br/BrazilMap.module.css.cjs.map +1 -0
  64. package/dist/br/BrazilMap.module.css.js +28 -0
  65. package/dist/br/BrazilMap.module.css.js.map +1 -0
  66. package/dist/br/BrazilStateCitySelect.cjs +2 -0
  67. package/dist/br/BrazilStateCitySelect.cjs.map +1 -0
  68. package/dist/br/BrazilStateCitySelect.js +69 -0
  69. package/dist/br/BrazilStateCitySelect.js.map +1 -0
  70. package/dist/br/BrazilStateMap.cjs +2 -0
  71. package/dist/br/BrazilStateMap.cjs.map +1 -0
  72. package/dist/br/BrazilStateMap.js +181 -0
  73. package/dist/br/BrazilStateMap.js.map +1 -0
  74. package/dist/br/MapLegend.cjs +2 -0
  75. package/dist/br/MapLegend.cjs.map +1 -0
  76. package/dist/br/MapLegend.js +39 -0
  77. package/dist/br/MapLegend.js.map +1 -0
  78. package/dist/br/MapLegend.module.css.cjs +2 -0
  79. package/dist/br/MapLegend.module.css.cjs.map +1 -0
  80. package/dist/br/MapLegend.module.css.js +22 -0
  81. package/dist/br/MapLegend.module.css.js.map +1 -0
  82. package/dist/br/MapMarkers.cjs +2 -0
  83. package/dist/br/MapMarkers.cjs.map +1 -0
  84. package/dist/br/MapMarkers.js +31 -0
  85. package/dist/br/MapMarkers.js.map +1 -0
  86. package/dist/br/MapTooltip.cjs +2 -0
  87. package/dist/br/MapTooltip.cjs.map +1 -0
  88. package/dist/br/MapTooltip.js +19 -0
  89. package/dist/br/MapTooltip.js.map +1 -0
  90. package/dist/br/MunicipalitySearch.cjs +2 -0
  91. package/dist/br/MunicipalitySearch.cjs.map +1 -0
  92. package/dist/br/MunicipalitySearch.js +75 -0
  93. package/dist/br/MunicipalitySearch.js.map +1 -0
  94. package/dist/br/MunicipalitySearch.module.css.cjs +2 -0
  95. package/dist/br/MunicipalitySearch.module.css.cjs.map +1 -0
  96. package/dist/br/MunicipalitySearch.module.css.js +14 -0
  97. package/dist/br/MunicipalitySearch.module.css.js.map +1 -0
  98. package/dist/br/br-geo.cjs +2 -0
  99. package/dist/br/br-geo.cjs.map +1 -0
  100. package/dist/br/br-geo.js +6 -0
  101. package/dist/br/br-geo.js.map +1 -0
  102. package/dist/br/data/br-centroids.json.cjs +2 -0
  103. package/dist/br/data/br-centroids.json.cjs.map +1 -0
  104. package/dist/br/data/br-centroids.json.js +10 -0
  105. package/dist/br/data/br-centroids.json.js.map +1 -0
  106. package/dist/br/data/br-locations.json.cjs +2 -0
  107. package/dist/br/data/br-locations.json.cjs.map +1 -0
  108. package/dist/br/data/br-locations.json.js +8 -0
  109. package/dist/br/data/br-locations.json.js.map +1 -0
  110. package/dist/br/data/br-uf-geo.json.cjs +2 -0
  111. package/dist/br/data/br-uf-geo.json.cjs.map +1 -0
  112. package/dist/br/data/br-uf-geo.json.js +10 -0
  113. package/dist/br/data/br-uf-geo.json.js.map +1 -0
  114. package/dist/br/data/mun/AC.json.cjs +2 -0
  115. package/dist/br/data/mun/AC.json.cjs.map +1 -0
  116. package/dist/br/data/mun/AC.json.js +12 -0
  117. package/dist/br/data/mun/AC.json.js.map +1 -0
  118. package/dist/br/data/mun/AL.json.cjs +2 -0
  119. package/dist/br/data/mun/AL.json.cjs.map +1 -0
  120. package/dist/br/data/mun/AL.json.js +12 -0
  121. package/dist/br/data/mun/AL.json.js.map +1 -0
  122. package/dist/br/data/mun/AM.json.cjs +2 -0
  123. package/dist/br/data/mun/AM.json.cjs.map +1 -0
  124. package/dist/br/data/mun/AM.json.js +12 -0
  125. package/dist/br/data/mun/AM.json.js.map +1 -0
  126. package/dist/br/data/mun/AP.json.cjs +2 -0
  127. package/dist/br/data/mun/AP.json.cjs.map +1 -0
  128. package/dist/br/data/mun/AP.json.js +12 -0
  129. package/dist/br/data/mun/AP.json.js.map +1 -0
  130. package/dist/br/data/mun/BA.json.cjs +2 -0
  131. package/dist/br/data/mun/BA.json.cjs.map +1 -0
  132. package/dist/br/data/mun/BA.json.js +12 -0
  133. package/dist/br/data/mun/BA.json.js.map +1 -0
  134. package/dist/br/data/mun/CE.json.cjs +2 -0
  135. package/dist/br/data/mun/CE.json.cjs.map +1 -0
  136. package/dist/br/data/mun/CE.json.js +12 -0
  137. package/dist/br/data/mun/CE.json.js.map +1 -0
  138. package/dist/br/data/mun/DF.json.cjs +2 -0
  139. package/dist/br/data/mun/DF.json.cjs.map +1 -0
  140. package/dist/br/data/mun/DF.json.js +12 -0
  141. package/dist/br/data/mun/DF.json.js.map +1 -0
  142. package/dist/br/data/mun/ES.json.cjs +2 -0
  143. package/dist/br/data/mun/ES.json.cjs.map +1 -0
  144. package/dist/br/data/mun/ES.json.js +12 -0
  145. package/dist/br/data/mun/ES.json.js.map +1 -0
  146. package/dist/br/data/mun/GO.json.cjs +2 -0
  147. package/dist/br/data/mun/GO.json.cjs.map +1 -0
  148. package/dist/br/data/mun/GO.json.js +12 -0
  149. package/dist/br/data/mun/GO.json.js.map +1 -0
  150. package/dist/br/data/mun/MA.json.cjs +2 -0
  151. package/dist/br/data/mun/MA.json.cjs.map +1 -0
  152. package/dist/br/data/mun/MA.json.js +12 -0
  153. package/dist/br/data/mun/MA.json.js.map +1 -0
  154. package/dist/br/data/mun/MG.json.cjs +2 -0
  155. package/dist/br/data/mun/MG.json.cjs.map +1 -0
  156. package/dist/br/data/mun/MG.json.js +12 -0
  157. package/dist/br/data/mun/MG.json.js.map +1 -0
  158. package/dist/br/data/mun/MS.json.cjs +2 -0
  159. package/dist/br/data/mun/MS.json.cjs.map +1 -0
  160. package/dist/br/data/mun/MS.json.js +12 -0
  161. package/dist/br/data/mun/MS.json.js.map +1 -0
  162. package/dist/br/data/mun/MT.json.cjs +2 -0
  163. package/dist/br/data/mun/MT.json.cjs.map +1 -0
  164. package/dist/br/data/mun/MT.json.js +12 -0
  165. package/dist/br/data/mun/MT.json.js.map +1 -0
  166. package/dist/br/data/mun/PA.json.cjs +2 -0
  167. package/dist/br/data/mun/PA.json.cjs.map +1 -0
  168. package/dist/br/data/mun/PA.json.js +12 -0
  169. package/dist/br/data/mun/PA.json.js.map +1 -0
  170. package/dist/br/data/mun/PB.json.cjs +2 -0
  171. package/dist/br/data/mun/PB.json.cjs.map +1 -0
  172. package/dist/br/data/mun/PB.json.js +12 -0
  173. package/dist/br/data/mun/PB.json.js.map +1 -0
  174. package/dist/br/data/mun/PE.json.cjs +2 -0
  175. package/dist/br/data/mun/PE.json.cjs.map +1 -0
  176. package/dist/br/data/mun/PE.json.js +12 -0
  177. package/dist/br/data/mun/PE.json.js.map +1 -0
  178. package/dist/br/data/mun/PI.json.cjs +2 -0
  179. package/dist/br/data/mun/PI.json.cjs.map +1 -0
  180. package/dist/br/data/mun/PI.json.js +12 -0
  181. package/dist/br/data/mun/PI.json.js.map +1 -0
  182. package/dist/br/data/mun/PR.json.cjs +2 -0
  183. package/dist/br/data/mun/PR.json.cjs.map +1 -0
  184. package/dist/br/data/mun/PR.json.js +12 -0
  185. package/dist/br/data/mun/PR.json.js.map +1 -0
  186. package/dist/br/data/mun/RJ.json.cjs +2 -0
  187. package/dist/br/data/mun/RJ.json.cjs.map +1 -0
  188. package/dist/br/data/mun/RJ.json.js +12 -0
  189. package/dist/br/data/mun/RJ.json.js.map +1 -0
  190. package/dist/br/data/mun/RN.json.cjs +2 -0
  191. package/dist/br/data/mun/RN.json.cjs.map +1 -0
  192. package/dist/br/data/mun/RN.json.js +12 -0
  193. package/dist/br/data/mun/RN.json.js.map +1 -0
  194. package/dist/br/data/mun/RO.json.cjs +2 -0
  195. package/dist/br/data/mun/RO.json.cjs.map +1 -0
  196. package/dist/br/data/mun/RO.json.js +12 -0
  197. package/dist/br/data/mun/RO.json.js.map +1 -0
  198. package/dist/br/data/mun/RR.json.cjs +2 -0
  199. package/dist/br/data/mun/RR.json.cjs.map +1 -0
  200. package/dist/br/data/mun/RR.json.js +12 -0
  201. package/dist/br/data/mun/RR.json.js.map +1 -0
  202. package/dist/br/data/mun/RS.json.cjs +2 -0
  203. package/dist/br/data/mun/RS.json.cjs.map +1 -0
  204. package/dist/br/data/mun/RS.json.js +12 -0
  205. package/dist/br/data/mun/RS.json.js.map +1 -0
  206. package/dist/br/data/mun/SC.json.cjs +2 -0
  207. package/dist/br/data/mun/SC.json.cjs.map +1 -0
  208. package/dist/br/data/mun/SC.json.js +12 -0
  209. package/dist/br/data/mun/SC.json.js.map +1 -0
  210. package/dist/br/data/mun/SE.json.cjs +2 -0
  211. package/dist/br/data/mun/SE.json.cjs.map +1 -0
  212. package/dist/br/data/mun/SE.json.js +12 -0
  213. package/dist/br/data/mun/SE.json.js.map +1 -0
  214. package/dist/br/data/mun/SP.json.cjs +2 -0
  215. package/dist/br/data/mun/SP.json.cjs.map +1 -0
  216. package/dist/br/data/mun/SP.json.js +12 -0
  217. package/dist/br/data/mun/SP.json.js.map +1 -0
  218. package/dist/br/data/mun/TO.json.cjs +2 -0
  219. package/dist/br/data/mun/TO.json.cjs.map +1 -0
  220. package/dist/br/data/mun/TO.json.js +12 -0
  221. package/dist/br/data/mun/TO.json.js.map +1 -0
  222. package/dist/br/geocode.cjs +2 -0
  223. package/dist/br/geocode.cjs.map +1 -0
  224. package/dist/br/geocode.js +89 -0
  225. package/dist/br/geocode.js.map +1 -0
  226. package/dist/br/locations.cjs +2 -0
  227. package/dist/br/locations.cjs.map +1 -0
  228. package/dist/br/locations.js +80 -0
  229. package/dist/br/locations.js.map +1 -0
  230. package/dist/br/regions.cjs +2 -0
  231. package/dist/br/regions.cjs.map +1 -0
  232. package/dist/br/regions.js +18 -0
  233. package/dist/br/regions.js.map +1 -0
  234. package/dist/br/scales.cjs +2 -0
  235. package/dist/br/scales.cjs.map +1 -0
  236. package/dist/br/scales.js +65 -0
  237. package/dist/br/scales.js.map +1 -0
  238. package/dist/br/state-geo.cjs +2 -0
  239. package/dist/br/state-geo.cjs.map +1 -0
  240. package/dist/br/state-geo.js +39 -0
  241. package/dist/br/state-geo.js.map +1 -0
  242. package/dist/br/svg-utils.cjs +2 -0
  243. package/dist/br/svg-utils.cjs.map +1 -0
  244. package/dist/br/svg-utils.js +46 -0
  245. package/dist/br/svg-utils.js.map +1 -0
  246. package/dist/br/use-map-hover.cjs +2 -0
  247. package/dist/br/use-map-hover.cjs.map +1 -0
  248. package/dist/br/use-map-hover.js +15 -0
  249. package/dist/br/use-map-hover.js.map +1 -0
  250. package/dist/br/use-map-zoom.cjs +2 -0
  251. package/dist/br/use-map-zoom.cjs.map +1 -0
  252. package/dist/br/use-map-zoom.js +48 -0
  253. package/dist/br/use-map-zoom.js.map +1 -0
  254. package/dist/br.cjs +1 -1
  255. package/dist/br.cjs.map +1 -1
  256. package/dist/br.js +46 -945
  257. package/dist/br.js.map +1 -1
  258. package/dist/charts/AreaChart.cjs +2 -0
  259. package/dist/charts/AreaChart.cjs.map +1 -0
  260. package/dist/charts/AreaChart.js +47 -0
  261. package/dist/charts/AreaChart.js.map +1 -0
  262. package/dist/charts/BarChart.cjs +2 -0
  263. package/dist/charts/BarChart.cjs.map +1 -0
  264. package/dist/charts/BarChart.js +41 -0
  265. package/dist/charts/BarChart.js.map +1 -0
  266. package/dist/charts/LineChart.cjs +2 -0
  267. package/dist/charts/LineChart.cjs.map +1 -0
  268. package/dist/charts/LineChart.js +41 -0
  269. package/dist/charts/LineChart.js.map +1 -0
  270. package/dist/charts/PieChart.cjs +2 -0
  271. package/dist/charts/PieChart.cjs.map +1 -0
  272. package/dist/charts/PieChart.js +39 -0
  273. package/dist/charts/PieChart.js.map +1 -0
  274. package/dist/charts/RadarChart.cjs +2 -0
  275. package/dist/charts/RadarChart.cjs.map +1 -0
  276. package/dist/charts/RadarChart.js +43 -0
  277. package/dist/charts/RadarChart.js.map +1 -0
  278. package/dist/charts/palette.cjs +2 -0
  279. package/dist/charts/palette.cjs.map +1 -0
  280. package/dist/charts/palette.js +18 -0
  281. package/dist/charts/palette.js.map +1 -0
  282. package/dist/charts/types.cjs +2 -0
  283. package/dist/charts/types.cjs.map +1 -0
  284. package/dist/charts/types.js +8 -0
  285. package/dist/charts/types.js.map +1 -0
  286. package/dist/charts.cjs +1 -1
  287. package/dist/charts.cjs.map +1 -1
  288. package/dist/charts.js +12 -193
  289. package/dist/charts.js.map +1 -1
  290. package/dist/components/Accordion/Accordion.cjs +2 -0
  291. package/dist/components/Accordion/Accordion.cjs.map +1 -0
  292. package/dist/components/Accordion/Accordion.js +78 -0
  293. package/dist/components/Accordion/Accordion.js.map +1 -0
  294. package/dist/components/Accordion/Accordion.module.css.cjs +2 -0
  295. package/dist/components/Accordion/Accordion.module.css.cjs.map +1 -0
  296. package/dist/components/Accordion/Accordion.module.css.js +20 -0
  297. package/dist/components/Accordion/Accordion.module.css.js.map +1 -0
  298. package/dist/components/Alert/Alert.cjs +2 -0
  299. package/dist/components/Alert/Alert.cjs.map +1 -0
  300. package/dist/components/Alert/Alert.js +63 -0
  301. package/dist/components/Alert/Alert.js.map +1 -0
  302. package/dist/components/Alert/Alert.module.css.cjs +2 -0
  303. package/dist/components/Alert/Alert.module.css.cjs.map +1 -0
  304. package/dist/components/Alert/Alert.module.css.js +32 -0
  305. package/dist/components/Alert/Alert.module.css.js.map +1 -0
  306. package/dist/components/AppBar/AppBar.cjs +2 -0
  307. package/dist/components/AppBar/AppBar.cjs.map +1 -0
  308. package/dist/components/AppBar/AppBar.js +59 -0
  309. package/dist/components/AppBar/AppBar.js.map +1 -0
  310. package/dist/components/AppBar/AppBar.module.css.cjs +2 -0
  311. package/dist/components/AppBar/AppBar.module.css.cjs.map +1 -0
  312. package/dist/components/AppBar/AppBar.module.css.js +32 -0
  313. package/dist/components/AppBar/AppBar.module.css.js.map +1 -0
  314. package/dist/components/AppShell/AppShell.cjs +2 -0
  315. package/dist/components/AppShell/AppShell.cjs.map +1 -0
  316. package/dist/components/AppShell/AppShell.js +29 -0
  317. package/dist/components/AppShell/AppShell.js.map +1 -0
  318. package/dist/components/AppShell/AppShell.module.css.cjs +2 -0
  319. package/dist/components/AppShell/AppShell.module.css.cjs.map +1 -0
  320. package/dist/components/AppShell/AppShell.module.css.js +20 -0
  321. package/dist/components/AppShell/AppShell.module.css.js.map +1 -0
  322. package/dist/components/AspectRatio/AspectRatio.cjs +2 -0
  323. package/dist/components/AspectRatio/AspectRatio.cjs.map +1 -0
  324. package/dist/components/AspectRatio/AspectRatio.js +17 -0
  325. package/dist/components/AspectRatio/AspectRatio.js.map +1 -0
  326. package/dist/components/AspectRatio/AspectRatio.module.css.cjs +2 -0
  327. package/dist/components/AspectRatio/AspectRatio.module.css.cjs.map +1 -0
  328. package/dist/components/AspectRatio/AspectRatio.module.css.js +8 -0
  329. package/dist/components/AspectRatio/AspectRatio.module.css.js.map +1 -0
  330. package/dist/components/Avatar/Avatar.cjs +2 -0
  331. package/dist/components/Avatar/Avatar.cjs.map +1 -0
  332. package/dist/components/Avatar/Avatar.js +47 -0
  333. package/dist/components/Avatar/Avatar.js.map +1 -0
  334. package/dist/components/Avatar/Avatar.module.css.cjs +2 -0
  335. package/dist/components/Avatar/Avatar.module.css.cjs.map +1 -0
  336. package/dist/components/Avatar/Avatar.module.css.js +30 -0
  337. package/dist/components/Avatar/Avatar.module.css.js.map +1 -0
  338. package/dist/components/Badge/Badge.cjs +2 -0
  339. package/dist/components/Badge/Badge.cjs.map +1 -0
  340. package/dist/components/Badge/Badge.js +37 -0
  341. package/dist/components/Badge/Badge.js.map +1 -0
  342. package/dist/components/Badge/Badge.module.css.cjs +2 -0
  343. package/dist/components/Badge/Badge.module.css.cjs.map +1 -0
  344. package/dist/components/Badge/Badge.module.css.js +34 -0
  345. package/dist/components/Badge/Badge.module.css.js.map +1 -0
  346. package/dist/components/Banner/Banner.cjs +2 -0
  347. package/dist/components/Banner/Banner.cjs.map +1 -0
  348. package/dist/components/Banner/Banner.js +41 -0
  349. package/dist/components/Banner/Banner.js.map +1 -0
  350. package/dist/components/Banner/Banner.module.css.cjs +2 -0
  351. package/dist/components/Banner/Banner.module.css.cjs.map +1 -0
  352. package/dist/components/Banner/Banner.module.css.js +28 -0
  353. package/dist/components/Banner/Banner.module.css.js.map +1 -0
  354. package/dist/components/BottomNavigation/BottomNavigation.cjs +2 -0
  355. package/dist/components/BottomNavigation/BottomNavigation.cjs.map +1 -0
  356. package/dist/components/BottomNavigation/BottomNavigation.js +37 -0
  357. package/dist/components/BottomNavigation/BottomNavigation.js.map +1 -0
  358. package/dist/components/BottomNavigation/BottomNavigation.module.css.cjs +2 -0
  359. package/dist/components/BottomNavigation/BottomNavigation.module.css.cjs.map +1 -0
  360. package/dist/components/BottomNavigation/BottomNavigation.module.css.js +20 -0
  361. package/dist/components/BottomNavigation/BottomNavigation.module.css.js.map +1 -0
  362. package/dist/components/BottomSheet/BottomSheet.cjs +2 -0
  363. package/dist/components/BottomSheet/BottomSheet.cjs.map +1 -0
  364. package/dist/components/BottomSheet/BottomSheet.js +60 -0
  365. package/dist/components/BottomSheet/BottomSheet.js.map +1 -0
  366. package/dist/components/BottomSheet/BottomSheet.module.css.cjs +2 -0
  367. package/dist/components/BottomSheet/BottomSheet.module.css.cjs.map +1 -0
  368. package/dist/components/BottomSheet/BottomSheet.module.css.js +20 -0
  369. package/dist/components/BottomSheet/BottomSheet.module.css.js.map +1 -0
  370. package/dist/components/Breadcrumbs/Breadcrumbs.cjs +2 -0
  371. package/dist/components/Breadcrumbs/Breadcrumbs.cjs.map +1 -0
  372. package/dist/components/Breadcrumbs/Breadcrumbs.js +34 -0
  373. package/dist/components/Breadcrumbs/Breadcrumbs.js.map +1 -0
  374. package/dist/components/Breadcrumbs/Breadcrumbs.module.css.cjs +2 -0
  375. package/dist/components/Breadcrumbs/Breadcrumbs.module.css.cjs.map +1 -0
  376. package/dist/components/Breadcrumbs/Breadcrumbs.module.css.js +16 -0
  377. package/dist/components/Breadcrumbs/Breadcrumbs.module.css.js.map +1 -0
  378. package/dist/components/Button/Button.cjs +2 -0
  379. package/dist/components/Button/Button.cjs.map +1 -0
  380. package/dist/components/Button/Button.js +68 -0
  381. package/dist/components/Button/Button.js.map +1 -0
  382. package/dist/components/Button/Button.module.css.cjs +2 -0
  383. package/dist/components/Button/Button.module.css.cjs.map +1 -0
  384. package/dist/components/Button/Button.module.css.js +50 -0
  385. package/dist/components/Button/Button.module.css.js.map +1 -0
  386. package/dist/components/Calendar/Calendar.cjs +2 -0
  387. package/dist/components/Calendar/Calendar.cjs.map +1 -0
  388. package/dist/components/Calendar/Calendar.js +156 -0
  389. package/dist/components/Calendar/Calendar.js.map +1 -0
  390. package/dist/components/Calendar/Calendar.module.css.cjs +2 -0
  391. package/dist/components/Calendar/Calendar.module.css.cjs.map +1 -0
  392. package/dist/components/Calendar/Calendar.module.css.js +28 -0
  393. package/dist/components/Calendar/Calendar.module.css.js.map +1 -0
  394. package/dist/components/Card/Card.cjs +2 -0
  395. package/dist/components/Card/Card.cjs.map +1 -0
  396. package/dist/components/Card/Card.js +45 -0
  397. package/dist/components/Card/Card.js.map +1 -0
  398. package/dist/components/Card/Card.module.css.cjs +2 -0
  399. package/dist/components/Card/Card.module.css.cjs.map +1 -0
  400. package/dist/components/Card/Card.module.css.js +28 -0
  401. package/dist/components/Card/Card.module.css.js.map +1 -0
  402. package/dist/components/Carousel/Carousel.cjs +2 -0
  403. package/dist/components/Carousel/Carousel.cjs.map +1 -0
  404. package/dist/components/Carousel/Carousel.js +97 -0
  405. package/dist/components/Carousel/Carousel.js.map +1 -0
  406. package/dist/components/Carousel/Carousel.module.css.cjs +2 -0
  407. package/dist/components/Carousel/Carousel.module.css.cjs.map +1 -0
  408. package/dist/components/Carousel/Carousel.module.css.js +26 -0
  409. package/dist/components/Carousel/Carousel.module.css.js.map +1 -0
  410. package/dist/components/Center/Center.cjs +2 -0
  411. package/dist/components/Center/Center.cjs.map +1 -0
  412. package/dist/components/Center/Center.js +23 -0
  413. package/dist/components/Center/Center.js.map +1 -0
  414. package/dist/components/Center/Center.module.css.cjs +2 -0
  415. package/dist/components/Center/Center.module.css.cjs.map +1 -0
  416. package/dist/components/Center/Center.module.css.js +14 -0
  417. package/dist/components/Center/Center.module.css.js.map +1 -0
  418. package/dist/components/Checkbox/Checkbox.cjs +2 -0
  419. package/dist/components/Checkbox/Checkbox.cjs.map +1 -0
  420. package/dist/components/Checkbox/Checkbox.js +49 -0
  421. package/dist/components/Checkbox/Checkbox.js.map +1 -0
  422. package/dist/components/Checkbox/Checkbox.module.css.cjs +2 -0
  423. package/dist/components/Checkbox/Checkbox.module.css.cjs.map +1 -0
  424. package/dist/components/Checkbox/Checkbox.module.css.js +20 -0
  425. package/dist/components/Checkbox/Checkbox.module.css.js.map +1 -0
  426. package/dist/components/ChipInput/ChipInput.cjs +2 -0
  427. package/dist/components/ChipInput/ChipInput.cjs.map +1 -0
  428. package/dist/components/ChipInput/ChipInput.js +79 -0
  429. package/dist/components/ChipInput/ChipInput.js.map +1 -0
  430. package/dist/components/ChipInput/ChipInput.module.css.cjs +2 -0
  431. package/dist/components/ChipInput/ChipInput.module.css.cjs.map +1 -0
  432. package/dist/components/ChipInput/ChipInput.module.css.js +24 -0
  433. package/dist/components/ChipInput/ChipInput.module.css.js.map +1 -0
  434. package/dist/components/ClickOutside/ClickOutside.cjs +2 -0
  435. package/dist/components/ClickOutside/ClickOutside.cjs.map +1 -0
  436. package/dist/components/ClickOutside/ClickOutside.js +20 -0
  437. package/dist/components/ClickOutside/ClickOutside.js.map +1 -0
  438. package/dist/components/Collapsible/Collapsible.cjs +2 -0
  439. package/dist/components/Collapsible/Collapsible.cjs.map +1 -0
  440. package/dist/components/Collapsible/Collapsible.js +47 -0
  441. package/dist/components/Collapsible/Collapsible.js.map +1 -0
  442. package/dist/components/Collapsible/Collapsible.module.css.cjs +2 -0
  443. package/dist/components/Collapsible/Collapsible.module.css.cjs.map +1 -0
  444. package/dist/components/Collapsible/Collapsible.module.css.js +12 -0
  445. package/dist/components/Collapsible/Collapsible.module.css.js.map +1 -0
  446. package/dist/components/Combobox/Combobox.cjs +2 -0
  447. package/dist/components/Combobox/Combobox.cjs.map +1 -0
  448. package/dist/components/Combobox/Combobox.js +103 -0
  449. package/dist/components/Combobox/Combobox.js.map +1 -0
  450. package/dist/components/Combobox/Combobox.module.css.cjs +2 -0
  451. package/dist/components/Combobox/Combobox.module.css.cjs.map +1 -0
  452. package/dist/components/Combobox/Combobox.module.css.js +32 -0
  453. package/dist/components/Combobox/Combobox.module.css.js.map +1 -0
  454. package/dist/components/Command/Command.cjs +2 -0
  455. package/dist/components/Command/Command.cjs.map +1 -0
  456. package/dist/components/Command/Command.js +143 -0
  457. package/dist/components/Command/Command.js.map +1 -0
  458. package/dist/components/Command/Command.module.css.cjs +2 -0
  459. package/dist/components/Command/Command.module.css.cjs.map +1 -0
  460. package/dist/components/Command/Command.module.css.js +34 -0
  461. package/dist/components/Command/Command.module.css.js.map +1 -0
  462. package/dist/components/ConditionalWrapper/ConditionalWrapper.cjs +2 -0
  463. package/dist/components/ConditionalWrapper/ConditionalWrapper.cjs.map +1 -0
  464. package/dist/components/ConditionalWrapper/ConditionalWrapper.js +12 -0
  465. package/dist/components/ConditionalWrapper/ConditionalWrapper.js.map +1 -0
  466. package/dist/components/ConfirmDialog/ConfirmDialog.cjs +2 -0
  467. package/dist/components/ConfirmDialog/ConfirmDialog.cjs.map +1 -0
  468. package/dist/components/ConfirmDialog/ConfirmDialog.js +35 -0
  469. package/dist/components/ConfirmDialog/ConfirmDialog.js.map +1 -0
  470. package/dist/components/ContextMenu/ContextMenu.cjs +2 -0
  471. package/dist/components/ContextMenu/ContextMenu.cjs.map +1 -0
  472. package/dist/components/ContextMenu/ContextMenu.js +86 -0
  473. package/dist/components/ContextMenu/ContextMenu.js.map +1 -0
  474. package/dist/components/ContextMenu/ContextMenu.module.css.cjs +2 -0
  475. package/dist/components/ContextMenu/ContextMenu.module.css.cjs.map +1 -0
  476. package/dist/components/ContextMenu/ContextMenu.module.css.js +18 -0
  477. package/dist/components/ContextMenu/ContextMenu.module.css.js.map +1 -0
  478. package/dist/components/CopyButton/CopyButton.cjs +2 -0
  479. package/dist/components/CopyButton/CopyButton.cjs.map +1 -0
  480. package/dist/components/CopyButton/CopyButton.js +43 -0
  481. package/dist/components/CopyButton/CopyButton.js.map +1 -0
  482. package/dist/components/CopyButton/CopyButton.module.css.cjs +2 -0
  483. package/dist/components/CopyButton/CopyButton.module.css.cjs.map +1 -0
  484. package/dist/components/CopyButton/CopyButton.module.css.js +10 -0
  485. package/dist/components/CopyButton/CopyButton.module.css.js.map +1 -0
  486. package/dist/components/DataList/DataList.cjs +2 -0
  487. package/dist/components/DataList/DataList.cjs.map +1 -0
  488. package/dist/components/DataList/DataList.js +17 -0
  489. package/dist/components/DataList/DataList.js.map +1 -0
  490. package/dist/components/DataList/DataList.module.css.cjs +2 -0
  491. package/dist/components/DataList/DataList.module.css.cjs.map +1 -0
  492. package/dist/components/DataList/DataList.module.css.js +10 -0
  493. package/dist/components/DataList/DataList.module.css.js.map +1 -0
  494. package/dist/components/DataTable/DataTable.cjs +2 -0
  495. package/dist/components/DataTable/DataTable.cjs.map +1 -0
  496. package/dist/components/DataTable/DataTable.js +111 -0
  497. package/dist/components/DataTable/DataTable.js.map +1 -0
  498. package/dist/components/DataTable/DataTable.module.css.cjs +2 -0
  499. package/dist/components/DataTable/DataTable.module.css.cjs.map +1 -0
  500. package/dist/components/DataTable/DataTable.module.css.js +14 -0
  501. package/dist/components/DataTable/DataTable.module.css.js.map +1 -0
  502. package/dist/components/DatePicker/DatePicker.cjs +2 -0
  503. package/dist/components/DatePicker/DatePicker.cjs.map +1 -0
  504. package/dist/components/DatePicker/DatePicker.js +19 -0
  505. package/dist/components/DatePicker/DatePicker.js.map +1 -0
  506. package/dist/components/DateRangePicker/DateRangePicker.cjs +2 -0
  507. package/dist/components/DateRangePicker/DateRangePicker.cjs.map +1 -0
  508. package/dist/components/DateRangePicker/DateRangePicker.js +152 -0
  509. package/dist/components/DateRangePicker/DateRangePicker.js.map +1 -0
  510. package/dist/components/DateRangePicker/DateRangePicker.module.css.cjs +2 -0
  511. package/dist/components/DateRangePicker/DateRangePicker.module.css.cjs.map +1 -0
  512. package/dist/components/DateRangePicker/DateRangePicker.module.css.js +40 -0
  513. package/dist/components/DateRangePicker/DateRangePicker.module.css.js.map +1 -0
  514. package/dist/components/DescriptionList/DescriptionList.cjs +2 -0
  515. package/dist/components/DescriptionList/DescriptionList.cjs.map +1 -0
  516. package/dist/components/DescriptionList/DescriptionList.js +14 -0
  517. package/dist/components/DescriptionList/DescriptionList.js.map +1 -0
  518. package/dist/components/DescriptionList/DescriptionList.module.css.cjs +2 -0
  519. package/dist/components/DescriptionList/DescriptionList.module.css.cjs.map +1 -0
  520. package/dist/components/DescriptionList/DescriptionList.module.css.js +12 -0
  521. package/dist/components/DescriptionList/DescriptionList.module.css.js.map +1 -0
  522. package/dist/components/Divider/Divider.cjs +2 -0
  523. package/dist/components/Divider/Divider.cjs.map +1 -0
  524. package/dist/components/Divider/Divider.js +57 -0
  525. package/dist/components/Divider/Divider.js.map +1 -0
  526. package/dist/components/Divider/Divider.module.css.cjs +2 -0
  527. package/dist/components/Divider/Divider.module.css.cjs.map +1 -0
  528. package/dist/components/Divider/Divider.module.css.js +20 -0
  529. package/dist/components/Divider/Divider.module.css.js.map +1 -0
  530. package/dist/components/Drawer/Drawer.cjs +2 -0
  531. package/dist/components/Drawer/Drawer.cjs.map +1 -0
  532. package/dist/components/Drawer/Drawer.js +96 -0
  533. package/dist/components/Drawer/Drawer.js.map +1 -0
  534. package/dist/components/Drawer/Drawer.module.css.cjs +2 -0
  535. package/dist/components/Drawer/Drawer.module.css.cjs.map +1 -0
  536. package/dist/components/Drawer/Drawer.module.css.js +42 -0
  537. package/dist/components/Drawer/Drawer.module.css.js.map +1 -0
  538. package/dist/components/DropdownMenu/DropdownMenu.cjs +2 -0
  539. package/dist/components/DropdownMenu/DropdownMenu.cjs.map +1 -0
  540. package/dist/components/DropdownMenu/DropdownMenu.js +109 -0
  541. package/dist/components/DropdownMenu/DropdownMenu.js.map +1 -0
  542. package/dist/components/DropdownMenu/DropdownMenu.module.css.cjs +2 -0
  543. package/dist/components/DropdownMenu/DropdownMenu.module.css.cjs.map +1 -0
  544. package/dist/components/DropdownMenu/DropdownMenu.module.css.js +28 -0
  545. package/dist/components/DropdownMenu/DropdownMenu.module.css.js.map +1 -0
  546. package/dist/components/Dropzone/Dropzone.cjs +2 -0
  547. package/dist/components/Dropzone/Dropzone.cjs.map +1 -0
  548. package/dist/components/Dropzone/Dropzone.js +80 -0
  549. package/dist/components/Dropzone/Dropzone.js.map +1 -0
  550. package/dist/components/Dropzone/Dropzone.module.css.cjs +2 -0
  551. package/dist/components/Dropzone/Dropzone.module.css.cjs.map +1 -0
  552. package/dist/components/Dropzone/Dropzone.module.css.js +16 -0
  553. package/dist/components/Dropzone/Dropzone.module.css.js.map +1 -0
  554. package/dist/components/EmptyState/EmptyState.cjs +2 -0
  555. package/dist/components/EmptyState/EmptyState.cjs.map +1 -0
  556. package/dist/components/EmptyState/EmptyState.js +15 -0
  557. package/dist/components/EmptyState/EmptyState.js.map +1 -0
  558. package/dist/components/EmptyState/EmptyState.module.css.cjs +2 -0
  559. package/dist/components/EmptyState/EmptyState.module.css.cjs.map +1 -0
  560. package/dist/components/EmptyState/EmptyState.module.css.js +16 -0
  561. package/dist/components/EmptyState/EmptyState.module.css.js.map +1 -0
  562. package/dist/components/ErrorState/ErrorState.cjs +2 -0
  563. package/dist/components/ErrorState/ErrorState.cjs.map +1 -0
  564. package/dist/components/ErrorState/ErrorState.js +35 -0
  565. package/dist/components/ErrorState/ErrorState.js.map +1 -0
  566. package/dist/components/ErrorState/ErrorState.module.css.cjs +2 -0
  567. package/dist/components/ErrorState/ErrorState.module.css.cjs.map +1 -0
  568. package/dist/components/ErrorState/ErrorState.module.css.js +16 -0
  569. package/dist/components/ErrorState/ErrorState.module.css.js.map +1 -0
  570. package/dist/components/ErrorText/ErrorText.cjs +2 -0
  571. package/dist/components/ErrorText/ErrorText.cjs.map +1 -0
  572. package/dist/components/ErrorText/ErrorText.js +10 -0
  573. package/dist/components/ErrorText/ErrorText.js.map +1 -0
  574. package/dist/components/ErrorText/ErrorText.module.css.cjs +2 -0
  575. package/dist/components/ErrorText/ErrorText.module.css.cjs.map +1 -0
  576. package/dist/components/ErrorText/ErrorText.module.css.js +8 -0
  577. package/dist/components/ErrorText/ErrorText.module.css.js.map +1 -0
  578. package/dist/components/FileUpload/FileUpload.cjs +2 -0
  579. package/dist/components/FileUpload/FileUpload.cjs.map +1 -0
  580. package/dist/components/FileUpload/FileUpload.js +127 -0
  581. package/dist/components/FileUpload/FileUpload.js.map +1 -0
  582. package/dist/components/FileUpload/FileUpload.module.css.cjs +2 -0
  583. package/dist/components/FileUpload/FileUpload.module.css.cjs.map +1 -0
  584. package/dist/components/FileUpload/FileUpload.module.css.js +32 -0
  585. package/dist/components/FileUpload/FileUpload.module.css.js.map +1 -0
  586. package/dist/components/FloatingActionButton/FloatingActionButton.cjs +2 -0
  587. package/dist/components/FloatingActionButton/FloatingActionButton.cjs.map +1 -0
  588. package/dist/components/FloatingActionButton/FloatingActionButton.js +39 -0
  589. package/dist/components/FloatingActionButton/FloatingActionButton.js.map +1 -0
  590. package/dist/components/FloatingActionButton/FloatingActionButton.module.css.cjs +2 -0
  591. package/dist/components/FloatingActionButton/FloatingActionButton.module.css.cjs.map +1 -0
  592. package/dist/components/FloatingActionButton/FloatingActionButton.module.css.js +32 -0
  593. package/dist/components/FloatingActionButton/FloatingActionButton.module.css.js.map +1 -0
  594. package/dist/components/For/For.cjs +2 -0
  595. package/dist/components/For/For.cjs.map +1 -0
  596. package/dist/components/For/For.js +9 -0
  597. package/dist/components/For/For.js.map +1 -0
  598. package/dist/components/Form/Form.cjs +2 -0
  599. package/dist/components/Form/Form.cjs.map +1 -0
  600. package/dist/components/Form/Form.js +72 -0
  601. package/dist/components/Form/Form.js.map +1 -0
  602. package/dist/components/Form/Form.module.css.cjs +2 -0
  603. package/dist/components/Form/Form.module.css.cjs.map +1 -0
  604. package/dist/components/Form/Form.module.css.js +36 -0
  605. package/dist/components/Form/Form.module.css.js.map +1 -0
  606. package/dist/components/HoverCard/HoverCard.cjs +2 -0
  607. package/dist/components/HoverCard/HoverCard.cjs.map +1 -0
  608. package/dist/components/HoverCard/HoverCard.js +48 -0
  609. package/dist/components/HoverCard/HoverCard.js.map +1 -0
  610. package/dist/components/HoverCard/HoverCard.module.css.cjs +2 -0
  611. package/dist/components/HoverCard/HoverCard.module.css.cjs.map +1 -0
  612. package/dist/components/HoverCard/HoverCard.module.css.js +22 -0
  613. package/dist/components/HoverCard/HoverCard.module.css.js.map +1 -0
  614. package/dist/components/Image/Image.cjs +2 -0
  615. package/dist/components/Image/Image.cjs.map +1 -0
  616. package/dist/components/Image/Image.js +32 -0
  617. package/dist/components/Image/Image.js.map +1 -0
  618. package/dist/components/Image/Image.module.css.cjs +2 -0
  619. package/dist/components/Image/Image.module.css.cjs.map +1 -0
  620. package/dist/components/Image/Image.module.css.js +8 -0
  621. package/dist/components/Image/Image.module.css.js.map +1 -0
  622. package/dist/components/Input/Input.cjs +2 -0
  623. package/dist/components/Input/Input.cjs.map +1 -0
  624. package/dist/components/Input/Input.js +52 -0
  625. package/dist/components/Input/Input.js.map +1 -0
  626. package/dist/components/Input/Input.module.css.cjs +2 -0
  627. package/dist/components/Input/Input.module.css.cjs.map +1 -0
  628. package/dist/components/Input/Input.module.css.js +36 -0
  629. package/dist/components/Input/Input.module.css.js.map +1 -0
  630. package/dist/components/InstallBanner/InstallBanner.cjs +2 -0
  631. package/dist/components/InstallBanner/InstallBanner.cjs.map +1 -0
  632. package/dist/components/InstallBanner/InstallBanner.js +66 -0
  633. package/dist/components/InstallBanner/InstallBanner.js.map +1 -0
  634. package/dist/components/InstallBanner/InstallBanner.module.css.cjs +2 -0
  635. package/dist/components/InstallBanner/InstallBanner.module.css.cjs.map +1 -0
  636. package/dist/components/InstallBanner/InstallBanner.module.css.js +18 -0
  637. package/dist/components/InstallBanner/InstallBanner.module.css.js.map +1 -0
  638. package/dist/components/InstallButton/InstallButton.cjs +2 -0
  639. package/dist/components/InstallButton/InstallButton.cjs.map +1 -0
  640. package/dist/components/InstallButton/InstallButton.js +20 -0
  641. package/dist/components/InstallButton/InstallButton.js.map +1 -0
  642. package/dist/components/Kbd/Kbd.cjs +2 -0
  643. package/dist/components/Kbd/Kbd.cjs.map +1 -0
  644. package/dist/components/Kbd/Kbd.js +10 -0
  645. package/dist/components/Kbd/Kbd.js.map +1 -0
  646. package/dist/components/Kbd/Kbd.module.css.cjs +2 -0
  647. package/dist/components/Kbd/Kbd.module.css.cjs.map +1 -0
  648. package/dist/components/Kbd/Kbd.module.css.js +14 -0
  649. package/dist/components/Kbd/Kbd.module.css.js.map +1 -0
  650. package/dist/components/Label/Label.cjs +2 -0
  651. package/dist/components/Label/Label.cjs.map +1 -0
  652. package/dist/components/Label/Label.js +14 -0
  653. package/dist/components/Label/Label.js.map +1 -0
  654. package/dist/components/Label/Label.module.css.cjs +2 -0
  655. package/dist/components/Label/Label.module.css.cjs.map +1 -0
  656. package/dist/components/Label/Label.module.css.js +10 -0
  657. package/dist/components/Label/Label.module.css.js.map +1 -0
  658. package/dist/components/Layout/Layout.cjs +2 -0
  659. package/dist/components/Layout/Layout.cjs.map +1 -0
  660. package/dist/components/Layout/Layout.js +72 -0
  661. package/dist/components/Layout/Layout.js.map +1 -0
  662. package/dist/components/Layout/Layout.module.css.cjs +2 -0
  663. package/dist/components/Layout/Layout.module.css.cjs.map +1 -0
  664. package/dist/components/Layout/Layout.module.css.js +44 -0
  665. package/dist/components/Layout/Layout.module.css.js.map +1 -0
  666. package/dist/components/ListTile/ListTile.cjs +2 -0
  667. package/dist/components/ListTile/ListTile.cjs.map +1 -0
  668. package/dist/components/ListTile/ListTile.js +42 -0
  669. package/dist/components/ListTile/ListTile.js.map +1 -0
  670. package/dist/components/ListTile/ListTile.module.css.cjs +2 -0
  671. package/dist/components/ListTile/ListTile.module.css.cjs.map +1 -0
  672. package/dist/components/ListTile/ListTile.module.css.js +24 -0
  673. package/dist/components/ListTile/ListTile.module.css.js.map +1 -0
  674. package/dist/components/Menubar/Menubar.cjs +2 -0
  675. package/dist/components/Menubar/Menubar.cjs.map +1 -0
  676. package/dist/components/Menubar/Menubar.js +84 -0
  677. package/dist/components/Menubar/Menubar.js.map +1 -0
  678. package/dist/components/Menubar/Menubar.module.css.cjs +2 -0
  679. package/dist/components/Menubar/Menubar.module.css.cjs.map +1 -0
  680. package/dist/components/Menubar/Menubar.module.css.js +24 -0
  681. package/dist/components/Menubar/Menubar.module.css.js.map +1 -0
  682. package/dist/components/Modal/Modal.cjs +2 -0
  683. package/dist/components/Modal/Modal.cjs.map +1 -0
  684. package/dist/components/Modal/Modal.js +97 -0
  685. package/dist/components/Modal/Modal.js.map +1 -0
  686. package/dist/components/Modal/Modal.module.css.cjs +2 -0
  687. package/dist/components/Modal/Modal.module.css.cjs.map +1 -0
  688. package/dist/components/Modal/Modal.module.css.js +40 -0
  689. package/dist/components/Modal/Modal.module.css.js.map +1 -0
  690. package/dist/components/ModalsManager/ModalsManager.cjs +2 -0
  691. package/dist/components/ModalsManager/ModalsManager.cjs.map +1 -0
  692. package/dist/components/ModalsManager/ModalsManager.js +88 -0
  693. package/dist/components/ModalsManager/ModalsManager.js.map +1 -0
  694. package/dist/components/ModalsManager/ModalsManager.module.css.cjs +2 -0
  695. package/dist/components/ModalsManager/ModalsManager.module.css.cjs.map +1 -0
  696. package/dist/components/ModalsManager/ModalsManager.module.css.js +8 -0
  697. package/dist/components/ModalsManager/ModalsManager.module.css.js.map +1 -0
  698. package/dist/components/Money/Money.cjs +2 -0
  699. package/dist/components/Money/Money.cjs.map +1 -0
  700. package/dist/components/Money/Money.js +12 -0
  701. package/dist/components/Money/Money.js.map +1 -0
  702. package/dist/components/MultiSelect/MultiSelect.cjs +2 -0
  703. package/dist/components/MultiSelect/MultiSelect.cjs.map +1 -0
  704. package/dist/components/MultiSelect/MultiSelect.js +155 -0
  705. package/dist/components/MultiSelect/MultiSelect.js.map +1 -0
  706. package/dist/components/MultiSelect/MultiSelect.module.css.cjs +2 -0
  707. package/dist/components/MultiSelect/MultiSelect.module.css.cjs.map +1 -0
  708. package/dist/components/MultiSelect/MultiSelect.module.css.js +38 -0
  709. package/dist/components/MultiSelect/MultiSelect.module.css.js.map +1 -0
  710. package/dist/components/NProgress/NProgress.cjs +2 -0
  711. package/dist/components/NProgress/NProgress.cjs.map +1 -0
  712. package/dist/components/NProgress/NProgress.js +66 -0
  713. package/dist/components/NProgress/NProgress.js.map +1 -0
  714. package/dist/components/NProgress/NProgress.module.css.cjs +2 -0
  715. package/dist/components/NProgress/NProgress.module.css.cjs.map +1 -0
  716. package/dist/components/NProgress/NProgress.module.css.js +8 -0
  717. package/dist/components/NProgress/NProgress.module.css.js.map +1 -0
  718. package/dist/components/Navbar/Navbar.cjs +2 -0
  719. package/dist/components/Navbar/Navbar.cjs.map +1 -0
  720. package/dist/components/Navbar/Navbar.js +36 -0
  721. package/dist/components/Navbar/Navbar.js.map +1 -0
  722. package/dist/components/Navbar/Navbar.module.css.cjs +2 -0
  723. package/dist/components/Navbar/Navbar.module.css.cjs.map +1 -0
  724. package/dist/components/Navbar/Navbar.module.css.js +24 -0
  725. package/dist/components/Navbar/Navbar.module.css.js.map +1 -0
  726. package/dist/components/NavigationMenu/NavigationMenu.cjs +2 -0
  727. package/dist/components/NavigationMenu/NavigationMenu.cjs.map +1 -0
  728. package/dist/components/NavigationMenu/NavigationMenu.js +78 -0
  729. package/dist/components/NavigationMenu/NavigationMenu.js.map +1 -0
  730. package/dist/components/NavigationMenu/NavigationMenu.module.css.cjs +2 -0
  731. package/dist/components/NavigationMenu/NavigationMenu.module.css.cjs.map +1 -0
  732. package/dist/components/NavigationMenu/NavigationMenu.module.css.js +20 -0
  733. package/dist/components/NavigationMenu/NavigationMenu.module.css.js.map +1 -0
  734. package/dist/components/NavigationRail/NavigationRail.cjs +2 -0
  735. package/dist/components/NavigationRail/NavigationRail.cjs.map +1 -0
  736. package/dist/components/NavigationRail/NavigationRail.js +42 -0
  737. package/dist/components/NavigationRail/NavigationRail.js.map +1 -0
  738. package/dist/components/NavigationRail/NavigationRail.module.css.cjs +2 -0
  739. package/dist/components/NavigationRail/NavigationRail.module.css.cjs.map +1 -0
  740. package/dist/components/NavigationRail/NavigationRail.module.css.js +26 -0
  741. package/dist/components/NavigationRail/NavigationRail.module.css.js.map +1 -0
  742. package/dist/components/OfflineIndicator/OfflineIndicator.cjs +2 -0
  743. package/dist/components/OfflineIndicator/OfflineIndicator.cjs.map +1 -0
  744. package/dist/components/OfflineIndicator/OfflineIndicator.js +50 -0
  745. package/dist/components/OfflineIndicator/OfflineIndicator.js.map +1 -0
  746. package/dist/components/OfflineIndicator/OfflineIndicator.module.css.cjs +2 -0
  747. package/dist/components/OfflineIndicator/OfflineIndicator.module.css.cjs.map +1 -0
  748. package/dist/components/OfflineIndicator/OfflineIndicator.module.css.js +18 -0
  749. package/dist/components/OfflineIndicator/OfflineIndicator.module.css.js.map +1 -0
  750. package/dist/components/Page/Page.cjs +2 -0
  751. package/dist/components/Page/Page.cjs.map +1 -0
  752. package/dist/components/Page/Page.js +34 -0
  753. package/dist/components/Page/Page.js.map +1 -0
  754. package/dist/components/Page/Page.module.css.cjs +2 -0
  755. package/dist/components/Page/Page.module.css.cjs.map +1 -0
  756. package/dist/components/Page/Page.module.css.js +28 -0
  757. package/dist/components/Page/Page.module.css.js.map +1 -0
  758. package/dist/components/Pagination/Pagination.cjs +2 -0
  759. package/dist/components/Pagination/Pagination.cjs.map +1 -0
  760. package/dist/components/Pagination/Pagination.js +97 -0
  761. package/dist/components/Pagination/Pagination.js.map +1 -0
  762. package/dist/components/Pagination/Pagination.module.css.cjs +2 -0
  763. package/dist/components/Pagination/Pagination.module.css.cjs.map +1 -0
  764. package/dist/components/Pagination/Pagination.module.css.js +22 -0
  765. package/dist/components/Pagination/Pagination.module.css.js.map +1 -0
  766. package/dist/components/PasswordInput/PasswordInput.cjs +2 -0
  767. package/dist/components/PasswordInput/PasswordInput.cjs.map +1 -0
  768. package/dist/components/PasswordInput/PasswordInput.js +76 -0
  769. package/dist/components/PasswordInput/PasswordInput.js.map +1 -0
  770. package/dist/components/PasswordInput/PasswordInput.module.css.cjs +2 -0
  771. package/dist/components/PasswordInput/PasswordInput.module.css.cjs.map +1 -0
  772. package/dist/components/PasswordInput/PasswordInput.module.css.js +44 -0
  773. package/dist/components/PasswordInput/PasswordInput.module.css.js.map +1 -0
  774. package/dist/components/PinInput/PinInput.cjs +2 -0
  775. package/dist/components/PinInput/PinInput.cjs.map +1 -0
  776. package/dist/components/PinInput/PinInput.js +86 -0
  777. package/dist/components/PinInput/PinInput.js.map +1 -0
  778. package/dist/components/PinInput/PinInput.module.css.cjs +2 -0
  779. package/dist/components/PinInput/PinInput.module.css.cjs.map +1 -0
  780. package/dist/components/PinInput/PinInput.module.css.js +26 -0
  781. package/dist/components/PinInput/PinInput.module.css.js.map +1 -0
  782. package/dist/components/Popover/Popover.cjs +2 -0
  783. package/dist/components/Popover/Popover.cjs.map +1 -0
  784. package/dist/components/Popover/Popover.js +60 -0
  785. package/dist/components/Popover/Popover.js.map +1 -0
  786. package/dist/components/Popover/Popover.module.css.cjs +2 -0
  787. package/dist/components/Popover/Popover.module.css.cjs.map +1 -0
  788. package/dist/components/Popover/Popover.module.css.js +20 -0
  789. package/dist/components/Popover/Popover.module.css.js.map +1 -0
  790. package/dist/components/Portal/Portal.cjs +2 -0
  791. package/dist/components/Portal/Portal.cjs.map +1 -0
  792. package/dist/components/Portal/Portal.js +10 -0
  793. package/dist/components/Portal/Portal.js.map +1 -0
  794. package/dist/components/Progress/Progress.cjs +2 -0
  795. package/dist/components/Progress/Progress.cjs.map +1 -0
  796. package/dist/components/Progress/Progress.js +48 -0
  797. package/dist/components/Progress/Progress.js.map +1 -0
  798. package/dist/components/Progress/Progress.module.css.cjs +2 -0
  799. package/dist/components/Progress/Progress.module.css.cjs.map +1 -0
  800. package/dist/components/Progress/Progress.module.css.js +24 -0
  801. package/dist/components/Progress/Progress.module.css.js.map +1 -0
  802. package/dist/components/Radio/Radio.cjs +2 -0
  803. package/dist/components/Radio/Radio.cjs.map +1 -0
  804. package/dist/components/Radio/Radio.js +82 -0
  805. package/dist/components/Radio/Radio.js.map +1 -0
  806. package/dist/components/Radio/Radio.module.css.cjs +2 -0
  807. package/dist/components/Radio/Radio.module.css.cjs.map +1 -0
  808. package/dist/components/Radio/Radio.module.css.js +24 -0
  809. package/dist/components/Radio/Radio.module.css.js.map +1 -0
  810. package/dist/components/RangeSlider/RangeSlider.cjs +2 -0
  811. package/dist/components/RangeSlider/RangeSlider.cjs.map +1 -0
  812. package/dist/components/RangeSlider/RangeSlider.js +79 -0
  813. package/dist/components/RangeSlider/RangeSlider.js.map +1 -0
  814. package/dist/components/RangeSlider/RangeSlider.module.css.cjs +2 -0
  815. package/dist/components/RangeSlider/RangeSlider.module.css.cjs.map +1 -0
  816. package/dist/components/RangeSlider/RangeSlider.module.css.js +22 -0
  817. package/dist/components/RangeSlider/RangeSlider.module.css.js.map +1 -0
  818. package/dist/components/RatingStars/RatingStars.cjs +2 -0
  819. package/dist/components/RatingStars/RatingStars.cjs.map +1 -0
  820. package/dist/components/RatingStars/RatingStars.js +71 -0
  821. package/dist/components/RatingStars/RatingStars.js.map +1 -0
  822. package/dist/components/RatingStars/RatingStars.module.css.cjs +2 -0
  823. package/dist/components/RatingStars/RatingStars.module.css.cjs.map +1 -0
  824. package/dist/components/RatingStars/RatingStars.module.css.js +22 -0
  825. package/dist/components/RatingStars/RatingStars.module.css.js.map +1 -0
  826. package/dist/components/RefreshIndicator/RefreshIndicator.cjs +2 -0
  827. package/dist/components/RefreshIndicator/RefreshIndicator.cjs.map +1 -0
  828. package/dist/components/RefreshIndicator/RefreshIndicator.js +90 -0
  829. package/dist/components/RefreshIndicator/RefreshIndicator.js.map +1 -0
  830. package/dist/components/RefreshIndicator/RefreshIndicator.module.css.cjs +2 -0
  831. package/dist/components/RefreshIndicator/RefreshIndicator.module.css.cjs.map +1 -0
  832. package/dist/components/RefreshIndicator/RefreshIndicator.module.css.js +14 -0
  833. package/dist/components/RefreshIndicator/RefreshIndicator.module.css.js.map +1 -0
  834. package/dist/components/RelativeTime/RelativeTime.cjs +2 -0
  835. package/dist/components/RelativeTime/RelativeTime.cjs.map +1 -0
  836. package/dist/components/RelativeTime/RelativeTime.js +10 -0
  837. package/dist/components/RelativeTime/RelativeTime.js.map +1 -0
  838. package/dist/components/Resizable/Resizable.cjs +2 -0
  839. package/dist/components/Resizable/Resizable.cjs.map +1 -0
  840. package/dist/components/Resizable/Resizable.js +89 -0
  841. package/dist/components/Resizable/Resizable.js.map +1 -0
  842. package/dist/components/Resizable/Resizable.module.css.cjs +2 -0
  843. package/dist/components/Resizable/Resizable.module.css.cjs.map +1 -0
  844. package/dist/components/Resizable/Resizable.module.css.js +18 -0
  845. package/dist/components/Resizable/Resizable.module.css.js.map +1 -0
  846. package/dist/components/Responsive/Responsive.cjs +2 -0
  847. package/dist/components/Responsive/Responsive.cjs.map +1 -0
  848. package/dist/components/Responsive/Responsive.js +17 -0
  849. package/dist/components/Responsive/Responsive.js.map +1 -0
  850. package/dist/components/SafeArea/SafeArea.cjs +2 -0
  851. package/dist/components/SafeArea/SafeArea.cjs.map +1 -0
  852. package/dist/components/SafeArea/SafeArea.js +33 -0
  853. package/dist/components/SafeArea/SafeArea.js.map +1 -0
  854. package/dist/components/SafeArea/SafeArea.module.css.cjs +2 -0
  855. package/dist/components/SafeArea/SafeArea.module.css.cjs.map +1 -0
  856. package/dist/components/SafeArea/SafeArea.module.css.js +18 -0
  857. package/dist/components/SafeArea/SafeArea.module.css.js.map +1 -0
  858. package/dist/components/ScrollArea/ScrollArea.cjs +2 -0
  859. package/dist/components/ScrollArea/ScrollArea.cjs.map +1 -0
  860. package/dist/components/ScrollArea/ScrollArea.js +17 -0
  861. package/dist/components/ScrollArea/ScrollArea.js.map +1 -0
  862. package/dist/components/ScrollArea/ScrollArea.module.css.cjs +2 -0
  863. package/dist/components/ScrollArea/ScrollArea.module.css.cjs.map +1 -0
  864. package/dist/components/ScrollArea/ScrollArea.module.css.js +8 -0
  865. package/dist/components/ScrollArea/ScrollArea.module.css.js.map +1 -0
  866. package/dist/components/SearchBar/SearchBar.cjs +2 -0
  867. package/dist/components/SearchBar/SearchBar.cjs.map +1 -0
  868. package/dist/components/SearchBar/SearchBar.js +55 -0
  869. package/dist/components/SearchBar/SearchBar.js.map +1 -0
  870. package/dist/components/SearchBar/SearchBar.module.css.cjs +2 -0
  871. package/dist/components/SearchBar/SearchBar.module.css.cjs.map +1 -0
  872. package/dist/components/SearchBar/SearchBar.module.css.js +14 -0
  873. package/dist/components/SearchBar/SearchBar.module.css.js.map +1 -0
  874. package/dist/components/SegmentedControl/SegmentedControl.cjs +2 -0
  875. package/dist/components/SegmentedControl/SegmentedControl.cjs.map +1 -0
  876. package/dist/components/SegmentedControl/SegmentedControl.js +46 -0
  877. package/dist/components/SegmentedControl/SegmentedControl.js.map +1 -0
  878. package/dist/components/SegmentedControl/SegmentedControl.module.css.cjs +2 -0
  879. package/dist/components/SegmentedControl/SegmentedControl.module.css.cjs.map +1 -0
  880. package/dist/components/SegmentedControl/SegmentedControl.module.css.js +24 -0
  881. package/dist/components/SegmentedControl/SegmentedControl.module.css.js.map +1 -0
  882. package/dist/components/Select/Select.cjs +2 -0
  883. package/dist/components/Select/Select.cjs.map +1 -0
  884. package/dist/components/Select/Select.js +61 -0
  885. package/dist/components/Select/Select.js.map +1 -0
  886. package/dist/components/Select/Select.module.css.cjs +2 -0
  887. package/dist/components/Select/Select.module.css.cjs.map +1 -0
  888. package/dist/components/Select/Select.module.css.js +24 -0
  889. package/dist/components/Select/Select.module.css.js.map +1 -0
  890. package/dist/components/Sidebar/Sidebar.cjs +2 -0
  891. package/dist/components/Sidebar/Sidebar.cjs.map +1 -0
  892. package/dist/components/Sidebar/Sidebar.js +54 -0
  893. package/dist/components/Sidebar/Sidebar.js.map +1 -0
  894. package/dist/components/Sidebar/Sidebar.module.css.cjs +2 -0
  895. package/dist/components/Sidebar/Sidebar.module.css.cjs.map +1 -0
  896. package/dist/components/Sidebar/Sidebar.module.css.js +26 -0
  897. package/dist/components/Sidebar/Sidebar.module.css.js.map +1 -0
  898. package/dist/components/Skeleton/Skeleton.cjs +2 -0
  899. package/dist/components/Skeleton/Skeleton.cjs.map +1 -0
  900. package/dist/components/Skeleton/Skeleton.js +22 -0
  901. package/dist/components/Skeleton/Skeleton.js.map +1 -0
  902. package/dist/components/Skeleton/Skeleton.module.css.cjs +2 -0
  903. package/dist/components/Skeleton/Skeleton.module.css.cjs.map +1 -0
  904. package/dist/components/Skeleton/Skeleton.module.css.js +12 -0
  905. package/dist/components/Skeleton/Skeleton.module.css.js.map +1 -0
  906. package/dist/components/Slider/Slider.cjs +2 -0
  907. package/dist/components/Slider/Slider.cjs.map +1 -0
  908. package/dist/components/Slider/Slider.js +56 -0
  909. package/dist/components/Slider/Slider.js.map +1 -0
  910. package/dist/components/Slider/Slider.module.css.cjs +2 -0
  911. package/dist/components/Slider/Slider.module.css.cjs.map +1 -0
  912. package/dist/components/Slider/Slider.module.css.js +22 -0
  913. package/dist/components/Slider/Slider.module.css.js.map +1 -0
  914. package/dist/components/Spacer/Spacer.cjs +2 -0
  915. package/dist/components/Spacer/Spacer.cjs.map +1 -0
  916. package/dist/components/Spacer/Spacer.js +10 -0
  917. package/dist/components/Spacer/Spacer.js.map +1 -0
  918. package/dist/components/Spacer/Spacer.module.css.cjs +2 -0
  919. package/dist/components/Spacer/Spacer.module.css.cjs.map +1 -0
  920. package/dist/components/Spacer/Spacer.module.css.js +14 -0
  921. package/dist/components/Spacer/Spacer.module.css.js.map +1 -0
  922. package/dist/components/Spinner/Spinner.cjs +2 -0
  923. package/dist/components/Spinner/Spinner.cjs.map +1 -0
  924. package/dist/components/Spinner/Spinner.js +36 -0
  925. package/dist/components/Spinner/Spinner.js.map +1 -0
  926. package/dist/components/Spinner/Spinner.module.css.cjs +2 -0
  927. package/dist/components/Spinner/Spinner.module.css.cjs.map +1 -0
  928. package/dist/components/Spinner/Spinner.module.css.js +26 -0
  929. package/dist/components/Spinner/Spinner.module.css.js.map +1 -0
  930. package/dist/components/Stat/Stat.cjs +2 -0
  931. package/dist/components/Stat/Stat.cjs.map +1 -0
  932. package/dist/components/Stat/Stat.js +38 -0
  933. package/dist/components/Stat/Stat.js.map +1 -0
  934. package/dist/components/Stat/Stat.module.css.cjs +2 -0
  935. package/dist/components/Stat/Stat.module.css.cjs.map +1 -0
  936. package/dist/components/Stat/Stat.module.css.js +28 -0
  937. package/dist/components/Stat/Stat.module.css.js.map +1 -0
  938. package/dist/components/Stepper/Stepper.cjs +2 -0
  939. package/dist/components/Stepper/Stepper.cjs.map +1 -0
  940. package/dist/components/Stepper/Stepper.js +43 -0
  941. package/dist/components/Stepper/Stepper.js.map +1 -0
  942. package/dist/components/Stepper/Stepper.module.css.cjs +2 -0
  943. package/dist/components/Stepper/Stepper.module.css.cjs.map +1 -0
  944. package/dist/components/Stepper/Stepper.module.css.js +22 -0
  945. package/dist/components/Stepper/Stepper.module.css.js.map +1 -0
  946. package/dist/components/StepperInput/StepperInput.cjs +2 -0
  947. package/dist/components/StepperInput/StepperInput.cjs.map +1 -0
  948. package/dist/components/StepperInput/StepperInput.js +56 -0
  949. package/dist/components/StepperInput/StepperInput.js.map +1 -0
  950. package/dist/components/StepperInput/StepperInput.module.css.cjs +2 -0
  951. package/dist/components/StepperInput/StepperInput.module.css.cjs.map +1 -0
  952. package/dist/components/StepperInput/StepperInput.module.css.js +24 -0
  953. package/dist/components/StepperInput/StepperInput.module.css.js.map +1 -0
  954. package/dist/components/Switch/Switch.cjs +2 -0
  955. package/dist/components/Switch/Switch.cjs.map +1 -0
  956. package/dist/components/Switch/Switch.js +25 -0
  957. package/dist/components/Switch/Switch.js.map +1 -0
  958. package/dist/components/Switch/Switch.module.css.cjs +2 -0
  959. package/dist/components/Switch/Switch.module.css.cjs.map +1 -0
  960. package/dist/components/Switch/Switch.module.css.js +18 -0
  961. package/dist/components/Switch/Switch.module.css.js.map +1 -0
  962. package/dist/components/SyncStatusBadge/SyncStatusBadge.cjs +2 -0
  963. package/dist/components/SyncStatusBadge/SyncStatusBadge.cjs.map +1 -0
  964. package/dist/components/SyncStatusBadge/SyncStatusBadge.js +62 -0
  965. package/dist/components/SyncStatusBadge/SyncStatusBadge.js.map +1 -0
  966. package/dist/components/SyncStatusBadge/SyncStatusBadge.module.css.cjs +2 -0
  967. package/dist/components/SyncStatusBadge/SyncStatusBadge.module.css.cjs.map +1 -0
  968. package/dist/components/SyncStatusBadge/SyncStatusBadge.module.css.js +28 -0
  969. package/dist/components/SyncStatusBadge/SyncStatusBadge.module.css.js.map +1 -0
  970. package/dist/components/Table/Table.cjs +2 -0
  971. package/dist/components/Table/Table.cjs.map +1 -0
  972. package/dist/components/Table/Table.js +67 -0
  973. package/dist/components/Table/Table.js.map +1 -0
  974. package/dist/components/Table/Table.module.css.cjs +2 -0
  975. package/dist/components/Table/Table.module.css.cjs.map +1 -0
  976. package/dist/components/Table/Table.module.css.js +34 -0
  977. package/dist/components/Table/Table.module.css.js.map +1 -0
  978. package/dist/components/Tabs/Tabs.cjs +2 -0
  979. package/dist/components/Tabs/Tabs.cjs.map +1 -0
  980. package/dist/components/Tabs/Tabs.js +51 -0
  981. package/dist/components/Tabs/Tabs.js.map +1 -0
  982. package/dist/components/Tabs/Tabs.module.css.cjs +2 -0
  983. package/dist/components/Tabs/Tabs.module.css.cjs.map +1 -0
  984. package/dist/components/Tabs/Tabs.module.css.js +16 -0
  985. package/dist/components/Tabs/Tabs.module.css.js.map +1 -0
  986. package/dist/components/Tag/Tag.cjs +2 -0
  987. package/dist/components/Tag/Tag.cjs.map +1 -0
  988. package/dist/components/Tag/Tag.js +30 -0
  989. package/dist/components/Tag/Tag.js.map +1 -0
  990. package/dist/components/Tag/Tag.module.css.cjs +2 -0
  991. package/dist/components/Tag/Tag.module.css.cjs.map +1 -0
  992. package/dist/components/Tag/Tag.module.css.js +30 -0
  993. package/dist/components/Tag/Tag.module.css.js.map +1 -0
  994. package/dist/components/Textarea/Textarea.cjs +2 -0
  995. package/dist/components/Textarea/Textarea.cjs.map +1 -0
  996. package/dist/components/Textarea/Textarea.js +29 -0
  997. package/dist/components/Textarea/Textarea.js.map +1 -0
  998. package/dist/components/Textarea/Textarea.module.css.cjs +2 -0
  999. package/dist/components/Textarea/Textarea.module.css.cjs.map +1 -0
  1000. package/dist/components/Textarea/Textarea.module.css.js +20 -0
  1001. package/dist/components/Textarea/Textarea.module.css.js.map +1 -0
  1002. package/dist/components/TimePicker/TimePicker.cjs +2 -0
  1003. package/dist/components/TimePicker/TimePicker.cjs.map +1 -0
  1004. package/dist/components/TimePicker/TimePicker.js +107 -0
  1005. package/dist/components/TimePicker/TimePicker.js.map +1 -0
  1006. package/dist/components/TimePicker/TimePicker.module.css.cjs +2 -0
  1007. package/dist/components/TimePicker/TimePicker.module.css.cjs.map +1 -0
  1008. package/dist/components/TimePicker/TimePicker.module.css.js +24 -0
  1009. package/dist/components/TimePicker/TimePicker.module.css.js.map +1 -0
  1010. package/dist/components/Timeline/Timeline.cjs +2 -0
  1011. package/dist/components/Timeline/Timeline.cjs.map +1 -0
  1012. package/dist/components/Timeline/Timeline.js +35 -0
  1013. package/dist/components/Timeline/Timeline.js.map +1 -0
  1014. package/dist/components/Timeline/Timeline.module.css.cjs +2 -0
  1015. package/dist/components/Timeline/Timeline.module.css.cjs.map +1 -0
  1016. package/dist/components/Timeline/Timeline.module.css.js +36 -0
  1017. package/dist/components/Timeline/Timeline.module.css.js.map +1 -0
  1018. package/dist/components/Toast/Toast.module.css.cjs +2 -0
  1019. package/dist/components/Toast/Toast.module.css.cjs.map +1 -0
  1020. package/dist/components/Toast/Toast.module.css.js +38 -0
  1021. package/dist/components/Toast/Toast.module.css.js.map +1 -0
  1022. package/dist/components/Toast/ToastProvider.cjs +2 -0
  1023. package/dist/components/Toast/ToastProvider.cjs.map +1 -0
  1024. package/dist/components/Toast/ToastProvider.js +114 -0
  1025. package/dist/components/Toast/ToastProvider.js.map +1 -0
  1026. package/dist/components/Toggle/Toggle.cjs +2 -0
  1027. package/dist/components/Toggle/Toggle.cjs.map +1 -0
  1028. package/dist/components/Toggle/Toggle.js +49 -0
  1029. package/dist/components/Toggle/Toggle.js.map +1 -0
  1030. package/dist/components/Toggle/Toggle.module.css.cjs +2 -0
  1031. package/dist/components/Toggle/Toggle.module.css.cjs.map +1 -0
  1032. package/dist/components/Toggle/Toggle.module.css.js +18 -0
  1033. package/dist/components/Toggle/Toggle.module.css.js.map +1 -0
  1034. package/dist/components/ToggleGroup/ToggleGroup.cjs +2 -0
  1035. package/dist/components/ToggleGroup/ToggleGroup.cjs.map +1 -0
  1036. package/dist/components/ToggleGroup/ToggleGroup.js +74 -0
  1037. package/dist/components/ToggleGroup/ToggleGroup.js.map +1 -0
  1038. package/dist/components/ToggleGroup/ToggleGroup.module.css.cjs +2 -0
  1039. package/dist/components/ToggleGroup/ToggleGroup.module.css.cjs.map +1 -0
  1040. package/dist/components/ToggleGroup/ToggleGroup.module.css.js +12 -0
  1041. package/dist/components/ToggleGroup/ToggleGroup.module.css.js.map +1 -0
  1042. package/dist/components/Tooltip/Tooltip.cjs +2 -0
  1043. package/dist/components/Tooltip/Tooltip.cjs.map +1 -0
  1044. package/dist/components/Tooltip/Tooltip.js +43 -0
  1045. package/dist/components/Tooltip/Tooltip.js.map +1 -0
  1046. package/dist/components/Tooltip/Tooltip.module.css.cjs +2 -0
  1047. package/dist/components/Tooltip/Tooltip.module.css.cjs.map +1 -0
  1048. package/dist/components/Tooltip/Tooltip.module.css.js +20 -0
  1049. package/dist/components/Tooltip/Tooltip.module.css.js.map +1 -0
  1050. package/dist/components/TruncateText/TruncateText.cjs +2 -0
  1051. package/dist/components/TruncateText/TruncateText.cjs.map +1 -0
  1052. package/dist/components/TruncateText/TruncateText.js +20 -0
  1053. package/dist/components/TruncateText/TruncateText.js.map +1 -0
  1054. package/dist/components/TruncateText/TruncateText.module.css.cjs +2 -0
  1055. package/dist/components/TruncateText/TruncateText.module.css.cjs.map +1 -0
  1056. package/dist/components/TruncateText/TruncateText.module.css.js +8 -0
  1057. package/dist/components/TruncateText/TruncateText.module.css.js.map +1 -0
  1058. package/dist/components/UpdatePrompt/UpdatePrompt.cjs +2 -0
  1059. package/dist/components/UpdatePrompt/UpdatePrompt.cjs.map +1 -0
  1060. package/dist/components/UpdatePrompt/UpdatePrompt.js +43 -0
  1061. package/dist/components/UpdatePrompt/UpdatePrompt.js.map +1 -0
  1062. package/dist/components/UpdatePrompt/UpdatePrompt.module.css.cjs +2 -0
  1063. package/dist/components/UpdatePrompt/UpdatePrompt.module.css.cjs.map +1 -0
  1064. package/dist/components/UpdatePrompt/UpdatePrompt.module.css.js +20 -0
  1065. package/dist/components/UpdatePrompt/UpdatePrompt.module.css.js.map +1 -0
  1066. package/dist/components/VirtualList/VirtualList.cjs +2 -0
  1067. package/dist/components/VirtualList/VirtualList.cjs.map +1 -0
  1068. package/dist/components/VirtualList/VirtualList.js +50 -0
  1069. package/dist/components/VirtualList/VirtualList.js.map +1 -0
  1070. package/dist/components/VirtualList/VirtualList.module.css.cjs +2 -0
  1071. package/dist/components/VirtualList/VirtualList.module.css.cjs.map +1 -0
  1072. package/dist/components/VirtualList/VirtualList.module.css.js +12 -0
  1073. package/dist/components/VirtualList/VirtualList.module.css.js.map +1 -0
  1074. package/dist/components/VisuallyHidden/VisuallyHidden.cjs +2 -0
  1075. package/dist/components/VisuallyHidden/VisuallyHidden.cjs.map +1 -0
  1076. package/dist/components/VisuallyHidden/VisuallyHidden.js +15 -0
  1077. package/dist/components/VisuallyHidden/VisuallyHidden.js.map +1 -0
  1078. package/dist/components/VisuallyHidden/VisuallyHidden.module.css.cjs +2 -0
  1079. package/dist/components/VisuallyHidden/VisuallyHidden.module.css.cjs.map +1 -0
  1080. package/dist/components/VisuallyHidden/VisuallyHidden.module.css.js +8 -0
  1081. package/dist/components/VisuallyHidden/VisuallyHidden.module.css.js.map +1 -0
  1082. package/dist/data/create-data-provider.cjs +2 -0
  1083. package/dist/data/create-data-provider.cjs.map +1 -0
  1084. package/dist/data/create-data-provider.js +46 -0
  1085. package/dist/data/create-data-provider.js.map +1 -0
  1086. package/dist/data/data-provider-context.cjs +2 -0
  1087. package/dist/data/data-provider-context.cjs.map +1 -0
  1088. package/dist/data/data-provider-context.js +17 -0
  1089. package/dist/data/data-provider-context.js.map +1 -0
  1090. package/dist/data/use-resource.cjs +2 -0
  1091. package/dist/data/use-resource.cjs.map +1 -0
  1092. package/dist/data/use-resource.js +66 -0
  1093. package/dist/data/use-resource.js.map +1 -0
  1094. package/dist/editor/RichTextEditor.cjs +2 -0
  1095. package/dist/editor/RichTextEditor.cjs.map +1 -0
  1096. package/dist/editor/RichTextEditor.js +183 -0
  1097. package/dist/editor/RichTextEditor.js.map +1 -0
  1098. package/dist/editor/RichTextEditor.module.css.cjs +2 -0
  1099. package/dist/editor/RichTextEditor.module.css.cjs.map +1 -0
  1100. package/dist/editor/RichTextEditor.module.css.js +18 -0
  1101. package/dist/editor/RichTextEditor.module.css.js.map +1 -0
  1102. package/dist/editor.cjs +1 -1
  1103. package/dist/editor.cjs.map +1 -1
  1104. package/dist/editor.js +2 -187
  1105. package/dist/editor.js.map +1 -1
  1106. package/dist/error-boundary/ErrorBoundary.cjs +2 -0
  1107. package/dist/error-boundary/ErrorBoundary.cjs.map +1 -0
  1108. package/dist/error-boundary/ErrorBoundary.js +32 -0
  1109. package/dist/error-boundary/ErrorBoundary.js.map +1 -0
  1110. package/dist/error-boundary/use-error-handler.cjs +2 -0
  1111. package/dist/error-boundary/use-error-handler.cjs.map +1 -0
  1112. package/dist/error-boundary/use-error-handler.js +13 -0
  1113. package/dist/error-boundary/use-error-handler.js.map +1 -0
  1114. package/dist/feature-flags/FeatureFlagsProvider.cjs +2 -0
  1115. package/dist/feature-flags/FeatureFlagsProvider.cjs.map +1 -0
  1116. package/dist/feature-flags/FeatureFlagsProvider.js +29 -0
  1117. package/dist/feature-flags/FeatureFlagsProvider.js.map +1 -0
  1118. package/dist/feature-flags/growthbook-adapter.cjs +2 -0
  1119. package/dist/feature-flags/growthbook-adapter.cjs.map +1 -0
  1120. package/dist/feature-flags/growthbook-adapter.js +27 -0
  1121. package/dist/feature-flags/growthbook-adapter.js.map +1 -0
  1122. package/dist/feature-flags/in-memory-adapter.cjs +2 -0
  1123. package/dist/feature-flags/in-memory-adapter.cjs.map +1 -0
  1124. package/dist/feature-flags/in-memory-adapter.js +24 -0
  1125. package/dist/feature-flags/in-memory-adapter.js.map +1 -0
  1126. package/dist/feature-flags/launchdarkly-adapter.cjs +2 -0
  1127. package/dist/feature-flags/launchdarkly-adapter.cjs.map +1 -0
  1128. package/dist/feature-flags/launchdarkly-adapter.js +21 -0
  1129. package/dist/feature-flags/launchdarkly-adapter.js.map +1 -0
  1130. package/dist/forms/FormField.cjs +2 -0
  1131. package/dist/forms/FormField.cjs.map +1 -0
  1132. package/dist/forms/FormField.js +37 -0
  1133. package/dist/forms/FormField.js.map +1 -0
  1134. package/dist/forms/br-validators.cjs +2 -0
  1135. package/dist/forms/br-validators.cjs.map +1 -0
  1136. package/dist/forms/br-validators.js +44 -0
  1137. package/dist/forms/br-validators.js.map +1 -0
  1138. package/dist/forms/masked-inputs.cjs +2 -0
  1139. package/dist/forms/masked-inputs.cjs.map +1 -0
  1140. package/dist/forms/masked-inputs.js +48 -0
  1141. package/dist/forms/masked-inputs.js.map +1 -0
  1142. package/dist/forms/use-viacep.cjs +2 -0
  1143. package/dist/forms/use-viacep.cjs.map +1 -0
  1144. package/dist/forms/use-viacep.js +24 -0
  1145. package/dist/forms/use-viacep.js.map +1 -0
  1146. package/dist/forms/use-zod-form.cjs +2 -0
  1147. package/dist/forms/use-zod-form.cjs.map +1 -0
  1148. package/dist/forms/use-zod-form.js +12 -0
  1149. package/dist/forms/use-zod-form.js.map +1 -0
  1150. package/dist/forms/validate-form.cjs +2 -0
  1151. package/dist/forms/validate-form.cjs.map +1 -0
  1152. package/dist/forms/validate-form.js +15 -0
  1153. package/dist/forms/validate-form.js.map +1 -0
  1154. package/dist/forms/zod-resolver.cjs +2 -0
  1155. package/dist/forms/zod-resolver.cjs.map +1 -0
  1156. package/dist/forms/zod-resolver.js +17 -0
  1157. package/dist/forms/zod-resolver.js.map +1 -0
  1158. package/dist/geo/TrajectoryMap.cjs +2 -0
  1159. package/dist/geo/TrajectoryMap.cjs.map +1 -0
  1160. package/dist/geo/TrajectoryMap.js +216 -0
  1161. package/dist/geo/TrajectoryMap.js.map +1 -0
  1162. package/dist/geo/TrajectoryMap.module.css.cjs +2 -0
  1163. package/dist/geo/TrajectoryMap.module.css.cjs.map +1 -0
  1164. package/dist/geo/TrajectoryMap.module.css.js +30 -0
  1165. package/dist/geo/TrajectoryMap.module.css.js.map +1 -0
  1166. package/dist/geo/bounds.cjs +2 -0
  1167. package/dist/geo/bounds.cjs.map +1 -0
  1168. package/dist/geo/bounds.js +28 -0
  1169. package/dist/geo/bounds.js.map +1 -0
  1170. package/dist/geo/create-position-tracker.cjs +2 -0
  1171. package/dist/geo/create-position-tracker.cjs.map +1 -0
  1172. package/dist/geo/create-position-tracker.js +65 -0
  1173. package/dist/geo/create-position-tracker.js.map +1 -0
  1174. package/dist/geo/distance.cjs +2 -0
  1175. package/dist/geo/distance.cjs.map +1 -0
  1176. package/dist/geo/distance.js +26 -0
  1177. package/dist/geo/distance.js.map +1 -0
  1178. package/dist/geo/estimate.cjs +2 -0
  1179. package/dist/geo/estimate.cjs.map +1 -0
  1180. package/dist/geo/estimate.js +35 -0
  1181. package/dist/geo/estimate.js.map +1 -0
  1182. package/dist/geo/leaflet-map.cjs +2 -0
  1183. package/dist/geo/leaflet-map.cjs.map +1 -0
  1184. package/dist/geo/leaflet-map.js +51 -0
  1185. package/dist/geo/leaflet-map.js.map +1 -0
  1186. package/dist/geo/projection.cjs +2 -0
  1187. package/dist/geo/projection.cjs.map +1 -0
  1188. package/dist/geo/projection.js +36 -0
  1189. package/dist/geo/projection.js.map +1 -0
  1190. package/dist/geo/routing.cjs +2 -0
  1191. package/dist/geo/routing.cjs.map +1 -0
  1192. package/dist/geo/routing.js +29 -0
  1193. package/dist/geo/routing.js.map +1 -0
  1194. package/dist/geo/types.cjs +2 -0
  1195. package/dist/geo/types.cjs.map +1 -0
  1196. package/dist/geo/types.js +25 -0
  1197. package/dist/geo/types.js.map +1 -0
  1198. package/dist/geo/use-position-tracker.cjs +2 -0
  1199. package/dist/geo/use-position-tracker.cjs.map +1 -0
  1200. package/dist/geo/use-position-tracker.js +35 -0
  1201. package/dist/geo/use-position-tracker.js.map +1 -0
  1202. package/dist/hooks/pwa-env.cjs +2 -0
  1203. package/dist/hooks/pwa-env.cjs.map +1 -0
  1204. package/dist/hooks/pwa-env.js +31 -0
  1205. package/dist/hooks/pwa-env.js.map +1 -0
  1206. package/dist/hooks/use-async.cjs +2 -0
  1207. package/dist/hooks/use-async.cjs.map +1 -0
  1208. package/dist/hooks/use-async.js +38 -0
  1209. package/dist/hooks/use-async.js.map +1 -0
  1210. package/dist/hooks/use-before-install-prompt.cjs +2 -0
  1211. package/dist/hooks/use-before-install-prompt.cjs.map +1 -0
  1212. package/dist/hooks/use-before-install-prompt.js +38 -0
  1213. package/dist/hooks/use-before-install-prompt.js.map +1 -0
  1214. package/dist/hooks/use-breakpoint.cjs +2 -0
  1215. package/dist/hooks/use-breakpoint.cjs.map +1 -0
  1216. package/dist/hooks/use-breakpoint.js +40 -0
  1217. package/dist/hooks/use-breakpoint.js.map +1 -0
  1218. package/dist/hooks/use-click-outside.cjs +2 -0
  1219. package/dist/hooks/use-click-outside.cjs.map +1 -0
  1220. package/dist/hooks/use-click-outside.js +18 -0
  1221. package/dist/hooks/use-click-outside.js.map +1 -0
  1222. package/dist/hooks/use-client-filter.cjs +2 -0
  1223. package/dist/hooks/use-client-filter.cjs.map +1 -0
  1224. package/dist/hooks/use-client-filter.js +16 -0
  1225. package/dist/hooks/use-client-filter.js.map +1 -0
  1226. package/dist/hooks/use-clipboard.cjs +2 -0
  1227. package/dist/hooks/use-clipboard.cjs.map +1 -0
  1228. package/dist/hooks/use-clipboard.js +29 -0
  1229. package/dist/hooks/use-clipboard.js.map +1 -0
  1230. package/dist/hooks/use-counter.cjs +2 -0
  1231. package/dist/hooks/use-counter.cjs.map +1 -0
  1232. package/dist/hooks/use-counter.js +27 -0
  1233. package/dist/hooks/use-counter.js.map +1 -0
  1234. package/dist/hooks/use-debounce.cjs +2 -0
  1235. package/dist/hooks/use-debounce.cjs.map +1 -0
  1236. package/dist/hooks/use-debounce.js +12 -0
  1237. package/dist/hooks/use-debounce.js.map +1 -0
  1238. package/dist/hooks/use-deep-memo.cjs +2 -0
  1239. package/dist/hooks/use-deep-memo.cjs.map +1 -0
  1240. package/dist/hooks/use-deep-memo.js +19 -0
  1241. package/dist/hooks/use-deep-memo.js.map +1 -0
  1242. package/dist/hooks/use-disclosure.cjs +2 -0
  1243. package/dist/hooks/use-disclosure.cjs.map +1 -0
  1244. package/dist/hooks/use-disclosure.js +12 -0
  1245. package/dist/hooks/use-disclosure.js.map +1 -0
  1246. package/dist/hooks/use-document-title.cjs +2 -0
  1247. package/dist/hooks/use-document-title.cjs.map +1 -0
  1248. package/dist/hooks/use-document-title.js +14 -0
  1249. package/dist/hooks/use-document-title.js.map +1 -0
  1250. package/dist/hooks/use-document-visibility.cjs +2 -0
  1251. package/dist/hooks/use-document-visibility.cjs.map +1 -0
  1252. package/dist/hooks/use-document-visibility.js +15 -0
  1253. package/dist/hooks/use-document-visibility.js.map +1 -0
  1254. package/dist/hooks/use-event-listener.cjs +2 -0
  1255. package/dist/hooks/use-event-listener.cjs.map +1 -0
  1256. package/dist/hooks/use-event-listener.js +14 -0
  1257. package/dist/hooks/use-event-listener.js.map +1 -0
  1258. package/dist/hooks/use-favicon.cjs +2 -0
  1259. package/dist/hooks/use-favicon.cjs.map +1 -0
  1260. package/dist/hooks/use-favicon.js +12 -0
  1261. package/dist/hooks/use-favicon.js.map +1 -0
  1262. package/dist/hooks/use-focus-trap.cjs +2 -0
  1263. package/dist/hooks/use-focus-trap.cjs.map +1 -0
  1264. package/dist/hooks/use-focus-trap.js +43 -0
  1265. package/dist/hooks/use-focus-trap.js.map +1 -0
  1266. package/dist/hooks/use-geolocation.cjs +2 -0
  1267. package/dist/hooks/use-geolocation.cjs.map +1 -0
  1268. package/dist/hooks/use-geolocation.js +44 -0
  1269. package/dist/hooks/use-geolocation.js.map +1 -0
  1270. package/dist/hooks/use-hover.cjs +2 -0
  1271. package/dist/hooks/use-hover.cjs.map +1 -0
  1272. package/dist/hooks/use-hover.js +16 -0
  1273. package/dist/hooks/use-hover.js.map +1 -0
  1274. package/dist/hooks/use-idle.cjs +2 -0
  1275. package/dist/hooks/use-idle.cjs.map +1 -0
  1276. package/dist/hooks/use-idle.js +30 -0
  1277. package/dist/hooks/use-idle.js.map +1 -0
  1278. package/dist/hooks/use-install-prompt.cjs +2 -0
  1279. package/dist/hooks/use-install-prompt.cjs.map +1 -0
  1280. package/dist/hooks/use-install-prompt.js +69 -0
  1281. package/dist/hooks/use-install-prompt.js.map +1 -0
  1282. package/dist/hooks/use-intersection-observer.cjs +2 -0
  1283. package/dist/hooks/use-intersection-observer.cjs.map +1 -0
  1284. package/dist/hooks/use-intersection-observer.js +19 -0
  1285. package/dist/hooks/use-intersection-observer.js.map +1 -0
  1286. package/dist/hooks/use-interval.cjs +2 -0
  1287. package/dist/hooks/use-interval.cjs.map +1 -0
  1288. package/dist/hooks/use-interval.js +13 -0
  1289. package/dist/hooks/use-interval.js.map +1 -0
  1290. package/dist/hooks/use-is-first-render.cjs +2 -0
  1291. package/dist/hooks/use-is-first-render.cjs.map +1 -0
  1292. package/dist/hooks/use-is-first-render.js +9 -0
  1293. package/dist/hooks/use-is-first-render.js.map +1 -0
  1294. package/dist/hooks/use-keyboard-shortcut.cjs +2 -0
  1295. package/dist/hooks/use-keyboard-shortcut.cjs.map +1 -0
  1296. package/dist/hooks/use-keyboard-shortcut.js +38 -0
  1297. package/dist/hooks/use-keyboard-shortcut.js.map +1 -0
  1298. package/dist/hooks/use-list-state.cjs +2 -0
  1299. package/dist/hooks/use-list-state.cjs.map +1 -0
  1300. package/dist/hooks/use-list-state.js +40 -0
  1301. package/dist/hooks/use-list-state.js.map +1 -0
  1302. package/dist/hooks/use-local-storage.cjs +2 -0
  1303. package/dist/hooks/use-local-storage.cjs.map +1 -0
  1304. package/dist/hooks/use-local-storage.js +55 -0
  1305. package/dist/hooks/use-local-storage.js.map +1 -0
  1306. package/dist/hooks/use-long-press-handlers.cjs +2 -0
  1307. package/dist/hooks/use-long-press-handlers.cjs.map +1 -0
  1308. package/dist/hooks/use-long-press-handlers.js +31 -0
  1309. package/dist/hooks/use-long-press-handlers.js.map +1 -0
  1310. package/dist/hooks/use-long-press.cjs +2 -0
  1311. package/dist/hooks/use-long-press.cjs.map +1 -0
  1312. package/dist/hooks/use-long-press.js +27 -0
  1313. package/dist/hooks/use-long-press.js.map +1 -0
  1314. package/dist/hooks/use-map.cjs +2 -0
  1315. package/dist/hooks/use-map.cjs.map +1 -0
  1316. package/dist/hooks/use-map.js +33 -0
  1317. package/dist/hooks/use-map.js.map +1 -0
  1318. package/dist/hooks/use-media-query.cjs +2 -0
  1319. package/dist/hooks/use-media-query.cjs.map +1 -0
  1320. package/dist/hooks/use-media-query.js +13 -0
  1321. package/dist/hooks/use-media-query.js.map +1 -0
  1322. package/dist/hooks/use-object-url.cjs +2 -0
  1323. package/dist/hooks/use-object-url.cjs.map +1 -0
  1324. package/dist/hooks/use-object-url.js +16 -0
  1325. package/dist/hooks/use-object-url.js.map +1 -0
  1326. package/dist/hooks/use-online.cjs +2 -0
  1327. package/dist/hooks/use-online.cjs.map +1 -0
  1328. package/dist/hooks/use-online.js +47 -0
  1329. package/dist/hooks/use-online.js.map +1 -0
  1330. package/dist/hooks/use-pagination.cjs +2 -0
  1331. package/dist/hooks/use-pagination.cjs.map +1 -0
  1332. package/dist/hooks/use-pagination.js +9 -0
  1333. package/dist/hooks/use-pagination.js.map +1 -0
  1334. package/dist/hooks/use-previous.cjs +2 -0
  1335. package/dist/hooks/use-previous.cjs.map +1 -0
  1336. package/dist/hooks/use-previous.js +11 -0
  1337. package/dist/hooks/use-previous.js.map +1 -0
  1338. package/dist/hooks/use-queue.cjs +2 -0
  1339. package/dist/hooks/use-queue.cjs.map +1 -0
  1340. package/dist/hooks/use-queue.js +48 -0
  1341. package/dist/hooks/use-queue.js.map +1 -0
  1342. package/dist/hooks/use-resize-observer.cjs +2 -0
  1343. package/dist/hooks/use-resize-observer.cjs.map +1 -0
  1344. package/dist/hooks/use-resize-observer.js +19 -0
  1345. package/dist/hooks/use-resize-observer.js.map +1 -0
  1346. package/dist/hooks/use-scroll-lock.cjs +2 -0
  1347. package/dist/hooks/use-scroll-lock.cjs.map +1 -0
  1348. package/dist/hooks/use-scroll-lock.js +14 -0
  1349. package/dist/hooks/use-scroll-lock.js.map +1 -0
  1350. package/dist/hooks/use-service-worker-update.cjs +2 -0
  1351. package/dist/hooks/use-service-worker-update.cjs.map +1 -0
  1352. package/dist/hooks/use-service-worker-update.js +34 -0
  1353. package/dist/hooks/use-service-worker-update.js.map +1 -0
  1354. package/dist/hooks/use-set.cjs +2 -0
  1355. package/dist/hooks/use-set.cjs.map +1 -0
  1356. package/dist/hooks/use-set.js +39 -0
  1357. package/dist/hooks/use-set.js.map +1 -0
  1358. package/dist/hooks/use-stable-callback.cjs +2 -0
  1359. package/dist/hooks/use-stable-callback.cjs.map +1 -0
  1360. package/dist/hooks/use-stable-callback.js +9 -0
  1361. package/dist/hooks/use-stable-callback.js.map +1 -0
  1362. package/dist/hooks/use-storage-estimate.cjs +2 -0
  1363. package/dist/hooks/use-storage-estimate.cjs.map +1 -0
  1364. package/dist/hooks/use-storage-estimate.js +54 -0
  1365. package/dist/hooks/use-storage-estimate.js.map +1 -0
  1366. package/dist/hooks/use-throttle.cjs +2 -0
  1367. package/dist/hooks/use-throttle.cjs.map +1 -0
  1368. package/dist/hooks/use-throttle.js +16 -0
  1369. package/dist/hooks/use-throttle.js.map +1 -0
  1370. package/dist/hooks/use-timeout.cjs +2 -0
  1371. package/dist/hooks/use-timeout.cjs.map +1 -0
  1372. package/dist/hooks/use-timeout.js +13 -0
  1373. package/dist/hooks/use-timeout.js.map +1 -0
  1374. package/dist/hooks/use-toggle.cjs +2 -0
  1375. package/dist/hooks/use-toggle.cjs.map +1 -0
  1376. package/dist/hooks/use-toggle.js +9 -0
  1377. package/dist/hooks/use-toggle.js.map +1 -0
  1378. package/dist/hooks/use-window-size.cjs +2 -0
  1379. package/dist/hooks/use-window-size.cjs.map +1 -0
  1380. package/dist/hooks/use-window-size.js +15 -0
  1381. package/dist/hooks/use-window-size.js.map +1 -0
  1382. package/dist/http/api-client.cjs +2 -0
  1383. package/dist/http/api-client.cjs.map +1 -0
  1384. package/dist/http/api-client.js +81 -0
  1385. package/dist/http/api-client.js.map +1 -0
  1386. package/dist/http/errors.cjs +2 -0
  1387. package/dist/http/errors.cjs.map +1 -0
  1388. package/dist/http/errors.js +39 -0
  1389. package/dist/http/errors.js.map +1 -0
  1390. package/dist/http/idempotency.cjs +2 -0
  1391. package/dist/http/idempotency.cjs.map +1 -0
  1392. package/dist/http/idempotency.js +10 -0
  1393. package/dist/http/idempotency.js.map +1 -0
  1394. package/dist/http/parse-response.cjs +6 -0
  1395. package/dist/http/parse-response.cjs.map +1 -0
  1396. package/dist/http/parse-response.js +20 -0
  1397. package/dist/http/parse-response.js.map +1 -0
  1398. package/dist/http/retry.cjs +2 -0
  1399. package/dist/http/retry.cjs.map +1 -0
  1400. package/dist/http/retry.js +44 -0
  1401. package/dist/http/retry.js.map +1 -0
  1402. package/dist/http/upload-with-progress.cjs +2 -0
  1403. package/dist/http/upload-with-progress.cjs.map +1 -0
  1404. package/dist/http/upload-with-progress.js +91 -0
  1405. package/dist/http/upload-with-progress.js.map +1 -0
  1406. package/dist/http/use-poll.cjs +2 -0
  1407. package/dist/http/use-poll.cjs.map +1 -0
  1408. package/dist/http/use-poll.js +41 -0
  1409. package/dist/http/use-poll.js.map +1 -0
  1410. package/dist/i18n/I18nProvider.cjs +2 -0
  1411. package/dist/i18n/I18nProvider.cjs.map +1 -0
  1412. package/dist/i18n/I18nProvider.js +52 -0
  1413. package/dist/i18n/I18nProvider.js.map +1 -0
  1414. package/dist/i18n/create-i18n.cjs +2 -0
  1415. package/dist/i18n/create-i18n.cjs.map +1 -0
  1416. package/dist/i18n/create-i18n.js +50 -0
  1417. package/dist/i18n/create-i18n.js.map +1 -0
  1418. package/dist/logger/logger.cjs +2 -0
  1419. package/dist/logger/logger.cjs.map +1 -0
  1420. package/dist/logger/logger.js +41 -0
  1421. package/dist/logger/logger.js.map +1 -0
  1422. package/dist/oauth/GoogleSignIn.cjs +2 -0
  1423. package/dist/oauth/GoogleSignIn.cjs.map +1 -0
  1424. package/dist/oauth/GoogleSignIn.js +50 -0
  1425. package/dist/oauth/GoogleSignIn.js.map +1 -0
  1426. package/dist/oauth/use-oauth-callback.cjs +2 -0
  1427. package/dist/oauth/use-oauth-callback.cjs.map +1 -0
  1428. package/dist/oauth/use-oauth-callback.js +21 -0
  1429. package/dist/oauth/use-oauth-callback.js.map +1 -0
  1430. package/dist/offline/conflict.cjs +2 -0
  1431. package/dist/offline/conflict.cjs.map +1 -0
  1432. package/dist/offline/conflict.js +17 -0
  1433. package/dist/offline/conflict.js.map +1 -0
  1434. package/dist/offline/create-offline-store.cjs +2 -0
  1435. package/dist/offline/create-offline-store.cjs.map +1 -0
  1436. package/dist/offline/create-offline-store.js +46 -0
  1437. package/dist/offline/create-offline-store.js.map +1 -0
  1438. package/dist/offline/create-offline-sync.cjs +2 -0
  1439. package/dist/offline/create-offline-sync.cjs.map +1 -0
  1440. package/dist/offline/create-offline-sync.js +146 -0
  1441. package/dist/offline/create-offline-sync.js.map +1 -0
  1442. package/dist/offline/use-offline-sync.cjs +2 -0
  1443. package/dist/offline/use-offline-sync.cjs.map +1 -0
  1444. package/dist/offline/use-offline-sync.js +42 -0
  1445. package/dist/offline/use-offline-sync.js.map +1 -0
  1446. package/dist/push/use-push-subscription.cjs +2 -0
  1447. package/dist/push/use-push-subscription.cjs.map +1 -0
  1448. package/dist/push/use-push-subscription.js +68 -0
  1449. package/dist/push/use-push-subscription.js.map +1 -0
  1450. package/dist/push/utils.cjs +2 -0
  1451. package/dist/push/utils.cjs.map +1 -0
  1452. package/dist/push/utils.js +14 -0
  1453. package/dist/push/utils.js.map +1 -0
  1454. package/dist/push/web-push-client.cjs +2 -0
  1455. package/dist/push/web-push-client.cjs.map +1 -0
  1456. package/dist/push/web-push-client.js +83 -0
  1457. package/dist/push/web-push-client.js.map +1 -0
  1458. package/dist/query/QueryProvider.cjs +2 -0
  1459. package/dist/query/QueryProvider.cjs.map +1 -0
  1460. package/dist/query/QueryProvider.js +28 -0
  1461. package/dist/query/QueryProvider.js.map +1 -0
  1462. package/dist/query/constants.cjs +2 -0
  1463. package/dist/query/constants.cjs.map +1 -0
  1464. package/dist/query/constants.js +21 -0
  1465. package/dist/query/constants.js.map +1 -0
  1466. package/dist/query/create-query-keys.cjs +2 -0
  1467. package/dist/query/create-query-keys.cjs.map +1 -0
  1468. package/dist/query/create-query-keys.js +10 -0
  1469. package/dist/query/create-query-keys.js.map +1 -0
  1470. package/dist/query/offline-persistence.cjs +2 -0
  1471. package/dist/query/offline-persistence.cjs.map +1 -0
  1472. package/dist/query/offline-persistence.js +40 -0
  1473. package/dist/query/offline-persistence.js.map +1 -0
  1474. package/dist/query/optimistic.cjs +2 -0
  1475. package/dist/query/optimistic.cjs.map +1 -0
  1476. package/dist/query/optimistic.js +19 -0
  1477. package/dist/query/optimistic.js.map +1 -0
  1478. package/dist/query/pagination.cjs +2 -0
  1479. package/dist/query/pagination.cjs.map +1 -0
  1480. package/dist/query/pagination.js +19 -0
  1481. package/dist/query/pagination.js.map +1 -0
  1482. package/dist/query/use-cursor-query.cjs +2 -0
  1483. package/dist/query/use-cursor-query.cjs.map +1 -0
  1484. package/dist/query/use-cursor-query.js +28 -0
  1485. package/dist/query/use-cursor-query.js.map +1 -0
  1486. package/dist/query/use-offline-mutation.cjs +2 -0
  1487. package/dist/query/use-offline-mutation.cjs.map +1 -0
  1488. package/dist/query/use-offline-mutation.js +30 -0
  1489. package/dist/query/use-offline-mutation.js.map +1 -0
  1490. package/dist/query/use-paginated-query.cjs +2 -0
  1491. package/dist/query/use-paginated-query.cjs.map +1 -0
  1492. package/dist/query/use-paginated-query.js +44 -0
  1493. package/dist/query/use-paginated-query.js.map +1 -0
  1494. package/dist/router/AppRouter.cjs +2 -0
  1495. package/dist/router/AppRouter.cjs.map +1 -0
  1496. package/dist/router/AppRouter.js +60 -0
  1497. package/dist/router/AppRouter.js.map +1 -0
  1498. package/dist/router/RouteGuard.cjs +2 -0
  1499. package/dist/router/RouteGuard.cjs.map +1 -0
  1500. package/dist/router/RouteGuard.js +9 -0
  1501. package/dist/router/RouteGuard.js.map +1 -0
  1502. package/dist/share/share-or-download.cjs +2 -0
  1503. package/dist/share/share-or-download.cjs.map +1 -0
  1504. package/dist/share/share-or-download.js +11 -0
  1505. package/dist/share/share-or-download.js.map +1 -0
  1506. package/dist/share/share.cjs +2 -0
  1507. package/dist/share/share.cjs.map +1 -0
  1508. package/dist/share/share.js +19 -0
  1509. package/dist/share/share.js.map +1 -0
  1510. package/dist/sse/create-event-stream.cjs +2 -0
  1511. package/dist/sse/create-event-stream.cjs.map +1 -0
  1512. package/dist/sse/create-event-stream.js +76 -0
  1513. package/dist/sse/create-event-stream.js.map +1 -0
  1514. package/dist/sse/use-event-stream.cjs +2 -0
  1515. package/dist/sse/use-event-stream.cjs.map +1 -0
  1516. package/dist/sse/use-event-stream.js +29 -0
  1517. package/dist/sse/use-event-stream.js.map +1 -0
  1518. package/dist/store/create-selectors.cjs +2 -0
  1519. package/dist/store/create-selectors.cjs.map +1 -0
  1520. package/dist/store/create-selectors.js +11 -0
  1521. package/dist/store/create-selectors.js.map +1 -0
  1522. package/dist/store/create-store.cjs +2 -0
  1523. package/dist/store/create-store.cjs.map +1 -0
  1524. package/dist/store/create-store.js +20 -0
  1525. package/dist/store/create-store.js.map +1 -0
  1526. package/dist/styles.css +1 -1
  1527. package/dist/sw/background-sync.cjs +2 -0
  1528. package/dist/sw/background-sync.cjs.map +1 -0
  1529. package/dist/sw/background-sync.js +106 -0
  1530. package/dist/sw/background-sync.js.map +1 -0
  1531. package/dist/sw/cache-inspect.cjs +2 -0
  1532. package/dist/sw/cache-inspect.cjs.map +1 -0
  1533. package/dist/sw/cache-inspect.js +47 -0
  1534. package/dist/sw/cache-inspect.js.map +1 -0
  1535. package/dist/sw/cache.cjs +2 -0
  1536. package/dist/sw/cache.cjs.map +1 -0
  1537. package/dist/sw/cache.js +176 -0
  1538. package/dist/sw/cache.js.map +1 -0
  1539. package/dist/sw/create-push-handler.cjs +2 -0
  1540. package/dist/sw/create-push-handler.cjs.map +1 -0
  1541. package/dist/sw/create-push-handler.js +64 -0
  1542. package/dist/sw/create-push-handler.js.map +1 -0
  1543. package/dist/sw/periodic-sync.cjs +2 -0
  1544. package/dist/sw/periodic-sync.cjs.map +1 -0
  1545. package/dist/sw/periodic-sync.js +18 -0
  1546. package/dist/sw/periodic-sync.js.map +1 -0
  1547. package/dist/sw/register-service-worker.cjs +2 -0
  1548. package/dist/sw/register-service-worker.cjs.map +1 -0
  1549. package/dist/sw/register-service-worker.js +50 -0
  1550. package/dist/sw/register-service-worker.js.map +1 -0
  1551. package/dist/sw.cjs +1 -1
  1552. package/dist/sw.cjs.map +1 -1
  1553. package/dist/sw.d.ts +99 -0
  1554. package/dist/sw.js +19 -374
  1555. package/dist/sw.js.map +1 -1
  1556. package/dist/telemetry/TelemetryProvider.cjs +2 -0
  1557. package/dist/telemetry/TelemetryProvider.cjs.map +1 -0
  1558. package/dist/telemetry/TelemetryProvider.js +18 -0
  1559. package/dist/telemetry/TelemetryProvider.js.map +1 -0
  1560. package/dist/telemetry/console-adapter.cjs +2 -0
  1561. package/dist/telemetry/console-adapter.cjs.map +1 -0
  1562. package/dist/telemetry/console-adapter.js +15 -0
  1563. package/dist/telemetry/console-adapter.js.map +1 -0
  1564. package/dist/telemetry/posthog-adapter.cjs +2 -0
  1565. package/dist/telemetry/posthog-adapter.cjs.map +1 -0
  1566. package/dist/telemetry/posthog-adapter.js +43 -0
  1567. package/dist/telemetry/posthog-adapter.js.map +1 -0
  1568. package/dist/telemetry/sentry-adapter.cjs +2 -0
  1569. package/dist/telemetry/sentry-adapter.cjs.map +1 -0
  1570. package/dist/telemetry/sentry-adapter.js +39 -0
  1571. package/dist/telemetry/sentry-adapter.js.map +1 -0
  1572. package/dist/tempest-react-sdk.cjs +1 -14
  1573. package/dist/tempest-react-sdk.cjs.map +1 -1
  1574. package/dist/tempest-react-sdk.d.ts +770 -8
  1575. package/dist/tempest-react-sdk.js +638 -9470
  1576. package/dist/tempest-react-sdk.js.map +1 -1
  1577. package/dist/testing/create-mock-handlers.cjs +2 -0
  1578. package/dist/testing/create-mock-handlers.cjs.map +1 -0
  1579. package/dist/testing/create-mock-handlers.js +14 -0
  1580. package/dist/testing/create-mock-handlers.js.map +1 -0
  1581. package/dist/testing.cjs +1 -1
  1582. package/dist/testing.cjs.map +1 -1
  1583. package/dist/testing.js +1 -10
  1584. package/dist/testing.js.map +1 -1
  1585. package/dist/theme/ThemeProvider.cjs +2 -0
  1586. package/dist/theme/ThemeProvider.cjs.map +1 -0
  1587. package/dist/theme/ThemeProvider.js +78 -0
  1588. package/dist/theme/ThemeProvider.js.map +1 -0
  1589. package/dist/theme/initial-theme.cjs +11 -0
  1590. package/dist/theme/initial-theme.cjs.map +1 -0
  1591. package/dist/theme/initial-theme.js +31 -0
  1592. package/dist/theme/initial-theme.js.map +1 -0
  1593. package/dist/utils/arrays.cjs +2 -0
  1594. package/dist/utils/arrays.cjs.map +1 -0
  1595. package/dist/utils/arrays.js +40 -0
  1596. package/dist/utils/arrays.js.map +1 -0
  1597. package/dist/utils/cn.cjs +2 -0
  1598. package/dist/utils/cn.cjs.map +1 -0
  1599. package/dist/utils/cn.js +19 -0
  1600. package/dist/utils/cn.js.map +1 -0
  1601. package/dist/utils/format.cjs +2 -0
  1602. package/dist/utils/format.cjs.map +1 -0
  1603. package/dist/utils/format.js +40 -0
  1604. package/dist/utils/format.js.map +1 -0
  1605. package/dist/utils/functions.cjs +2 -0
  1606. package/dist/utils/functions.cjs.map +1 -0
  1607. package/dist/utils/functions.js +49 -0
  1608. package/dist/utils/functions.js.map +1 -0
  1609. package/dist/utils/guards.cjs +2 -0
  1610. package/dist/utils/guards.cjs.map +1 -0
  1611. package/dist/utils/guards.js +25 -0
  1612. package/dist/utils/guards.js.map +1 -0
  1613. package/dist/utils/ids.cjs +2 -0
  1614. package/dist/utils/ids.cjs.map +1 -0
  1615. package/dist/utils/ids.js +14 -0
  1616. package/dist/utils/ids.js.map +1 -0
  1617. package/dist/utils/numbers.cjs +2 -0
  1618. package/dist/utils/numbers.cjs.map +1 -0
  1619. package/dist/utils/numbers.js +27 -0
  1620. package/dist/utils/numbers.js.map +1 -0
  1621. package/dist/utils/objects.cjs +2 -0
  1622. package/dist/utils/objects.cjs.map +1 -0
  1623. package/dist/utils/objects.js +37 -0
  1624. package/dist/utils/objects.js.map +1 -0
  1625. package/dist/utils/promises.cjs +2 -0
  1626. package/dist/utils/promises.cjs.map +1 -0
  1627. package/dist/utils/promises.js +24 -0
  1628. package/dist/utils/promises.js.map +1 -0
  1629. package/dist/utils/relative-time.cjs +2 -0
  1630. package/dist/utils/relative-time.cjs.map +1 -0
  1631. package/dist/utils/relative-time.js +67 -0
  1632. package/dist/utils/relative-time.js.map +1 -0
  1633. package/dist/utils/storage.cjs +2 -0
  1634. package/dist/utils/storage.cjs.map +1 -0
  1635. package/dist/utils/storage.js +29 -0
  1636. package/dist/utils/storage.js.map +1 -0
  1637. package/dist/utils/strings.cjs +2 -0
  1638. package/dist/utils/strings.cjs.map +1 -0
  1639. package/dist/utils/strings.js +33 -0
  1640. package/dist/utils/strings.js.map +1 -0
  1641. package/dist/utils/xlsx.cjs +2 -0
  1642. package/dist/utils/xlsx.cjs.map +1 -0
  1643. package/dist/utils/xlsx.js +41 -0
  1644. package/dist/utils/xlsx.js.map +1 -0
  1645. package/dist/vision/core/canvas.cjs +2 -0
  1646. package/dist/vision/core/canvas.cjs.map +1 -0
  1647. package/dist/vision/core/canvas.js +41 -0
  1648. package/dist/vision/core/canvas.js.map +1 -0
  1649. package/dist/vision/core/exceptions.cjs +2 -0
  1650. package/dist/vision/core/exceptions.cjs.map +1 -0
  1651. package/dist/vision/core/exceptions.js +24 -0
  1652. package/dist/vision/core/exceptions.js.map +1 -0
  1653. package/dist/vision/core/providers.cjs +2 -0
  1654. package/dist/vision/core/providers.cjs.map +1 -0
  1655. package/dist/vision/core/providers.js +9 -0
  1656. package/dist/vision/core/providers.js.map +1 -0
  1657. package/dist/vision/core/session.cjs +2 -0
  1658. package/dist/vision/core/session.cjs.map +1 -0
  1659. package/dist/vision/core/session.js +71 -0
  1660. package/dist/vision/core/session.js.map +1 -0
  1661. package/dist/vision/index.cjs +2 -0
  1662. package/dist/vision/index.cjs.map +1 -0
  1663. package/dist/vision/index.js +5 -0
  1664. package/dist/vision/index.js.map +1 -0
  1665. package/dist/vision/io/image.cjs +2 -0
  1666. package/dist/vision/io/image.cjs.map +1 -0
  1667. package/dist/vision/io/image.js +75 -0
  1668. package/dist/vision/io/image.js.map +1 -0
  1669. package/dist/vision/labels.cjs +2 -0
  1670. package/dist/vision/labels.cjs.map +1 -0
  1671. package/dist/vision/labels.js +125 -0
  1672. package/dist/vision/labels.js.map +1 -0
  1673. package/dist/vision/luminance.cjs +2 -0
  1674. package/dist/vision/luminance.cjs.map +1 -0
  1675. package/dist/vision/luminance.js +45 -0
  1676. package/dist/vision/luminance.js.map +1 -0
  1677. package/dist/vision/postprocess/classification.cjs +2 -0
  1678. package/dist/vision/postprocess/classification.cjs.map +1 -0
  1679. package/dist/vision/postprocess/classification.js +32 -0
  1680. package/dist/vision/postprocess/classification.js.map +1 -0
  1681. package/dist/vision/postprocess/detection.cjs +2 -0
  1682. package/dist/vision/postprocess/detection.cjs.map +1 -0
  1683. package/dist/vision/postprocess/detection.js +153 -0
  1684. package/dist/vision/postprocess/detection.js.map +1 -0
  1685. package/dist/vision/postprocess/segmentation.cjs +2 -0
  1686. package/dist/vision/postprocess/segmentation.cjs.map +1 -0
  1687. package/dist/vision/postprocess/segmentation.js +109 -0
  1688. package/dist/vision/postprocess/segmentation.js.map +1 -0
  1689. package/dist/vision/preprocess/image.cjs +2 -0
  1690. package/dist/vision/preprocess/image.cjs.map +1 -0
  1691. package/dist/vision/preprocess/image.js +93 -0
  1692. package/dist/vision/preprocess/image.js.map +1 -0
  1693. package/dist/vision/results.cjs +2 -0
  1694. package/dist/vision/results.cjs.map +1 -0
  1695. package/dist/vision/results.js +213 -0
  1696. package/dist/vision/results.js.map +1 -0
  1697. package/dist/vision/tasks/base.cjs +2 -0
  1698. package/dist/vision/tasks/base.cjs.map +1 -0
  1699. package/dist/vision/tasks/base.js +14 -0
  1700. package/dist/vision/tasks/base.js.map +1 -0
  1701. package/dist/vision/tasks/classifier.cjs +2 -0
  1702. package/dist/vision/tasks/classifier.cjs.map +1 -0
  1703. package/dist/vision/tasks/classifier.js +106 -0
  1704. package/dist/vision/tasks/classifier.js.map +1 -0
  1705. package/dist/vision/tasks/detector.cjs +2 -0
  1706. package/dist/vision/tasks/detector.cjs.map +1 -0
  1707. package/dist/vision/tasks/detector.js +147 -0
  1708. package/dist/vision/tasks/detector.js.map +1 -0
  1709. package/dist/vision/tasks/segmenter.cjs +2 -0
  1710. package/dist/vision/tasks/segmenter.cjs.map +1 -0
  1711. package/dist/vision/tasks/segmenter.js +189 -0
  1712. package/dist/vision/tasks/segmenter.js.map +1 -0
  1713. package/dist/vision/types.cjs +2 -0
  1714. package/dist/vision/types.cjs.map +1 -0
  1715. package/dist/vision/types.js +100 -0
  1716. package/dist/vision/types.js.map +1 -0
  1717. package/dist/vision/use-camera-stream.cjs +2 -0
  1718. package/dist/vision/use-camera-stream.cjs.map +1 -0
  1719. package/dist/vision/use-camera-stream.js +89 -0
  1720. package/dist/vision/use-camera-stream.js.map +1 -0
  1721. package/dist/vision/use-live-luminance.cjs +2 -0
  1722. package/dist/vision/use-live-luminance.cjs.map +1 -0
  1723. package/dist/vision/use-live-luminance.js +23 -0
  1724. package/dist/vision/use-live-luminance.js.map +1 -0
  1725. package/dist/vision.cjs +1 -1
  1726. package/dist/vision.cjs.map +1 -1
  1727. package/dist/vision.js +70 -1558
  1728. package/dist/vision.js.map +1 -1
  1729. package/dist/vite/create-vite-config.cjs +2 -0
  1730. package/dist/vite/create-vite-config.cjs.map +1 -0
  1731. package/dist/vite/create-vite-config.js +46 -0
  1732. package/dist/vite/create-vite-config.js.map +1 -0
  1733. package/dist/vite/tempest-pwa-dev-sw.cjs +3 -0
  1734. package/dist/vite/tempest-pwa-dev-sw.cjs.map +1 -0
  1735. package/dist/vite/tempest-pwa-dev-sw.js +50 -0
  1736. package/dist/vite/tempest-pwa-dev-sw.js.map +1 -0
  1737. package/dist/vite/tempest-pwa-icons.cjs +2 -0
  1738. package/dist/vite/tempest-pwa-icons.cjs.map +1 -0
  1739. package/dist/vite/tempest-pwa-icons.js +137 -0
  1740. package/dist/vite/tempest-pwa-icons.js.map +1 -0
  1741. package/dist/vite/tempest-pwa-manifest.cjs +3 -0
  1742. package/dist/vite/tempest-pwa-manifest.cjs.map +1 -0
  1743. package/dist/vite/tempest-pwa-manifest.js +43 -0
  1744. package/dist/vite/tempest-pwa-manifest.js.map +1 -0
  1745. package/dist/vite.cjs +1 -3
  1746. package/dist/vite.cjs.map +1 -1
  1747. package/dist/vite.js +8 -262
  1748. package/dist/vite.js.map +1 -1
  1749. package/dist/ws/create-web-socket.cjs +2 -0
  1750. package/dist/ws/create-web-socket.cjs.map +1 -0
  1751. package/dist/ws/create-web-socket.js +83 -0
  1752. package/dist/ws/create-web-socket.js.map +1 -0
  1753. package/dist/ws/use-web-socket.cjs +2 -0
  1754. package/dist/ws/use-web-socket.cjs.map +1 -0
  1755. package/dist/ws/use-web-socket.js +32 -0
  1756. package/dist/ws/use-web-socket.js.map +1 -0
  1757. package/package.json +6 -2
  1758. package/template-pwa/src/main.tsx +11 -20
  1759. package/template-pwa/src/pwa.tsx +42 -0
  1760. package/dist/AC-Brw7ZrEs.cjs +0 -2
  1761. package/dist/AC-Brw7ZrEs.cjs.map +0 -1
  1762. package/dist/AC-DLl3Z4oj.js +0 -12
  1763. package/dist/AC-DLl3Z4oj.js.map +0 -1
  1764. package/dist/AL-DPGoZjht.cjs +0 -2
  1765. package/dist/AL-DPGoZjht.cjs.map +0 -1
  1766. package/dist/AL-gswGaWlj.js +0 -12
  1767. package/dist/AL-gswGaWlj.js.map +0 -1
  1768. package/dist/AM-QN1eL4Tn.js +0 -12
  1769. package/dist/AM-QN1eL4Tn.js.map +0 -1
  1770. package/dist/AM-VqNWvsI-.cjs +0 -2
  1771. package/dist/AM-VqNWvsI-.cjs.map +0 -1
  1772. package/dist/AP-CPvBa_FK.cjs +0 -2
  1773. package/dist/AP-CPvBa_FK.cjs.map +0 -1
  1774. package/dist/AP-CRAbh1js.js +0 -12
  1775. package/dist/AP-CRAbh1js.js.map +0 -1
  1776. package/dist/BA-CKy_HnnV.js +0 -12
  1777. package/dist/BA-CKy_HnnV.js.map +0 -1
  1778. package/dist/BA-DoMQ6slK.cjs +0 -2
  1779. package/dist/BA-DoMQ6slK.cjs.map +0 -1
  1780. package/dist/CE-Ca-XMDFW.js +0 -12
  1781. package/dist/CE-Ca-XMDFW.js.map +0 -1
  1782. package/dist/CE-as-pGPQa.cjs +0 -2
  1783. package/dist/CE-as-pGPQa.cjs.map +0 -1
  1784. package/dist/DF-8kzFoovF.js +0 -12
  1785. package/dist/DF-8kzFoovF.js.map +0 -1
  1786. package/dist/DF-Wr8WNxSX.cjs +0 -2
  1787. package/dist/DF-Wr8WNxSX.cjs.map +0 -1
  1788. package/dist/ES-B4uWNG6s.js +0 -12
  1789. package/dist/ES-B4uWNG6s.js.map +0 -1
  1790. package/dist/ES-wKVjD_TM.cjs +0 -2
  1791. package/dist/ES-wKVjD_TM.cjs.map +0 -1
  1792. package/dist/GO-D4m4rOqy.cjs +0 -2
  1793. package/dist/GO-D4m4rOqy.cjs.map +0 -1
  1794. package/dist/GO-DuaAgIfo.js +0 -12
  1795. package/dist/GO-DuaAgIfo.js.map +0 -1
  1796. package/dist/MA-BmaUZZKe.cjs +0 -2
  1797. package/dist/MA-BmaUZZKe.cjs.map +0 -1
  1798. package/dist/MA-wOyPxG_M.js +0 -12
  1799. package/dist/MA-wOyPxG_M.js.map +0 -1
  1800. package/dist/MG-BYsqJd-S.js +0 -12
  1801. package/dist/MG-BYsqJd-S.js.map +0 -1
  1802. package/dist/MG-BchdfJXp.cjs +0 -2
  1803. package/dist/MG-BchdfJXp.cjs.map +0 -1
  1804. package/dist/MS-DZkgtN_7.js +0 -12
  1805. package/dist/MS-DZkgtN_7.js.map +0 -1
  1806. package/dist/MS-Dz9lDw37.cjs +0 -2
  1807. package/dist/MS-Dz9lDw37.cjs.map +0 -1
  1808. package/dist/MT-BkVchoah.cjs +0 -2
  1809. package/dist/MT-BkVchoah.cjs.map +0 -1
  1810. package/dist/MT-GmMwFWw2.js +0 -12
  1811. package/dist/MT-GmMwFWw2.js.map +0 -1
  1812. package/dist/PA-C2FpT6Ew.cjs +0 -2
  1813. package/dist/PA-C2FpT6Ew.cjs.map +0 -1
  1814. package/dist/PA-DgyDzDFi.js +0 -12
  1815. package/dist/PA-DgyDzDFi.js.map +0 -1
  1816. package/dist/PB-BGkzbQup.cjs +0 -2
  1817. package/dist/PB-BGkzbQup.cjs.map +0 -1
  1818. package/dist/PB-D-6NE6KM.js +0 -12
  1819. package/dist/PB-D-6NE6KM.js.map +0 -1
  1820. package/dist/PE-D8V7gWY-.cjs +0 -2
  1821. package/dist/PE-D8V7gWY-.cjs.map +0 -1
  1822. package/dist/PE-vqm-t7Nh.js +0 -12
  1823. package/dist/PE-vqm-t7Nh.js.map +0 -1
  1824. package/dist/PI-CILuGJlW.js +0 -12
  1825. package/dist/PI-CILuGJlW.js.map +0 -1
  1826. package/dist/PI-dJYCbXQM.cjs +0 -2
  1827. package/dist/PI-dJYCbXQM.cjs.map +0 -1
  1828. package/dist/PR-DN8AV__r.js +0 -12
  1829. package/dist/PR-DN8AV__r.js.map +0 -1
  1830. package/dist/PR-P17oBdNH.cjs +0 -2
  1831. package/dist/PR-P17oBdNH.cjs.map +0 -1
  1832. package/dist/RJ-Bccz05Em.js +0 -12
  1833. package/dist/RJ-Bccz05Em.js.map +0 -1
  1834. package/dist/RJ-Budqx7QP.cjs +0 -2
  1835. package/dist/RJ-Budqx7QP.cjs.map +0 -1
  1836. package/dist/RN-DLcJBxo3.cjs +0 -2
  1837. package/dist/RN-DLcJBxo3.cjs.map +0 -1
  1838. package/dist/RN-DTqFP-Nm.js +0 -12
  1839. package/dist/RN-DTqFP-Nm.js.map +0 -1
  1840. package/dist/RO-BCC54UTU.js +0 -12
  1841. package/dist/RO-BCC54UTU.js.map +0 -1
  1842. package/dist/RO-B_IDyci4.cjs +0 -2
  1843. package/dist/RO-B_IDyci4.cjs.map +0 -1
  1844. package/dist/RR-CDGUEyla.cjs +0 -2
  1845. package/dist/RR-CDGUEyla.cjs.map +0 -1
  1846. package/dist/RR-OCnI_XpU.js +0 -12
  1847. package/dist/RR-OCnI_XpU.js.map +0 -1
  1848. package/dist/RS-DiBeY_u5.cjs +0 -2
  1849. package/dist/RS-DiBeY_u5.cjs.map +0 -1
  1850. package/dist/RS-Dy7gBbbH.js +0 -12
  1851. package/dist/RS-Dy7gBbbH.js.map +0 -1
  1852. package/dist/SC-CEMoj8g2.cjs +0 -2
  1853. package/dist/SC-CEMoj8g2.cjs.map +0 -1
  1854. package/dist/SC-trCqQDXz.js +0 -12
  1855. package/dist/SC-trCqQDXz.js.map +0 -1
  1856. package/dist/SE-DAfFbZcK.cjs +0 -2
  1857. package/dist/SE-DAfFbZcK.cjs.map +0 -1
  1858. package/dist/SE-DBdfSrGk.js +0 -12
  1859. package/dist/SE-DBdfSrGk.js.map +0 -1
  1860. package/dist/SP-Cse4d68i.cjs +0 -2
  1861. package/dist/SP-Cse4d68i.cjs.map +0 -1
  1862. package/dist/SP-qPZjJDOT.js +0 -12
  1863. package/dist/SP-qPZjJDOT.js.map +0 -1
  1864. package/dist/TO-CZtMDVug.js +0 -12
  1865. package/dist/TO-CZtMDVug.js.map +0 -1
  1866. package/dist/TO-Dwi5zIyF.cjs +0 -2
  1867. package/dist/TO-Dwi5zIyF.cjs.map +0 -1
  1868. package/dist/br-centroids--O7-1KXz.cjs +0 -2
  1869. package/dist/br-centroids--O7-1KXz.cjs.map +0 -1
  1870. package/dist/br-centroids-IHN7PIzD.js +0 -10
  1871. package/dist/br-centroids-IHN7PIzD.js.map +0 -1
  1872. package/dist/br-geo-BYynYOwK.cjs +0 -2
  1873. package/dist/br-geo-BYynYOwK.cjs.map +0 -1
  1874. package/dist/br-geo-DFRuvjuU.js +0 -8
  1875. package/dist/br-geo-DFRuvjuU.js.map +0 -1
  1876. package/dist/cn-C0Sxc9eb.js +0 -19
  1877. package/dist/cn-C0Sxc9eb.js.map +0 -1
  1878. package/dist/cn-CNScIEB4.cjs +0 -2
  1879. package/dist/cn-CNScIEB4.cjs.map +0 -1
  1880. package/dist/leaflet-map-BHBcL_7k.js +0 -51
  1881. package/dist/leaflet-map-BHBcL_7k.js.map +0 -1
  1882. package/dist/leaflet-map-BzYV9czG.cjs +0 -2
  1883. package/dist/leaflet-map-BzYV9czG.cjs.map +0 -1
  1884. package/dist/projection-CILVBdpd.cjs +0 -2
  1885. package/dist/projection-CILVBdpd.cjs.map +0 -1
  1886. package/dist/projection-Wnqr_svy.js +0 -215
  1887. package/dist/projection-Wnqr_svy.js.map +0 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"estimate.js","sources":["../../src/geo/estimate.ts"],"sourcesContent":["import { haversineKm } from \"./distance\";\nimport type { Coordinate, TravelEstimate, TravelMode } from \"./types\";\n\n/**\n * Multiplier applied to the great-circle distance to approximate real road\n * distance. Mirrors `DEFAULT_CIRCUITY_FACTOR` from `tempest-fastapi-sdk`.\n */\nexport const DEFAULT_CIRCUITY_FACTOR = 1.3;\n\n/**\n * Default average car speed in km/h used to derive duration from distance.\n * Mirrors `DEFAULT_CAR_SPEED_KMH` from `tempest-fastapi-sdk`.\n */\nexport const DEFAULT_CAR_SPEED_KMH = 50.0;\n\n/**\n * Per-mode multipliers applied to the car duration. Mirrors\n * `DEFAULT_MODE_DURATION_FACTORS` from `tempest-fastapi-sdk` — motorcycles are\n * a touch faster, buses considerably slower (stops + dedicated lanes).\n */\nexport const DEFAULT_MODE_DURATION_FACTORS: Record<TravelMode, number> = {\n car: 1.0,\n motorcycle: 0.95,\n bus: 1.6,\n};\n\n/**\n * Look up the duration multiplier for a travel mode, falling back to `1.0`\n * for unknown modes. Mirrors `duration_factor` from `tempest-fastapi-sdk`.\n *\n * @param mode - Travel mode.\n * @param factors - Optional override map (partial merges over the defaults).\n * @returns The multiplier for `mode`.\n */\nexport function durationFactor(\n mode: TravelMode,\n factors?: Partial<Record<TravelMode, number>>,\n): number {\n return factors?.[mode] ?? DEFAULT_MODE_DURATION_FACTORS[mode] ?? 1.0;\n}\n\n/** Options for {@link estimateTravel}. */\nexport interface EstimateTravelOptions {\n /** Distance multiplier over the great-circle line. Default: `1.3`. */\n circuityFactor?: number;\n /** Average car speed in km/h. Default: `50`. */\n carSpeedKmh?: number;\n /** Per-mode duration multipliers (merged over the defaults). */\n modeDurationFactors?: Partial<Record<TravelMode, number>>;\n}\n\n/**\n * Offline travel estimate between two coordinates. No network — distance comes\n * from {@link haversineKm} scaled by circuity, duration from a mode-adjusted\n * average speed. Mirrors `estimate_travel` from `tempest-fastapi-sdk`.\n *\n * @param origin - Start coordinate.\n * @param destination - End coordinate.\n * @param mode - Travel mode. Default: `\"car\"`.\n * @param options - Tuning knobs (circuity, speed, per-mode factors).\n * @returns A `\"heuristic\"` {@link TravelEstimate}.\n * @throws {RangeError} If `carSpeedKmh <= 0` or `circuityFactor <= 0`.\n *\n * @example\n * estimateTravel(\n * { latitude: -23.5505, longitude: -46.6333 },\n * { latitude: -23.5629, longitude: -46.6544 },\n * \"car\",\n * ); // { mode: \"car\", distance_km: …, duration_minutes: …, source: \"heuristic\" }\n */\nexport function estimateTravel(\n origin: Coordinate,\n destination: Coordinate,\n mode: TravelMode = \"car\",\n options: EstimateTravelOptions = {},\n): TravelEstimate {\n const {\n circuityFactor = DEFAULT_CIRCUITY_FACTOR,\n carSpeedKmh = DEFAULT_CAR_SPEED_KMH,\n modeDurationFactors,\n } = options;\n\n if (carSpeedKmh <= 0) {\n throw new RangeError(\"carSpeedKmh must be greater than 0\");\n }\n if (circuityFactor <= 0) {\n throw new RangeError(\"circuityFactor must be greater than 0\");\n }\n\n const distanceKm = haversineKm(origin, destination) * circuityFactor;\n const carMinutes = (distanceKm / carSpeedKmh) * 60.0;\n const durationMinutes = carMinutes * durationFactor(mode, modeDurationFactors);\n\n return {\n mode,\n distance_km: distanceKm,\n duration_minutes: durationMinutes,\n source: \"heuristic\",\n };\n}\n"],"names":["DEFAULT_CIRCUITY_FACTOR","DEFAULT_CAR_SPEED_KMH","DEFAULT_MODE_DURATION_FACTORS","durationFactor","mode","factors","estimateTravel","origin","destination","options","circuityFactor","carSpeedKmh","modeDurationFactors","distanceKm","haversineKm","durationMinutes"],"mappings":";AAOO,MAAMA,IAA0B,KAM1BC,IAAwB,IAOxBC,IAA4D;AAAA,EACrE,KAAK;AAAA,EACL,YAAY;AAAA,EACZ,KAAK;AACT;AAUO,SAASC,EACZC,GACAC,GACM;AACN,SAAOA,IAAUD,CAAI,KAAKF,EAA8BE,CAAI,KAAK;AACrE;AA+BO,SAASE,EACZC,GACAC,GACAJ,IAAmB,OACnBK,IAAiC,IACnB;AACd,QAAM;AAAA,IACF,gBAAAC,IAAiBV;AAAA,IACjB,aAAAW,IAAcV;AAAA,IACd,qBAAAW;AAAA,EAAA,IACAH;AAEJ,MAAIE,KAAe;AACf,UAAM,IAAI,WAAW,oCAAoC;AAE7D,MAAID,KAAkB;AAClB,UAAM,IAAI,WAAW,uCAAuC;AAGhE,QAAMG,IAAaC,EAAYP,GAAQC,CAAW,IAAIE,GAEhDK,IADcF,IAAaF,IAAe,KACXR,EAAeC,GAAMQ,CAAmB;AAE7E,SAAO;AAAA,IACH,MAAAR;AAAA,IACA,aAAaS;AAAA,IACb,kBAAkBE;AAAA,IAClB,QAAQ;AAAA,EAAA;AAEhB;"}
@@ -0,0 +1,2 @@
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const L=require("react/jsx-runtime"),c=require("react"),p=require("./bounds.cjs");function x({points:t,current:o,tileUrl:s,tileAttribution:f,strokeColor:i}){const l=c.useRef(null),[g,b]=c.useState(null);return c.useEffect(()=>{let e=null,n=!1;return import("leaflet").then(m=>{if(n||!l.current)return;const r=m.default??m;e=r.map(l.current,{attributionControl:!0}),r.tileLayer(s,{attribution:f??"",maxZoom:19}).addTo(e);const u=t.map(h=>[h.latitude,h.longitude]);u.length>0&&(r.polyline(u,{color:i??"#2563eb",weight:4}).addTo(e),r.circleMarker(u[0],{radius:6,color:"#16a34a"}).addTo(e));const d=o??t[t.length-1];d&&r.circleMarker([d.latitude,d.longitude],{radius:6,color:i??"#2563eb"}).addTo(e);const a=p.boundingBox(o?[...t,o]:[...t]);a?e.fitBounds([[a.minLatitude,a.minLongitude],[a.maxLatitude,a.maxLongitude]],{padding:[24,24]}):e.setView([0,0],2)}).catch(()=>{n||b("Leaflet não encontrado. Instale `leaflet` para usar tiles, ou remova `tileUrl` para o plot SVG.")}),()=>{n=!0,e?.remove()}},[t,o,s,f,i]),g?L.jsx("div",{style:{padding:16,fontSize:13,color:"var(--tempest-danger-fg)"},children:g}):L.jsx("div",{ref:l,style:{width:"100%",height:"100%"}})}exports.LeafletTrajectory=x;
2
+ //# sourceMappingURL=leaflet-map.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"leaflet-map.cjs","sources":["../../src/geo/leaflet-map.tsx"],"sourcesContent":["import { useEffect, useRef, useState } from \"react\";\nimport { boundingBox } from \"./bounds\";\nimport type { Coordinate } from \"./types\";\n\n/**\n * Minimal structural typing for the slice of the Leaflet API this layer uses.\n * Declared locally so the SDK type-checks and builds even when `leaflet` (an\n * optional peer) is not installed — the real module is loaded at runtime.\n */\ninterface LeafletMapInstance {\n setView: (center: [number, number], zoom: number) => LeafletMapInstance;\n fitBounds: (bounds: [[number, number], [number, number]], options?: unknown) => void;\n remove: () => void;\n}\ninterface LeafletLayer {\n addTo: (map: LeafletMapInstance) => LeafletLayer;\n}\ninterface LeafletModule {\n map: (el: HTMLElement, options?: unknown) => LeafletMapInstance;\n tileLayer: (url: string, options?: unknown) => LeafletLayer;\n polyline: (latlngs: [number, number][], options?: unknown) => LeafletLayer;\n circleMarker: (latlng: [number, number], options?: unknown) => LeafletLayer;\n}\n\nexport interface LeafletTrajectoryProps {\n points: readonly Coordinate[];\n current?: Coordinate | null;\n tileUrl: string;\n tileAttribution?: string;\n strokeColor?: string;\n}\n\n/**\n * Leaflet-backed tile layer for {@link TrajectoryMap}. Loaded lazily and only\n * when a `tileUrl` is provided. Requires `leaflet` to be installed by the app\n * (optional peer dependency) plus its stylesheet imported once:\n * `import \"leaflet/dist/leaflet.css\"`.\n */\nexport function LeafletTrajectory({\n points,\n current,\n tileUrl,\n tileAttribution,\n strokeColor,\n}: LeafletTrajectoryProps) {\n const nodeRef = useRef<HTMLDivElement>(null);\n const [error, setError] = useState<string | null>(null);\n\n useEffect(() => {\n let map: LeafletMapInstance | null = null;\n let cancelled = false;\n\n const specifier = \"leaflet\";\n import(/* @vite-ignore */ specifier)\n .then((mod: { default?: LeafletModule } & LeafletModule) => {\n if (cancelled || !nodeRef.current) return;\n const L: LeafletModule = mod.default ?? mod;\n\n map = L.map(nodeRef.current, { attributionControl: true });\n L.tileLayer(tileUrl, {\n attribution: tileAttribution ?? \"\",\n maxZoom: 19,\n }).addTo(map);\n\n const latlngs = points.map((p): [number, number] => [p.latitude, p.longitude]);\n if (latlngs.length > 0) {\n L.polyline(latlngs, {\n color: strokeColor ?? \"#2563eb\",\n weight: 4,\n }).addTo(map);\n L.circleMarker(latlngs[0], { radius: 6, color: \"#16a34a\" }).addTo(map);\n }\n\n const marker = current ?? points[points.length - 1];\n if (marker) {\n L.circleMarker([marker.latitude, marker.longitude], {\n radius: 6,\n color: strokeColor ?? \"#2563eb\",\n }).addTo(map);\n }\n\n const box = boundingBox(current ? [...points, current] : [...points]);\n if (box) {\n map.fitBounds(\n [\n [box.minLatitude, box.minLongitude],\n [box.maxLatitude, box.maxLongitude],\n ],\n { padding: [24, 24] },\n );\n } else {\n map.setView([0, 0], 2);\n }\n })\n .catch(() => {\n if (!cancelled) {\n setError(\n \"Leaflet não encontrado. Instale `leaflet` para usar tiles, ou remova `tileUrl` para o plot SVG.\",\n );\n }\n });\n\n return () => {\n cancelled = true;\n map?.remove();\n };\n }, [points, current, tileUrl, tileAttribution, strokeColor]);\n\n if (error) {\n return (\n <div style={{ padding: 16, fontSize: 13, color: \"var(--tempest-danger-fg)\" }}>\n {error}\n </div>\n );\n }\n\n return <div ref={nodeRef} style={{ width: \"100%\", height: \"100%\" }} />;\n}\n"],"names":["LeafletTrajectory","points","current","tileUrl","tileAttribution","strokeColor","nodeRef","useRef","error","setError","useState","useEffect","map","cancelled","mod","L","latlngs","p","marker","box","boundingBox","jsx"],"mappings":"kKAsCO,SAASA,EAAkB,CAC9B,OAAAC,EACA,QAAAC,EACA,QAAAC,EACA,gBAAAC,EACA,YAAAC,CACJ,EAA2B,CACvB,MAAMC,EAAUC,EAAAA,OAAuB,IAAI,EACrC,CAACC,EAAOC,CAAQ,EAAIC,EAAAA,SAAwB,IAAI,EA8DtD,OA5DAC,EAAAA,UAAU,IAAM,CACZ,IAAIC,EAAiC,KACjCC,EAAY,GAGhB,cADkB,WAEb,KAAMC,GAAqD,CACxD,GAAID,GAAa,CAACP,EAAQ,QAAS,OACnC,MAAMS,EAAmBD,EAAI,SAAWA,EAExCF,EAAMG,EAAE,IAAIT,EAAQ,QAAS,CAAE,mBAAoB,GAAM,EACzDS,EAAE,UAAUZ,EAAS,CACjB,YAAaC,GAAmB,GAChC,QAAS,EAAA,CACZ,EAAE,MAAMQ,CAAG,EAEZ,MAAMI,EAAUf,EAAO,IAAKgB,GAAwB,CAACA,EAAE,SAAUA,EAAE,SAAS,CAAC,EACzED,EAAQ,OAAS,IACjBD,EAAE,SAASC,EAAS,CAChB,MAAOX,GAAe,UACtB,OAAQ,CAAA,CACX,EAAE,MAAMO,CAAG,EACZG,EAAE,aAAaC,EAAQ,CAAC,EAAG,CAAE,OAAQ,EAAG,MAAO,SAAA,CAAW,EAAE,MAAMJ,CAAG,GAGzE,MAAMM,EAAShB,GAAWD,EAAOA,EAAO,OAAS,CAAC,EAC9CiB,GACAH,EAAE,aAAa,CAACG,EAAO,SAAUA,EAAO,SAAS,EAAG,CAChD,OAAQ,EACR,MAAOb,GAAe,SAAA,CACzB,EAAE,MAAMO,CAAG,EAGhB,MAAMO,EAAMC,cAAYlB,EAAU,CAAC,GAAGD,EAAQC,CAAO,EAAI,CAAC,GAAGD,CAAM,CAAC,EAChEkB,EACAP,EAAI,UACA,CACI,CAACO,EAAI,YAAaA,EAAI,YAAY,EAClC,CAACA,EAAI,YAAaA,EAAI,YAAY,CAAA,EAEtC,CAAE,QAAS,CAAC,GAAI,EAAE,CAAA,CAAE,EAGxBP,EAAI,QAAQ,CAAC,EAAG,CAAC,EAAG,CAAC,CAE7B,CAAC,EACA,MAAM,IAAM,CACJC,GACDJ,EACI,iGAAA,CAGZ,CAAC,EAEE,IAAM,CACTI,EAAY,GACZD,GAAK,OAAA,CACT,CACJ,EAAG,CAACX,EAAQC,EAASC,EAASC,EAAiBC,CAAW,CAAC,EAEvDG,EAEIa,EAAAA,IAAC,MAAA,CAAI,MAAO,CAAE,QAAS,GAAI,SAAU,GAAI,MAAO,0BAAA,EAC3C,SAAAb,CAAA,CACL,EAIDa,MAAC,MAAA,CAAI,IAAKf,EAAS,MAAO,CAAE,MAAO,OAAQ,OAAQ,MAAA,CAAO,CAAG,CACxE"}
@@ -0,0 +1,51 @@
1
+ import { jsx as p } from "react/jsx-runtime";
2
+ import { useRef as L, useState as x, useEffect as b } from "react";
3
+ import { boundingBox as v } from "./bounds.js";
4
+ function j({
5
+ points: t,
6
+ current: o,
7
+ tileUrl: f,
8
+ tileAttribution: c,
9
+ strokeColor: i
10
+ }) {
11
+ const l = L(null), [s, h] = x(null);
12
+ return b(() => {
13
+ let e = null, n = !1;
14
+ return import("leaflet").then((m) => {
15
+ if (n || !l.current) return;
16
+ const r = m.default ?? m;
17
+ e = r.map(l.current, { attributionControl: !0 }), r.tileLayer(f, {
18
+ attribution: c ?? "",
19
+ maxZoom: 19
20
+ }).addTo(e);
21
+ const d = t.map((g) => [g.latitude, g.longitude]);
22
+ d.length > 0 && (r.polyline(d, {
23
+ color: i ?? "#2563eb",
24
+ weight: 4
25
+ }).addTo(e), r.circleMarker(d[0], { radius: 6, color: "#16a34a" }).addTo(e));
26
+ const u = o ?? t[t.length - 1];
27
+ u && r.circleMarker([u.latitude, u.longitude], {
28
+ radius: 6,
29
+ color: i ?? "#2563eb"
30
+ }).addTo(e);
31
+ const a = v(o ? [...t, o] : [...t]);
32
+ a ? e.fitBounds(
33
+ [
34
+ [a.minLatitude, a.minLongitude],
35
+ [a.maxLatitude, a.maxLongitude]
36
+ ],
37
+ { padding: [24, 24] }
38
+ ) : e.setView([0, 0], 2);
39
+ }).catch(() => {
40
+ n || h(
41
+ "Leaflet não encontrado. Instale `leaflet` para usar tiles, ou remova `tileUrl` para o plot SVG."
42
+ );
43
+ }), () => {
44
+ n = !0, e?.remove();
45
+ };
46
+ }, [t, o, f, c, i]), s ? /* @__PURE__ */ p("div", { style: { padding: 16, fontSize: 13, color: "var(--tempest-danger-fg)" }, children: s }) : /* @__PURE__ */ p("div", { ref: l, style: { width: "100%", height: "100%" } });
47
+ }
48
+ export {
49
+ j as LeafletTrajectory
50
+ };
51
+ //# sourceMappingURL=leaflet-map.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"leaflet-map.js","sources":["../../src/geo/leaflet-map.tsx"],"sourcesContent":["import { useEffect, useRef, useState } from \"react\";\nimport { boundingBox } from \"./bounds\";\nimport type { Coordinate } from \"./types\";\n\n/**\n * Minimal structural typing for the slice of the Leaflet API this layer uses.\n * Declared locally so the SDK type-checks and builds even when `leaflet` (an\n * optional peer) is not installed — the real module is loaded at runtime.\n */\ninterface LeafletMapInstance {\n setView: (center: [number, number], zoom: number) => LeafletMapInstance;\n fitBounds: (bounds: [[number, number], [number, number]], options?: unknown) => void;\n remove: () => void;\n}\ninterface LeafletLayer {\n addTo: (map: LeafletMapInstance) => LeafletLayer;\n}\ninterface LeafletModule {\n map: (el: HTMLElement, options?: unknown) => LeafletMapInstance;\n tileLayer: (url: string, options?: unknown) => LeafletLayer;\n polyline: (latlngs: [number, number][], options?: unknown) => LeafletLayer;\n circleMarker: (latlng: [number, number], options?: unknown) => LeafletLayer;\n}\n\nexport interface LeafletTrajectoryProps {\n points: readonly Coordinate[];\n current?: Coordinate | null;\n tileUrl: string;\n tileAttribution?: string;\n strokeColor?: string;\n}\n\n/**\n * Leaflet-backed tile layer for {@link TrajectoryMap}. Loaded lazily and only\n * when a `tileUrl` is provided. Requires `leaflet` to be installed by the app\n * (optional peer dependency) plus its stylesheet imported once:\n * `import \"leaflet/dist/leaflet.css\"`.\n */\nexport function LeafletTrajectory({\n points,\n current,\n tileUrl,\n tileAttribution,\n strokeColor,\n}: LeafletTrajectoryProps) {\n const nodeRef = useRef<HTMLDivElement>(null);\n const [error, setError] = useState<string | null>(null);\n\n useEffect(() => {\n let map: LeafletMapInstance | null = null;\n let cancelled = false;\n\n const specifier = \"leaflet\";\n import(/* @vite-ignore */ specifier)\n .then((mod: { default?: LeafletModule } & LeafletModule) => {\n if (cancelled || !nodeRef.current) return;\n const L: LeafletModule = mod.default ?? mod;\n\n map = L.map(nodeRef.current, { attributionControl: true });\n L.tileLayer(tileUrl, {\n attribution: tileAttribution ?? \"\",\n maxZoom: 19,\n }).addTo(map);\n\n const latlngs = points.map((p): [number, number] => [p.latitude, p.longitude]);\n if (latlngs.length > 0) {\n L.polyline(latlngs, {\n color: strokeColor ?? \"#2563eb\",\n weight: 4,\n }).addTo(map);\n L.circleMarker(latlngs[0], { radius: 6, color: \"#16a34a\" }).addTo(map);\n }\n\n const marker = current ?? points[points.length - 1];\n if (marker) {\n L.circleMarker([marker.latitude, marker.longitude], {\n radius: 6,\n color: strokeColor ?? \"#2563eb\",\n }).addTo(map);\n }\n\n const box = boundingBox(current ? [...points, current] : [...points]);\n if (box) {\n map.fitBounds(\n [\n [box.minLatitude, box.minLongitude],\n [box.maxLatitude, box.maxLongitude],\n ],\n { padding: [24, 24] },\n );\n } else {\n map.setView([0, 0], 2);\n }\n })\n .catch(() => {\n if (!cancelled) {\n setError(\n \"Leaflet não encontrado. Instale `leaflet` para usar tiles, ou remova `tileUrl` para o plot SVG.\",\n );\n }\n });\n\n return () => {\n cancelled = true;\n map?.remove();\n };\n }, [points, current, tileUrl, tileAttribution, strokeColor]);\n\n if (error) {\n return (\n <div style={{ padding: 16, fontSize: 13, color: \"var(--tempest-danger-fg)\" }}>\n {error}\n </div>\n );\n }\n\n return <div ref={nodeRef} style={{ width: \"100%\", height: \"100%\" }} />;\n}\n"],"names":["LeafletTrajectory","points","current","tileUrl","tileAttribution","strokeColor","nodeRef","useRef","error","setError","useState","useEffect","map","cancelled","mod","L","latlngs","p","marker","box","boundingBox","jsx"],"mappings":";;;AAsCO,SAASA,EAAkB;AAAA,EAC9B,QAAAC;AAAA,EACA,SAAAC;AAAA,EACA,SAAAC;AAAA,EACA,iBAAAC;AAAA,EACA,aAAAC;AACJ,GAA2B;AACvB,QAAMC,IAAUC,EAAuB,IAAI,GACrC,CAACC,GAAOC,CAAQ,IAAIC,EAAwB,IAAI;AA8DtD,SA5DAC,EAAU,MAAM;AACZ,QAAIC,IAAiC,MACjCC,IAAY;AAGhB,kBADkB,WAEb,KAAK,CAACC,MAAqD;AACxD,UAAID,KAAa,CAACP,EAAQ,QAAS;AACnC,YAAMS,IAAmBD,EAAI,WAAWA;AAExC,MAAAF,IAAMG,EAAE,IAAIT,EAAQ,SAAS,EAAE,oBAAoB,IAAM,GACzDS,EAAE,UAAUZ,GAAS;AAAA,QACjB,aAAaC,KAAmB;AAAA,QAChC,SAAS;AAAA,MAAA,CACZ,EAAE,MAAMQ,CAAG;AAEZ,YAAMI,IAAUf,EAAO,IAAI,CAACgB,MAAwB,CAACA,EAAE,UAAUA,EAAE,SAAS,CAAC;AAC7E,MAAID,EAAQ,SAAS,MACjBD,EAAE,SAASC,GAAS;AAAA,QAChB,OAAOX,KAAe;AAAA,QACtB,QAAQ;AAAA,MAAA,CACX,EAAE,MAAMO,CAAG,GACZG,EAAE,aAAaC,EAAQ,CAAC,GAAG,EAAE,QAAQ,GAAG,OAAO,UAAA,CAAW,EAAE,MAAMJ,CAAG;AAGzE,YAAMM,IAAShB,KAAWD,EAAOA,EAAO,SAAS,CAAC;AAClD,MAAIiB,KACAH,EAAE,aAAa,CAACG,EAAO,UAAUA,EAAO,SAAS,GAAG;AAAA,QAChD,QAAQ;AAAA,QACR,OAAOb,KAAe;AAAA,MAAA,CACzB,EAAE,MAAMO,CAAG;AAGhB,YAAMO,IAAMC,EAAYlB,IAAU,CAAC,GAAGD,GAAQC,CAAO,IAAI,CAAC,GAAGD,CAAM,CAAC;AACpE,MAAIkB,IACAP,EAAI;AAAA,QACA;AAAA,UACI,CAACO,EAAI,aAAaA,EAAI,YAAY;AAAA,UAClC,CAACA,EAAI,aAAaA,EAAI,YAAY;AAAA,QAAA;AAAA,QAEtC,EAAE,SAAS,CAAC,IAAI,EAAE,EAAA;AAAA,MAAE,IAGxBP,EAAI,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC;AAAA,IAE7B,CAAC,EACA,MAAM,MAAM;AACT,MAAKC,KACDJ;AAAA,QACI;AAAA,MAAA;AAAA,IAGZ,CAAC,GAEE,MAAM;AACT,MAAAI,IAAY,IACZD,GAAK,OAAA;AAAA,IACT;AAAA,EACJ,GAAG,CAACX,GAAQC,GAASC,GAASC,GAAiBC,CAAW,CAAC,GAEvDG,IAEI,gBAAAa,EAAC,OAAA,EAAI,OAAO,EAAE,SAAS,IAAI,UAAU,IAAI,OAAO,2BAAA,GAC3C,UAAAb,EAAA,CACL,IAID,gBAAAa,EAAC,OAAA,EAAI,KAAKf,GAAS,OAAO,EAAE,OAAO,QAAQ,QAAQ,OAAA,EAAO,CAAG;AACxE;"}
@@ -0,0 +1,2 @@
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const g=require("./types.cjs"),s=85.05112878;function i(t){const n=Math.max(-s,Math.min(s,g.clampLatitude(t.latitude)))*Math.PI/180,c=(t.longitude+180)/360,e=(1-Math.log(Math.tan(n)+1/Math.cos(n))/Math.PI)/2;return{x:c,y:e}}function j(t){const o=t.x*360-180,n=Math.PI*(1-2*t.y);return{latitude:Math.atan(Math.sinh(n))*180/Math.PI,longitude:o}}function y(t,o,n,c={}){const{padding:e=16}=c,r=i({latitude:t.maxLatitude,longitude:t.minLongitude}),u=i({latitude:t.minLatitude,longitude:t.maxLongitude}),M=u.x-r.x||Number.EPSILON,l=u.y-r.y||Number.EPSILON,d=Math.max(1,o-e*2),h=Math.max(1,n-e*2),a=Math.min(d/M,h/l),p=e+(d-M*a)/2,x=e+(h-l*a)/2;return{project:f=>{const m=i(f);return{x:p+(m.x-r.x)*a,y:x+(m.y-r.y)*a}},scale:a,width:o,height:n}}exports.MERCATOR_MAX_LATITUDE=s;exports.fitProjection=y;exports.projectMercator=i;exports.unprojectMercator=j;
2
+ //# sourceMappingURL=projection.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"projection.cjs","sources":["../../src/geo/projection.ts"],"sourcesContent":["import { clampLatitude } from \"./types\";\nimport type { Coordinate, GeoBounds } from \"./types\";\n\n/**\n * A point projected onto the unit Web Mercator plane. Both axes are in `[0, 1]`\n * — `x` grows east, `y` grows south (screen convention).\n */\nexport interface MercatorPoint {\n x: number;\n y: number;\n}\n\n/** A pixel coordinate inside the plotting viewport. */\nexport interface PixelPoint {\n x: number;\n y: number;\n}\n\n/**\n * Web Mercator (EPSG:3857) latitude clamp. Latitudes beyond this diverge to\n * infinity in the projection, so tile maps cap here.\n */\nexport const MERCATOR_MAX_LATITUDE = 85.05112878;\n\n/**\n * Project a geographic coordinate onto the unit Web Mercator plane. This is the\n * same projection tile servers use, so a self-hosted tile layer and the\n * tile-free SVG plot line up pixel-for-pixel.\n *\n * @param coord - Coordinate to project.\n * @returns `{ x, y }` in `[0, 1]`.\n */\nexport function projectMercator(coord: Coordinate): MercatorPoint {\n const lat = Math.max(\n -MERCATOR_MAX_LATITUDE,\n Math.min(MERCATOR_MAX_LATITUDE, clampLatitude(coord.latitude)),\n );\n const latRad = (lat * Math.PI) / 180;\n const x = (coord.longitude + 180) / 360;\n const y = (1 - Math.log(Math.tan(latRad) + 1 / Math.cos(latRad)) / Math.PI) / 2;\n return { x, y };\n}\n\n/**\n * Inverse of {@link projectMercator}: recover a coordinate from a unit-plane\n * point.\n *\n * @param point - `{ x, y }` in `[0, 1]`.\n * @returns The geographic coordinate.\n */\nexport function unprojectMercator(point: MercatorPoint): Coordinate {\n const longitude = point.x * 360 - 180;\n const n = Math.PI * (1 - 2 * point.y);\n const latitude = (Math.atan(Math.sinh(n)) * 180) / Math.PI;\n return { latitude, longitude };\n}\n\n/** A ready-to-use mapping from coordinates to viewport pixels. */\nexport interface FittedProjection {\n /** Project a coordinate to a pixel inside the viewport. */\n project: (coord: Coordinate) => PixelPoint;\n /** Uniform scale (unit-plane → pixels) actually used, after aspect fit. */\n scale: number;\n /** Viewport width in pixels. */\n width: number;\n /** Viewport height in pixels. */\n height: number;\n}\n\n/** Options for {@link fitProjection}. */\nexport interface FitProjectionOptions {\n /** Inner padding in pixels kept clear on every edge. Default: `16`. */\n padding?: number;\n}\n\n/**\n * Build a projection that fits `bounds` into a `width × height` viewport while\n * preserving aspect ratio (uniform scale, centered). This is what powers the\n * tile-free trajectory plot: project the bounds, scale to the SVG box, keep\n * shapes undistorted.\n *\n * @param bounds - Geographic extent to fit.\n * @param width - Viewport width in pixels.\n * @param height - Viewport height in pixels.\n * @param options - Padding tuning.\n * @returns A {@link FittedProjection} with a `project(coord)` mapper.\n */\nexport function fitProjection(\n bounds: GeoBounds,\n width: number,\n height: number,\n options: FitProjectionOptions = {},\n): FittedProjection {\n const { padding = 16 } = options;\n\n const topLeft = projectMercator({\n latitude: bounds.maxLatitude,\n longitude: bounds.minLongitude,\n });\n const bottomRight = projectMercator({\n latitude: bounds.minLatitude,\n longitude: bounds.maxLongitude,\n });\n\n const spanX = bottomRight.x - topLeft.x || Number.EPSILON;\n const spanY = bottomRight.y - topLeft.y || Number.EPSILON;\n\n const innerWidth = Math.max(1, width - padding * 2);\n const innerHeight = Math.max(1, height - padding * 2);\n\n // Uniform scale keeps the trajectory undistorted; fit the tighter axis.\n const scale = Math.min(innerWidth / spanX, innerHeight / spanY);\n\n // Center the projected content within the padded box.\n const offsetX = padding + (innerWidth - spanX * scale) / 2;\n const offsetY = padding + (innerHeight - spanY * scale) / 2;\n\n const project = (coord: Coordinate): PixelPoint => {\n const projected = projectMercator(coord);\n return {\n x: offsetX + (projected.x - topLeft.x) * scale,\n y: offsetY + (projected.y - topLeft.y) * scale,\n };\n };\n\n return { project, scale, width, height };\n}\n"],"names":["MERCATOR_MAX_LATITUDE","projectMercator","coord","latRad","clampLatitude","x","y","unprojectMercator","point","longitude","fitProjection","bounds","width","height","options","padding","topLeft","bottomRight","spanX","spanY","innerWidth","innerHeight","scale","offsetX","offsetY","projected"],"mappings":"+GAsBaA,EAAwB,YAU9B,SAASC,EAAgBC,EAAkC,CAK9D,MAAMC,EAJM,KAAK,IACb,CAACH,EACD,KAAK,IAAIA,EAAuBI,EAAAA,cAAcF,EAAM,QAAQ,CAAC,CAAA,EAE3C,KAAK,GAAM,IAC3BG,GAAKH,EAAM,UAAY,KAAO,IAC9BI,GAAK,EAAI,KAAK,IAAI,KAAK,IAAIH,CAAM,EAAI,EAAI,KAAK,IAAIA,CAAM,CAAC,EAAI,KAAK,IAAM,EAC9E,MAAO,CAAE,EAAAE,EAAG,EAAAC,CAAA,CAChB,CASO,SAASC,EAAkBC,EAAkC,CAChE,MAAMC,EAAYD,EAAM,EAAI,IAAM,IAC5B,EAAI,KAAK,IAAM,EAAI,EAAIA,EAAM,GAEnC,MAAO,CAAE,SADS,KAAK,KAAK,KAAK,KAAK,CAAC,CAAC,EAAI,IAAO,KAAK,GACrC,UAAAC,CAAA,CACvB,CAgCO,SAASC,EACZC,EACAC,EACAC,EACAC,EAAgC,CAAA,EAChB,CAChB,KAAM,CAAE,QAAAC,EAAU,EAAA,EAAOD,EAEnBE,EAAUf,EAAgB,CAC5B,SAAUU,EAAO,YACjB,UAAWA,EAAO,YAAA,CACrB,EACKM,EAAchB,EAAgB,CAChC,SAAUU,EAAO,YACjB,UAAWA,EAAO,YAAA,CACrB,EAEKO,EAAQD,EAAY,EAAID,EAAQ,GAAK,OAAO,QAC5CG,EAAQF,EAAY,EAAID,EAAQ,GAAK,OAAO,QAE5CI,EAAa,KAAK,IAAI,EAAGR,EAAQG,EAAU,CAAC,EAC5CM,EAAc,KAAK,IAAI,EAAGR,EAASE,EAAU,CAAC,EAG9CO,EAAQ,KAAK,IAAIF,EAAaF,EAAOG,EAAcF,CAAK,EAGxDI,EAAUR,GAAWK,EAAaF,EAAQI,GAAS,EACnDE,EAAUT,GAAWM,EAAcF,EAAQG,GAAS,EAU1D,MAAO,CAAE,QARQpB,GAAkC,CAC/C,MAAMuB,EAAYxB,EAAgBC,CAAK,EACvC,MAAO,CACH,EAAGqB,GAAWE,EAAU,EAAIT,EAAQ,GAAKM,EACzC,EAAGE,GAAWC,EAAU,EAAIT,EAAQ,GAAKM,CAAA,CAEjD,EAEkB,MAAAA,EAAO,MAAAV,EAAO,OAAAC,CAAA,CACpC"}
@@ -0,0 +1,36 @@
1
+ import { clampLatitude as g } from "./types.js";
2
+ const d = 85.05112878;
3
+ function r(t) {
4
+ const n = Math.max(
5
+ -d,
6
+ Math.min(d, g(t.latitude))
7
+ ) * Math.PI / 180, c = (t.longitude + 180) / 360, o = (1 - Math.log(Math.tan(n) + 1 / Math.cos(n)) / Math.PI) / 2;
8
+ return { x: c, y: o };
9
+ }
10
+ function I(t) {
11
+ const a = t.x * 360 - 180, n = Math.PI * (1 - 2 * t.y);
12
+ return { latitude: Math.atan(Math.sinh(n)) * 180 / Math.PI, longitude: a };
13
+ }
14
+ function P(t, a, n, c = {}) {
15
+ const { padding: o = 16 } = c, i = r({
16
+ latitude: t.maxLatitude,
17
+ longitude: t.minLongitude
18
+ }), s = r({
19
+ latitude: t.minLatitude,
20
+ longitude: t.maxLongitude
21
+ }), u = s.x - i.x || Number.EPSILON, M = s.y - i.y || Number.EPSILON, h = Math.max(1, a - o * 2), l = Math.max(1, n - o * 2), e = Math.min(h / u, l / M), x = o + (h - u * e) / 2, p = o + (l - M * e) / 2;
22
+ return { project: (f) => {
23
+ const m = r(f);
24
+ return {
25
+ x: x + (m.x - i.x) * e,
26
+ y: p + (m.y - i.y) * e
27
+ };
28
+ }, scale: e, width: a, height: n };
29
+ }
30
+ export {
31
+ d as MERCATOR_MAX_LATITUDE,
32
+ P as fitProjection,
33
+ r as projectMercator,
34
+ I as unprojectMercator
35
+ };
36
+ //# sourceMappingURL=projection.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"projection.js","sources":["../../src/geo/projection.ts"],"sourcesContent":["import { clampLatitude } from \"./types\";\nimport type { Coordinate, GeoBounds } from \"./types\";\n\n/**\n * A point projected onto the unit Web Mercator plane. Both axes are in `[0, 1]`\n * — `x` grows east, `y` grows south (screen convention).\n */\nexport interface MercatorPoint {\n x: number;\n y: number;\n}\n\n/** A pixel coordinate inside the plotting viewport. */\nexport interface PixelPoint {\n x: number;\n y: number;\n}\n\n/**\n * Web Mercator (EPSG:3857) latitude clamp. Latitudes beyond this diverge to\n * infinity in the projection, so tile maps cap here.\n */\nexport const MERCATOR_MAX_LATITUDE = 85.05112878;\n\n/**\n * Project a geographic coordinate onto the unit Web Mercator plane. This is the\n * same projection tile servers use, so a self-hosted tile layer and the\n * tile-free SVG plot line up pixel-for-pixel.\n *\n * @param coord - Coordinate to project.\n * @returns `{ x, y }` in `[0, 1]`.\n */\nexport function projectMercator(coord: Coordinate): MercatorPoint {\n const lat = Math.max(\n -MERCATOR_MAX_LATITUDE,\n Math.min(MERCATOR_MAX_LATITUDE, clampLatitude(coord.latitude)),\n );\n const latRad = (lat * Math.PI) / 180;\n const x = (coord.longitude + 180) / 360;\n const y = (1 - Math.log(Math.tan(latRad) + 1 / Math.cos(latRad)) / Math.PI) / 2;\n return { x, y };\n}\n\n/**\n * Inverse of {@link projectMercator}: recover a coordinate from a unit-plane\n * point.\n *\n * @param point - `{ x, y }` in `[0, 1]`.\n * @returns The geographic coordinate.\n */\nexport function unprojectMercator(point: MercatorPoint): Coordinate {\n const longitude = point.x * 360 - 180;\n const n = Math.PI * (1 - 2 * point.y);\n const latitude = (Math.atan(Math.sinh(n)) * 180) / Math.PI;\n return { latitude, longitude };\n}\n\n/** A ready-to-use mapping from coordinates to viewport pixels. */\nexport interface FittedProjection {\n /** Project a coordinate to a pixel inside the viewport. */\n project: (coord: Coordinate) => PixelPoint;\n /** Uniform scale (unit-plane → pixels) actually used, after aspect fit. */\n scale: number;\n /** Viewport width in pixels. */\n width: number;\n /** Viewport height in pixels. */\n height: number;\n}\n\n/** Options for {@link fitProjection}. */\nexport interface FitProjectionOptions {\n /** Inner padding in pixels kept clear on every edge. Default: `16`. */\n padding?: number;\n}\n\n/**\n * Build a projection that fits `bounds` into a `width × height` viewport while\n * preserving aspect ratio (uniform scale, centered). This is what powers the\n * tile-free trajectory plot: project the bounds, scale to the SVG box, keep\n * shapes undistorted.\n *\n * @param bounds - Geographic extent to fit.\n * @param width - Viewport width in pixels.\n * @param height - Viewport height in pixels.\n * @param options - Padding tuning.\n * @returns A {@link FittedProjection} with a `project(coord)` mapper.\n */\nexport function fitProjection(\n bounds: GeoBounds,\n width: number,\n height: number,\n options: FitProjectionOptions = {},\n): FittedProjection {\n const { padding = 16 } = options;\n\n const topLeft = projectMercator({\n latitude: bounds.maxLatitude,\n longitude: bounds.minLongitude,\n });\n const bottomRight = projectMercator({\n latitude: bounds.minLatitude,\n longitude: bounds.maxLongitude,\n });\n\n const spanX = bottomRight.x - topLeft.x || Number.EPSILON;\n const spanY = bottomRight.y - topLeft.y || Number.EPSILON;\n\n const innerWidth = Math.max(1, width - padding * 2);\n const innerHeight = Math.max(1, height - padding * 2);\n\n // Uniform scale keeps the trajectory undistorted; fit the tighter axis.\n const scale = Math.min(innerWidth / spanX, innerHeight / spanY);\n\n // Center the projected content within the padded box.\n const offsetX = padding + (innerWidth - spanX * scale) / 2;\n const offsetY = padding + (innerHeight - spanY * scale) / 2;\n\n const project = (coord: Coordinate): PixelPoint => {\n const projected = projectMercator(coord);\n return {\n x: offsetX + (projected.x - topLeft.x) * scale,\n y: offsetY + (projected.y - topLeft.y) * scale,\n };\n };\n\n return { project, scale, width, height };\n}\n"],"names":["MERCATOR_MAX_LATITUDE","projectMercator","coord","latRad","clampLatitude","x","y","unprojectMercator","point","longitude","fitProjection","bounds","width","height","options","padding","topLeft","bottomRight","spanX","spanY","innerWidth","innerHeight","scale","offsetX","offsetY","projected"],"mappings":";AAsBO,MAAMA,IAAwB;AAU9B,SAASC,EAAgBC,GAAkC;AAK9D,QAAMC,IAJM,KAAK;AAAA,IACb,CAACH;AAAA,IACD,KAAK,IAAIA,GAAuBI,EAAcF,EAAM,QAAQ,CAAC;AAAA,EAAA,IAE3C,KAAK,KAAM,KAC3BG,KAAKH,EAAM,YAAY,OAAO,KAC9BI,KAAK,IAAI,KAAK,IAAI,KAAK,IAAIH,CAAM,IAAI,IAAI,KAAK,IAAIA,CAAM,CAAC,IAAI,KAAK,MAAM;AAC9E,SAAO,EAAE,GAAAE,GAAG,GAAAC,EAAA;AAChB;AASO,SAASC,EAAkBC,GAAkC;AAChE,QAAMC,IAAYD,EAAM,IAAI,MAAM,KAC5B,IAAI,KAAK,MAAM,IAAI,IAAIA,EAAM;AAEnC,SAAO,EAAE,UADS,KAAK,KAAK,KAAK,KAAK,CAAC,CAAC,IAAI,MAAO,KAAK,IACrC,WAAAC,EAAA;AACvB;AAgCO,SAASC,EACZC,GACAC,GACAC,GACAC,IAAgC,CAAA,GAChB;AAChB,QAAM,EAAE,SAAAC,IAAU,GAAA,IAAOD,GAEnBE,IAAUf,EAAgB;AAAA,IAC5B,UAAUU,EAAO;AAAA,IACjB,WAAWA,EAAO;AAAA,EAAA,CACrB,GACKM,IAAchB,EAAgB;AAAA,IAChC,UAAUU,EAAO;AAAA,IACjB,WAAWA,EAAO;AAAA,EAAA,CACrB,GAEKO,IAAQD,EAAY,IAAID,EAAQ,KAAK,OAAO,SAC5CG,IAAQF,EAAY,IAAID,EAAQ,KAAK,OAAO,SAE5CI,IAAa,KAAK,IAAI,GAAGR,IAAQG,IAAU,CAAC,GAC5CM,IAAc,KAAK,IAAI,GAAGR,IAASE,IAAU,CAAC,GAG9CO,IAAQ,KAAK,IAAIF,IAAaF,GAAOG,IAAcF,CAAK,GAGxDI,IAAUR,KAAWK,IAAaF,IAAQI,KAAS,GACnDE,IAAUT,KAAWM,IAAcF,IAAQG,KAAS;AAU1D,SAAO,EAAE,SARO,CAACpB,MAAkC;AAC/C,UAAMuB,IAAYxB,EAAgBC,CAAK;AACvC,WAAO;AAAA,MACH,GAAGqB,KAAWE,EAAU,IAAIT,EAAQ,KAAKM;AAAA,MACzC,GAAGE,KAAWC,EAAU,IAAIT,EAAQ,KAAKM;AAAA,IAAA;AAAA,EAEjD,GAEkB,OAAAA,GAAO,OAAAV,GAAO,QAAAC,EAAA;AACpC;"}
@@ -0,0 +1,2 @@
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const f=require("./estimate.cjs");function S(s){const{baseUrl:a,fetch:u=globalThis.fetch,modeDurationFactors:i}=s,d=a.replace(/\/+$/,"");return{async route(o,n,l={}){const c=l.mode??"car",m=`${o.longitude},${o.latitude};${n.longitude},${n.latitude}`,$=`${d}/route/v1/driving/${m}?overview=false`;let e;try{e=await(await u($)).json()}catch(r){throw new Error(`OSRM request failed: ${String(r)}`,{cause:r})}const t=e.routes?.[0];if(e.code!=="Ok"||!t)throw new Error(`OSRM returned no route (code: ${e.code??"unknown"})`);const w=t.distance/1e3,M=t.duration/60*f.durationFactor(c,i);return{mode:c,distance_km:w,duration_minutes:M,source:"osrm"}}}}exports.createOSRMBackend=S;
2
+ //# sourceMappingURL=routing.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"routing.cjs","sources":["../../src/geo/routing.ts"],"sourcesContent":["import { durationFactor } from \"./estimate\";\nimport type { Coordinate, TravelEstimate, TravelMode } from \"./types\";\n\n/**\n * Pluggable routing backend. A backend turns two coordinates into a\n * {@link TravelEstimate}. Mirrors the `RoutingBackend` protocol from\n * `tempest-fastapi-sdk` so client and server share the same contract.\n *\n * Implement this to route against your own self-hosted engine (OSRM, Valhalla,\n * GraphHopper). The offline {@link estimateTravel} heuristic satisfies the same\n * shape without any network.\n */\nexport interface RoutingBackend {\n route: (\n origin: Coordinate,\n destination: Coordinate,\n options?: { mode?: TravelMode },\n ) => Promise<TravelEstimate>;\n}\n\n/** Options for {@link createOSRMBackend}. */\nexport interface OSRMBackendOptions {\n /**\n * Base URL of an **OSRM** HTTP server. There is no default on purpose — this\n * SDK ships no external endpoint. Point it at a routing engine **you host**.\n */\n baseUrl: string;\n /** `fetch` implementation. Default: the global `fetch`. */\n fetch?: typeof globalThis.fetch;\n /** Per-mode duration multipliers applied over the car profile. */\n modeDurationFactors?: Partial<Record<TravelMode, number>>;\n}\n\ninterface OSRMRoute {\n distance: number;\n duration: number;\n}\n\ninterface OSRMResponse {\n code?: string;\n routes?: OSRMRoute[];\n}\n\n/**\n * Build a {@link RoutingBackend} backed by an OSRM server **you host**. OSRM\n * only serves a driving profile, so motorcycle/bus durations are derived by\n * scaling the car duration through {@link durationFactor} — same approach as\n * the FastAPI SDK's `OSRMBackend`.\n *\n * !!! warning\n * This makes a network request to `baseUrl`. It is opt-in: nothing in the\n * SDK calls it unless you construct it and pass your own server URL. For a\n * zero-network estimate, use {@link estimateTravel} instead.\n *\n * @param options - Server URL, optional `fetch`, per-mode factors.\n * @returns A backend whose `route()` queries OSRM.\n *\n * @example\n * const backend = createOSRMBackend({ baseUrl: \"https://osrm.internal\" });\n * const estimate = await backend.route(origin, destination, { mode: \"car\" });\n */\nexport function createOSRMBackend(options: OSRMBackendOptions): RoutingBackend {\n const { baseUrl, fetch = globalThis.fetch, modeDurationFactors } = options;\n const trimmedBaseUrl = baseUrl.replace(/\\/+$/, \"\");\n\n return {\n async route(origin, destination, routeOptions = {}): Promise<TravelEstimate> {\n const mode = routeOptions.mode ?? \"car\";\n const coords = `${origin.longitude},${origin.latitude};${destination.longitude},${destination.latitude}`;\n const url = `${trimmedBaseUrl}/route/v1/driving/${coords}?overview=false`;\n\n let payload: OSRMResponse;\n try {\n const response = await fetch(url);\n payload = (await response.json()) as OSRMResponse;\n } catch (cause) {\n throw new Error(`OSRM request failed: ${String(cause)}`, { cause });\n }\n\n const route = payload.routes?.[0];\n if (payload.code !== \"Ok\" || !route) {\n throw new Error(`OSRM returned no route (code: ${payload.code ?? \"unknown\"})`);\n }\n\n const distanceKm = route.distance / 1000.0;\n const carMinutes = route.duration / 60.0;\n const durationMinutes = carMinutes * durationFactor(mode, modeDurationFactors);\n\n return {\n mode,\n distance_km: distanceKm,\n duration_minutes: durationMinutes,\n source: \"osrm\",\n };\n },\n };\n}\n"],"names":["createOSRMBackend","options","baseUrl","fetch","modeDurationFactors","trimmedBaseUrl","origin","destination","routeOptions","mode","coords","url","payload","cause","route","distanceKm","durationMinutes","durationFactor"],"mappings":"kHA6DO,SAASA,EAAkBC,EAA6C,CAC3E,KAAM,CAAE,QAAAC,EAAS,MAAAC,EAAQ,WAAW,MAAO,oBAAAC,GAAwBH,EAC7DI,EAAiBH,EAAQ,QAAQ,OAAQ,EAAE,EAEjD,MAAO,CACH,MAAM,MAAMI,EAAQC,EAAaC,EAAe,CAAA,EAA6B,CACzE,MAAMC,EAAOD,EAAa,MAAQ,MAC5BE,EAAS,GAAGJ,EAAO,SAAS,IAAIA,EAAO,QAAQ,IAAIC,EAAY,SAAS,IAAIA,EAAY,QAAQ,GAChGI,EAAM,GAAGN,CAAc,qBAAqBK,CAAM,kBAExD,IAAIE,EACJ,GAAI,CAEAA,EAAW,MADM,MAAMT,EAAMQ,CAAG,GACN,KAAA,CAC9B,OAASE,EAAO,CACZ,MAAM,IAAI,MAAM,wBAAwB,OAAOA,CAAK,CAAC,GAAI,CAAE,MAAAA,EAAO,CACtE,CAEA,MAAMC,EAAQF,EAAQ,SAAS,CAAC,EAChC,GAAIA,EAAQ,OAAS,MAAQ,CAACE,EAC1B,MAAM,IAAI,MAAM,iCAAiCF,EAAQ,MAAQ,SAAS,GAAG,EAGjF,MAAMG,EAAaD,EAAM,SAAW,IAE9BE,EADaF,EAAM,SAAW,GACCG,iBAAeR,EAAML,CAAmB,EAE7E,MAAO,CACH,KAAAK,EACA,YAAaM,EACb,iBAAkBC,EAClB,OAAQ,MAAA,CAEhB,CAAA,CAER"}
@@ -0,0 +1,29 @@
1
+ import { durationFactor as h } from "./estimate.js";
2
+ function g(s) {
3
+ const { baseUrl: a, fetch: u = globalThis.fetch, modeDurationFactors: i } = s, d = a.replace(/\/+$/, "");
4
+ return {
5
+ async route(r, n, l = {}) {
6
+ const c = l.mode ?? "car", m = `${r.longitude},${r.latitude};${n.longitude},${n.latitude}`, $ = `${d}/route/v1/driving/${m}?overview=false`;
7
+ let e;
8
+ try {
9
+ e = await (await u($)).json();
10
+ } catch (o) {
11
+ throw new Error(`OSRM request failed: ${String(o)}`, { cause: o });
12
+ }
13
+ const t = e.routes?.[0];
14
+ if (e.code !== "Ok" || !t)
15
+ throw new Error(`OSRM returned no route (code: ${e.code ?? "unknown"})`);
16
+ const w = t.distance / 1e3, f = t.duration / 60 * h(c, i);
17
+ return {
18
+ mode: c,
19
+ distance_km: w,
20
+ duration_minutes: f,
21
+ source: "osrm"
22
+ };
23
+ }
24
+ };
25
+ }
26
+ export {
27
+ g as createOSRMBackend
28
+ };
29
+ //# sourceMappingURL=routing.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"routing.js","sources":["../../src/geo/routing.ts"],"sourcesContent":["import { durationFactor } from \"./estimate\";\nimport type { Coordinate, TravelEstimate, TravelMode } from \"./types\";\n\n/**\n * Pluggable routing backend. A backend turns two coordinates into a\n * {@link TravelEstimate}. Mirrors the `RoutingBackend` protocol from\n * `tempest-fastapi-sdk` so client and server share the same contract.\n *\n * Implement this to route against your own self-hosted engine (OSRM, Valhalla,\n * GraphHopper). The offline {@link estimateTravel} heuristic satisfies the same\n * shape without any network.\n */\nexport interface RoutingBackend {\n route: (\n origin: Coordinate,\n destination: Coordinate,\n options?: { mode?: TravelMode },\n ) => Promise<TravelEstimate>;\n}\n\n/** Options for {@link createOSRMBackend}. */\nexport interface OSRMBackendOptions {\n /**\n * Base URL of an **OSRM** HTTP server. There is no default on purpose — this\n * SDK ships no external endpoint. Point it at a routing engine **you host**.\n */\n baseUrl: string;\n /** `fetch` implementation. Default: the global `fetch`. */\n fetch?: typeof globalThis.fetch;\n /** Per-mode duration multipliers applied over the car profile. */\n modeDurationFactors?: Partial<Record<TravelMode, number>>;\n}\n\ninterface OSRMRoute {\n distance: number;\n duration: number;\n}\n\ninterface OSRMResponse {\n code?: string;\n routes?: OSRMRoute[];\n}\n\n/**\n * Build a {@link RoutingBackend} backed by an OSRM server **you host**. OSRM\n * only serves a driving profile, so motorcycle/bus durations are derived by\n * scaling the car duration through {@link durationFactor} — same approach as\n * the FastAPI SDK's `OSRMBackend`.\n *\n * !!! warning\n * This makes a network request to `baseUrl`. It is opt-in: nothing in the\n * SDK calls it unless you construct it and pass your own server URL. For a\n * zero-network estimate, use {@link estimateTravel} instead.\n *\n * @param options - Server URL, optional `fetch`, per-mode factors.\n * @returns A backend whose `route()` queries OSRM.\n *\n * @example\n * const backend = createOSRMBackend({ baseUrl: \"https://osrm.internal\" });\n * const estimate = await backend.route(origin, destination, { mode: \"car\" });\n */\nexport function createOSRMBackend(options: OSRMBackendOptions): RoutingBackend {\n const { baseUrl, fetch = globalThis.fetch, modeDurationFactors } = options;\n const trimmedBaseUrl = baseUrl.replace(/\\/+$/, \"\");\n\n return {\n async route(origin, destination, routeOptions = {}): Promise<TravelEstimate> {\n const mode = routeOptions.mode ?? \"car\";\n const coords = `${origin.longitude},${origin.latitude};${destination.longitude},${destination.latitude}`;\n const url = `${trimmedBaseUrl}/route/v1/driving/${coords}?overview=false`;\n\n let payload: OSRMResponse;\n try {\n const response = await fetch(url);\n payload = (await response.json()) as OSRMResponse;\n } catch (cause) {\n throw new Error(`OSRM request failed: ${String(cause)}`, { cause });\n }\n\n const route = payload.routes?.[0];\n if (payload.code !== \"Ok\" || !route) {\n throw new Error(`OSRM returned no route (code: ${payload.code ?? \"unknown\"})`);\n }\n\n const distanceKm = route.distance / 1000.0;\n const carMinutes = route.duration / 60.0;\n const durationMinutes = carMinutes * durationFactor(mode, modeDurationFactors);\n\n return {\n mode,\n distance_km: distanceKm,\n duration_minutes: durationMinutes,\n source: \"osrm\",\n };\n },\n };\n}\n"],"names":["createOSRMBackend","options","baseUrl","fetch","modeDurationFactors","trimmedBaseUrl","origin","destination","routeOptions","mode","coords","url","payload","cause","route","distanceKm","durationMinutes","durationFactor"],"mappings":";AA6DO,SAASA,EAAkBC,GAA6C;AAC3E,QAAM,EAAE,SAAAC,GAAS,OAAAC,IAAQ,WAAW,OAAO,qBAAAC,MAAwBH,GAC7DI,IAAiBH,EAAQ,QAAQ,QAAQ,EAAE;AAEjD,SAAO;AAAA,IACH,MAAM,MAAMI,GAAQC,GAAaC,IAAe,CAAA,GAA6B;AACzE,YAAMC,IAAOD,EAAa,QAAQ,OAC5BE,IAAS,GAAGJ,EAAO,SAAS,IAAIA,EAAO,QAAQ,IAAIC,EAAY,SAAS,IAAIA,EAAY,QAAQ,IAChGI,IAAM,GAAGN,CAAc,qBAAqBK,CAAM;AAExD,UAAIE;AACJ,UAAI;AAEA,QAAAA,IAAW,OADM,MAAMT,EAAMQ,CAAG,GACN,KAAA;AAAA,MAC9B,SAASE,GAAO;AACZ,cAAM,IAAI,MAAM,wBAAwB,OAAOA,CAAK,CAAC,IAAI,EAAE,OAAAA,GAAO;AAAA,MACtE;AAEA,YAAMC,IAAQF,EAAQ,SAAS,CAAC;AAChC,UAAIA,EAAQ,SAAS,QAAQ,CAACE;AAC1B,cAAM,IAAI,MAAM,iCAAiCF,EAAQ,QAAQ,SAAS,GAAG;AAGjF,YAAMG,IAAaD,EAAM,WAAW,KAE9BE,IADaF,EAAM,WAAW,KACCG,EAAeR,GAAML,CAAmB;AAE7E,aAAO;AAAA,QACH,MAAAK;AAAA,QACA,aAAaM;AAAA,QACb,kBAAkBC;AAAA,QAClB,QAAQ;AAAA,MAAA;AAAA,IAEhB;AAAA,EAAA;AAER;"}
@@ -0,0 +1,2 @@
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});function e(t){return Number.isFinite(t)&&t>=-90&&t<=90}function n(t){return Number.isFinite(t)&&t>=-180&&t<=180}function o(t){if(typeof t!="object"||t===null)return!1;const i=t;return typeof i.latitude=="number"&&typeof i.longitude=="number"&&e(i.latitude)&&n(i.longitude)}function r(t){return Math.min(90,Math.max(-90,t))}function u(t){return((t+180)%360+360)%360-180}exports.clampLatitude=r;exports.isCoordinate=o;exports.isValidLatitude=e;exports.isValidLongitude=n;exports.normalizeLongitude=u;
2
+ //# sourceMappingURL=types.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.cjs","sources":["../../src/geo/types.ts"],"sourcesContent":["/**\n * WGS84 geographic coordinate. Mirrors the `Coordinate` schema from\n * `tempest-fastapi-sdk` (`geo/schemas.py`) — `latitude` in `[-90, 90]`,\n * `longitude` in `[-180, 180]`, serialized snake_case on the wire.\n */\nexport interface Coordinate {\n /** WGS84 latitude in degrees, `[-90, 90]`. E.g. `-23.5505`. */\n latitude: number;\n /** WGS84 longitude in degrees, `[-180, 180]`. E.g. `-46.6333`. */\n longitude: number;\n}\n\n/**\n * A pin plotted on a map: a {@link Coordinate} plus optional presentation and\n * an identity used for click callbacks. Shared by `TrajectoryMap` and the\n * Brazil maps' `markers` prop.\n */\nexport interface GeoMarker extends Coordinate {\n /** Stable identity (returned by click handlers). Falls back to the index. */\n id?: string;\n /** Tooltip / accessible label for the pin. */\n label?: string;\n /** Fill color. Defaults to the primary token. */\n color?: string;\n /** Radius in pixels. Default: 6. */\n radius?: number;\n}\n\n/**\n * A single sample in a recorded trajectory: a {@link Coordinate} stamped with\n * the epoch millisecond it was captured, plus the optional accuracy radius\n * reported by the Geolocation API.\n */\nexport interface TrackPoint extends Coordinate {\n /** Capture time in epoch milliseconds (`GeolocationPosition.timestamp`). */\n timestamp: number;\n /** Horizontal accuracy radius in meters, if the device reported one. */\n accuracy?: number;\n}\n\n/**\n * Travel mode. Mirrors the `TravelMode` string enum from `tempest-fastapi-sdk`\n * (`geo/enums.py`) — the on-the-wire value is the raw string.\n */\nexport type TravelMode = \"car\" | \"motorcycle\" | \"bus\";\n\n/**\n * Estimated travel between two coordinates. Mirrors the `TravelEstimate`\n * schema from `tempest-fastapi-sdk` (`geo/schemas.py`), snake_case preserved so\n * a response deserializes straight into this type.\n */\nexport interface TravelEstimate {\n /** Travel mode the estimate was computed for. */\n mode: TravelMode;\n /** Great-circle distance scaled by circuity, in kilometers (`>= 0`). */\n distance_km: number;\n /** Estimated duration in minutes (`>= 0`). */\n duration_minutes: number;\n /** How the estimate was produced. `\"heuristic\"` (offline) or `\"osrm\"`. */\n source: \"heuristic\" | \"osrm\";\n}\n\n/**\n * Axis-aligned geographic bounding box. `min`/`max` follow the same degree\n * ranges as {@link Coordinate}.\n */\nexport interface GeoBounds {\n minLatitude: number;\n maxLatitude: number;\n minLongitude: number;\n maxLongitude: number;\n}\n\n/** True when `value` is a finite latitude in `[-90, 90]`. */\nexport function isValidLatitude(value: number): boolean {\n return Number.isFinite(value) && value >= -90 && value <= 90;\n}\n\n/** True when `value` is a finite longitude in `[-180, 180]`. */\nexport function isValidLongitude(value: number): boolean {\n return Number.isFinite(value) && value >= -180 && value <= 180;\n}\n\n/**\n * Type guard for {@link Coordinate}: an object with finite, in-range\n * `latitude` and `longitude`.\n */\nexport function isCoordinate(value: unknown): value is Coordinate {\n if (typeof value !== \"object\" || value === null) return false;\n const candidate = value as Record<string, unknown>;\n return (\n typeof candidate.latitude === \"number\" &&\n typeof candidate.longitude === \"number\" &&\n isValidLatitude(candidate.latitude) &&\n isValidLongitude(candidate.longitude)\n );\n}\n\n/** Clamp a latitude into the valid `[-90, 90]` range. */\nexport function clampLatitude(latitude: number): number {\n return Math.min(90, Math.max(-90, latitude));\n}\n\n/**\n * Normalize a longitude into the `[-180, 180]` range, wrapping values that\n * cross the antimeridian (e.g. `190` → `-170`).\n */\nexport function normalizeLongitude(longitude: number): number {\n const wrapped = ((((longitude + 180) % 360) + 360) % 360) - 180;\n return wrapped;\n}\n"],"names":["isValidLatitude","value","isValidLongitude","isCoordinate","candidate","clampLatitude","latitude","normalizeLongitude","longitude"],"mappings":"gFA0EO,SAASA,EAAgBC,EAAwB,CACpD,OAAO,OAAO,SAASA,CAAK,GAAKA,GAAS,KAAOA,GAAS,EAC9D,CAGO,SAASC,EAAiBD,EAAwB,CACrD,OAAO,OAAO,SAASA,CAAK,GAAKA,GAAS,MAAQA,GAAS,GAC/D,CAMO,SAASE,EAAaF,EAAqC,CAC9D,GAAI,OAAOA,GAAU,UAAYA,IAAU,KAAM,MAAO,GACxD,MAAMG,EAAYH,EAClB,OACI,OAAOG,EAAU,UAAa,UAC9B,OAAOA,EAAU,WAAc,UAC/BJ,EAAgBI,EAAU,QAAQ,GAClCF,EAAiBE,EAAU,SAAS,CAE5C,CAGO,SAASC,EAAcC,EAA0B,CACpD,OAAO,KAAK,IAAI,GAAI,KAAK,IAAI,IAAKA,CAAQ,CAAC,CAC/C,CAMO,SAASC,EAAmBC,EAA2B,CAE1D,QADoBA,EAAY,KAAO,IAAO,KAAO,IAAO,GAEhE"}
@@ -0,0 +1,25 @@
1
+ function i(t) {
2
+ return Number.isFinite(t) && t >= -90 && t <= 90;
3
+ }
4
+ function e(t) {
5
+ return Number.isFinite(t) && t >= -180 && t <= 180;
6
+ }
7
+ function r(t) {
8
+ if (typeof t != "object" || t === null) return !1;
9
+ const n = t;
10
+ return typeof n.latitude == "number" && typeof n.longitude == "number" && i(n.latitude) && e(n.longitude);
11
+ }
12
+ function o(t) {
13
+ return Math.min(90, Math.max(-90, t));
14
+ }
15
+ function u(t) {
16
+ return ((t + 180) % 360 + 360) % 360 - 180;
17
+ }
18
+ export {
19
+ o as clampLatitude,
20
+ r as isCoordinate,
21
+ i as isValidLatitude,
22
+ e as isValidLongitude,
23
+ u as normalizeLongitude
24
+ };
25
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sources":["../../src/geo/types.ts"],"sourcesContent":["/**\n * WGS84 geographic coordinate. Mirrors the `Coordinate` schema from\n * `tempest-fastapi-sdk` (`geo/schemas.py`) — `latitude` in `[-90, 90]`,\n * `longitude` in `[-180, 180]`, serialized snake_case on the wire.\n */\nexport interface Coordinate {\n /** WGS84 latitude in degrees, `[-90, 90]`. E.g. `-23.5505`. */\n latitude: number;\n /** WGS84 longitude in degrees, `[-180, 180]`. E.g. `-46.6333`. */\n longitude: number;\n}\n\n/**\n * A pin plotted on a map: a {@link Coordinate} plus optional presentation and\n * an identity used for click callbacks. Shared by `TrajectoryMap` and the\n * Brazil maps' `markers` prop.\n */\nexport interface GeoMarker extends Coordinate {\n /** Stable identity (returned by click handlers). Falls back to the index. */\n id?: string;\n /** Tooltip / accessible label for the pin. */\n label?: string;\n /** Fill color. Defaults to the primary token. */\n color?: string;\n /** Radius in pixels. Default: 6. */\n radius?: number;\n}\n\n/**\n * A single sample in a recorded trajectory: a {@link Coordinate} stamped with\n * the epoch millisecond it was captured, plus the optional accuracy radius\n * reported by the Geolocation API.\n */\nexport interface TrackPoint extends Coordinate {\n /** Capture time in epoch milliseconds (`GeolocationPosition.timestamp`). */\n timestamp: number;\n /** Horizontal accuracy radius in meters, if the device reported one. */\n accuracy?: number;\n}\n\n/**\n * Travel mode. Mirrors the `TravelMode` string enum from `tempest-fastapi-sdk`\n * (`geo/enums.py`) — the on-the-wire value is the raw string.\n */\nexport type TravelMode = \"car\" | \"motorcycle\" | \"bus\";\n\n/**\n * Estimated travel between two coordinates. Mirrors the `TravelEstimate`\n * schema from `tempest-fastapi-sdk` (`geo/schemas.py`), snake_case preserved so\n * a response deserializes straight into this type.\n */\nexport interface TravelEstimate {\n /** Travel mode the estimate was computed for. */\n mode: TravelMode;\n /** Great-circle distance scaled by circuity, in kilometers (`>= 0`). */\n distance_km: number;\n /** Estimated duration in minutes (`>= 0`). */\n duration_minutes: number;\n /** How the estimate was produced. `\"heuristic\"` (offline) or `\"osrm\"`. */\n source: \"heuristic\" | \"osrm\";\n}\n\n/**\n * Axis-aligned geographic bounding box. `min`/`max` follow the same degree\n * ranges as {@link Coordinate}.\n */\nexport interface GeoBounds {\n minLatitude: number;\n maxLatitude: number;\n minLongitude: number;\n maxLongitude: number;\n}\n\n/** True when `value` is a finite latitude in `[-90, 90]`. */\nexport function isValidLatitude(value: number): boolean {\n return Number.isFinite(value) && value >= -90 && value <= 90;\n}\n\n/** True when `value` is a finite longitude in `[-180, 180]`. */\nexport function isValidLongitude(value: number): boolean {\n return Number.isFinite(value) && value >= -180 && value <= 180;\n}\n\n/**\n * Type guard for {@link Coordinate}: an object with finite, in-range\n * `latitude` and `longitude`.\n */\nexport function isCoordinate(value: unknown): value is Coordinate {\n if (typeof value !== \"object\" || value === null) return false;\n const candidate = value as Record<string, unknown>;\n return (\n typeof candidate.latitude === \"number\" &&\n typeof candidate.longitude === \"number\" &&\n isValidLatitude(candidate.latitude) &&\n isValidLongitude(candidate.longitude)\n );\n}\n\n/** Clamp a latitude into the valid `[-90, 90]` range. */\nexport function clampLatitude(latitude: number): number {\n return Math.min(90, Math.max(-90, latitude));\n}\n\n/**\n * Normalize a longitude into the `[-180, 180]` range, wrapping values that\n * cross the antimeridian (e.g. `190` → `-170`).\n */\nexport function normalizeLongitude(longitude: number): number {\n const wrapped = ((((longitude + 180) % 360) + 360) % 360) - 180;\n return wrapped;\n}\n"],"names":["isValidLatitude","value","isValidLongitude","isCoordinate","candidate","clampLatitude","latitude","normalizeLongitude","longitude"],"mappings":"AA0EO,SAASA,EAAgBC,GAAwB;AACpD,SAAO,OAAO,SAASA,CAAK,KAAKA,KAAS,OAAOA,KAAS;AAC9D;AAGO,SAASC,EAAiBD,GAAwB;AACrD,SAAO,OAAO,SAASA,CAAK,KAAKA,KAAS,QAAQA,KAAS;AAC/D;AAMO,SAASE,EAAaF,GAAqC;AAC9D,MAAI,OAAOA,KAAU,YAAYA,MAAU,KAAM,QAAO;AACxD,QAAMG,IAAYH;AAClB,SACI,OAAOG,EAAU,YAAa,YAC9B,OAAOA,EAAU,aAAc,YAC/BJ,EAAgBI,EAAU,QAAQ,KAClCF,EAAiBE,EAAU,SAAS;AAE5C;AAGO,SAASC,EAAcC,GAA0B;AACpD,SAAO,KAAK,IAAI,IAAI,KAAK,IAAI,KAAKA,CAAQ,CAAC;AAC/C;AAMO,SAASC,EAAmBC,GAA2B;AAE1D,WADoBA,IAAY,OAAO,MAAO,OAAO,MAAO;AAEhE;"}
@@ -0,0 +1,2 @@
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const t=require("react"),T=require("./create-position-tracker.cjs");function b(i={}){const{autoStart:l=!1,onError:c,...k}=i,[r,f]=t.useState([]),[S,o]=t.useState(0),[a,g]=t.useState("idle"),e=t.useRef(null),u=t.useRef(c);u.current=c,t.useEffect(()=>{const s=T.createPositionTracker({...k,onUpdate:n=>{f([...n]),o(s.distanceKm)},onStatusChange:g,onError:n=>u.current?.(n)});return e.current=s,l&&s.start(),()=>{s.stop(),e.current=null}},[]);const p=t.useCallback(()=>e.current?.start(),[]),P=t.useCallback(()=>e.current?.stop(),[]),d=t.useCallback(()=>{e.current?.clear(),o(0)},[]);return{points:r,lastPoint:r.length>0?r[r.length-1]:null,distanceKm:S,status:a,isTracking:a==="tracking",start:p,stop:P,clear:d}}exports.usePositionTracker=b;
2
+ //# sourceMappingURL=use-position-tracker.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"use-position-tracker.cjs","sources":["../../src/geo/use-position-tracker.ts"],"sourcesContent":["import { useCallback, useEffect, useRef, useState } from \"react\";\nimport {\n createPositionTracker,\n type CreatePositionTrackerOptions,\n type PositionTracker,\n type TrackerStatus,\n} from \"./create-position-tracker\";\nimport type { TrackPoint } from \"./types\";\n\nexport interface UsePositionTrackerOptions extends Omit<\n CreatePositionTrackerOptions,\n \"onUpdate\" | \"onStatusChange\"\n> {\n /** Start tracking automatically on mount. Default: `false`. */\n autoStart?: boolean;\n}\n\nexport interface UsePositionTrackerResult {\n /** Recorded trajectory (newest last). */\n points: readonly TrackPoint[];\n /** Most recent point, or `null` before the first fix. */\n lastPoint: TrackPoint | null;\n /** Total distance of the trajectory in kilometers. */\n distanceKm: number;\n /** Current tracker status. */\n status: TrackerStatus;\n /** True while `status === \"tracking\"`. */\n isTracking: boolean;\n /** Begin watching position. */\n start: () => void;\n /** Stop watching, keeping the trajectory. */\n stop: () => void;\n /** Stop and discard the trajectory. */\n clear: () => void;\n}\n\n/**\n * React hook wrapping {@link createPositionTracker}. Records a live GPS\n * trajectory tied to the component lifecycle — the watch is torn down on\n * unmount. Fully browser-side; no external service.\n *\n * @example\n * const { points, distanceKm, isTracking, start, stop } = usePositionTracker({\n * minDistanceKm: 0.01,\n * });\n * return (\n * <>\n * <button onClick={isTracking ? stop : start}>{isTracking ? \"Parar\" : \"Rastrear\"}</button>\n * <TrajectoryMap points={points} />\n * <span>{distanceKm.toFixed(2)} km</span>\n * </>\n * );\n */\nexport function usePositionTracker(\n options: UsePositionTrackerOptions = {},\n): UsePositionTrackerResult {\n const { autoStart = false, onError, ...trackerOptions } = options;\n\n const [points, setPoints] = useState<readonly TrackPoint[]>([]);\n const [distanceKm, setDistanceKm] = useState<number>(0);\n const [status, setStatus] = useState<TrackerStatus>(\"idle\");\n\n const trackerRef = useRef<PositionTracker | null>(null);\n const onErrorRef = useRef(onError);\n onErrorRef.current = onError;\n\n useEffect(() => {\n const tracker = createPositionTracker({\n ...trackerOptions,\n onUpdate: (next) => {\n setPoints([...next]);\n setDistanceKm(tracker.distanceKm);\n },\n onStatusChange: setStatus,\n onError: (error) => onErrorRef.current?.(error),\n });\n trackerRef.current = tracker;\n if (autoStart) tracker.start();\n\n return () => {\n tracker.stop();\n trackerRef.current = null;\n };\n // Tracker options are read once at creation; changing them mid-track\n // would drop the recorded trajectory, so they are intentionally omitted.\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n const start = useCallback((): void => trackerRef.current?.start(), []);\n const stop = useCallback((): void => trackerRef.current?.stop(), []);\n const clear = useCallback((): void => {\n trackerRef.current?.clear();\n setDistanceKm(0);\n }, []);\n\n return {\n points,\n lastPoint: points.length > 0 ? points[points.length - 1] : null,\n distanceKm,\n status,\n isTracking: status === \"tracking\",\n start,\n stop,\n clear,\n };\n}\n"],"names":["usePositionTracker","options","autoStart","onError","trackerOptions","points","setPoints","useState","distanceKm","setDistanceKm","status","setStatus","trackerRef","useRef","onErrorRef","useEffect","tracker","createPositionTracker","next","error","start","useCallback","stop","clear"],"mappings":"oJAqDO,SAASA,EACZC,EAAqC,GACb,CACxB,KAAM,CAAE,UAAAC,EAAY,GAAO,QAAAC,EAAS,GAAGC,GAAmBH,EAEpD,CAACI,EAAQC,CAAS,EAAIC,EAAAA,SAAgC,CAAA,CAAE,EACxD,CAACC,EAAYC,CAAa,EAAIF,EAAAA,SAAiB,CAAC,EAChD,CAACG,EAAQC,CAAS,EAAIJ,EAAAA,SAAwB,MAAM,EAEpDK,EAAaC,EAAAA,OAA+B,IAAI,EAChDC,EAAaD,EAAAA,OAAOV,CAAO,EACjCW,EAAW,QAAUX,EAErBY,EAAAA,UAAU,IAAM,CACZ,MAAMC,EAAUC,EAAAA,sBAAsB,CAClC,GAAGb,EACH,SAAWc,GAAS,CAChBZ,EAAU,CAAC,GAAGY,CAAI,CAAC,EACnBT,EAAcO,EAAQ,UAAU,CACpC,EACA,eAAgBL,EAChB,QAAUQ,GAAUL,EAAW,UAAUK,CAAK,CAAA,CACjD,EACD,OAAAP,EAAW,QAAUI,EACjBd,KAAmB,MAAA,EAEhB,IAAM,CACTc,EAAQ,KAAA,EACRJ,EAAW,QAAU,IACzB,CAIJ,EAAG,CAAA,CAAE,EAEL,MAAMQ,EAAQC,EAAAA,YAAY,IAAYT,EAAW,SAAS,MAAA,EAAS,EAAE,EAC/DU,EAAOD,EAAAA,YAAY,IAAYT,EAAW,SAAS,KAAA,EAAQ,EAAE,EAC7DW,EAAQF,EAAAA,YAAY,IAAY,CAClCT,EAAW,SAAS,MAAA,EACpBH,EAAc,CAAC,CACnB,EAAG,CAAA,CAAE,EAEL,MAAO,CACH,OAAAJ,EACA,UAAWA,EAAO,OAAS,EAAIA,EAAOA,EAAO,OAAS,CAAC,EAAI,KAC3D,WAAAG,EACA,OAAAE,EACA,WAAYA,IAAW,WACvB,MAAAU,EACA,KAAAE,EACA,MAAAC,CAAA,CAER"}
@@ -0,0 +1,35 @@
1
+ import { useState as s, useRef as l, useEffect as h, useCallback as o } from "react";
2
+ import { createPositionTracker as K } from "./create-position-tracker.js";
3
+ function C(f = {}) {
4
+ const { autoStart: p = !1, onError: c, ...k } = f, [r, m] = s([]), [g, a] = s(0), [u, d] = s("idle"), t = l(null), i = l(c);
5
+ i.current = c, h(() => {
6
+ const n = K({
7
+ ...k,
8
+ onUpdate: (e) => {
9
+ m([...e]), a(n.distanceKm);
10
+ },
11
+ onStatusChange: d,
12
+ onError: (e) => i.current?.(e)
13
+ });
14
+ return t.current = n, p && n.start(), () => {
15
+ n.stop(), t.current = null;
16
+ };
17
+ }, []);
18
+ const E = o(() => t.current?.start(), []), P = o(() => t.current?.stop(), []), S = o(() => {
19
+ t.current?.clear(), a(0);
20
+ }, []);
21
+ return {
22
+ points: r,
23
+ lastPoint: r.length > 0 ? r[r.length - 1] : null,
24
+ distanceKm: g,
25
+ status: u,
26
+ isTracking: u === "tracking",
27
+ start: E,
28
+ stop: P,
29
+ clear: S
30
+ };
31
+ }
32
+ export {
33
+ C as usePositionTracker
34
+ };
35
+ //# sourceMappingURL=use-position-tracker.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"use-position-tracker.js","sources":["../../src/geo/use-position-tracker.ts"],"sourcesContent":["import { useCallback, useEffect, useRef, useState } from \"react\";\nimport {\n createPositionTracker,\n type CreatePositionTrackerOptions,\n type PositionTracker,\n type TrackerStatus,\n} from \"./create-position-tracker\";\nimport type { TrackPoint } from \"./types\";\n\nexport interface UsePositionTrackerOptions extends Omit<\n CreatePositionTrackerOptions,\n \"onUpdate\" | \"onStatusChange\"\n> {\n /** Start tracking automatically on mount. Default: `false`. */\n autoStart?: boolean;\n}\n\nexport interface UsePositionTrackerResult {\n /** Recorded trajectory (newest last). */\n points: readonly TrackPoint[];\n /** Most recent point, or `null` before the first fix. */\n lastPoint: TrackPoint | null;\n /** Total distance of the trajectory in kilometers. */\n distanceKm: number;\n /** Current tracker status. */\n status: TrackerStatus;\n /** True while `status === \"tracking\"`. */\n isTracking: boolean;\n /** Begin watching position. */\n start: () => void;\n /** Stop watching, keeping the trajectory. */\n stop: () => void;\n /** Stop and discard the trajectory. */\n clear: () => void;\n}\n\n/**\n * React hook wrapping {@link createPositionTracker}. Records a live GPS\n * trajectory tied to the component lifecycle — the watch is torn down on\n * unmount. Fully browser-side; no external service.\n *\n * @example\n * const { points, distanceKm, isTracking, start, stop } = usePositionTracker({\n * minDistanceKm: 0.01,\n * });\n * return (\n * <>\n * <button onClick={isTracking ? stop : start}>{isTracking ? \"Parar\" : \"Rastrear\"}</button>\n * <TrajectoryMap points={points} />\n * <span>{distanceKm.toFixed(2)} km</span>\n * </>\n * );\n */\nexport function usePositionTracker(\n options: UsePositionTrackerOptions = {},\n): UsePositionTrackerResult {\n const { autoStart = false, onError, ...trackerOptions } = options;\n\n const [points, setPoints] = useState<readonly TrackPoint[]>([]);\n const [distanceKm, setDistanceKm] = useState<number>(0);\n const [status, setStatus] = useState<TrackerStatus>(\"idle\");\n\n const trackerRef = useRef<PositionTracker | null>(null);\n const onErrorRef = useRef(onError);\n onErrorRef.current = onError;\n\n useEffect(() => {\n const tracker = createPositionTracker({\n ...trackerOptions,\n onUpdate: (next) => {\n setPoints([...next]);\n setDistanceKm(tracker.distanceKm);\n },\n onStatusChange: setStatus,\n onError: (error) => onErrorRef.current?.(error),\n });\n trackerRef.current = tracker;\n if (autoStart) tracker.start();\n\n return () => {\n tracker.stop();\n trackerRef.current = null;\n };\n // Tracker options are read once at creation; changing them mid-track\n // would drop the recorded trajectory, so they are intentionally omitted.\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, []);\n\n const start = useCallback((): void => trackerRef.current?.start(), []);\n const stop = useCallback((): void => trackerRef.current?.stop(), []);\n const clear = useCallback((): void => {\n trackerRef.current?.clear();\n setDistanceKm(0);\n }, []);\n\n return {\n points,\n lastPoint: points.length > 0 ? points[points.length - 1] : null,\n distanceKm,\n status,\n isTracking: status === \"tracking\",\n start,\n stop,\n clear,\n };\n}\n"],"names":["usePositionTracker","options","autoStart","onError","trackerOptions","points","setPoints","useState","distanceKm","setDistanceKm","status","setStatus","trackerRef","useRef","onErrorRef","useEffect","tracker","createPositionTracker","next","error","start","useCallback","stop","clear"],"mappings":";;AAqDO,SAASA,EACZC,IAAqC,IACb;AACxB,QAAM,EAAE,WAAAC,IAAY,IAAO,SAAAC,GAAS,GAAGC,MAAmBH,GAEpD,CAACI,GAAQC,CAAS,IAAIC,EAAgC,CAAA,CAAE,GACxD,CAACC,GAAYC,CAAa,IAAIF,EAAiB,CAAC,GAChD,CAACG,GAAQC,CAAS,IAAIJ,EAAwB,MAAM,GAEpDK,IAAaC,EAA+B,IAAI,GAChDC,IAAaD,EAAOV,CAAO;AACjC,EAAAW,EAAW,UAAUX,GAErBY,EAAU,MAAM;AACZ,UAAMC,IAAUC,EAAsB;AAAA,MAClC,GAAGb;AAAA,MACH,UAAU,CAACc,MAAS;AAChB,QAAAZ,EAAU,CAAC,GAAGY,CAAI,CAAC,GACnBT,EAAcO,EAAQ,UAAU;AAAA,MACpC;AAAA,MACA,gBAAgBL;AAAA,MAChB,SAAS,CAACQ,MAAUL,EAAW,UAAUK,CAAK;AAAA,IAAA,CACjD;AACD,WAAAP,EAAW,UAAUI,GACjBd,OAAmB,MAAA,GAEhB,MAAM;AACT,MAAAc,EAAQ,KAAA,GACRJ,EAAW,UAAU;AAAA,IACzB;AAAA,EAIJ,GAAG,CAAA,CAAE;AAEL,QAAMQ,IAAQC,EAAY,MAAYT,EAAW,SAAS,MAAA,GAAS,EAAE,GAC/DU,IAAOD,EAAY,MAAYT,EAAW,SAAS,KAAA,GAAQ,EAAE,GAC7DW,IAAQF,EAAY,MAAY;AAClC,IAAAT,EAAW,SAAS,MAAA,GACpBH,EAAc,CAAC;AAAA,EACnB,GAAG,CAAA,CAAE;AAEL,SAAO;AAAA,IACH,QAAAJ;AAAA,IACA,WAAWA,EAAO,SAAS,IAAIA,EAAOA,EAAO,SAAS,CAAC,IAAI;AAAA,IAC3D,YAAAG;AAAA,IACA,QAAAE;AAAA,IACA,YAAYA,MAAW;AAAA,IACvB,OAAAU;AAAA,IACA,MAAAE;AAAA,IACA,OAAAC;AAAA,EAAA;AAER;"}
@@ -0,0 +1,2 @@
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});function o(){if(typeof navigator>"u")return!1;const n=navigator.userAgent;return/iPad|iPhone|iPod/.test(n)?!0:n.includes("Mac")&&navigator.maxTouchPoints>1}function r(){if(typeof navigator>"u")return!1;const n=navigator.userAgent;return/Android/i.test(n)?/MiuiBrowser|XiaoMi|UCBrowser|Opera Mini|KAIOS|HuaweiBrowser/i.test(n):!1}function t(){return typeof navigator>"u"?!1:/Android/i.test(navigator.userAgent)}function a(){if(typeof window>"u"||!t())return null;const n=window.location.host,e=window.location.pathname+window.location.search,i=encodeURIComponent("https://play.google.com/store/apps/details?id=com.android.chrome");return`intent://${n}${e}#Intent;scheme=https;package=com.android.chrome;S.browser_fallback_url=${i};end`}function d(){return typeof window>"u"?!1:window.matchMedia?.("(display-mode: standalone)")?.matches?!0:window.navigator.standalone===!0}exports.buildOpenInChromeIntent=a;exports.isAndroid=t;exports.isAndroidWithoutPromptApi=r;exports.isIOS=o;exports.isStandalone=d;
2
+ //# sourceMappingURL=pwa-env.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pwa-env.cjs","sources":["../../src/hooks/pwa-env.ts"],"sourcesContent":["/**\n * The Chromium-only `beforeinstallprompt` event. iOS Safari never fires it —\n * for those users the app falls back to manual \"Add to Home Screen\"\n * instructions. Ported into the SDK so consumers get the type without a global\n * augmentation.\n */\nexport interface BeforeInstallPromptEvent extends Event {\n /** Platforms the prompt can target (e.g. `[\"web\", \"android\"]`). */\n readonly platforms: readonly string[];\n /** Resolves once the user accepts or dismisses the prompt. */\n readonly userChoice: Promise<{\n outcome: \"accepted\" | \"dismissed\";\n platform: string;\n }>;\n /** Shows the native install prompt. */\n prompt: () => Promise<void>;\n}\n\n/**\n * Detects iOS / iPadOS Safari, including modern iPads that report `MacIntel`\n * plus multi-touch instead of an `iPad` user agent.\n *\n * @returns `true` when running on iOS/iPadOS.\n */\nexport function isIOS(): boolean {\n if (typeof navigator === \"undefined\") return false;\n const ua = navigator.userAgent;\n if (/iPad|iPhone|iPod/.test(ua)) return true;\n return ua.includes(\"Mac\") && navigator.maxTouchPoints > 1;\n}\n\n/**\n * Detects Android browsers that ship a Chromium fork with the\n * `beforeinstallprompt` event stripped or unreliable. Those users must install\n * via the browser menu manually, identical to iOS Safari.\n *\n * @returns `true` when running on such an Android browser.\n */\nexport function isAndroidWithoutPromptApi(): boolean {\n if (typeof navigator === \"undefined\") return false;\n const ua = navigator.userAgent;\n if (!/Android/i.test(ua)) return false;\n return /MiuiBrowser|XiaoMi|UCBrowser|Opera Mini|KAIOS|HuaweiBrowser/i.test(ua);\n}\n\n/**\n * Detects any Android browser.\n *\n * @returns `true` when the user agent reports Android.\n */\nexport function isAndroid(): boolean {\n if (typeof navigator === \"undefined\") return false;\n return /Android/i.test(navigator.userAgent);\n}\n\n/**\n * Builds an `intent://` URL that re-opens the current page inside Chrome on\n * Android. When Chrome is missing, the fallback URL points to the Play Store so\n * the user can still recover. Returns `null` outside Android.\n *\n * @returns The `intent://` URL, or `null` when not on Android or without a DOM.\n * @see https://developer.chrome.com/docs/multidevice/android/intents\n */\nexport function buildOpenInChromeIntent(): string | null {\n if (typeof window === \"undefined\") return null;\n if (!isAndroid()) return null;\n const host = window.location.host;\n const path = window.location.pathname + window.location.search;\n const fallback = encodeURIComponent(\n \"https://play.google.com/store/apps/details?id=com.android.chrome\",\n );\n return `intent://${host}${path}#Intent;scheme=https;package=com.android.chrome;S.browser_fallback_url=${fallback};end`;\n}\n\n/**\n * Reports whether the app is running as an installed PWA (Android Chrome, iOS,\n * or desktop). Use it to suppress install CTAs once the user is already in the\n * standalone shell.\n *\n * @returns `true` when the display mode is standalone or iOS reports standalone.\n */\nexport function isStandalone(): boolean {\n if (typeof window === \"undefined\") return false;\n if (window.matchMedia?.(\"(display-mode: standalone)\")?.matches) return true;\n return (window.navigator as Navigator & { standalone?: boolean }).standalone === true;\n}\n"],"names":["isIOS","ua","isAndroidWithoutPromptApi","isAndroid","buildOpenInChromeIntent","host","path","fallback","isStandalone"],"mappings":"gFAwBO,SAASA,GAAiB,CAC7B,GAAI,OAAO,UAAc,IAAa,MAAO,GAC7C,MAAMC,EAAK,UAAU,UACrB,MAAI,mBAAmB,KAAKA,CAAE,EAAU,GACjCA,EAAG,SAAS,KAAK,GAAK,UAAU,eAAiB,CAC5D,CASO,SAASC,GAAqC,CACjD,GAAI,OAAO,UAAc,IAAa,MAAO,GAC7C,MAAMD,EAAK,UAAU,UACrB,MAAK,WAAW,KAAKA,CAAE,EAChB,+DAA+D,KAAKA,CAAE,EAD5C,EAErC,CAOO,SAASE,GAAqB,CACjC,OAAI,OAAO,UAAc,IAAoB,GACtC,WAAW,KAAK,UAAU,SAAS,CAC9C,CAUO,SAASC,GAAyC,CAErD,GADI,OAAO,OAAW,KAClB,CAACD,EAAA,EAAa,OAAO,KACzB,MAAME,EAAO,OAAO,SAAS,KACvBC,EAAO,OAAO,SAAS,SAAW,OAAO,SAAS,OAClDC,EAAW,mBACb,kEAAA,EAEJ,MAAO,YAAYF,CAAI,GAAGC,CAAI,0EAA0EC,CAAQ,MACpH,CASO,SAASC,GAAwB,CACpC,OAAI,OAAO,OAAW,IAAoB,GACtC,OAAO,aAAa,4BAA4B,GAAG,QAAgB,GAC/D,OAAO,UAAmD,aAAe,EACrF"}
@@ -0,0 +1,31 @@
1
+ function i() {
2
+ if (typeof navigator > "u") return !1;
3
+ const n = navigator.userAgent;
4
+ return /iPad|iPhone|iPod/.test(n) ? !0 : n.includes("Mac") && navigator.maxTouchPoints > 1;
5
+ }
6
+ function r() {
7
+ if (typeof navigator > "u") return !1;
8
+ const n = navigator.userAgent;
9
+ return /Android/i.test(n) ? /MiuiBrowser|XiaoMi|UCBrowser|Opera Mini|KAIOS|HuaweiBrowser/i.test(n) : !1;
10
+ }
11
+ function o() {
12
+ return typeof navigator > "u" ? !1 : /Android/i.test(navigator.userAgent);
13
+ }
14
+ function a() {
15
+ if (typeof window > "u" || !o()) return null;
16
+ const n = window.location.host, e = window.location.pathname + window.location.search, t = encodeURIComponent(
17
+ "https://play.google.com/store/apps/details?id=com.android.chrome"
18
+ );
19
+ return `intent://${n}${e}#Intent;scheme=https;package=com.android.chrome;S.browser_fallback_url=${t};end`;
20
+ }
21
+ function d() {
22
+ return typeof window > "u" ? !1 : window.matchMedia?.("(display-mode: standalone)")?.matches ? !0 : window.navigator.standalone === !0;
23
+ }
24
+ export {
25
+ a as buildOpenInChromeIntent,
26
+ o as isAndroid,
27
+ r as isAndroidWithoutPromptApi,
28
+ i as isIOS,
29
+ d as isStandalone
30
+ };
31
+ //# sourceMappingURL=pwa-env.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"pwa-env.js","sources":["../../src/hooks/pwa-env.ts"],"sourcesContent":["/**\n * The Chromium-only `beforeinstallprompt` event. iOS Safari never fires it —\n * for those users the app falls back to manual \"Add to Home Screen\"\n * instructions. Ported into the SDK so consumers get the type without a global\n * augmentation.\n */\nexport interface BeforeInstallPromptEvent extends Event {\n /** Platforms the prompt can target (e.g. `[\"web\", \"android\"]`). */\n readonly platforms: readonly string[];\n /** Resolves once the user accepts or dismisses the prompt. */\n readonly userChoice: Promise<{\n outcome: \"accepted\" | \"dismissed\";\n platform: string;\n }>;\n /** Shows the native install prompt. */\n prompt: () => Promise<void>;\n}\n\n/**\n * Detects iOS / iPadOS Safari, including modern iPads that report `MacIntel`\n * plus multi-touch instead of an `iPad` user agent.\n *\n * @returns `true` when running on iOS/iPadOS.\n */\nexport function isIOS(): boolean {\n if (typeof navigator === \"undefined\") return false;\n const ua = navigator.userAgent;\n if (/iPad|iPhone|iPod/.test(ua)) return true;\n return ua.includes(\"Mac\") && navigator.maxTouchPoints > 1;\n}\n\n/**\n * Detects Android browsers that ship a Chromium fork with the\n * `beforeinstallprompt` event stripped or unreliable. Those users must install\n * via the browser menu manually, identical to iOS Safari.\n *\n * @returns `true` when running on such an Android browser.\n */\nexport function isAndroidWithoutPromptApi(): boolean {\n if (typeof navigator === \"undefined\") return false;\n const ua = navigator.userAgent;\n if (!/Android/i.test(ua)) return false;\n return /MiuiBrowser|XiaoMi|UCBrowser|Opera Mini|KAIOS|HuaweiBrowser/i.test(ua);\n}\n\n/**\n * Detects any Android browser.\n *\n * @returns `true` when the user agent reports Android.\n */\nexport function isAndroid(): boolean {\n if (typeof navigator === \"undefined\") return false;\n return /Android/i.test(navigator.userAgent);\n}\n\n/**\n * Builds an `intent://` URL that re-opens the current page inside Chrome on\n * Android. When Chrome is missing, the fallback URL points to the Play Store so\n * the user can still recover. Returns `null` outside Android.\n *\n * @returns The `intent://` URL, or `null` when not on Android or without a DOM.\n * @see https://developer.chrome.com/docs/multidevice/android/intents\n */\nexport function buildOpenInChromeIntent(): string | null {\n if (typeof window === \"undefined\") return null;\n if (!isAndroid()) return null;\n const host = window.location.host;\n const path = window.location.pathname + window.location.search;\n const fallback = encodeURIComponent(\n \"https://play.google.com/store/apps/details?id=com.android.chrome\",\n );\n return `intent://${host}${path}#Intent;scheme=https;package=com.android.chrome;S.browser_fallback_url=${fallback};end`;\n}\n\n/**\n * Reports whether the app is running as an installed PWA (Android Chrome, iOS,\n * or desktop). Use it to suppress install CTAs once the user is already in the\n * standalone shell.\n *\n * @returns `true` when the display mode is standalone or iOS reports standalone.\n */\nexport function isStandalone(): boolean {\n if (typeof window === \"undefined\") return false;\n if (window.matchMedia?.(\"(display-mode: standalone)\")?.matches) return true;\n return (window.navigator as Navigator & { standalone?: boolean }).standalone === true;\n}\n"],"names":["isIOS","ua","isAndroidWithoutPromptApi","isAndroid","buildOpenInChromeIntent","host","path","fallback","isStandalone"],"mappings":"AAwBO,SAASA,IAAiB;AAC7B,MAAI,OAAO,YAAc,IAAa,QAAO;AAC7C,QAAMC,IAAK,UAAU;AACrB,SAAI,mBAAmB,KAAKA,CAAE,IAAU,KACjCA,EAAG,SAAS,KAAK,KAAK,UAAU,iBAAiB;AAC5D;AASO,SAASC,IAAqC;AACjD,MAAI,OAAO,YAAc,IAAa,QAAO;AAC7C,QAAMD,IAAK,UAAU;AACrB,SAAK,WAAW,KAAKA,CAAE,IAChB,+DAA+D,KAAKA,CAAE,IAD5C;AAErC;AAOO,SAASE,IAAqB;AACjC,SAAI,OAAO,YAAc,MAAoB,KACtC,WAAW,KAAK,UAAU,SAAS;AAC9C;AAUO,SAASC,IAAyC;AAErD,MADI,OAAO,SAAW,OAClB,CAACD,EAAA,EAAa,QAAO;AACzB,QAAME,IAAO,OAAO,SAAS,MACvBC,IAAO,OAAO,SAAS,WAAW,OAAO,SAAS,QAClDC,IAAW;AAAA,IACb;AAAA,EAAA;AAEJ,SAAO,YAAYF,CAAI,GAAGC,CAAI,0EAA0EC,CAAQ;AACpH;AASO,SAASC,IAAwB;AACpC,SAAI,OAAO,SAAW,MAAoB,KACtC,OAAO,aAAa,4BAA4B,GAAG,UAAgB,KAC/D,OAAO,UAAmD,eAAe;AACrF;"}
@@ -0,0 +1,2 @@
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const t=require("react");function R(a,f=[],l={}){const{immediate:n=!1}=l,[r,s]=t.useState({status:"idle",data:void 0,error:void 0}),o=t.useRef(a);o.current=a;const u=t.useRef(0),c=t.useRef(!0);t.useEffect(()=>(c.current=!0,()=>{c.current=!1}),[]);const i=t.useCallback(async()=>{const d=++u.current;s(e=>({...e,status:"pending",error:void 0}));try{const e=await o.current();return c.current&&u.current===d&&s({status:"success",data:e,error:void 0}),e}catch(e){throw c.current&&u.current===d&&s({status:"error",data:void 0,error:e}),e}},[]),v=t.useCallback(()=>{u.current++,s({status:"idle",data:void 0,error:void 0})},[]);return t.useEffect(()=>{n&&i().catch(()=>{})},[n,...f]),{status:r.status,data:r.data,error:r.error,isPending:r.status==="pending",isSuccess:r.status==="success",isError:r.status==="error",run:i,reset:v}}exports.useAsync=R;
2
+ //# sourceMappingURL=use-async.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"use-async.cjs","sources":["../../src/hooks/use-async.ts"],"sourcesContent":["import { useCallback, useEffect, useRef, useState } from \"react\";\n\nexport type AsyncStatus = \"idle\" | \"pending\" | \"success\" | \"error\";\n\nexport interface UseAsyncResult<T> {\n status: AsyncStatus;\n data: T | undefined;\n error: unknown;\n isPending: boolean;\n isSuccess: boolean;\n isError: boolean;\n /** Trigger the async function. Resolves with the new data or rejects. */\n run: () => Promise<T>;\n /** Reset state back to idle. */\n reset: () => void;\n}\n\n/**\n * Run an async function and track its `idle/pending/success/error` state.\n *\n * - Discards results from stale runs (race-condition safe).\n * - `immediate` (default `false`) triggers the function on mount and when\n * `deps` change. With `false`, call `run()` manually.\n * - Returns a stable object so callers can destructure or pass around safely.\n *\n * For server data with caching, prefer React Query — `useAsync` is the\n * minimal one-shot primitive without dependencies.\n */\nexport function useAsync<T>(\n asyncFn: () => Promise<T>,\n deps: ReadonlyArray<unknown> = [],\n options: { immediate?: boolean } = {},\n): UseAsyncResult<T> {\n const { immediate = false } = options;\n const [state, setState] = useState<{\n status: AsyncStatus;\n data: T | undefined;\n error: unknown;\n }>({ status: \"idle\", data: undefined, error: undefined });\n\n const fnRef = useRef(asyncFn);\n fnRef.current = asyncFn;\n const callIdRef = useRef<number>(0);\n const mountedRef = useRef<boolean>(true);\n\n useEffect(() => {\n mountedRef.current = true;\n return () => {\n mountedRef.current = false;\n };\n }, []);\n\n const run = useCallback(async (): Promise<T> => {\n const callId = ++callIdRef.current;\n setState((current) => ({ ...current, status: \"pending\", error: undefined }));\n try {\n const data = await fnRef.current();\n if (mountedRef.current && callIdRef.current === callId) {\n setState({ status: \"success\", data, error: undefined });\n }\n return data;\n } catch (error) {\n if (mountedRef.current && callIdRef.current === callId) {\n setState({ status: \"error\", data: undefined, error });\n }\n throw error;\n }\n }, []);\n\n const reset = useCallback((): void => {\n callIdRef.current++;\n setState({ status: \"idle\", data: undefined, error: undefined });\n }, []);\n\n useEffect(() => {\n if (!immediate) return;\n run().catch(() => {\n /* error already captured in state */\n });\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [immediate, ...deps]);\n\n return {\n status: state.status,\n data: state.data,\n error: state.error,\n isPending: state.status === \"pending\",\n isSuccess: state.status === \"success\",\n isError: state.status === \"error\",\n run,\n reset,\n };\n}\n"],"names":["useAsync","asyncFn","deps","options","immediate","state","setState","useState","fnRef","useRef","callIdRef","mountedRef","useEffect","run","useCallback","callId","current","data","error","reset"],"mappings":"yGA4BO,SAASA,EACZC,EACAC,EAA+B,CAAA,EAC/BC,EAAmC,CAAA,EAClB,CACjB,KAAM,CAAE,UAAAC,EAAY,EAAA,EAAUD,EACxB,CAACE,EAAOC,CAAQ,EAAIC,EAAAA,SAIvB,CAAE,OAAQ,OAAQ,KAAM,OAAW,MAAO,MAAA,CAAW,EAElDC,EAAQC,EAAAA,OAAOR,CAAO,EAC5BO,EAAM,QAAUP,EAChB,MAAMS,EAAYD,EAAAA,OAAe,CAAC,EAC5BE,EAAaF,EAAAA,OAAgB,EAAI,EAEvCG,EAAAA,UAAU,KACND,EAAW,QAAU,GACd,IAAM,CACTA,EAAW,QAAU,EACzB,GACD,CAAA,CAAE,EAEL,MAAME,EAAMC,EAAAA,YAAY,SAAwB,CAC5C,MAAMC,EAAS,EAAEL,EAAU,QAC3BJ,EAAUU,IAAa,CAAE,GAAGA,EAAS,OAAQ,UAAW,MAAO,MAAA,EAAY,EAC3E,GAAI,CACA,MAAMC,EAAO,MAAMT,EAAM,QAAA,EACzB,OAAIG,EAAW,SAAWD,EAAU,UAAYK,GAC5CT,EAAS,CAAE,OAAQ,UAAW,KAAAW,EAAM,MAAO,OAAW,EAEnDA,CACX,OAASC,EAAO,CACZ,MAAIP,EAAW,SAAWD,EAAU,UAAYK,GAC5CT,EAAS,CAAE,OAAQ,QAAS,KAAM,OAAW,MAAAY,EAAO,EAElDA,CACV,CACJ,EAAG,CAAA,CAAE,EAECC,EAAQL,EAAAA,YAAY,IAAY,CAClCJ,EAAU,UACVJ,EAAS,CAAE,OAAQ,OAAQ,KAAM,OAAW,MAAO,OAAW,CAClE,EAAG,CAAA,CAAE,EAELM,OAAAA,EAAAA,UAAU,IAAM,CACPR,GACLS,EAAA,EAAM,MAAM,IAAM,CAElB,CAAC,CAEL,EAAG,CAACT,EAAW,GAAGF,CAAI,CAAC,EAEhB,CACH,OAAQG,EAAM,OACd,KAAMA,EAAM,KACZ,MAAOA,EAAM,MACb,UAAWA,EAAM,SAAW,UAC5B,UAAWA,EAAM,SAAW,UAC5B,QAASA,EAAM,SAAW,QAC1B,IAAAQ,EACA,MAAAM,CAAA,CAER"}
@@ -0,0 +1,38 @@
1
+ import { useState as R, useRef as a, useEffect as f, useCallback as l } from "react";
2
+ function h(c, v = [], m = {}) {
3
+ const { immediate: n = !1 } = m, [r, e] = R({ status: "idle", data: void 0, error: void 0 }), o = a(c);
4
+ o.current = c;
5
+ const s = a(0), u = a(!0);
6
+ f(() => (u.current = !0, () => {
7
+ u.current = !1;
8
+ }), []);
9
+ const i = l(async () => {
10
+ const d = ++s.current;
11
+ e((t) => ({ ...t, status: "pending", error: void 0 }));
12
+ try {
13
+ const t = await o.current();
14
+ return u.current && s.current === d && e({ status: "success", data: t, error: void 0 }), t;
15
+ } catch (t) {
16
+ throw u.current && s.current === d && e({ status: "error", data: void 0, error: t }), t;
17
+ }
18
+ }, []), p = l(() => {
19
+ s.current++, e({ status: "idle", data: void 0, error: void 0 });
20
+ }, []);
21
+ return f(() => {
22
+ n && i().catch(() => {
23
+ });
24
+ }, [n, ...v]), {
25
+ status: r.status,
26
+ data: r.data,
27
+ error: r.error,
28
+ isPending: r.status === "pending",
29
+ isSuccess: r.status === "success",
30
+ isError: r.status === "error",
31
+ run: i,
32
+ reset: p
33
+ };
34
+ }
35
+ export {
36
+ h as useAsync
37
+ };
38
+ //# sourceMappingURL=use-async.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"use-async.js","sources":["../../src/hooks/use-async.ts"],"sourcesContent":["import { useCallback, useEffect, useRef, useState } from \"react\";\n\nexport type AsyncStatus = \"idle\" | \"pending\" | \"success\" | \"error\";\n\nexport interface UseAsyncResult<T> {\n status: AsyncStatus;\n data: T | undefined;\n error: unknown;\n isPending: boolean;\n isSuccess: boolean;\n isError: boolean;\n /** Trigger the async function. Resolves with the new data or rejects. */\n run: () => Promise<T>;\n /** Reset state back to idle. */\n reset: () => void;\n}\n\n/**\n * Run an async function and track its `idle/pending/success/error` state.\n *\n * - Discards results from stale runs (race-condition safe).\n * - `immediate` (default `false`) triggers the function on mount and when\n * `deps` change. With `false`, call `run()` manually.\n * - Returns a stable object so callers can destructure or pass around safely.\n *\n * For server data with caching, prefer React Query — `useAsync` is the\n * minimal one-shot primitive without dependencies.\n */\nexport function useAsync<T>(\n asyncFn: () => Promise<T>,\n deps: ReadonlyArray<unknown> = [],\n options: { immediate?: boolean } = {},\n): UseAsyncResult<T> {\n const { immediate = false } = options;\n const [state, setState] = useState<{\n status: AsyncStatus;\n data: T | undefined;\n error: unknown;\n }>({ status: \"idle\", data: undefined, error: undefined });\n\n const fnRef = useRef(asyncFn);\n fnRef.current = asyncFn;\n const callIdRef = useRef<number>(0);\n const mountedRef = useRef<boolean>(true);\n\n useEffect(() => {\n mountedRef.current = true;\n return () => {\n mountedRef.current = false;\n };\n }, []);\n\n const run = useCallback(async (): Promise<T> => {\n const callId = ++callIdRef.current;\n setState((current) => ({ ...current, status: \"pending\", error: undefined }));\n try {\n const data = await fnRef.current();\n if (mountedRef.current && callIdRef.current === callId) {\n setState({ status: \"success\", data, error: undefined });\n }\n return data;\n } catch (error) {\n if (mountedRef.current && callIdRef.current === callId) {\n setState({ status: \"error\", data: undefined, error });\n }\n throw error;\n }\n }, []);\n\n const reset = useCallback((): void => {\n callIdRef.current++;\n setState({ status: \"idle\", data: undefined, error: undefined });\n }, []);\n\n useEffect(() => {\n if (!immediate) return;\n run().catch(() => {\n /* error already captured in state */\n });\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [immediate, ...deps]);\n\n return {\n status: state.status,\n data: state.data,\n error: state.error,\n isPending: state.status === \"pending\",\n isSuccess: state.status === \"success\",\n isError: state.status === \"error\",\n run,\n reset,\n };\n}\n"],"names":["useAsync","asyncFn","deps","options","immediate","state","setState","useState","fnRef","useRef","callIdRef","mountedRef","useEffect","run","useCallback","callId","current","data","error","reset"],"mappings":";AA4BO,SAASA,EACZC,GACAC,IAA+B,CAAA,GAC/BC,IAAmC,CAAA,GAClB;AACjB,QAAM,EAAE,WAAAC,IAAY,GAAA,IAAUD,GACxB,CAACE,GAAOC,CAAQ,IAAIC,EAIvB,EAAE,QAAQ,QAAQ,MAAM,QAAW,OAAO,OAAA,CAAW,GAElDC,IAAQC,EAAOR,CAAO;AAC5B,EAAAO,EAAM,UAAUP;AAChB,QAAMS,IAAYD,EAAe,CAAC,GAC5BE,IAAaF,EAAgB,EAAI;AAEvC,EAAAG,EAAU,OACND,EAAW,UAAU,IACd,MAAM;AACT,IAAAA,EAAW,UAAU;AAAA,EACzB,IACD,CAAA,CAAE;AAEL,QAAME,IAAMC,EAAY,YAAwB;AAC5C,UAAMC,IAAS,EAAEL,EAAU;AAC3B,IAAAJ,EAAS,CAACU,OAAa,EAAE,GAAGA,GAAS,QAAQ,WAAW,OAAO,OAAA,EAAY;AAC3E,QAAI;AACA,YAAMC,IAAO,MAAMT,EAAM,QAAA;AACzB,aAAIG,EAAW,WAAWD,EAAU,YAAYK,KAC5CT,EAAS,EAAE,QAAQ,WAAW,MAAAW,GAAM,OAAO,QAAW,GAEnDA;AAAA,IACX,SAASC,GAAO;AACZ,YAAIP,EAAW,WAAWD,EAAU,YAAYK,KAC5CT,EAAS,EAAE,QAAQ,SAAS,MAAM,QAAW,OAAAY,GAAO,GAElDA;AAAA,IACV;AAAA,EACJ,GAAG,CAAA,CAAE,GAECC,IAAQL,EAAY,MAAY;AAClC,IAAAJ,EAAU,WACVJ,EAAS,EAAE,QAAQ,QAAQ,MAAM,QAAW,OAAO,QAAW;AAAA,EAClE,GAAG,CAAA,CAAE;AAEL,SAAAM,EAAU,MAAM;AACZ,IAAKR,KACLS,EAAA,EAAM,MAAM,MAAM;AAAA,IAElB,CAAC;AAAA,EAEL,GAAG,CAACT,GAAW,GAAGF,CAAI,CAAC,GAEhB;AAAA,IACH,QAAQG,EAAM;AAAA,IACd,MAAMA,EAAM;AAAA,IACZ,OAAOA,EAAM;AAAA,IACb,WAAWA,EAAM,WAAW;AAAA,IAC5B,WAAWA,EAAM,WAAW;AAAA,IAC5B,SAASA,EAAM,WAAW;AAAA,IAC1B,KAAAQ;AAAA,IACA,OAAAM;AAAA,EAAA;AAER;"}
@@ -0,0 +1,2 @@
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const a=require("react");function c(){if(typeof window>"u")return!1;const t=["standalone","fullscreen","minimal-ui"].some(o=>window.matchMedia?.(`(display-mode: ${o})`)?.matches),s=window.navigator.standalone===!0;return t||s}function m(){const[e,t]=a.useState(null),[s,o]=a.useState(!1),[p,r]=a.useState(c);a.useEffect(()=>{if(typeof window>"u")return;const n=u=>{u.preventDefault(),t(u)},d=()=>{t(null),o(!0),r(!0)},l=window.matchMedia?.("(display-mode: standalone)"),i=()=>r(c());return window.addEventListener("beforeinstallprompt",n),window.addEventListener("appinstalled",d),l?.addEventListener("change",i),()=>{window.removeEventListener("beforeinstallprompt",n),window.removeEventListener("appinstalled",d),l?.removeEventListener("change",i)}},[]);const f=a.useCallback(async()=>{if(!e)return"unsupported";await e.prompt();const n=await e.userChoice;return t(null),n.outcome==="accepted"&&o(!0),n.outcome},[e]);return{installable:!!e,installed:s,isStandalone:p,prompt:f}}exports.useBeforeInstallPrompt=m;
2
+ //# sourceMappingURL=use-before-install-prompt.cjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"use-before-install-prompt.cjs","sources":["../../src/hooks/use-before-install-prompt.ts"],"sourcesContent":["import { useCallback, useEffect, useState } from \"react\";\n\ninterface BeforeInstallPromptEvent extends Event {\n readonly platforms: readonly string[];\n readonly userChoice: Promise<{ outcome: \"accepted\" | \"dismissed\"; platform: string }>;\n prompt(): Promise<void>;\n}\n\nexport interface UseBeforeInstallPromptResult {\n /** True when the browser fired `beforeinstallprompt` and the user has not yet decided. */\n installable: boolean;\n /** True after the user accepts the install prompt. */\n installed: boolean;\n /**\n * True when the app is already running as an installed PWA (display-mode\n * `standalone`/`fullscreen`/`minimal-ui`, or iOS `navigator.standalone`).\n * Use it to hide install affordances for users who already installed.\n */\n isStandalone: boolean;\n /** Show the install prompt. Resolves with the user's choice. */\n prompt: () => Promise<\"accepted\" | \"dismissed\" | \"unsupported\">;\n}\n\n/** Detect whether the document is running inside an installed PWA window. */\nfunction detectStandalone(): boolean {\n if (typeof window === \"undefined\") return false;\n const displayModes = [\"standalone\", \"fullscreen\", \"minimal-ui\"];\n const matchesDisplayMode = displayModes.some(\n (mode) => window.matchMedia?.(`(display-mode: ${mode})`)?.matches,\n );\n // iOS Safari exposes the legacy non-standard `navigator.standalone`.\n const iosStandalone =\n (window.navigator as Navigator & { standalone?: boolean }).standalone === true;\n return matchesDisplayMode || iosStandalone;\n}\n\n/**\n * React hook for the PWA install prompt. Captures the `beforeinstallprompt`\n * event so you can defer the install UI to a moment that fits your UX.\n */\nexport function useBeforeInstallPrompt(): UseBeforeInstallPromptResult {\n const [deferred, setDeferred] = useState<BeforeInstallPromptEvent | null>(null);\n const [installed, setInstalled] = useState<boolean>(false);\n const [isStandalone, setIsStandalone] = useState<boolean>(detectStandalone);\n\n useEffect(() => {\n if (typeof window === \"undefined\") return;\n const handler = (event: Event): void => {\n event.preventDefault();\n setDeferred(event as BeforeInstallPromptEvent);\n };\n const installedHandler = (): void => {\n setDeferred(null);\n setInstalled(true);\n setIsStandalone(true);\n };\n const displayModeQuery = window.matchMedia?.(\"(display-mode: standalone)\");\n const displayModeHandler = (): void => setIsStandalone(detectStandalone());\n window.addEventListener(\"beforeinstallprompt\", handler);\n window.addEventListener(\"appinstalled\", installedHandler);\n displayModeQuery?.addEventListener(\"change\", displayModeHandler);\n return () => {\n window.removeEventListener(\"beforeinstallprompt\", handler);\n window.removeEventListener(\"appinstalled\", installedHandler);\n displayModeQuery?.removeEventListener(\"change\", displayModeHandler);\n };\n }, []);\n\n const prompt = useCallback(async (): Promise<\"accepted\" | \"dismissed\" | \"unsupported\"> => {\n if (!deferred) return \"unsupported\";\n await deferred.prompt();\n const result = await deferred.userChoice;\n setDeferred(null);\n if (result.outcome === \"accepted\") setInstalled(true);\n return result.outcome;\n }, [deferred]);\n\n return {\n installable: !!deferred,\n installed,\n isStandalone,\n prompt,\n };\n}\n"],"names":["detectStandalone","matchesDisplayMode","mode","iosStandalone","useBeforeInstallPrompt","deferred","setDeferred","useState","installed","setInstalled","isStandalone","setIsStandalone","useEffect","handler","event","installedHandler","displayModeQuery","displayModeHandler","prompt","useCallback","result"],"mappings":"yGAwBA,SAASA,GAA4B,CACjC,GAAI,OAAO,OAAW,IAAa,MAAO,GAE1C,MAAMC,EADe,CAAC,aAAc,aAAc,YAAY,EACtB,KACnCC,GAAS,OAAO,aAAa,kBAAkBA,CAAI,GAAG,GAAG,OAAA,EAGxDC,EACD,OAAO,UAAmD,aAAe,GAC9E,OAAOF,GAAsBE,CACjC,CAMO,SAASC,GAAuD,CACnE,KAAM,CAACC,EAAUC,CAAW,EAAIC,EAAAA,SAA0C,IAAI,EACxE,CAACC,EAAWC,CAAY,EAAIF,EAAAA,SAAkB,EAAK,EACnD,CAACG,EAAcC,CAAe,EAAIJ,EAAAA,SAAkBP,CAAgB,EAE1EY,EAAAA,UAAU,IAAM,CACZ,GAAI,OAAO,OAAW,IAAa,OACnC,MAAMC,EAAWC,GAAuB,CACpCA,EAAM,eAAA,EACNR,EAAYQ,CAAiC,CACjD,EACMC,EAAmB,IAAY,CACjCT,EAAY,IAAI,EAChBG,EAAa,EAAI,EACjBE,EAAgB,EAAI,CACxB,EACMK,EAAmB,OAAO,aAAa,4BAA4B,EACnEC,EAAqB,IAAYN,EAAgBX,GAAkB,EACzE,cAAO,iBAAiB,sBAAuBa,CAAO,EACtD,OAAO,iBAAiB,eAAgBE,CAAgB,EACxDC,GAAkB,iBAAiB,SAAUC,CAAkB,EACxD,IAAM,CACT,OAAO,oBAAoB,sBAAuBJ,CAAO,EACzD,OAAO,oBAAoB,eAAgBE,CAAgB,EAC3DC,GAAkB,oBAAoB,SAAUC,CAAkB,CACtE,CACJ,EAAG,CAAA,CAAE,EAEL,MAAMC,EAASC,EAAAA,YAAY,SAA+D,CACtF,GAAI,CAACd,EAAU,MAAO,cACtB,MAAMA,EAAS,OAAA,EACf,MAAMe,EAAS,MAAMf,EAAS,WAC9B,OAAAC,EAAY,IAAI,EACZc,EAAO,UAAY,YAAYX,EAAa,EAAI,EAC7CW,EAAO,OAClB,EAAG,CAACf,CAAQ,CAAC,EAEb,MAAO,CACH,YAAa,CAAC,CAACA,EACf,UAAAG,EACA,aAAAE,EACA,OAAAQ,CAAA,CAER"}
@@ -0,0 +1,38 @@
1
+ import { useState as s, useEffect as m, useCallback as w } from "react";
2
+ function c() {
3
+ if (typeof window > "u") return !1;
4
+ const n = ["standalone", "fullscreen", "minimal-ui"].some(
5
+ (a) => window.matchMedia?.(`(display-mode: ${a})`)?.matches
6
+ ), o = window.navigator.standalone === !0;
7
+ return n || o;
8
+ }
9
+ function v() {
10
+ const [e, n] = s(null), [o, a] = s(!1), [p, d] = s(c);
11
+ m(() => {
12
+ if (typeof window > "u") return;
13
+ const t = (u) => {
14
+ u.preventDefault(), n(u);
15
+ }, r = () => {
16
+ n(null), a(!0), d(!0);
17
+ }, l = window.matchMedia?.("(display-mode: standalone)"), i = () => d(c());
18
+ return window.addEventListener("beforeinstallprompt", t), window.addEventListener("appinstalled", r), l?.addEventListener("change", i), () => {
19
+ window.removeEventListener("beforeinstallprompt", t), window.removeEventListener("appinstalled", r), l?.removeEventListener("change", i);
20
+ };
21
+ }, []);
22
+ const f = w(async () => {
23
+ if (!e) return "unsupported";
24
+ await e.prompt();
25
+ const t = await e.userChoice;
26
+ return n(null), t.outcome === "accepted" && a(!0), t.outcome;
27
+ }, [e]);
28
+ return {
29
+ installable: !!e,
30
+ installed: o,
31
+ isStandalone: p,
32
+ prompt: f
33
+ };
34
+ }
35
+ export {
36
+ v as useBeforeInstallPrompt
37
+ };
38
+ //# sourceMappingURL=use-before-install-prompt.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"use-before-install-prompt.js","sources":["../../src/hooks/use-before-install-prompt.ts"],"sourcesContent":["import { useCallback, useEffect, useState } from \"react\";\n\ninterface BeforeInstallPromptEvent extends Event {\n readonly platforms: readonly string[];\n readonly userChoice: Promise<{ outcome: \"accepted\" | \"dismissed\"; platform: string }>;\n prompt(): Promise<void>;\n}\n\nexport interface UseBeforeInstallPromptResult {\n /** True when the browser fired `beforeinstallprompt` and the user has not yet decided. */\n installable: boolean;\n /** True after the user accepts the install prompt. */\n installed: boolean;\n /**\n * True when the app is already running as an installed PWA (display-mode\n * `standalone`/`fullscreen`/`minimal-ui`, or iOS `navigator.standalone`).\n * Use it to hide install affordances for users who already installed.\n */\n isStandalone: boolean;\n /** Show the install prompt. Resolves with the user's choice. */\n prompt: () => Promise<\"accepted\" | \"dismissed\" | \"unsupported\">;\n}\n\n/** Detect whether the document is running inside an installed PWA window. */\nfunction detectStandalone(): boolean {\n if (typeof window === \"undefined\") return false;\n const displayModes = [\"standalone\", \"fullscreen\", \"minimal-ui\"];\n const matchesDisplayMode = displayModes.some(\n (mode) => window.matchMedia?.(`(display-mode: ${mode})`)?.matches,\n );\n // iOS Safari exposes the legacy non-standard `navigator.standalone`.\n const iosStandalone =\n (window.navigator as Navigator & { standalone?: boolean }).standalone === true;\n return matchesDisplayMode || iosStandalone;\n}\n\n/**\n * React hook for the PWA install prompt. Captures the `beforeinstallprompt`\n * event so you can defer the install UI to a moment that fits your UX.\n */\nexport function useBeforeInstallPrompt(): UseBeforeInstallPromptResult {\n const [deferred, setDeferred] = useState<BeforeInstallPromptEvent | null>(null);\n const [installed, setInstalled] = useState<boolean>(false);\n const [isStandalone, setIsStandalone] = useState<boolean>(detectStandalone);\n\n useEffect(() => {\n if (typeof window === \"undefined\") return;\n const handler = (event: Event): void => {\n event.preventDefault();\n setDeferred(event as BeforeInstallPromptEvent);\n };\n const installedHandler = (): void => {\n setDeferred(null);\n setInstalled(true);\n setIsStandalone(true);\n };\n const displayModeQuery = window.matchMedia?.(\"(display-mode: standalone)\");\n const displayModeHandler = (): void => setIsStandalone(detectStandalone());\n window.addEventListener(\"beforeinstallprompt\", handler);\n window.addEventListener(\"appinstalled\", installedHandler);\n displayModeQuery?.addEventListener(\"change\", displayModeHandler);\n return () => {\n window.removeEventListener(\"beforeinstallprompt\", handler);\n window.removeEventListener(\"appinstalled\", installedHandler);\n displayModeQuery?.removeEventListener(\"change\", displayModeHandler);\n };\n }, []);\n\n const prompt = useCallback(async (): Promise<\"accepted\" | \"dismissed\" | \"unsupported\"> => {\n if (!deferred) return \"unsupported\";\n await deferred.prompt();\n const result = await deferred.userChoice;\n setDeferred(null);\n if (result.outcome === \"accepted\") setInstalled(true);\n return result.outcome;\n }, [deferred]);\n\n return {\n installable: !!deferred,\n installed,\n isStandalone,\n prompt,\n };\n}\n"],"names":["detectStandalone","matchesDisplayMode","mode","iosStandalone","useBeforeInstallPrompt","deferred","setDeferred","useState","installed","setInstalled","isStandalone","setIsStandalone","useEffect","handler","event","installedHandler","displayModeQuery","displayModeHandler","prompt","useCallback","result"],"mappings":";AAwBA,SAASA,IAA4B;AACjC,MAAI,OAAO,SAAW,IAAa,QAAO;AAE1C,QAAMC,IADe,CAAC,cAAc,cAAc,YAAY,EACtB;AAAA,IACpC,CAACC,MAAS,OAAO,aAAa,kBAAkBA,CAAI,GAAG,GAAG;AAAA,EAAA,GAGxDC,IACD,OAAO,UAAmD,eAAe;AAC9E,SAAOF,KAAsBE;AACjC;AAMO,SAASC,IAAuD;AACnE,QAAM,CAACC,GAAUC,CAAW,IAAIC,EAA0C,IAAI,GACxE,CAACC,GAAWC,CAAY,IAAIF,EAAkB,EAAK,GACnD,CAACG,GAAcC,CAAe,IAAIJ,EAAkBP,CAAgB;AAE1E,EAAAY,EAAU,MAAM;AACZ,QAAI,OAAO,SAAW,IAAa;AACnC,UAAMC,IAAU,CAACC,MAAuB;AACpC,MAAAA,EAAM,eAAA,GACNR,EAAYQ,CAAiC;AAAA,IACjD,GACMC,IAAmB,MAAY;AACjC,MAAAT,EAAY,IAAI,GAChBG,EAAa,EAAI,GACjBE,EAAgB,EAAI;AAAA,IACxB,GACMK,IAAmB,OAAO,aAAa,4BAA4B,GACnEC,IAAqB,MAAYN,EAAgBX,GAAkB;AACzE,kBAAO,iBAAiB,uBAAuBa,CAAO,GACtD,OAAO,iBAAiB,gBAAgBE,CAAgB,GACxDC,GAAkB,iBAAiB,UAAUC,CAAkB,GACxD,MAAM;AACT,aAAO,oBAAoB,uBAAuBJ,CAAO,GACzD,OAAO,oBAAoB,gBAAgBE,CAAgB,GAC3DC,GAAkB,oBAAoB,UAAUC,CAAkB;AAAA,IACtE;AAAA,EACJ,GAAG,CAAA,CAAE;AAEL,QAAMC,IAASC,EAAY,YAA+D;AACtF,QAAI,CAACd,EAAU,QAAO;AACtB,UAAMA,EAAS,OAAA;AACf,UAAMe,IAAS,MAAMf,EAAS;AAC9B,WAAAC,EAAY,IAAI,GACZc,EAAO,YAAY,cAAYX,EAAa,EAAI,GAC7CW,EAAO;AAAA,EAClB,GAAG,CAACf,CAAQ,CAAC;AAEb,SAAO;AAAA,IACH,aAAa,CAAC,CAACA;AAAA,IACf,WAAAG;AAAA,IACA,cAAAE;AAAA,IACA,QAAAQ;AAAA,EAAA;AAER;"}
@@ -0,0 +1,2 @@
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const d=require("react"),o={xs:480,sm:640,md:768,lg:1024,xl:1280,"2xl":1536},u=["xs","sm","md","lg","xl","2xl"];function c(t){let n="xs";for(const i of u)t>=o[i]&&(n=i);return n}function l(){const[t,n]=d.useState(()=>typeof window>"u"?0:window.innerWidth);d.useEffect(()=>{if(typeof window>"u")return;const e=()=>n(window.innerWidth);return e(),window.addEventListener("resize",e,{passive:!0}),()=>window.removeEventListener("resize",e)},[]);const i=c(t),r=e=>t>=o[e],s=e=>t<o[e];return{current:i,width:t,above:r,below:s,isMobile:s("md"),isTablet:r("md")&&s("lg"),isDesktop:r("lg")}}exports.BREAKPOINTS=o;exports.useBreakpoint=l;
2
+ //# sourceMappingURL=use-breakpoint.cjs.map