@makroz/web 1.2.0 → 1.2.2

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 (467) hide show
  1. package/dist/auth/MkAuthContext.d.ts +43 -0
  2. package/dist/auth/MkAuthContext.d.ts.map +1 -0
  3. package/dist/auth/MkAuthContext.js +3 -0
  4. package/dist/auth/MkAuthContext.js.map +1 -0
  5. package/dist/auth/MkAuthForm.d.ts +42 -0
  6. package/dist/auth/MkAuthForm.d.ts.map +1 -0
  7. package/dist/auth/MkAuthForm.js +53 -0
  8. package/dist/auth/MkAuthForm.js.map +1 -0
  9. package/dist/auth/MkAuthProvider.d.ts +30 -0
  10. package/dist/auth/MkAuthProvider.d.ts.map +1 -0
  11. package/dist/auth/MkAuthProvider.js +317 -0
  12. package/dist/auth/MkAuthProvider.js.map +1 -0
  13. package/dist/auth/types.d.ts +63 -0
  14. package/dist/auth/types.d.ts.map +1 -0
  15. package/dist/auth/types.js +20 -0
  16. package/dist/auth/types.js.map +1 -0
  17. package/dist/auth/useMkAuth.d.ts +19 -0
  18. package/dist/auth/useMkAuth.d.ts.map +1 -0
  19. package/dist/auth/useMkAuth.js +26 -0
  20. package/dist/auth/useMkAuth.js.map +1 -0
  21. package/dist/components/FormField.d.ts +27 -0
  22. package/dist/components/FormField.d.ts.map +1 -0
  23. package/dist/components/FormField.js +18 -0
  24. package/dist/components/FormField.js.map +1 -0
  25. package/dist/components/FormField.stories.d.ts +11 -0
  26. package/dist/components/FormField.stories.d.ts.map +1 -0
  27. package/dist/components/FormField.stories.js +61 -0
  28. package/dist/components/FormField.stories.js.map +1 -0
  29. package/dist/components/MkAccordion.d.ts +36 -0
  30. package/dist/components/MkAccordion.d.ts.map +1 -0
  31. package/dist/components/MkAccordion.js +23 -0
  32. package/dist/components/MkAccordion.js.map +1 -0
  33. package/dist/components/MkAccordion.module.css +79 -0
  34. package/dist/components/MkAccordion.stories.d.ts +13 -0
  35. package/dist/components/MkAccordion.stories.d.ts.map +1 -0
  36. package/dist/components/MkAccordion.stories.js +76 -0
  37. package/dist/components/MkAccordion.stories.js.map +1 -0
  38. package/dist/components/MkAccordion.stories.test.d.ts +2 -0
  39. package/dist/components/MkAccordion.stories.test.d.ts.map +1 -0
  40. package/dist/components/MkAccordion.stories.test.js +18 -0
  41. package/dist/components/MkAccordion.stories.test.js.map +1 -0
  42. package/dist/components/MkAlert.d.ts +25 -0
  43. package/dist/components/MkAlert.d.ts.map +1 -0
  44. package/dist/components/MkAlert.js +21 -0
  45. package/dist/components/MkAlert.js.map +1 -0
  46. package/dist/components/MkAlert.module.css +103 -0
  47. package/dist/components/MkAlert.stories.d.ts +13 -0
  48. package/dist/components/MkAlert.stories.d.ts.map +1 -0
  49. package/dist/components/MkAlert.stories.js +75 -0
  50. package/dist/components/MkAlert.stories.js.map +1 -0
  51. package/dist/components/MkAlert.stories.test.d.ts +2 -0
  52. package/dist/components/MkAlert.stories.test.d.ts.map +1 -0
  53. package/dist/components/MkAlert.stories.test.js +16 -0
  54. package/dist/components/MkAlert.stories.test.js.map +1 -0
  55. package/dist/components/MkAvatar.d.ts +16 -0
  56. package/dist/components/MkAvatar.d.ts.map +1 -0
  57. package/dist/components/MkAvatar.js +23 -0
  58. package/dist/components/MkAvatar.js.map +1 -0
  59. package/dist/components/MkAvatar.module.css +62 -0
  60. package/dist/components/MkAvatar.stories.d.ts +14 -0
  61. package/dist/components/MkAvatar.stories.d.ts.map +1 -0
  62. package/dist/components/MkAvatar.stories.js +67 -0
  63. package/dist/components/MkAvatar.stories.js.map +1 -0
  64. package/dist/components/MkAvatar.stories.test.d.ts +2 -0
  65. package/dist/components/MkAvatar.stories.test.d.ts.map +1 -0
  66. package/dist/components/MkAvatar.stories.test.js +16 -0
  67. package/dist/components/MkAvatar.stories.test.js.map +1 -0
  68. package/dist/components/MkBadge.d.ts +15 -0
  69. package/dist/components/MkBadge.d.ts.map +1 -0
  70. package/dist/components/MkBadge.js +7 -0
  71. package/dist/components/MkBadge.js.map +1 -0
  72. package/dist/components/MkBadge.module.css +74 -0
  73. package/dist/components/MkBadge.stories.d.ts +15 -0
  74. package/dist/components/MkBadge.stories.d.ts.map +1 -0
  75. package/dist/components/MkBadge.stories.js +78 -0
  76. package/dist/components/MkBadge.stories.js.map +1 -0
  77. package/dist/components/MkBadge.stories.test.d.ts +2 -0
  78. package/dist/components/MkBadge.stories.test.d.ts.map +1 -0
  79. package/dist/components/MkBadge.stories.test.js +16 -0
  80. package/dist/components/MkBadge.stories.test.js.map +1 -0
  81. package/dist/components/MkButton.d.ts +11 -0
  82. package/dist/components/MkButton.module.css +85 -0
  83. package/dist/components/MkButton.stories.d.ts +12 -0
  84. package/dist/components/MkButton.stories.d.ts.map +1 -0
  85. package/dist/components/MkButton.stories.js +57 -0
  86. package/dist/components/MkButton.stories.js.map +1 -0
  87. package/dist/components/MkButton.test.d.ts +2 -0
  88. package/dist/components/MkButton.test.d.ts.map +1 -0
  89. package/dist/components/MkButton.test.js +56 -0
  90. package/dist/components/MkButton.test.js.map +1 -0
  91. package/dist/components/MkCard.d.ts +18 -0
  92. package/dist/components/MkCard.d.ts.map +1 -0
  93. package/dist/components/MkCard.js +6 -0
  94. package/dist/components/MkCard.js.map +1 -0
  95. package/dist/components/MkCard.module.css +63 -0
  96. package/dist/components/MkCard.stories.d.ts +11 -0
  97. package/dist/components/MkCard.stories.d.ts.map +1 -0
  98. package/dist/components/MkCard.stories.js +57 -0
  99. package/dist/components/MkCard.stories.js.map +1 -0
  100. package/dist/components/MkCheck.d.ts +32 -0
  101. package/dist/components/MkCheck.d.ts.map +1 -0
  102. package/dist/components/MkCheck.js +12 -0
  103. package/dist/components/MkCheck.js.map +1 -0
  104. package/dist/components/MkCheck.module.css +87 -0
  105. package/dist/components/MkCheck.stories.d.ts +13 -0
  106. package/dist/components/MkCheck.stories.d.ts.map +1 -0
  107. package/dist/components/MkCheck.stories.js +63 -0
  108. package/dist/components/MkCheck.stories.js.map +1 -0
  109. package/dist/components/MkCheck.stories.test.d.ts +2 -0
  110. package/dist/components/MkCheck.stories.test.d.ts.map +1 -0
  111. package/dist/components/MkCheck.stories.test.js +16 -0
  112. package/dist/components/MkCheck.stories.test.js.map +1 -0
  113. package/dist/components/MkDatePicker.d.ts +29 -0
  114. package/dist/components/MkDatePicker.d.ts.map +1 -0
  115. package/dist/components/MkDatePicker.js +10 -0
  116. package/dist/components/MkDatePicker.js.map +1 -0
  117. package/dist/components/MkDatePicker.module.css +77 -0
  118. package/dist/components/MkDatePicker.stories.d.ts +11 -0
  119. package/dist/components/MkDatePicker.stories.d.ts.map +1 -0
  120. package/dist/components/MkDatePicker.stories.js +47 -0
  121. package/dist/components/MkDatePicker.stories.js.map +1 -0
  122. package/dist/components/MkDatePicker.stories.test.d.ts +2 -0
  123. package/dist/components/MkDatePicker.stories.test.d.ts.map +1 -0
  124. package/dist/components/MkDatePicker.stories.test.js +16 -0
  125. package/dist/components/MkDatePicker.stories.test.js.map +1 -0
  126. package/dist/components/MkDivider.d.ts +14 -0
  127. package/dist/components/MkDivider.d.ts.map +1 -0
  128. package/dist/components/MkDivider.js +12 -0
  129. package/dist/components/MkDivider.js.map +1 -0
  130. package/dist/components/MkDivider.module.css +39 -0
  131. package/dist/components/MkDivider.stories.d.ts +12 -0
  132. package/dist/components/MkDivider.stories.d.ts.map +1 -0
  133. package/dist/components/MkDivider.stories.js +33 -0
  134. package/dist/components/MkDivider.stories.js.map +1 -0
  135. package/dist/components/MkDivider.stories.test.d.ts +2 -0
  136. package/dist/components/MkDivider.stories.test.d.ts.map +1 -0
  137. package/dist/components/MkDivider.stories.test.js +15 -0
  138. package/dist/components/MkDivider.stories.test.js.map +1 -0
  139. package/dist/components/MkDropDown.d.ts +22 -0
  140. package/dist/components/MkDropDown.d.ts.map +1 -0
  141. package/dist/components/MkDropDown.js +24 -0
  142. package/dist/components/MkDropDown.js.map +1 -0
  143. package/dist/components/MkDropDown.module.css +108 -0
  144. package/dist/components/MkDropDown.stories.d.ts +12 -0
  145. package/dist/components/MkDropDown.stories.d.ts.map +1 -0
  146. package/dist/components/MkDropDown.stories.js +76 -0
  147. package/dist/components/MkDropDown.stories.js.map +1 -0
  148. package/dist/components/MkDropDown.stories.test.d.ts +2 -0
  149. package/dist/components/MkDropDown.stories.test.d.ts.map +1 -0
  150. package/dist/components/MkDropDown.stories.test.js +18 -0
  151. package/dist/components/MkDropDown.stories.test.js.map +1 -0
  152. package/dist/components/MkEmptyState.d.ts +14 -0
  153. package/dist/components/MkEmptyState.d.ts.map +1 -0
  154. package/dist/components/MkEmptyState.js +6 -0
  155. package/dist/components/MkEmptyState.js.map +1 -0
  156. package/dist/components/MkEmptyState.module.css +35 -0
  157. package/dist/components/MkEmptyState.stories.d.ts +12 -0
  158. package/dist/components/MkEmptyState.stories.d.ts.map +1 -0
  159. package/dist/components/MkEmptyState.stories.js +44 -0
  160. package/dist/components/MkEmptyState.stories.js.map +1 -0
  161. package/dist/components/MkEmptyState.stories.test.d.ts +2 -0
  162. package/dist/components/MkEmptyState.stories.test.d.ts.map +1 -0
  163. package/dist/components/MkEmptyState.stories.test.js +15 -0
  164. package/dist/components/MkEmptyState.stories.test.js.map +1 -0
  165. package/dist/components/MkFileUpload.d.ts +36 -0
  166. package/dist/components/MkFileUpload.d.ts.map +1 -0
  167. package/dist/components/MkFileUpload.js +50 -0
  168. package/dist/components/MkFileUpload.js.map +1 -0
  169. package/dist/components/MkFileUpload.module.css +74 -0
  170. package/dist/components/MkFileUpload.stories.d.ts +12 -0
  171. package/dist/components/MkFileUpload.stories.d.ts.map +1 -0
  172. package/dist/components/MkFileUpload.stories.js +53 -0
  173. package/dist/components/MkFileUpload.stories.js.map +1 -0
  174. package/dist/components/MkFileUpload.stories.test.d.ts +2 -0
  175. package/dist/components/MkFileUpload.stories.test.d.ts.map +1 -0
  176. package/dist/components/MkFileUpload.stories.test.js +15 -0
  177. package/dist/components/MkFileUpload.stories.test.js.map +1 -0
  178. package/dist/components/MkIcons.d.ts +14 -0
  179. package/dist/components/MkIcons.d.ts.map +1 -0
  180. package/dist/components/MkIcons.js +36 -0
  181. package/dist/components/MkIcons.js.map +1 -0
  182. package/dist/components/MkInfiniteList.d.ts +15 -0
  183. package/dist/components/MkInfiniteList.d.ts.map +1 -0
  184. package/dist/components/MkInfiniteList.js +29 -0
  185. package/dist/components/MkInfiniteList.js.map +1 -0
  186. package/dist/components/MkInfiniteList.module.css +69 -0
  187. package/dist/components/MkInfiniteList.stories.d.ts +17 -0
  188. package/dist/components/MkInfiniteList.stories.d.ts.map +1 -0
  189. package/dist/components/MkInfiniteList.stories.js +90 -0
  190. package/dist/components/MkInfiniteList.stories.js.map +1 -0
  191. package/dist/components/MkInfiniteList.stories.test.d.ts +2 -0
  192. package/dist/components/MkInfiniteList.stories.test.d.ts.map +1 -0
  193. package/dist/components/MkInfiniteList.stories.test.js +24 -0
  194. package/dist/components/MkInfiniteList.stories.test.js.map +1 -0
  195. package/dist/components/MkInput.d.ts +13 -0
  196. package/dist/components/MkInput.d.ts.map +1 -0
  197. package/dist/components/MkInput.js +21 -0
  198. package/dist/components/MkInput.js.map +1 -0
  199. package/dist/components/MkInput.module.css +94 -0
  200. package/dist/components/MkInput.stories.d.ts +13 -0
  201. package/dist/components/MkInput.stories.d.ts.map +1 -0
  202. package/dist/components/MkInput.stories.js +75 -0
  203. package/dist/components/MkInput.stories.js.map +1 -0
  204. package/dist/components/MkInput.stories.test.d.ts +2 -0
  205. package/dist/components/MkInput.stories.test.d.ts.map +1 -0
  206. package/dist/components/MkInput.stories.test.js +16 -0
  207. package/dist/components/MkInput.stories.test.js.map +1 -0
  208. package/dist/components/MkLoading.d.ts +20 -0
  209. package/dist/components/MkLoading.d.ts.map +1 -0
  210. package/dist/components/MkLoading.js +14 -0
  211. package/dist/components/MkLoading.js.map +1 -0
  212. package/dist/components/MkLoading.module.css +39 -0
  213. package/dist/components/MkLoading.stories.d.ts +13 -0
  214. package/dist/components/MkLoading.stories.d.ts.map +1 -0
  215. package/dist/components/MkLoading.stories.js +35 -0
  216. package/dist/components/MkLoading.stories.js.map +1 -0
  217. package/dist/components/MkLoading.stories.test.d.ts +2 -0
  218. package/dist/components/MkLoading.stories.test.d.ts.map +1 -0
  219. package/dist/components/MkLoading.stories.test.js +15 -0
  220. package/dist/components/MkLoading.stories.test.js.map +1 -0
  221. package/dist/components/MkModal.d.ts +20 -0
  222. package/dist/components/MkModal.d.ts.map +1 -0
  223. package/dist/components/MkModal.js +31 -0
  224. package/dist/components/MkModal.js.map +1 -0
  225. package/dist/components/MkModal.module.css +107 -0
  226. package/dist/components/MkModal.stories.d.ts +13 -0
  227. package/dist/components/MkModal.stories.d.ts.map +1 -0
  228. package/dist/components/MkModal.stories.js +73 -0
  229. package/dist/components/MkModal.stories.js.map +1 -0
  230. package/dist/components/MkProgressBar.d.ts +17 -0
  231. package/dist/components/MkProgressBar.d.ts.map +1 -0
  232. package/dist/components/MkProgressBar.js +7 -0
  233. package/dist/components/MkProgressBar.js.map +1 -0
  234. package/dist/components/MkProgressBar.module.css +48 -0
  235. package/dist/components/MkProgressBar.stories.d.ts +13 -0
  236. package/dist/components/MkProgressBar.stories.d.ts.map +1 -0
  237. package/dist/components/MkProgressBar.stories.js +39 -0
  238. package/dist/components/MkProgressBar.stories.js.map +1 -0
  239. package/dist/components/MkProgressBar.stories.test.d.ts +2 -0
  240. package/dist/components/MkProgressBar.stories.test.d.ts.map +1 -0
  241. package/dist/components/MkProgressBar.stories.test.js +15 -0
  242. package/dist/components/MkProgressBar.stories.test.js.map +1 -0
  243. package/dist/components/MkRadio.d.ts +34 -0
  244. package/dist/components/MkRadio.d.ts.map +1 -0
  245. package/dist/components/MkRadio.js +19 -0
  246. package/dist/components/MkRadio.js.map +1 -0
  247. package/dist/components/MkRadio.module.css +74 -0
  248. package/dist/components/MkRadio.stories.d.ts +13 -0
  249. package/dist/components/MkRadio.stories.d.ts.map +1 -0
  250. package/dist/components/MkRadio.stories.js +55 -0
  251. package/dist/components/MkRadio.stories.js.map +1 -0
  252. package/dist/components/MkRadio.stories.test.d.ts +2 -0
  253. package/dist/components/MkRadio.stories.test.d.ts.map +1 -0
  254. package/dist/components/MkRadio.stories.test.js +18 -0
  255. package/dist/components/MkRadio.stories.test.js.map +1 -0
  256. package/dist/components/MkSearchInput.d.ts +30 -0
  257. package/dist/components/MkSearchInput.d.ts.map +1 -0
  258. package/dist/components/MkSearchInput.js +27 -0
  259. package/dist/components/MkSearchInput.js.map +1 -0
  260. package/dist/components/MkSearchInput.module.css +80 -0
  261. package/dist/components/MkSearchInput.stories.d.ts +13 -0
  262. package/dist/components/MkSearchInput.stories.d.ts.map +1 -0
  263. package/dist/components/MkSearchInput.stories.js +47 -0
  264. package/dist/components/MkSearchInput.stories.js.map +1 -0
  265. package/dist/components/MkSearchInput.stories.test.d.ts +2 -0
  266. package/dist/components/MkSearchInput.stories.test.d.ts.map +1 -0
  267. package/dist/components/MkSearchInput.stories.test.js +15 -0
  268. package/dist/components/MkSearchInput.stories.test.js.map +1 -0
  269. package/dist/components/MkSelect.d.ts +23 -0
  270. package/dist/components/MkSelect.d.ts.map +1 -0
  271. package/dist/components/MkSelect.js +59 -0
  272. package/dist/components/MkSelect.js.map +1 -0
  273. package/dist/components/MkSelect.module.css +177 -0
  274. package/dist/components/MkSelect.stories.d.ts +12 -0
  275. package/dist/components/MkSelect.stories.d.ts.map +1 -0
  276. package/dist/components/MkSelect.stories.js +84 -0
  277. package/dist/components/MkSelect.stories.js.map +1 -0
  278. package/dist/components/MkSelect.stories.test.d.ts +2 -0
  279. package/dist/components/MkSelect.stories.test.d.ts.map +1 -0
  280. package/dist/components/MkSelect.stories.test.js +21 -0
  281. package/dist/components/MkSelect.stories.test.js.map +1 -0
  282. package/dist/components/MkSkeleton.d.ts +22 -0
  283. package/dist/components/MkSkeleton.d.ts.map +1 -0
  284. package/dist/components/MkSkeleton.js +21 -0
  285. package/dist/components/MkSkeleton.js.map +1 -0
  286. package/dist/components/MkSkeleton.module.css +28 -0
  287. package/dist/components/MkSkeleton.stories.d.ts +12 -0
  288. package/dist/components/MkSkeleton.stories.d.ts.map +1 -0
  289. package/dist/components/MkSkeleton.stories.js +32 -0
  290. package/dist/components/MkSkeleton.stories.js.map +1 -0
  291. package/dist/components/MkSkeleton.stories.test.d.ts +2 -0
  292. package/dist/components/MkSkeleton.stories.test.d.ts.map +1 -0
  293. package/dist/components/MkSkeleton.stories.test.js +15 -0
  294. package/dist/components/MkSkeleton.stories.test.js.map +1 -0
  295. package/dist/components/MkSwitch.d.ts +22 -0
  296. package/dist/components/MkSwitch.d.ts.map +1 -0
  297. package/dist/components/MkSwitch.js +14 -0
  298. package/dist/components/MkSwitch.js.map +1 -0
  299. package/dist/components/MkSwitch.module.css +108 -0
  300. package/dist/components/MkSwitch.stories.d.ts +13 -0
  301. package/dist/components/MkSwitch.stories.d.ts.map +1 -0
  302. package/dist/components/MkSwitch.stories.js +37 -0
  303. package/dist/components/MkSwitch.stories.js.map +1 -0
  304. package/dist/components/MkSwitch.stories.test.d.ts +2 -0
  305. package/dist/components/MkSwitch.stories.test.d.ts.map +1 -0
  306. package/dist/components/MkSwitch.stories.test.js +15 -0
  307. package/dist/components/MkSwitch.stories.test.js.map +1 -0
  308. package/dist/components/MkTable.d.ts +27 -0
  309. package/dist/components/MkTable.d.ts.map +1 -0
  310. package/dist/components/MkTable.js +11 -0
  311. package/dist/components/MkTable.js.map +1 -0
  312. package/dist/components/MkTable.module.css +163 -0
  313. package/dist/components/MkTable.stories.d.ts +16 -0
  314. package/dist/components/MkTable.stories.d.ts.map +1 -0
  315. package/dist/components/MkTable.stories.js +65 -0
  316. package/dist/components/MkTable.stories.js.map +1 -0
  317. package/dist/components/MkTable.stories.test.d.ts +2 -0
  318. package/dist/components/MkTable.stories.test.d.ts.map +1 -0
  319. package/dist/components/MkTable.stories.test.js +25 -0
  320. package/dist/components/MkTable.stories.test.js.map +1 -0
  321. package/dist/components/MkTabs.d.ts +22 -0
  322. package/dist/components/MkTabs.d.ts.map +1 -0
  323. package/dist/components/MkTabs.js +17 -0
  324. package/dist/components/MkTabs.js.map +1 -0
  325. package/dist/components/MkTabs.module.css +117 -0
  326. package/dist/components/MkTabs.stories.d.ts +11 -0
  327. package/dist/components/MkTabs.stories.d.ts.map +1 -0
  328. package/dist/components/MkTabs.stories.js +73 -0
  329. package/dist/components/MkTabs.stories.js.map +1 -0
  330. package/dist/components/MkTextArea.d.ts +21 -0
  331. package/dist/components/MkTextArea.d.ts.map +1 -0
  332. package/dist/components/MkTextArea.js +8 -0
  333. package/dist/components/MkTextArea.js.map +1 -0
  334. package/dist/components/MkTextArea.stories.d.ts +13 -0
  335. package/dist/components/MkTextArea.stories.d.ts.map +1 -0
  336. package/dist/components/MkTextArea.stories.js +56 -0
  337. package/dist/components/MkTextArea.stories.js.map +1 -0
  338. package/dist/components/MkTextArea.stories.test.d.ts +2 -0
  339. package/dist/components/MkTextArea.stories.test.d.ts.map +1 -0
  340. package/dist/components/MkTextArea.stories.test.js +15 -0
  341. package/dist/components/MkTextArea.stories.test.js.map +1 -0
  342. package/dist/components/MkThemeEditor.d.ts +8 -0
  343. package/dist/components/MkThemeEditor.module.css +177 -0
  344. package/dist/components/MkToastContainer.d.ts +3 -0
  345. package/dist/components/MkToastContainer.module.css +95 -0
  346. package/dist/components/MkToastContainer.stories.d.ts +9 -0
  347. package/dist/components/MkToastContainer.stories.js +43 -0
  348. package/dist/components/MkToastContainer.stories.js.map +1 -0
  349. package/dist/components/MkToastContainer.stories.test.d.ts +2 -0
  350. package/dist/components/MkToastContainer.stories.test.js +29 -0
  351. package/dist/components/MkToastContainer.stories.test.js.map +1 -0
  352. package/dist/components/MkTooltip.d.ts +14 -0
  353. package/dist/components/MkTooltip.d.ts.map +1 -0
  354. package/dist/components/MkTooltip.js +17 -0
  355. package/dist/components/MkTooltip.js.map +1 -0
  356. package/dist/components/MkTooltip.module.css +43 -0
  357. package/dist/components/MkTooltip.stories.d.ts +13 -0
  358. package/dist/components/MkTooltip.stories.d.ts.map +1 -0
  359. package/dist/components/MkTooltip.stories.js +59 -0
  360. package/dist/components/MkTooltip.stories.js.map +1 -0
  361. package/dist/components/MkTooltip.stories.test.d.ts +2 -0
  362. package/dist/components/MkTooltip.stories.test.d.ts.map +1 -0
  363. package/dist/components/MkTooltip.stories.test.js +15 -0
  364. package/dist/components/MkTooltip.stories.test.js.map +1 -0
  365. package/dist/components/MkWindowList.d.ts +20 -0
  366. package/dist/components/MkWindowList.d.ts.map +1 -0
  367. package/dist/components/MkWindowList.js +59 -0
  368. package/dist/components/MkWindowList.js.map +1 -0
  369. package/dist/components/MkWindowList.module.css +59 -0
  370. package/dist/components/MkWindowList.stories.d.ts +16 -0
  371. package/dist/components/MkWindowList.stories.d.ts.map +1 -0
  372. package/dist/components/MkWindowList.stories.js +76 -0
  373. package/dist/components/MkWindowList.stories.js.map +1 -0
  374. package/dist/components/MkWindowList.stories.test.d.ts +2 -0
  375. package/dist/components/MkWindowList.stories.test.d.ts.map +1 -0
  376. package/dist/components/MkWindowList.stories.test.js +19 -0
  377. package/dist/components/MkWindowList.stories.test.js.map +1 -0
  378. package/dist/components/index.d.ts +31 -0
  379. package/dist/components/index.js +34 -0
  380. package/dist/components/index.js.map +1 -0
  381. package/dist/context/MkApiContext.d.ts +15 -0
  382. package/dist/context/MkApiContext.d.ts.map +1 -0
  383. package/dist/context/MkApiContext.js +28 -0
  384. package/dist/context/MkApiContext.js.map +1 -0
  385. package/dist/context/MkAuthContext.d.ts +2 -1
  386. package/dist/context/MkAuthContext.d.ts.map +1 -1
  387. package/dist/context/MkConfirmContext.d.ts +2 -1
  388. package/dist/context/MkConfirmContext.d.ts.map +1 -1
  389. package/dist/context/MkToastContext.d.ts +2 -1
  390. package/dist/context/MkToastContext.d.ts.map +1 -1
  391. package/dist/hooks/useApi.d.ts +6 -5
  392. package/dist/hooks/useApi.d.ts.map +1 -1
  393. package/dist/hooks/useApi.test.d.ts +2 -0
  394. package/dist/hooks/useApi.test.js +184 -0
  395. package/dist/hooks/useApi.test.js.map +1 -0
  396. package/dist/hooks/useMkClickOutside.d.ts +8 -0
  397. package/dist/hooks/useMkClickOutside.d.ts.map +1 -0
  398. package/dist/hooks/useMkClickOutside.js +24 -0
  399. package/dist/hooks/useMkClickOutside.js.map +1 -0
  400. package/dist/hooks/useMkCrud.d.ts +39 -0
  401. package/dist/hooks/useMkCrud.test.d.ts +2 -0
  402. package/dist/hooks/useMkDebounce.d.ts +24 -0
  403. package/dist/hooks/useMkDebounce.d.ts.map +1 -0
  404. package/dist/hooks/useMkDebounce.js +36 -0
  405. package/dist/hooks/useMkDebounce.js.map +1 -0
  406. package/dist/hooks/useMkEffectDebug.d.ts +7 -0
  407. package/dist/hooks/useMkEffectDebug.d.ts.map +1 -0
  408. package/dist/hooks/useMkEffectDebug.js +26 -0
  409. package/dist/hooks/useMkEffectDebug.js.map +1 -0
  410. package/dist/hooks/useMkEvent.d.ts +31 -0
  411. package/dist/hooks/useMkEvent.d.ts.map +1 -0
  412. package/dist/hooks/useMkEvent.js +56 -0
  413. package/dist/hooks/useMkEvent.js.map +1 -0
  414. package/dist/hooks/useMkForm.d.ts +43 -0
  415. package/dist/hooks/useMkForm.test.d.ts +2 -0
  416. package/dist/hooks/useMkInViewPort.d.ts +14 -0
  417. package/dist/hooks/useMkInViewPort.d.ts.map +1 -0
  418. package/dist/hooks/useMkInViewPort.js +31 -0
  419. package/dist/hooks/useMkInViewPort.js.map +1 -0
  420. package/dist/hooks/useMkInfiniteList.d.ts +15 -0
  421. package/dist/hooks/useMkInfiniteList.js +47 -0
  422. package/dist/hooks/useMkInfiniteList.js.map +1 -0
  423. package/dist/hooks/useMkList.d.ts +7 -7
  424. package/dist/hooks/useMkList.js +53 -0
  425. package/dist/hooks/useMkList.js.map +1 -0
  426. package/dist/hooks/useMkLocalStorage.d.ts +6 -0
  427. package/dist/hooks/useMkLocalStorage.d.ts.map +1 -0
  428. package/dist/hooks/useMkLocalStorage.js +33 -0
  429. package/dist/hooks/useMkLocalStorage.js.map +1 -0
  430. package/dist/hooks/useMkLongPress.d.ts +37 -0
  431. package/dist/hooks/useMkLongPress.d.ts.map +1 -0
  432. package/dist/hooks/useMkLongPress.js +59 -0
  433. package/dist/hooks/useMkLongPress.js.map +1 -0
  434. package/dist/hooks/useMkMediaQuery.d.ts +14 -0
  435. package/dist/hooks/useMkMediaQuery.d.ts.map +1 -0
  436. package/dist/hooks/useMkMediaQuery.js +31 -0
  437. package/dist/hooks/useMkMediaQuery.js.map +1 -0
  438. package/dist/hooks/useMkPrevious.d.ts +7 -0
  439. package/dist/hooks/useMkPrevious.d.ts.map +1 -0
  440. package/dist/hooks/useMkPrevious.js +14 -0
  441. package/dist/hooks/useMkPrevious.js.map +1 -0
  442. package/dist/hooks/useMkScreenSize.d.ts +25 -0
  443. package/dist/hooks/useMkScreenSize.d.ts.map +1 -0
  444. package/dist/hooks/useMkScreenSize.js +42 -0
  445. package/dist/hooks/useMkScreenSize.js.map +1 -0
  446. package/dist/hooks/useMkStore.d.ts +22 -0
  447. package/dist/hooks/useMkStore.d.ts.map +1 -0
  448. package/dist/hooks/useMkStore.js +58 -0
  449. package/dist/hooks/useMkStore.js.map +1 -0
  450. package/dist/hooks/useMkToggle.d.ts +6 -0
  451. package/dist/hooks/useMkToggle.d.ts.map +1 -0
  452. package/dist/hooks/useMkToggle.js +13 -0
  453. package/dist/hooks/useMkToggle.js.map +1 -0
  454. package/dist/index.d.ts +33 -0
  455. package/dist/index.js +37 -0
  456. package/dist/index.js.map +1 -0
  457. package/dist/styles/index.css +124 -0
  458. package/dist/test-setup.d.ts +2 -0
  459. package/dist/test-setup.d.ts.map +1 -0
  460. package/dist/test-setup.js +31 -0
  461. package/dist/test-setup.js.map +1 -0
  462. package/dist/theme/MkThemeProvider.d.ts +20 -0
  463. package/dist/utils/images.d.ts +9 -0
  464. package/dist/utils/images.d.ts.map +1 -0
  465. package/dist/utils/images.js +50 -0
  466. package/dist/utils/images.js.map +1 -0
  467. package/package.json +2 -2
@@ -0,0 +1,43 @@
1
+ import type { AdminDto } from './types';
2
+ /**
3
+ * Shape of the value exposed by `<MkAuthProvider>`.
4
+ *
5
+ * The provider is intentionally minimal: it only knows about the
6
+ * current scope, the cached `user`, and the auth lifecycle (`login`,
7
+ * `logout`, `refresh`, `hasAbility`). Token persistence is internal —
8
+ * callers never see the raw tokens, only the boolean/typed results.
9
+ */
10
+ export interface MkAuthContextValue {
11
+ /** The currently authenticated admin, or `null` if signed out. */
12
+ user: AdminDto | null;
13
+ /** True once the provider has completed its initial bootstrap (me/refresh). */
14
+ isLoading: boolean;
15
+ /** True iff `user !== null`. */
16
+ isAuthenticated: boolean;
17
+ /** Last error from login/refresh, cleared on the next successful call. */
18
+ error: Error | null;
19
+ /**
20
+ * Exchange email + password for tokens, persist them, and set `user`.
21
+ * On failure throws — the form catches and renders the error inline.
22
+ */
23
+ login: (email: string, password: string) => Promise<AdminDto>;
24
+ /**
25
+ * Hit the logout endpoint, clear the local cache, drop `user`.
26
+ * Best-effort: even if the network call fails, the local state is cleared.
27
+ */
28
+ logout: () => Promise<void>;
29
+ /**
30
+ * Manually trigger a token refresh and re-fetch the current user.
31
+ * Mostly used internally on mount, but exposed so consumers can
32
+ * force-refresh after a permission change, for example.
33
+ */
34
+ refresh: () => Promise<AdminDto | null>;
35
+ /**
36
+ * True iff the current user's `abilities` array contains `ability`
37
+ * (exact match). The backend may return wildcard scopes in the
38
+ * future; for now it's a plain array of strings.
39
+ */
40
+ hasAbility: (ability: string) => boolean;
41
+ }
42
+ export declare const MkAuthContext: import("react").Context<MkAuthContextValue | undefined>;
43
+ //# sourceMappingURL=MkAuthContext.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MkAuthContext.d.ts","sourceRoot":"","sources":["../../src/auth/MkAuthContext.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,SAAS,CAAC;AAExC;;;;;;;GAOG;AACH,MAAM,WAAW,kBAAkB;IAC/B,kEAAkE;IAClE,IAAI,EAAE,QAAQ,GAAG,IAAI,CAAC;IACtB,+EAA+E;IAC/E,SAAS,EAAE,OAAO,CAAC;IACnB,gCAAgC;IAChC,eAAe,EAAE,OAAO,CAAC;IACzB,0EAA0E;IAC1E,KAAK,EAAE,KAAK,GAAG,IAAI,CAAC;IAEpB;;;OAGG;IACH,KAAK,EAAE,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,KAAK,OAAO,CAAC,QAAQ,CAAC,CAAC;IAE9D;;;OAGG;IACH,MAAM,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IAE5B;;;;OAIG;IACH,OAAO,EAAE,MAAM,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC,CAAC;IAExC;;;;OAIG;IACH,UAAU,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,OAAO,CAAC;CAC5C;AAED,eAAO,MAAM,aAAa,yDAA2D,CAAC"}
@@ -0,0 +1,3 @@
1
+ import { createContext } from 'react';
2
+ export const MkAuthContext = createContext(undefined);
3
+ //# sourceMappingURL=MkAuthContext.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MkAuthContext.js","sourceRoot":"","sources":["../../src/auth/MkAuthContext.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AAgDtC,MAAM,CAAC,MAAM,aAAa,GAAG,aAAa,CAAiC,SAAS,CAAC,CAAC"}
@@ -0,0 +1,42 @@
1
+ export interface MkAuthFormProps {
2
+ /** Auth scope to use, e.g. "admin", "member", "guard". */
3
+ scope: string;
4
+ /**
5
+ * Path to navigate to after a successful login. Defaults to
6
+ * `/{scope}/dashboard`. Use a fully qualified path or a relative one
7
+ * — this component only triggers a callback.
8
+ */
9
+ redirectAfterLogin?: string;
10
+ /**
11
+ * Show a "¿Olvidaste tu contraseña?" link below the submit button.
12
+ * Defaults to `true`.
13
+ */
14
+ showForgotPassword?: boolean;
15
+ /**
16
+ * Optional: invoked after a successful login. Receives the resolved
17
+ * `AdminDto` and the `redirectAfterLogin` value so the host can do
18
+ * `router.push(...)` with its own router. When omitted, the
19
+ * component only logs the success.
20
+ */
21
+ onLoginSuccess?: (admin: {
22
+ id: string;
23
+ email: string;
24
+ }, redirectTo: string) => void;
25
+ /**
26
+ * Optional: invoked when the user clicks the forgot-password link.
27
+ * When omitted, the link is rendered as a plain `<a href="/{scope}/forgot">`
28
+ * — sufficient for any routing setup.
29
+ */
30
+ onForgotPassword?: () => void;
31
+ }
32
+ /**
33
+ * Minimal, dependency-free login form. Renders email + password fields,
34
+ * a submit button, an inline error region, and an optional
35
+ * "¿Olvidaste tu contraseña?" link.
36
+ *
37
+ * Validation is intentionally simple (non-empty + email shape) — the
38
+ * server is the source of truth, and this keeps the component focused
39
+ * on the auth lifecycle.
40
+ */
41
+ export declare function MkAuthForm({ scope, redirectAfterLogin, showForgotPassword, onLoginSuccess, onForgotPassword, }: MkAuthFormProps): React.JSX.Element;
42
+ //# sourceMappingURL=MkAuthForm.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MkAuthForm.d.ts","sourceRoot":"","sources":["../../src/auth/MkAuthForm.tsx"],"names":[],"mappings":"AAQA,MAAM,WAAW,eAAe;IAC5B,0DAA0D;IAC1D,KAAK,EAAE,MAAM,CAAC;IACd;;;;OAIG;IACH,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B;;;OAGG;IACH,kBAAkB,CAAC,EAAE,OAAO,CAAC;IAC7B;;;;;OAKG;IACH,cAAc,CAAC,EAAE,CAAC,KAAK,EAAE;QAAE,EAAE,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,EAAE,UAAU,EAAE,MAAM,KAAK,IAAI,CAAC;IACpF;;;;OAIG;IACH,gBAAgB,CAAC,EAAE,MAAM,IAAI,CAAC;CACjC;AAOD;;;;;;;;GAQG;AACH,wBAAgB,UAAU,CAAC,EACvB,KAAK,EACL,kBAAkB,EAClB,kBAAyB,EACzB,cAAc,EACd,gBAAgB,GACnB,EAAE,eAAe,GAAG,KAAK,CAAC,GAAG,CAAC,OAAO,CAqIrC"}
@@ -0,0 +1,53 @@
1
+ 'use client';
2
+ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
+ import { useState, useCallback, useMemo } from 'react';
4
+ import { useMkAuth } from './useMkAuth';
5
+ import { MkInput } from '../components/MkInput';
6
+ import { MkButton } from '../components/MkButton';
7
+ /**
8
+ * Minimal, dependency-free login form. Renders email + password fields,
9
+ * a submit button, an inline error region, and an optional
10
+ * "¿Olvidaste tu contraseña?" link.
11
+ *
12
+ * Validation is intentionally simple (non-empty + email shape) — the
13
+ * server is the source of truth, and this keeps the component focused
14
+ * on the auth lifecycle.
15
+ */
16
+ export function MkAuthForm({ scope, redirectAfterLogin, showForgotPassword = true, onLoginSuccess, onForgotPassword, }) {
17
+ const { login, error, isLoading } = useMkAuth();
18
+ const [state, setState] = useState({ email: '', password: '' });
19
+ const [submitting, setSubmitting] = useState(false);
20
+ const target = useMemo(() => redirectAfterLogin !== null && redirectAfterLogin !== void 0 ? redirectAfterLogin : `/${scope}/dashboard`, [redirectAfterLogin, scope]);
21
+ const handleChange = useCallback((field) => (value) => {
22
+ setState((prev) => (Object.assign(Object.assign({}, prev), { [field]: value })));
23
+ }, []);
24
+ const handleSubmit = useCallback((e) => {
25
+ e.preventDefault();
26
+ if (submitting || isLoading)
27
+ return;
28
+ setSubmitting(true);
29
+ // Error is surfaced via `error` from `useMkAuth`; we just need to
30
+ // reset submitting on completion.
31
+ void login(state.email.trim(), state.password)
32
+ .then((admin) => onLoginSuccess === null || onLoginSuccess === void 0 ? void 0 : onLoginSuccess({ id: admin.id, email: admin.email }, target))
33
+ .finally(() => setSubmitting(false));
34
+ }, [submitting, isLoading, login, state.email, state.password, onLoginSuccess, target]);
35
+ // `MkInput` calls `onChange(value: string)`; we forward to our state
36
+ // setter. We don't pass the native event through because the existing
37
+ // `MkInput` signature strips it.
38
+ const onEmailChange = useCallback((v) => handleChange('email')(v), [handleChange]);
39
+ const onPasswordChange = useCallback((v) => handleChange('password')(v), [handleChange]);
40
+ const errorMessage = error ? error.message : null;
41
+ return (_jsxs("form", { "data-mk-auth-scope": scope, onSubmit: handleSubmit, noValidate: true, "aria-busy": submitting || isLoading, style: { display: 'flex', flexDirection: 'column', gap: 12 }, children: [_jsxs("div", { children: [_jsx("label", { htmlFor: `${scope}-email`, children: "Email" }), _jsx(MkInput, { id: `${scope}-email`, name: "email", type: "email", autoComplete: "email", required: true, value: state.email, onChange: onEmailChange, disabled: submitting || isLoading, placeholder: "admin@example.com" })] }), _jsxs("div", { children: [_jsx("label", { htmlFor: `${scope}-password`, children: "Contrase\u00F1a" }), _jsx(MkInput, { id: `${scope}-password`, name: "password", type: "password", autoComplete: "current-password", required: true, value: state.password, onChange: onPasswordChange, disabled: submitting || isLoading })] }), errorMessage ? (_jsx("div", { role: "alert", "data-mk-auth-error": true, style: {
42
+ color: 'var(--mk-color-error, #d32f2f)',
43
+ fontSize: 14,
44
+ }, children: errorMessage })) : null, _jsx(MkButton, { type: "submit", variant: "primary", loading: submitting || isLoading, disabled: submitting || isLoading || !state.email || !state.password, children: "Iniciar sesi\u00F3n" }), showForgotPassword ? (_jsx("div", { style: { fontSize: 14, textAlign: 'center' }, children: onForgotPassword ? (_jsx("button", { type: "button", onClick: onForgotPassword, style: {
45
+ background: 'none',
46
+ border: 'none',
47
+ color: 'var(--mk-color-primary, #1976d2)',
48
+ cursor: 'pointer',
49
+ padding: 0,
50
+ textDecoration: 'underline',
51
+ }, children: "\u00BFOlvidaste tu contrase\u00F1a?" })) : (_jsx("a", { href: `/${scope}/forgot`, style: { color: 'var(--mk-color-primary, #1976d2)' }, children: "\u00BFOlvidaste tu contrase\u00F1a?" })) })) : null] }));
52
+ }
53
+ //# sourceMappingURL=MkAuthForm.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MkAuthForm.js","sourceRoot":"","sources":["../../src/auth/MkAuthForm.tsx"],"names":[],"mappings":"AAAA,YAAY,CAAC;;AAEb,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,OAAO,CAAC;AAEvD,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AACxC,OAAO,EAAE,OAAO,EAAE,MAAM,uBAAuB,CAAC;AAChD,OAAO,EAAE,QAAQ,EAAE,MAAM,wBAAwB,CAAC;AAoClD;;;;;;;;GAQG;AACH,MAAM,UAAU,UAAU,CAAC,EACvB,KAAK,EACL,kBAAkB,EAClB,kBAAkB,GAAG,IAAI,EACzB,cAAc,EACd,gBAAgB,GACF;IACd,MAAM,EAAE,KAAK,EAAE,KAAK,EAAE,SAAS,EAAE,GAAG,SAAS,EAAE,CAAC;IAChD,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,QAAQ,CAAY,EAAE,KAAK,EAAE,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,CAAC,CAAC;IAC3E,MAAM,CAAC,UAAU,EAAE,aAAa,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IAEpD,MAAM,MAAM,GAAG,OAAO,CAClB,GAAG,EAAE,CAAC,kBAAkB,aAAlB,kBAAkB,cAAlB,kBAAkB,GAAI,IAAI,KAAK,YAAY,EACjD,CAAC,kBAAkB,EAAE,KAAK,CAAC,CAC9B,CAAC;IAEF,MAAM,YAAY,GAAG,WAAW,CAC5B,CAAC,KAAsB,EAAE,EAAE,CAAC,CAAC,KAAa,EAAE,EAAE;QAC1C,QAAQ,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,iCAAM,IAAI,KAAE,CAAC,KAAK,CAAC,EAAE,KAAK,IAAG,CAAC,CAAC;IACtD,CAAC,EACD,EAAE,CACL,CAAC;IAEF,MAAM,YAAY,GAAG,WAAW,CAC5B,CAAC,CAA6B,EAAE,EAAE;QAC9B,CAAC,CAAC,cAAc,EAAE,CAAC;QACnB,IAAI,UAAU,IAAI,SAAS;YAAE,OAAO;QACpC,aAAa,CAAC,IAAI,CAAC,CAAC;QACpB,kEAAkE;QAClE,kCAAkC;QAClC,KAAK,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,EAAE,EAAE,KAAK,CAAC,QAAQ,CAAC;aACzC,IAAI,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,cAAc,aAAd,cAAc,uBAAd,cAAc,CAAG,EAAE,EAAE,EAAE,KAAK,CAAC,EAAE,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,EAAE,MAAM,CAAC,CAAC;aAC/E,OAAO,CAAC,GAAG,EAAE,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,CAAC;IAC7C,CAAC,EACD,CAAC,UAAU,EAAE,SAAS,EAAE,KAAK,EAAE,KAAK,CAAC,KAAK,EAAE,KAAK,CAAC,QAAQ,EAAE,cAAc,EAAE,MAAM,CAAC,CACtF,CAAC;IAEF,qEAAqE;IACrE,sEAAsE;IACtE,iCAAiC;IACjC,MAAM,aAAa,GAAG,WAAW,CAC7B,CAAC,CAAS,EAAE,EAAE,CAAC,YAAY,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,EACvC,CAAC,YAAY,CAAC,CACjB,CAAC;IACF,MAAM,gBAAgB,GAAG,WAAW,CAChC,CAAC,CAAS,EAAE,EAAE,CAAC,YAAY,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC,EAC1C,CAAC,YAAY,CAAC,CACjB,CAAC;IAEF,MAAM,YAAY,GAAG,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC;IAElD,OAAO,CACH,sCACwB,KAAK,EACzB,QAAQ,EAAE,YAAY,EACtB,UAAU,qBACC,UAAU,IAAI,SAAS,EAClC,KAAK,EAAE,EAAE,OAAO,EAAE,MAAM,EAAE,aAAa,EAAE,QAAQ,EAAE,GAAG,EAAE,EAAE,EAAE,aAE5D,0BACI,gBAAO,OAAO,EAAE,GAAG,KAAK,QAAQ,sBAAe,EAC/C,KAAC,OAAO,IACJ,EAAE,EAAE,GAAG,KAAK,QAAQ,EACpB,IAAI,EAAC,OAAO,EACZ,IAAI,EAAC,OAAO,EACZ,YAAY,EAAC,OAAO,EACpB,QAAQ,QACR,KAAK,EAAE,KAAK,CAAC,KAAK,EAClB,QAAQ,EAAE,aAAa,EACvB,QAAQ,EAAE,UAAU,IAAI,SAAS,EACjC,WAAW,EAAC,mBAAmB,GACjC,IACA,EAEN,0BACI,gBAAO,OAAO,EAAE,GAAG,KAAK,WAAW,gCAAoB,EACvD,KAAC,OAAO,IACJ,EAAE,EAAE,GAAG,KAAK,WAAW,EACvB,IAAI,EAAC,UAAU,EACf,IAAI,EAAC,UAAU,EACf,YAAY,EAAC,kBAAkB,EAC/B,QAAQ,QACR,KAAK,EAAE,KAAK,CAAC,QAAQ,EACrB,QAAQ,EAAE,gBAAgB,EAC1B,QAAQ,EAAE,UAAU,IAAI,SAAS,GACnC,IACA,EAEL,YAAY,CAAC,CAAC,CAAC,CACZ,cACI,IAAI,EAAC,OAAO,8BAEZ,KAAK,EAAE;oBACH,KAAK,EAAE,gCAAgC;oBACvC,QAAQ,EAAE,EAAE;iBACf,YAEA,YAAY,GACX,CACT,CAAC,CAAC,CAAC,IAAI,EAER,KAAC,QAAQ,IACL,IAAI,EAAC,QAAQ,EACb,OAAO,EAAC,SAAS,EACjB,OAAO,EAAE,UAAU,IAAI,SAAS,EAChC,QAAQ,EAAE,UAAU,IAAI,SAAS,IAAI,CAAC,KAAK,CAAC,KAAK,IAAI,CAAC,KAAK,CAAC,QAAQ,oCAG7D,EAEV,kBAAkB,CAAC,CAAC,CAAC,CAClB,cAAK,KAAK,EAAE,EAAE,QAAQ,EAAE,EAAE,EAAE,SAAS,EAAE,QAAQ,EAAE,YAC5C,gBAAgB,CAAC,CAAC,CAAC,CAChB,iBACI,IAAI,EAAC,QAAQ,EACb,OAAO,EAAE,gBAAgB,EACzB,KAAK,EAAE;wBACH,UAAU,EAAE,MAAM;wBAClB,MAAM,EAAE,MAAM;wBACd,KAAK,EAAE,kCAAkC;wBACzC,MAAM,EAAE,SAAS;wBACjB,OAAO,EAAE,CAAC;wBACV,cAAc,EAAE,WAAW;qBAC9B,oDAGI,CACZ,CAAC,CAAC,CAAC,CACA,YACI,IAAI,EAAE,IAAI,KAAK,SAAS,EACxB,KAAK,EAAE,EAAE,KAAK,EAAE,kCAAkC,EAAE,oDAGpD,CACP,GACC,CACT,CAAC,CAAC,CAAC,IAAI,IACL,CACV,CAAC;AACN,CAAC"}
@@ -0,0 +1,30 @@
1
+ import type { ReactNode } from 'react';
2
+ import type { AuthStorageAdapter } from './types';
3
+ export interface MkAuthProviderProps {
4
+ /** Logical scope of this provider, e.g. "admin", "member", "guard". */
5
+ scope: string;
6
+ /**
7
+ * Base URL of the API. The provider appends `/api/${scope}/auth/...`
8
+ * to it. Trailing slashes are tolerated.
9
+ */
10
+ apiBaseUrl: string;
11
+ /** Children wrapped by the provider. */
12
+ children: ReactNode;
13
+ /**
14
+ * Optional storage adapter. Defaults to `window.localStorage` when
15
+ * available. Tests pass an in-memory adapter.
16
+ */
17
+ storage?: AuthStorageAdapter;
18
+ /**
19
+ * Optional: inject a custom `fetch` implementation (e.g. for tests
20
+ * that polyfill `global.fetch` differently). Defaults to `globalThis.fetch`.
21
+ */
22
+ fetcher?: typeof fetch;
23
+ }
24
+ /**
25
+ * `<QueryClientProvider>` + `<MkAuthProviderInner>`. The outer wrapper
26
+ * exists so consumers don't have to remember to also mount a
27
+ * `QueryClient` — the auth provider is self-contained.
28
+ */
29
+ export declare function MkAuthProvider(props: MkAuthProviderProps): React.JSX.Element;
30
+ //# sourceMappingURL=MkAuthProvider.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MkAuthProvider.d.ts","sourceRoot":"","sources":["../../src/auth/MkAuthProvider.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAUvC,OAAO,KAAK,EAER,kBAAkB,EAKrB,MAAM,SAAS,CAAC;AAmBjB,MAAM,WAAW,mBAAmB;IAChC,uEAAuE;IACvE,KAAK,EAAE,MAAM,CAAC;IACd;;;OAGG;IACH,UAAU,EAAE,MAAM,CAAC;IACnB,wCAAwC;IACxC,QAAQ,EAAE,SAAS,CAAC;IACpB;;;OAGG;IACH,OAAO,CAAC,EAAE,kBAAkB,CAAC;IAC7B;;;OAGG;IACH,OAAO,CAAC,EAAE,OAAO,KAAK,CAAC;CAC1B;AAwSD;;;;GAIG;AACH,wBAAgB,cAAc,CAAC,KAAK,EAAE,mBAAmB,GAAG,KAAK,CAAC,GAAG,CAAC,OAAO,CAkB5E"}
@@ -0,0 +1,317 @@
1
+ 'use client';
2
+ import { jsx as _jsx } from "react/jsx-runtime";
3
+ import { useEffect, useMemo, useRef, useState, useCallback } from 'react';
4
+ import { QueryClient, QueryClientProvider, useQuery, useMutation, useQueryClient, } from '@tanstack/react-query';
5
+ import { MkAuthContext } from './MkAuthContext';
6
+ const DEFAULT_STORAGE = typeof window !== 'undefined' && typeof window.localStorage !== 'undefined'
7
+ ? {
8
+ getItem: (key) => window.localStorage.getItem(key),
9
+ setItem: (key, value) => window.localStorage.setItem(key, value),
10
+ removeItem: (key) => window.localStorage.removeItem(key),
11
+ }
12
+ : undefined;
13
+ function tokenKey(scope, kind) {
14
+ return `mk_auth_${scope}_${kind}_token`;
15
+ }
16
+ function userKey(scope) {
17
+ return `mk_auth_${scope}_user`;
18
+ }
19
+ /**
20
+ * Internal provider — owns the React Query client and the auth state.
21
+ * Exported only as `<MkAuthProvider>`, which wraps it in
22
+ * `<QueryClientProvider>`.
23
+ */
24
+ function MkAuthProviderInner({ scope, apiBaseUrl, children, storage = DEFAULT_STORAGE, fetcher, }) {
25
+ var _a, _b, _c;
26
+ const normalizedBase = apiBaseUrl.replace(/\/+$/, '');
27
+ const queryClient = useQueryClient();
28
+ const fetchImpl = fetcher !== null && fetcher !== void 0 ? fetcher : (_a = globalThis.fetch) === null || _a === void 0 ? void 0 : _a.bind(globalThis);
29
+ // Persisted token + user snapshots (read on first render only, to keep
30
+ // `useState` initializer cheap; we still write back on every change).
31
+ const initialAccess = (_b = storage === null || storage === void 0 ? void 0 : storage.getItem(tokenKey(scope, 'access'))) !== null && _b !== void 0 ? _b : null;
32
+ const initialRefresh = (_c = storage === null || storage === void 0 ? void 0 : storage.getItem(tokenKey(scope, 'refresh'))) !== null && _c !== void 0 ? _c : null;
33
+ const initialUserJson = storage === null || storage === void 0 ? void 0 : storage.getItem(userKey(scope));
34
+ const initialUser = useRef(initialUserJson ? safeParse(initialUserJson) : null).current;
35
+ const [user, setUserState] = useState(initialUser);
36
+ const [error, setError] = useState(null);
37
+ const persistUser = useCallback((next) => {
38
+ if (!storage)
39
+ return;
40
+ if (next) {
41
+ storage.setItem(userKey(scope), JSON.stringify(next));
42
+ }
43
+ else {
44
+ storage.removeItem(userKey(scope));
45
+ }
46
+ }, [scope, storage]);
47
+ const persistTokens = useCallback((access, refresh) => {
48
+ if (!storage)
49
+ return;
50
+ if (access) {
51
+ storage.setItem(tokenKey(scope, 'access'), access);
52
+ }
53
+ else {
54
+ storage.removeItem(tokenKey(scope, 'access'));
55
+ }
56
+ if (refresh) {
57
+ storage.setItem(tokenKey(scope, 'refresh'), refresh);
58
+ }
59
+ else {
60
+ storage.removeItem(tokenKey(scope, 'refresh'));
61
+ }
62
+ }, [scope, storage]);
63
+ const clearAll = useCallback(() => {
64
+ persistTokens(null, null);
65
+ persistUser(null);
66
+ }, [persistTokens, persistUser]);
67
+ const setUser = useCallback((next) => {
68
+ setUserState(next);
69
+ persistUser(next);
70
+ }, [persistUser]);
71
+ // ---- /me query ---------------------------------------------------------
72
+ // Re-runs whenever the mutation cache is invalidated (after login/logout/
73
+ // refresh) via the `refetchType: 'all'` policy below.
74
+ const meQuery = useQuery({
75
+ queryKey: ['mk-auth', scope, 'me'],
76
+ queryFn: async ({ signal }) => {
77
+ var _a;
78
+ const access = (_a = storage === null || storage === void 0 ? void 0 : storage.getItem(tokenKey(scope, 'access'))) !== null && _a !== void 0 ? _a : null;
79
+ if (!access) {
80
+ throw new Error('No access token available');
81
+ }
82
+ const res = await fetchImpl(`${normalizedBase}/api/${scope}/auth/me`, {
83
+ method: 'GET',
84
+ headers: {
85
+ Accept: 'application/json',
86
+ Authorization: `Bearer ${access}`,
87
+ },
88
+ signal,
89
+ });
90
+ if (res.status === 401) {
91
+ throw unauthorized();
92
+ }
93
+ if (!res.ok) {
94
+ throw new Error(`Failed to fetch user (${res.status})`);
95
+ }
96
+ const json = (await res.json());
97
+ const dto = json && typeof json === 'object' && 'data' in json
98
+ ? (json).data
99
+ : (json);
100
+ return dto;
101
+ },
102
+ enabled: Boolean(initialAccess) && Boolean(fetchImpl),
103
+ staleTime: 60000,
104
+ retry: false,
105
+ refetchOnWindowFocus: false,
106
+ });
107
+ // Keep `user` in sync with the latest successful /me response.
108
+ useEffect(() => {
109
+ if (meQuery.data) {
110
+ setUser(meQuery.data);
111
+ }
112
+ }, [meQuery.data, setUser]);
113
+ // ---- refresh mutation (also used on mount when /me 401s) ---------------
114
+ const refreshMutation = useMutation({
115
+ mutationFn: async () => {
116
+ var _a;
117
+ const refresh = (_a = storage === null || storage === void 0 ? void 0 : storage.getItem(tokenKey(scope, 'refresh'))) !== null && _a !== void 0 ? _a : null;
118
+ if (!refresh) {
119
+ throw new Error('No refresh token available');
120
+ }
121
+ const res = await fetchImpl(`${normalizedBase}/api/${scope}/auth/refresh`, {
122
+ method: 'POST',
123
+ headers: {
124
+ Accept: 'application/json',
125
+ 'Content-Type': 'application/json',
126
+ },
127
+ body: JSON.stringify({ refresh_token: refresh }),
128
+ });
129
+ if (!res.ok) {
130
+ throw unauthorized();
131
+ }
132
+ return (await res.json());
133
+ },
134
+ });
135
+ // ---- login mutation ----------------------------------------------------
136
+ const loginMutation = useMutation({
137
+ mutationFn: async (input) => {
138
+ const res = await fetchImpl(`${normalizedBase}/api/${scope}/auth/login`, {
139
+ method: 'POST',
140
+ headers: {
141
+ Accept: 'application/json',
142
+ 'Content-Type': 'application/json',
143
+ },
144
+ body: JSON.stringify(input),
145
+ });
146
+ if (!res.ok) {
147
+ const body = await safeReadError(res);
148
+ throw new Error(body !== null && body !== void 0 ? body : 'Invalid credentials');
149
+ }
150
+ return (await res.json());
151
+ },
152
+ onSuccess: (data) => {
153
+ persistTokens(data.access_token, data.refresh_token);
154
+ setUser(data.admin);
155
+ },
156
+ });
157
+ // ---- logout mutation ---------------------------------------------------
158
+ const logoutMutation = useMutation({
159
+ mutationFn: async () => {
160
+ const access = storage === null || storage === void 0 ? void 0 : storage.getItem(tokenKey(scope, 'access'));
161
+ if (!access)
162
+ return;
163
+ const res = await fetchImpl(`${normalizedBase}/api/${scope}/auth/logout`, {
164
+ method: 'POST',
165
+ headers: {
166
+ Accept: 'application/json',
167
+ Authorization: `Bearer ${access}`,
168
+ },
169
+ });
170
+ // 204 No Content is the documented success. Anything else is logged
171
+ // but does not block local cleanup.
172
+ if (!res.ok && res.status !== 204) {
173
+ console.warn(`Logout returned ${res.status}; clearing local state anyway.`);
174
+ }
175
+ },
176
+ onSettled: () => {
177
+ // Cancel any in-flight /me request and drop its cache so it
178
+ // cannot race the local state clear and re-populate `user`.
179
+ queryClient.cancelQueries({ queryKey: ['mk-auth', scope, 'me'] });
180
+ queryClient.removeQueries({ queryKey: ['mk-auth', scope, 'me'] });
181
+ clearAll();
182
+ setUser(null);
183
+ },
184
+ });
185
+ // ---- bootstrap ---------------------------------------------------------
186
+ // On mount: if we have tokens, /me runs. If /me 401s, try /refresh.
187
+ // If refresh fails, drop tokens and user.
188
+ const bootstrapped = useRef(false);
189
+ useEffect(() => {
190
+ if (bootstrapped.current)
191
+ return;
192
+ bootstrapped.current = true;
193
+ const access = initialAccess;
194
+ const refresh = initialRefresh;
195
+ if (!access) {
196
+ setUser(null);
197
+ return;
198
+ }
199
+ // /me will run automatically (enabled: true since we have access).
200
+ // We hook into its result via subscription below.
201
+ const unsubscribe = meQuery.refetch().then((result) => {
202
+ if (result.isError && refresh) {
203
+ // Try to refresh, then re-run /me.
204
+ refreshMutation
205
+ .mutateAsync()
206
+ .then((data) => {
207
+ persistTokens(data.access_token, data.refresh_token);
208
+ setUser(data.admin);
209
+ })
210
+ .catch(() => {
211
+ clearAll();
212
+ setUser(null);
213
+ });
214
+ }
215
+ else if (result.isError) {
216
+ clearAll();
217
+ setUser(null);
218
+ }
219
+ });
220
+ return () => {
221
+ unsubscribe.catch(() => {
222
+ /* swallow */
223
+ });
224
+ };
225
+ // We intentionally only run this once on mount.
226
+ }, []);
227
+ // ---- exposed API -------------------------------------------------------
228
+ const refresh = useCallback(async () => {
229
+ try {
230
+ const data = await refreshMutation.mutateAsync();
231
+ persistTokens(data.access_token, data.refresh_token);
232
+ setUser(data.admin);
233
+ return data.admin;
234
+ }
235
+ catch (_a) {
236
+ clearAll();
237
+ setUser(null);
238
+ return null;
239
+ }
240
+ }, [refreshMutation, persistTokens, setUser, clearAll]);
241
+ const login = useCallback(async (email, password) => {
242
+ setError(null);
243
+ try {
244
+ const data = await loginMutation.mutateAsync({ email, password });
245
+ return data.admin;
246
+ }
247
+ catch (err) {
248
+ const e = err instanceof Error ? err : new Error('Login failed');
249
+ setError(e);
250
+ throw e;
251
+ }
252
+ }, [loginMutation]);
253
+ const logout = useCallback(async () => {
254
+ // Even on network failure, local state has already been cleared by
255
+ // onSettled. Re-throw so callers can decide what to do.
256
+ await logoutMutation.mutateAsync();
257
+ }, [logoutMutation]);
258
+ const hasAbility = useCallback((ability) => {
259
+ if (!user)
260
+ return false;
261
+ return Array.isArray(user.abilities) && user.abilities.includes(ability);
262
+ }, [user]);
263
+ const isLoading = meQuery.isLoading || meQuery.isFetching || loginMutation.isPending;
264
+ const value = useMemo(() => ({
265
+ user,
266
+ isLoading,
267
+ isAuthenticated: user !== null,
268
+ error,
269
+ login,
270
+ logout,
271
+ refresh,
272
+ hasAbility,
273
+ }), [user, isLoading, error, login, logout, refresh, hasAbility]);
274
+ return _jsx(MkAuthContext.Provider, { value: value, children: children });
275
+ }
276
+ /**
277
+ * `<QueryClientProvider>` + `<MkAuthProviderInner>`. The outer wrapper
278
+ * exists so consumers don't have to remember to also mount a
279
+ * `QueryClient` — the auth provider is self-contained.
280
+ */
281
+ export function MkAuthProvider(props) {
282
+ const [client] = useState(() => new QueryClient({
283
+ defaultOptions: {
284
+ queries: {
285
+ retry: false,
286
+ refetchOnWindowFocus: false,
287
+ },
288
+ },
289
+ }));
290
+ return (_jsx(QueryClientProvider, { client: client, children: _jsx(MkAuthProviderInner, Object.assign({}, props)) }));
291
+ }
292
+ // ---- helpers --------------------------------------------------------------
293
+ function unauthorized() {
294
+ const e = new Error('Unauthorized');
295
+ e.name = 'UnauthorizedError';
296
+ return e;
297
+ }
298
+ function safeParse(json) {
299
+ try {
300
+ return JSON.parse(json);
301
+ }
302
+ catch (_a) {
303
+ return null;
304
+ }
305
+ }
306
+ async function safeReadError(res) {
307
+ try {
308
+ const body = (await res.json());
309
+ if (body && typeof body.message === 'string')
310
+ return body.message;
311
+ }
312
+ catch (_a) {
313
+ /* fallthrough */
314
+ }
315
+ return `Request failed (${res.status})`;
316
+ }
317
+ //# sourceMappingURL=MkAuthProvider.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MkAuthProvider.js","sourceRoot":"","sources":["../../src/auth/MkAuthProvider.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,63 @@
1
+ /**
2
+ * Auth types for @makroz/web.
3
+ *
4
+ * Mirrors the JSON contract produced by the Laravel backend's
5
+ * `AuthTokenResource` and `AdminResource` (see
6
+ * `apps/sandbox-laravel/app/Modules/Admin/Http/Resources/*`):
7
+ *
8
+ * - `AdminDto` — shape returned by `/api/{scope}/auth/me` and embedded in
9
+ * login/refresh responses under `admin`.
10
+ * - `AuthTokens` — the `access_token` / `refresh_token` bundle issued on
11
+ * successful login and refresh.
12
+ * - `LoginInput` — payload POSTed to `/api/{scope}/auth/login`.
13
+ * - `RefreshResponse` — shape returned by `/api/{scope}/auth/refresh`.
14
+ *
15
+ * These types are intentionally local to the auth module (not exported as
16
+ * a generic MK contract) so that future scopes (e.g. `member`, `guard`)
17
+ * can reuse the same provider with their own DTOs.
18
+ */
19
+ export interface AdminDto {
20
+ id: string;
21
+ name: string;
22
+ email: string;
23
+ auth_scope: string;
24
+ email_verified_at: string | null;
25
+ abilities: string[];
26
+ roles: string[];
27
+ }
28
+ export interface AuthTokens {
29
+ access_token: string;
30
+ refresh_token: string;
31
+ token_type: 'Bearer';
32
+ expires_in: number;
33
+ }
34
+ export interface LoginInput {
35
+ email: string;
36
+ password: string;
37
+ }
38
+ export interface RefreshResponse extends AuthTokens {
39
+ admin: AdminDto;
40
+ }
41
+ export interface AuthStorageAdapter {
42
+ getItem: (key: string) => string | null;
43
+ setItem: (key: string, value: string) => void;
44
+ removeItem: (key: string) => void;
45
+ }
46
+ /**
47
+ * JSON shape returned by a login attempt. Login responses nest the user
48
+ * under `admin` (matches the backend's `AuthTokenResource`).
49
+ */
50
+ export interface LoginResponse {
51
+ access_token: string;
52
+ refresh_token: string;
53
+ token_type: 'Bearer';
54
+ expires_in: number;
55
+ admin: AdminDto;
56
+ }
57
+ /**
58
+ * JSON shape returned by the `/me` endpoint.
59
+ */
60
+ export interface MeResponse {
61
+ data: AdminDto;
62
+ }
63
+ //# sourceMappingURL=types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/auth/types.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG;AAEH,MAAM,WAAW,QAAQ;IACrB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,UAAU,EAAE,MAAM,CAAC;IACnB,iBAAiB,EAAE,MAAM,GAAG,IAAI,CAAC;IACjC,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,KAAK,EAAE,MAAM,EAAE,CAAC;CACnB;AAED,MAAM,WAAW,UAAU;IACvB,YAAY,EAAE,MAAM,CAAC;IACrB,aAAa,EAAE,MAAM,CAAC;IACtB,UAAU,EAAE,QAAQ,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,UAAU;IACvB,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,eAAgB,SAAQ,UAAU;IAC/C,KAAK,EAAE,QAAQ,CAAC;CACnB;AAED,MAAM,WAAW,kBAAkB;IAC/B,OAAO,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,MAAM,GAAG,IAAI,CAAC;IACxC,OAAO,EAAE,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,KAAK,IAAI,CAAC;IAC9C,UAAU,EAAE,CAAC,GAAG,EAAE,MAAM,KAAK,IAAI,CAAC;CACrC;AAED;;;GAGG;AACH,MAAM,WAAW,aAAa;IAC1B,YAAY,EAAE,MAAM,CAAC;IACrB,aAAa,EAAE,MAAM,CAAC;IACtB,UAAU,EAAE,QAAQ,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;IACnB,KAAK,EAAE,QAAQ,CAAC;CACnB;AAED;;GAEG;AACH,MAAM,WAAW,UAAU;IACvB,IAAI,EAAE,QAAQ,CAAC;CAClB"}
@@ -0,0 +1,20 @@
1
+ /**
2
+ * Auth types for @makroz/web.
3
+ *
4
+ * Mirrors the JSON contract produced by the Laravel backend's
5
+ * `AuthTokenResource` and `AdminResource` (see
6
+ * `apps/sandbox-laravel/app/Modules/Admin/Http/Resources/*`):
7
+ *
8
+ * - `AdminDto` — shape returned by `/api/{scope}/auth/me` and embedded in
9
+ * login/refresh responses under `admin`.
10
+ * - `AuthTokens` — the `access_token` / `refresh_token` bundle issued on
11
+ * successful login and refresh.
12
+ * - `LoginInput` — payload POSTed to `/api/{scope}/auth/login`.
13
+ * - `RefreshResponse` — shape returned by `/api/{scope}/auth/refresh`.
14
+ *
15
+ * These types are intentionally local to the auth module (not exported as
16
+ * a generic MK contract) so that future scopes (e.g. `member`, `guard`)
17
+ * can reuse the same provider with their own DTOs.
18
+ */
19
+ export {};
20
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.js","sourceRoot":"","sources":["../../src/auth/types.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;GAiBG"}
@@ -0,0 +1,19 @@
1
+ import type { MkAuthContextValue } from './MkAuthContext';
2
+ /**
3
+ * Hook to consume the value exposed by `<MkAuthProvider>`.
4
+ *
5
+ * Throws if used outside of a provider — this is intentional. We don't
6
+ * want auth code to silently no-op when the provider is missing, which
7
+ * is a real source of bugs (e.g. a deeply nested page that forgets to
8
+ * mount the auth context).
9
+ *
10
+ * The error message is deliberately short and includes the provider name
11
+ * so the dev can grep for it.
12
+ *
13
+ * @example
14
+ * ```tsx
15
+ * const { user, isAuthenticated, hasAbility, login, logout } = useMkAuth();
16
+ * ```
17
+ */
18
+ export declare function useMkAuth(): MkAuthContextValue;
19
+ //# sourceMappingURL=useMkAuth.d.ts.map