@makroz/web 1.0.1

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 (302) hide show
  1. package/LICENSE +33 -0
  2. package/README.md +22 -0
  3. package/dist/auth/MkAuthContext.d.ts +43 -0
  4. package/dist/auth/MkAuthContext.d.ts.map +1 -0
  5. package/dist/auth/MkAuthContext.js +3 -0
  6. package/dist/auth/MkAuthContext.js.map +1 -0
  7. package/dist/auth/MkAuthForm.d.ts +42 -0
  8. package/dist/auth/MkAuthForm.d.ts.map +1 -0
  9. package/dist/auth/MkAuthForm.js +53 -0
  10. package/dist/auth/MkAuthForm.js.map +1 -0
  11. package/dist/auth/MkAuthProvider.d.ts +30 -0
  12. package/dist/auth/MkAuthProvider.d.ts.map +1 -0
  13. package/dist/auth/MkAuthProvider.js +319 -0
  14. package/dist/auth/MkAuthProvider.js.map +1 -0
  15. package/dist/auth/auth/MkAuthContext.d.ts +42 -0
  16. package/dist/auth/auth/MkAuthForm.d.ts +41 -0
  17. package/dist/auth/auth/MkAuthProvider.d.ts +29 -0
  18. package/dist/auth/auth/types.d.ts +62 -0
  19. package/dist/auth/auth/useMkAuth.d.ts +18 -0
  20. package/dist/auth/components/MkButton.d.ts +10 -0
  21. package/dist/auth/components/MkInput.d.ts +12 -0
  22. package/dist/auth/types.d.ts +63 -0
  23. package/dist/auth/types.d.ts.map +1 -0
  24. package/dist/auth/types.js +20 -0
  25. package/dist/auth/types.js.map +1 -0
  26. package/dist/auth/useMkAuth.d.ts +19 -0
  27. package/dist/auth/useMkAuth.d.ts.map +1 -0
  28. package/dist/auth/useMkAuth.js +26 -0
  29. package/dist/auth/useMkAuth.js.map +1 -0
  30. package/dist/components/MkAccordion.d.ts +36 -0
  31. package/dist/components/MkAccordion.d.ts.map +1 -0
  32. package/dist/components/MkAccordion.js +25 -0
  33. package/dist/components/MkAccordion.js.map +1 -0
  34. package/dist/components/MkAccordion.module.css +79 -0
  35. package/dist/components/MkAlert.d.ts +25 -0
  36. package/dist/components/MkAlert.d.ts.map +1 -0
  37. package/dist/components/MkAlert.js +23 -0
  38. package/dist/components/MkAlert.js.map +1 -0
  39. package/dist/components/MkAlert.module.css +103 -0
  40. package/dist/components/MkAvatar.d.ts +16 -0
  41. package/dist/components/MkAvatar.d.ts.map +1 -0
  42. package/dist/components/MkAvatar.js +25 -0
  43. package/dist/components/MkAvatar.js.map +1 -0
  44. package/dist/components/MkAvatar.module.css +62 -0
  45. package/dist/components/MkBadge.d.ts +15 -0
  46. package/dist/components/MkBadge.d.ts.map +1 -0
  47. package/dist/components/MkBadge.js +9 -0
  48. package/dist/components/MkBadge.js.map +1 -0
  49. package/dist/components/MkBadge.module.css +74 -0
  50. package/dist/components/MkButton.d.ts +11 -0
  51. package/dist/components/MkButton.d.ts.map +1 -0
  52. package/dist/components/MkButton.js +20 -0
  53. package/dist/components/MkButton.js.map +1 -0
  54. package/dist/components/MkButton.module.css +85 -0
  55. package/dist/components/MkButton.test.d.ts +2 -0
  56. package/dist/components/MkButton.test.d.ts.map +1 -0
  57. package/dist/components/MkButton.test.js +58 -0
  58. package/dist/components/MkButton.test.js.map +1 -0
  59. package/dist/components/MkCard.d.ts +18 -0
  60. package/dist/components/MkCard.d.ts.map +1 -0
  61. package/dist/components/MkCard.js +8 -0
  62. package/dist/components/MkCard.js.map +1 -0
  63. package/dist/components/MkCard.module.css +63 -0
  64. package/dist/components/MkCheck.d.ts +32 -0
  65. package/dist/components/MkCheck.d.ts.map +1 -0
  66. package/dist/components/MkCheck.js +14 -0
  67. package/dist/components/MkCheck.js.map +1 -0
  68. package/dist/components/MkCheck.module.css +87 -0
  69. package/dist/components/MkDatePicker.d.ts +29 -0
  70. package/dist/components/MkDatePicker.d.ts.map +1 -0
  71. package/dist/components/MkDatePicker.js +12 -0
  72. package/dist/components/MkDatePicker.js.map +1 -0
  73. package/dist/components/MkDatePicker.module.css +77 -0
  74. package/dist/components/MkDivider.d.ts +14 -0
  75. package/dist/components/MkDivider.d.ts.map +1 -0
  76. package/dist/components/MkDivider.js +14 -0
  77. package/dist/components/MkDivider.js.map +1 -0
  78. package/dist/components/MkDivider.module.css +39 -0
  79. package/dist/components/MkDropDown.d.ts +22 -0
  80. package/dist/components/MkDropDown.d.ts.map +1 -0
  81. package/dist/components/MkDropDown.js +26 -0
  82. package/dist/components/MkDropDown.js.map +1 -0
  83. package/dist/components/MkDropDown.module.css +108 -0
  84. package/dist/components/MkEmptyState.d.ts +14 -0
  85. package/dist/components/MkEmptyState.d.ts.map +1 -0
  86. package/dist/components/MkEmptyState.js +8 -0
  87. package/dist/components/MkEmptyState.js.map +1 -0
  88. package/dist/components/MkEmptyState.module.css +35 -0
  89. package/dist/components/MkFileUpload.d.ts +36 -0
  90. package/dist/components/MkFileUpload.d.ts.map +1 -0
  91. package/dist/components/MkFileUpload.js +52 -0
  92. package/dist/components/MkFileUpload.js.map +1 -0
  93. package/dist/components/MkFileUpload.module.css +74 -0
  94. package/dist/components/MkIcons.d.ts +14 -0
  95. package/dist/components/MkIcons.d.ts.map +1 -0
  96. package/dist/components/MkIcons.js +38 -0
  97. package/dist/components/MkIcons.js.map +1 -0
  98. package/dist/components/MkInfiniteList.d.ts +15 -0
  99. package/dist/components/MkInfiniteList.d.ts.map +1 -0
  100. package/dist/components/MkInfiniteList.js +31 -0
  101. package/dist/components/MkInfiniteList.js.map +1 -0
  102. package/dist/components/MkInfiniteList.module.css +69 -0
  103. package/dist/components/MkInput.d.ts +13 -0
  104. package/dist/components/MkInput.d.ts.map +1 -0
  105. package/dist/components/MkInput.js +23 -0
  106. package/dist/components/MkInput.js.map +1 -0
  107. package/dist/components/MkInput.module.css +94 -0
  108. package/dist/components/MkLoading.d.ts +20 -0
  109. package/dist/components/MkLoading.d.ts.map +1 -0
  110. package/dist/components/MkLoading.js +16 -0
  111. package/dist/components/MkLoading.js.map +1 -0
  112. package/dist/components/MkLoading.module.css +39 -0
  113. package/dist/components/MkModal.d.ts +20 -0
  114. package/dist/components/MkModal.d.ts.map +1 -0
  115. package/dist/components/MkModal.js +33 -0
  116. package/dist/components/MkModal.js.map +1 -0
  117. package/dist/components/MkModal.module.css +107 -0
  118. package/dist/components/MkProgressBar.d.ts +17 -0
  119. package/dist/components/MkProgressBar.d.ts.map +1 -0
  120. package/dist/components/MkProgressBar.js +9 -0
  121. package/dist/components/MkProgressBar.js.map +1 -0
  122. package/dist/components/MkProgressBar.module.css +48 -0
  123. package/dist/components/MkRadio.d.ts +34 -0
  124. package/dist/components/MkRadio.d.ts.map +1 -0
  125. package/dist/components/MkRadio.js +21 -0
  126. package/dist/components/MkRadio.js.map +1 -0
  127. package/dist/components/MkRadio.module.css +74 -0
  128. package/dist/components/MkSearchInput.d.ts +30 -0
  129. package/dist/components/MkSearchInput.d.ts.map +1 -0
  130. package/dist/components/MkSearchInput.js +29 -0
  131. package/dist/components/MkSearchInput.js.map +1 -0
  132. package/dist/components/MkSearchInput.module.css +80 -0
  133. package/dist/components/MkSelect.d.ts +23 -0
  134. package/dist/components/MkSelect.d.ts.map +1 -0
  135. package/dist/components/MkSelect.js +61 -0
  136. package/dist/components/MkSelect.js.map +1 -0
  137. package/dist/components/MkSelect.module.css +177 -0
  138. package/dist/components/MkSkeleton.d.ts +22 -0
  139. package/dist/components/MkSkeleton.d.ts.map +1 -0
  140. package/dist/components/MkSkeleton.js +23 -0
  141. package/dist/components/MkSkeleton.js.map +1 -0
  142. package/dist/components/MkSkeleton.module.css +28 -0
  143. package/dist/components/MkSwitch.d.ts +22 -0
  144. package/dist/components/MkSwitch.d.ts.map +1 -0
  145. package/dist/components/MkSwitch.js +16 -0
  146. package/dist/components/MkSwitch.js.map +1 -0
  147. package/dist/components/MkSwitch.module.css +108 -0
  148. package/dist/components/MkTable.d.ts +27 -0
  149. package/dist/components/MkTable.d.ts.map +1 -0
  150. package/dist/components/MkTable.js +13 -0
  151. package/dist/components/MkTable.js.map +1 -0
  152. package/dist/components/MkTable.module.css +163 -0
  153. package/dist/components/MkTabs.d.ts +22 -0
  154. package/dist/components/MkTabs.d.ts.map +1 -0
  155. package/dist/components/MkTabs.js +19 -0
  156. package/dist/components/MkTabs.js.map +1 -0
  157. package/dist/components/MkTabs.module.css +117 -0
  158. package/dist/components/MkTextArea.d.ts +21 -0
  159. package/dist/components/MkTextArea.d.ts.map +1 -0
  160. package/dist/components/MkTextArea.js +10 -0
  161. package/dist/components/MkTextArea.js.map +1 -0
  162. package/dist/components/MkThemeEditor.d.ts +8 -0
  163. package/dist/components/MkThemeEditor.d.ts.map +1 -0
  164. package/dist/components/MkThemeEditor.js +45 -0
  165. package/dist/components/MkThemeEditor.js.map +1 -0
  166. package/dist/components/MkThemeEditor.module.css +177 -0
  167. package/dist/components/MkToastContainer.d.ts +3 -0
  168. package/dist/components/MkToastContainer.d.ts.map +1 -0
  169. package/dist/components/MkToastContainer.js +81 -0
  170. package/dist/components/MkToastContainer.js.map +1 -0
  171. package/dist/components/MkToastContainer.module.css +95 -0
  172. package/dist/components/MkTooltip.d.ts +14 -0
  173. package/dist/components/MkTooltip.d.ts.map +1 -0
  174. package/dist/components/MkTooltip.js +19 -0
  175. package/dist/components/MkTooltip.js.map +1 -0
  176. package/dist/components/MkTooltip.module.css +43 -0
  177. package/dist/components/MkWindowList.d.ts +20 -0
  178. package/dist/components/MkWindowList.d.ts.map +1 -0
  179. package/dist/components/MkWindowList.js +61 -0
  180. package/dist/components/MkWindowList.js.map +1 -0
  181. package/dist/components/MkWindowList.module.css +59 -0
  182. package/dist/components/index.d.ts +31 -0
  183. package/dist/components/index.d.ts.map +1 -0
  184. package/dist/components/index.js +34 -0
  185. package/dist/components/index.js.map +1 -0
  186. package/dist/context/MkApiContext.d.ts +15 -0
  187. package/dist/context/MkApiContext.d.ts.map +1 -0
  188. package/dist/context/MkApiContext.js +30 -0
  189. package/dist/context/MkApiContext.js.map +1 -0
  190. package/dist/context/MkAuthContext.d.ts +20 -0
  191. package/dist/context/MkAuthContext.d.ts.map +1 -0
  192. package/dist/context/MkAuthContext.js +90 -0
  193. package/dist/context/MkAuthContext.js.map +1 -0
  194. package/dist/context/MkConfirmContext.d.ts +8 -0
  195. package/dist/context/MkConfirmContext.d.ts.map +1 -0
  196. package/dist/context/MkConfirmContext.js +39 -0
  197. package/dist/context/MkConfirmContext.js.map +1 -0
  198. package/dist/context/MkToastContext.d.ts +8 -0
  199. package/dist/context/MkToastContext.d.ts.map +1 -0
  200. package/dist/context/MkToastContext.js +64 -0
  201. package/dist/context/MkToastContext.js.map +1 -0
  202. package/dist/hooks/useApi.d.ts +19 -0
  203. package/dist/hooks/useApi.d.ts.map +1 -0
  204. package/dist/hooks/useApi.js +82 -0
  205. package/dist/hooks/useApi.js.map +1 -0
  206. package/dist/hooks/useApi.test.d.ts +2 -0
  207. package/dist/hooks/useApi.test.d.ts.map +1 -0
  208. package/dist/hooks/useApi.test.js +186 -0
  209. package/dist/hooks/useApi.test.js.map +1 -0
  210. package/dist/hooks/useMkClickOutside.d.ts +8 -0
  211. package/dist/hooks/useMkClickOutside.d.ts.map +1 -0
  212. package/dist/hooks/useMkClickOutside.js +26 -0
  213. package/dist/hooks/useMkClickOutside.js.map +1 -0
  214. package/dist/hooks/useMkCrud.d.ts +39 -0
  215. package/dist/hooks/useMkCrud.d.ts.map +1 -0
  216. package/dist/hooks/useMkCrud.js +121 -0
  217. package/dist/hooks/useMkCrud.js.map +1 -0
  218. package/dist/hooks/useMkCrud.test.d.ts +2 -0
  219. package/dist/hooks/useMkCrud.test.d.ts.map +1 -0
  220. package/dist/hooks/useMkCrud.test.js +89 -0
  221. package/dist/hooks/useMkCrud.test.js.map +1 -0
  222. package/dist/hooks/useMkDebounce.d.ts +24 -0
  223. package/dist/hooks/useMkDebounce.d.ts.map +1 -0
  224. package/dist/hooks/useMkDebounce.js +38 -0
  225. package/dist/hooks/useMkDebounce.js.map +1 -0
  226. package/dist/hooks/useMkEffectDebug.d.ts +7 -0
  227. package/dist/hooks/useMkEffectDebug.d.ts.map +1 -0
  228. package/dist/hooks/useMkEffectDebug.js +26 -0
  229. package/dist/hooks/useMkEffectDebug.js.map +1 -0
  230. package/dist/hooks/useMkEvent.d.ts +31 -0
  231. package/dist/hooks/useMkEvent.d.ts.map +1 -0
  232. package/dist/hooks/useMkEvent.js +56 -0
  233. package/dist/hooks/useMkEvent.js.map +1 -0
  234. package/dist/hooks/useMkForm.d.ts +43 -0
  235. package/dist/hooks/useMkForm.d.ts.map +1 -0
  236. package/dist/hooks/useMkForm.js +115 -0
  237. package/dist/hooks/useMkForm.js.map +1 -0
  238. package/dist/hooks/useMkForm.test.d.ts +2 -0
  239. package/dist/hooks/useMkForm.test.d.ts.map +1 -0
  240. package/dist/hooks/useMkForm.test.js +81 -0
  241. package/dist/hooks/useMkForm.test.js.map +1 -0
  242. package/dist/hooks/useMkInViewPort.d.ts +14 -0
  243. package/dist/hooks/useMkInViewPort.d.ts.map +1 -0
  244. package/dist/hooks/useMkInViewPort.js +31 -0
  245. package/dist/hooks/useMkInViewPort.js.map +1 -0
  246. package/dist/hooks/useMkInfiniteList.d.ts +15 -0
  247. package/dist/hooks/useMkInfiniteList.d.ts.map +1 -0
  248. package/dist/hooks/useMkInfiniteList.js +47 -0
  249. package/dist/hooks/useMkInfiniteList.js.map +1 -0
  250. package/dist/hooks/useMkList.d.ts +61 -0
  251. package/dist/hooks/useMkList.d.ts.map +1 -0
  252. package/dist/hooks/useMkList.js +54 -0
  253. package/dist/hooks/useMkList.js.map +1 -0
  254. package/dist/hooks/useMkLocalStorage.d.ts +6 -0
  255. package/dist/hooks/useMkLocalStorage.d.ts.map +1 -0
  256. package/dist/hooks/useMkLocalStorage.js +33 -0
  257. package/dist/hooks/useMkLocalStorage.js.map +1 -0
  258. package/dist/hooks/useMkLongPress.d.ts +37 -0
  259. package/dist/hooks/useMkLongPress.d.ts.map +1 -0
  260. package/dist/hooks/useMkLongPress.js +59 -0
  261. package/dist/hooks/useMkLongPress.js.map +1 -0
  262. package/dist/hooks/useMkMediaQuery.d.ts +14 -0
  263. package/dist/hooks/useMkMediaQuery.d.ts.map +1 -0
  264. package/dist/hooks/useMkMediaQuery.js +31 -0
  265. package/dist/hooks/useMkMediaQuery.js.map +1 -0
  266. package/dist/hooks/useMkPrevious.d.ts +7 -0
  267. package/dist/hooks/useMkPrevious.d.ts.map +1 -0
  268. package/dist/hooks/useMkPrevious.js +14 -0
  269. package/dist/hooks/useMkPrevious.js.map +1 -0
  270. package/dist/hooks/useMkScreenSize.d.ts +25 -0
  271. package/dist/hooks/useMkScreenSize.d.ts.map +1 -0
  272. package/dist/hooks/useMkScreenSize.js +43 -0
  273. package/dist/hooks/useMkScreenSize.js.map +1 -0
  274. package/dist/hooks/useMkStore.d.ts +22 -0
  275. package/dist/hooks/useMkStore.d.ts.map +1 -0
  276. package/dist/hooks/useMkStore.js +58 -0
  277. package/dist/hooks/useMkStore.js.map +1 -0
  278. package/dist/hooks/useMkToggle.d.ts +6 -0
  279. package/dist/hooks/useMkToggle.d.ts.map +1 -0
  280. package/dist/hooks/useMkToggle.js +13 -0
  281. package/dist/hooks/useMkToggle.js.map +1 -0
  282. package/dist/index.d.ts +33 -0
  283. package/dist/index.d.ts.map +1 -0
  284. package/dist/index.js +37 -0
  285. package/dist/index.js.map +1 -0
  286. package/dist/styles/index.css +124 -0
  287. package/dist/test-setup.d.ts +2 -0
  288. package/dist/test-setup.d.ts.map +1 -0
  289. package/dist/test-setup.js +2 -0
  290. package/dist/test-setup.js.map +1 -0
  291. package/dist/theme/MkThemeProvider.d.ts +20 -0
  292. package/dist/theme/MkThemeProvider.d.ts.map +1 -0
  293. package/dist/theme/MkThemeProvider.js +91 -0
  294. package/dist/theme/MkThemeProvider.js.map +1 -0
  295. package/dist/utils/images.d.ts +9 -0
  296. package/dist/utils/images.d.ts.map +1 -0
  297. package/dist/utils/images.js +50 -0
  298. package/dist/utils/images.js.map +1 -0
  299. package/eslint-plugin-mk/__tests__/no-cross-module-import.test.js +66 -0
  300. package/eslint-plugin-mk/index.js +29 -0
  301. package/eslint-plugin-mk/rules/no-cross-module-import.js +71 -0
  302. package/package.json +62 -0
@@ -0,0 +1,33 @@
1
+ import { useState } from 'react';
2
+ /**
3
+ * useMkLocalStorage
4
+ * 🚀 Sincroniza el estado de React con el almacenamiento local.
5
+ */
6
+ export function useMkLocalStorage(key, initialValue) {
7
+ const [storedValue, setStoredValue] = useState(() => {
8
+ if (typeof window === 'undefined')
9
+ return initialValue;
10
+ try {
11
+ const item = window.localStorage.getItem(key);
12
+ return item ? JSON.parse(item) : initialValue;
13
+ }
14
+ catch (error) {
15
+ console.error(error);
16
+ return initialValue;
17
+ }
18
+ });
19
+ const setValue = (value) => {
20
+ try {
21
+ const valueToStore = value instanceof Function ? value(storedValue) : value;
22
+ setStoredValue(valueToStore);
23
+ if (typeof window !== 'undefined') {
24
+ window.localStorage.setItem(key, JSON.stringify(valueToStore));
25
+ }
26
+ }
27
+ catch (error) {
28
+ console.error(error);
29
+ }
30
+ };
31
+ return [storedValue, setValue];
32
+ }
33
+ //# sourceMappingURL=useMkLocalStorage.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useMkLocalStorage.js","sourceRoot":"","sources":["../../src/hooks/useMkLocalStorage.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAa,MAAM,OAAO,CAAC;AAE5C;;;GAGG;AACH,MAAM,UAAU,iBAAiB,CAAI,GAAW,EAAE,YAAe;IAC/D,MAAM,CAAC,WAAW,EAAE,cAAc,CAAC,GAAG,QAAQ,CAAI,GAAG,EAAE;QACrD,IAAI,OAAO,MAAM,KAAK,WAAW;YAAE,OAAO,YAAY,CAAC;QACvD,IAAI,CAAC;YACH,MAAM,IAAI,GAAG,MAAM,CAAC,YAAY,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;YAC9C,OAAO,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC;QAChD,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;YACrB,OAAO,YAAY,CAAC;QACtB,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,MAAM,QAAQ,GAAG,CAAC,KAA0B,EAAE,EAAE;QAC9C,IAAI,CAAC;YACH,MAAM,YAAY,GAAG,KAAK,YAAY,QAAQ,CAAC,CAAC,CAAC,KAAK,CAAC,WAAW,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC;YAC5E,cAAc,CAAC,YAAY,CAAC,CAAC;YAC7B,IAAI,OAAO,MAAM,KAAK,WAAW,EAAE,CAAC;gBAClC,MAAM,CAAC,YAAY,CAAC,OAAO,CAAC,GAAG,EAAE,IAAI,CAAC,SAAS,CAAC,YAAY,CAAC,CAAC,CAAC;YACjE,CAAC;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QACvB,CAAC;IACH,CAAC,CAAC;IAEF,OAAO,CAAC,WAAW,EAAE,QAAQ,CAAU,CAAC;AAC1C,CAAC"}
@@ -0,0 +1,37 @@
1
+ export interface MkLongPressOptions {
2
+ /** Duration in ms before triggering long press (default: 500) */
3
+ threshold?: number;
4
+ /** Called when a short click/tap happens instead of long press */
5
+ onPress?: () => void;
6
+ }
7
+ export interface MkLongPressResult {
8
+ /** Spread these onto the target element */
9
+ handlers: {
10
+ onMouseDown: () => void;
11
+ onMouseUp: () => void;
12
+ onMouseLeave: () => void;
13
+ onTouchStart: () => void;
14
+ onTouchEnd: () => void;
15
+ };
16
+ /** Whether a long press is currently active */
17
+ isLongPressing: boolean;
18
+ }
19
+ /**
20
+ * useMkLongPress — Detect long press gestures on any element.
21
+ * Supports both mouse and touch events.
22
+ *
23
+ * @param onLongPress - Callback fired when long press threshold is reached.
24
+ * @param options - Configuration options.
25
+ *
26
+ * @example
27
+ * ```tsx
28
+ * const { handlers, isLongPressing } = useMkLongPress(
29
+ * () => console.log('Long pressed!'),
30
+ * { threshold: 800, onPress: () => console.log('Short tap') }
31
+ * );
32
+ *
33
+ * return <div {...handlers}>Hold me</div>;
34
+ * ```
35
+ */
36
+ export declare function useMkLongPress(onLongPress: () => void, options?: MkLongPressOptions): MkLongPressResult;
37
+ //# sourceMappingURL=useMkLongPress.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useMkLongPress.d.ts","sourceRoot":"","sources":["../../src/hooks/useMkLongPress.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,kBAAkB;IAC/B,iEAAiE;IACjE,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,kEAAkE;IAClE,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;CACxB;AAED,MAAM,WAAW,iBAAiB;IAC9B,2CAA2C;IAC3C,QAAQ,EAAE;QACN,WAAW,EAAE,MAAM,IAAI,CAAC;QACxB,SAAS,EAAE,MAAM,IAAI,CAAC;QACtB,YAAY,EAAE,MAAM,IAAI,CAAC;QACzB,YAAY,EAAE,MAAM,IAAI,CAAC;QACzB,UAAU,EAAE,MAAM,IAAI,CAAC;KAC1B,CAAC;IACF,+CAA+C;IAC/C,cAAc,EAAE,OAAO,CAAC;CAC3B;AAED;;;;;;;;;;;;;;;;GAgBG;AACH,wBAAgB,cAAc,CAC1B,WAAW,EAAE,MAAM,IAAI,EACvB,OAAO,GAAE,kBAAuB,GACjC,iBAAiB,CA0CnB"}
@@ -0,0 +1,59 @@
1
+ import { useState, useEffect, useCallback, useRef } from 'react';
2
+ /**
3
+ * useMkLongPress — Detect long press gestures on any element.
4
+ * Supports both mouse and touch events.
5
+ *
6
+ * @param onLongPress - Callback fired when long press threshold is reached.
7
+ * @param options - Configuration options.
8
+ *
9
+ * @example
10
+ * ```tsx
11
+ * const { handlers, isLongPressing } = useMkLongPress(
12
+ * () => console.log('Long pressed!'),
13
+ * { threshold: 800, onPress: () => console.log('Short tap') }
14
+ * );
15
+ *
16
+ * return <div {...handlers}>Hold me</div>;
17
+ * ```
18
+ */
19
+ export function useMkLongPress(onLongPress, options = {}) {
20
+ const { threshold = 500, onPress } = options;
21
+ const [isLongPressing, setIsLongPressing] = useState(false);
22
+ const timerRef = useRef(null);
23
+ const didLongPressRef = useRef(false);
24
+ const start = useCallback(() => {
25
+ didLongPressRef.current = false;
26
+ timerRef.current = setTimeout(() => {
27
+ didLongPressRef.current = true;
28
+ setIsLongPressing(true);
29
+ onLongPress();
30
+ }, threshold);
31
+ }, [onLongPress, threshold]);
32
+ const stop = useCallback(() => {
33
+ if (timerRef.current) {
34
+ clearTimeout(timerRef.current);
35
+ timerRef.current = null;
36
+ }
37
+ if (!didLongPressRef.current && onPress) {
38
+ onPress();
39
+ }
40
+ setIsLongPressing(false);
41
+ }, [onPress]);
42
+ useEffect(() => {
43
+ return () => {
44
+ if (timerRef.current)
45
+ clearTimeout(timerRef.current);
46
+ };
47
+ }, []);
48
+ return {
49
+ handlers: {
50
+ onMouseDown: start,
51
+ onMouseUp: stop,
52
+ onMouseLeave: stop,
53
+ onTouchStart: start,
54
+ onTouchEnd: stop,
55
+ },
56
+ isLongPressing,
57
+ };
58
+ }
59
+ //# sourceMappingURL=useMkLongPress.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useMkLongPress.js","sourceRoot":"","sources":["../../src/hooks/useMkLongPress.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,EAAE,MAAM,OAAO,CAAC;AAsBjE;;;;;;;;;;;;;;;;GAgBG;AACH,MAAM,UAAU,cAAc,CAC1B,WAAuB,EACvB,UAA8B,EAAE;IAEhC,MAAM,EAAE,SAAS,GAAG,GAAG,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC;IAC7C,MAAM,CAAC,cAAc,EAAE,iBAAiB,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IAC5D,MAAM,QAAQ,GAAG,MAAM,CAAuC,IAAI,CAAC,CAAC;IACpE,MAAM,eAAe,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;IAEtC,MAAM,KAAK,GAAG,WAAW,CAAC,GAAG,EAAE;QAC3B,eAAe,CAAC,OAAO,GAAG,KAAK,CAAC;QAChC,QAAQ,CAAC,OAAO,GAAG,UAAU,CAAC,GAAG,EAAE;YAC/B,eAAe,CAAC,OAAO,GAAG,IAAI,CAAC;YAC/B,iBAAiB,CAAC,IAAI,CAAC,CAAC;YACxB,WAAW,EAAE,CAAC;QAClB,CAAC,EAAE,SAAS,CAAC,CAAC;IAClB,CAAC,EAAE,CAAC,WAAW,EAAE,SAAS,CAAC,CAAC,CAAC;IAE7B,MAAM,IAAI,GAAG,WAAW,CAAC,GAAG,EAAE;QAC1B,IAAI,QAAQ,CAAC,OAAO,EAAE,CAAC;YACnB,YAAY,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;YAC/B,QAAQ,CAAC,OAAO,GAAG,IAAI,CAAC;QAC5B,CAAC;QACD,IAAI,CAAC,eAAe,CAAC,OAAO,IAAI,OAAO,EAAE,CAAC;YACtC,OAAO,EAAE,CAAC;QACd,CAAC;QACD,iBAAiB,CAAC,KAAK,CAAC,CAAC;IAC7B,CAAC,EAAE,CAAC,OAAO,CAAC,CAAC,CAAC;IAEd,SAAS,CAAC,GAAG,EAAE;QACX,OAAO,GAAG,EAAE;YACR,IAAI,QAAQ,CAAC,OAAO;gBAAE,YAAY,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC;QACzD,CAAC,CAAC;IACN,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,OAAO;QACH,QAAQ,EAAE;YACN,WAAW,EAAE,KAAK;YAClB,SAAS,EAAE,IAAI;YACf,YAAY,EAAE,IAAI;YAClB,YAAY,EAAE,KAAK;YACnB,UAAU,EAAE,IAAI;SACnB;QACD,cAAc;KACjB,CAAC;AACN,CAAC"}
@@ -0,0 +1,14 @@
1
+ /**
2
+ * useMkMediaQuery — Track CSS media query matches reactively.
3
+ *
4
+ * @param query - CSS media query string (e.g., '(max-width: 768px)')
5
+ * @returns `true` if the query matches, `false` otherwise.
6
+ *
7
+ * @example
8
+ * ```tsx
9
+ * const isMobile = useMkMediaQuery('(max-width: 600px)');
10
+ * const prefersDark = useMkMediaQuery('(prefers-color-scheme: dark)');
11
+ * ```
12
+ */
13
+ export declare function useMkMediaQuery(query: string): boolean;
14
+ //# sourceMappingURL=useMkMediaQuery.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useMkMediaQuery.d.ts","sourceRoot":"","sources":["../../src/hooks/useMkMediaQuery.ts"],"names":[],"mappings":"AAEA;;;;;;;;;;;GAWG;AACH,wBAAgB,eAAe,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAmBtD"}
@@ -0,0 +1,31 @@
1
+ import { useState, useEffect } from 'react';
2
+ /**
3
+ * useMkMediaQuery — Track CSS media query matches reactively.
4
+ *
5
+ * @param query - CSS media query string (e.g., '(max-width: 768px)')
6
+ * @returns `true` if the query matches, `false` otherwise.
7
+ *
8
+ * @example
9
+ * ```tsx
10
+ * const isMobile = useMkMediaQuery('(max-width: 600px)');
11
+ * const prefersDark = useMkMediaQuery('(prefers-color-scheme: dark)');
12
+ * ```
13
+ */
14
+ export function useMkMediaQuery(query) {
15
+ const [matches, setMatches] = useState(() => {
16
+ if (typeof window === 'undefined')
17
+ return false;
18
+ return window.matchMedia(query).matches;
19
+ });
20
+ useEffect(() => {
21
+ if (typeof window === 'undefined')
22
+ return;
23
+ const mediaQuery = window.matchMedia(query);
24
+ setMatches(mediaQuery.matches);
25
+ const handler = (event) => setMatches(event.matches);
26
+ mediaQuery.addEventListener('change', handler);
27
+ return () => mediaQuery.removeEventListener('change', handler);
28
+ }, [query]);
29
+ return matches;
30
+ }
31
+ //# sourceMappingURL=useMkMediaQuery.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useMkMediaQuery.js","sourceRoot":"","sources":["../../src/hooks/useMkMediaQuery.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAE5C;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,eAAe,CAAC,KAAa;IACzC,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,GAAG,QAAQ,CAAU,GAAG,EAAE;QACjD,IAAI,OAAO,MAAM,KAAK,WAAW;YAAE,OAAO,KAAK,CAAC;QAChD,OAAO,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC;IAC5C,CAAC,CAAC,CAAC;IAEH,SAAS,CAAC,GAAG,EAAE;QACX,IAAI,OAAO,MAAM,KAAK,WAAW;YAAE,OAAO;QAE1C,MAAM,UAAU,GAAG,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC;QAC5C,UAAU,CAAC,UAAU,CAAC,OAAO,CAAC,CAAC;QAE/B,MAAM,OAAO,GAAG,CAAC,KAA0B,EAAE,EAAE,CAAC,UAAU,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;QAC1E,UAAU,CAAC,gBAAgB,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;QAE/C,OAAO,GAAG,EAAE,CAAC,UAAU,CAAC,mBAAmB,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;IACnE,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC;IAEZ,OAAO,OAAO,CAAC;AACnB,CAAC"}
@@ -0,0 +1,7 @@
1
+ /**
2
+ * useMkPrevious
3
+ * 🚀 Retorna el valor del render anterior.
4
+ * Útil para comparar cambios de props o estados y disparar animaciones o efectos.
5
+ */
6
+ export declare const useMkPrevious: <T>(value: T, initialValue?: T) => T | undefined;
7
+ //# sourceMappingURL=useMkPrevious.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useMkPrevious.d.ts","sourceRoot":"","sources":["../../src/hooks/useMkPrevious.ts"],"names":[],"mappings":"AAEA;;;;GAIG;AACH,eAAO,MAAM,aAAa,GAAI,CAAC,EAAE,OAAO,CAAC,EAAE,eAAe,CAAC,KAAG,CAAC,GAAG,SAQjE,CAAC"}
@@ -0,0 +1,14 @@
1
+ import { useRef, useEffect } from "react";
2
+ /**
3
+ * useMkPrevious
4
+ * 🚀 Retorna el valor del render anterior.
5
+ * Útil para comparar cambios de props o estados y disparar animaciones o efectos.
6
+ */
7
+ export const useMkPrevious = (value, initialValue) => {
8
+ const ref = useRef(initialValue);
9
+ useEffect(() => {
10
+ ref.current = value;
11
+ }, [value]);
12
+ return ref.current;
13
+ };
14
+ //# sourceMappingURL=useMkPrevious.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useMkPrevious.js","sourceRoot":"","sources":["../../src/hooks/useMkPrevious.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAE1C;;;;GAIG;AACH,MAAM,CAAC,MAAM,aAAa,GAAG,CAAI,KAAQ,EAAE,YAAgB,EAAiB,EAAE;IAC1E,MAAM,GAAG,GAAG,MAAM,CAAgB,YAAY,CAAC,CAAC;IAEhD,SAAS,CAAC,GAAG,EAAE;QACX,GAAG,CAAC,OAAO,GAAG,KAAK,CAAC;IACxB,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC;IAEZ,OAAO,GAAG,CAAC,OAAO,CAAC;AACvB,CAAC,CAAC"}
@@ -0,0 +1,25 @@
1
+ export interface MkScreenSize {
2
+ width: number;
3
+ height: number;
4
+ isMobile: boolean;
5
+ isTablet: boolean;
6
+ isDesktop: boolean;
7
+ }
8
+ export interface MkScreenBreakpoints {
9
+ mobile: number;
10
+ tablet: number;
11
+ }
12
+ /**
13
+ * useMkScreenSize — Track viewport dimensions and responsive breakpoints.
14
+ *
15
+ * @param breakpoints - Custom breakpoint thresholds (optional).
16
+ * @returns Object with `width`, `height`, `isMobile`, `isTablet`, `isDesktop`.
17
+ *
18
+ * @example
19
+ * ```tsx
20
+ * const { isMobile, isDesktop, width } = useMkScreenSize();
21
+ * const { isMobile } = useMkScreenSize({ mobile: 480, tablet: 768 });
22
+ * ```
23
+ */
24
+ export declare function useMkScreenSize(breakpoints?: Partial<MkScreenBreakpoints>): MkScreenSize;
25
+ //# sourceMappingURL=useMkScreenSize.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useMkScreenSize.d.ts","sourceRoot":"","sources":["../../src/hooks/useMkScreenSize.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,YAAY;IACzB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,QAAQ,EAAE,OAAO,CAAC;IAClB,QAAQ,EAAE,OAAO,CAAC;IAClB,SAAS,EAAE,OAAO,CAAC;CACtB;AAED,MAAM,WAAW,mBAAmB;IAChC,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;CAClB;AAOD;;;;;;;;;;;GAWG;AACH,wBAAgB,eAAe,CAAC,WAAW,CAAC,EAAE,OAAO,CAAC,mBAAmB,CAAC,GAAG,YAAY,CA6BxF"}
@@ -0,0 +1,43 @@
1
+ import { useState, useEffect } from 'react';
2
+ const DEFAULT_BREAKPOINTS = {
3
+ mobile: 600,
4
+ tablet: 1024,
5
+ };
6
+ /**
7
+ * useMkScreenSize — Track viewport dimensions and responsive breakpoints.
8
+ *
9
+ * @param breakpoints - Custom breakpoint thresholds (optional).
10
+ * @returns Object with `width`, `height`, `isMobile`, `isTablet`, `isDesktop`.
11
+ *
12
+ * @example
13
+ * ```tsx
14
+ * const { isMobile, isDesktop, width } = useMkScreenSize();
15
+ * const { isMobile } = useMkScreenSize({ mobile: 480, tablet: 768 });
16
+ * ```
17
+ */
18
+ export function useMkScreenSize(breakpoints) {
19
+ const bp = Object.assign(Object.assign({}, DEFAULT_BREAKPOINTS), breakpoints);
20
+ const compute = () => {
21
+ const w = typeof window !== 'undefined' ? window.innerWidth : 1200;
22
+ const h = typeof window !== 'undefined' ? window.innerHeight : 800;
23
+ return {
24
+ width: w,
25
+ height: h,
26
+ isMobile: w <= bp.mobile,
27
+ isTablet: w > bp.mobile && w <= bp.tablet,
28
+ isDesktop: w > bp.tablet,
29
+ };
30
+ };
31
+ const [size, setSize] = useState(compute);
32
+ useEffect(() => {
33
+ if (typeof window === 'undefined')
34
+ return;
35
+ const handleResize = () => setSize(compute());
36
+ handleResize();
37
+ window.addEventListener('resize', handleResize);
38
+ return () => window.removeEventListener('resize', handleResize);
39
+ // eslint-disable-next-line react-hooks/exhaustive-deps
40
+ }, [bp.mobile, bp.tablet]);
41
+ return size;
42
+ }
43
+ //# sourceMappingURL=useMkScreenSize.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useMkScreenSize.js","sourceRoot":"","sources":["../../src/hooks/useMkScreenSize.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAe5C,MAAM,mBAAmB,GAAwB;IAC7C,MAAM,EAAE,GAAG;IACX,MAAM,EAAE,IAAI;CACf,CAAC;AAEF;;;;;;;;;;;GAWG;AACH,MAAM,UAAU,eAAe,CAAC,WAA0C;IACtE,MAAM,EAAE,mCAAQ,mBAAmB,GAAK,WAAW,CAAE,CAAC;IAEtD,MAAM,OAAO,GAAG,GAAiB,EAAE;QAC/B,MAAM,CAAC,GAAG,OAAO,MAAM,KAAK,WAAW,CAAC,CAAC,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC;QACnE,MAAM,CAAC,GAAG,OAAO,MAAM,KAAK,WAAW,CAAC,CAAC,CAAC,MAAM,CAAC,WAAW,CAAC,CAAC,CAAC,GAAG,CAAC;QACnE,OAAO;YACH,KAAK,EAAE,CAAC;YACR,MAAM,EAAE,CAAC;YACT,QAAQ,EAAE,CAAC,IAAI,EAAE,CAAC,MAAM;YACxB,QAAQ,EAAE,CAAC,GAAG,EAAE,CAAC,MAAM,IAAI,CAAC,IAAI,EAAE,CAAC,MAAM;YACzC,SAAS,EAAE,CAAC,GAAG,EAAE,CAAC,MAAM;SAC3B,CAAC;IACN,CAAC,CAAC;IAEF,MAAM,CAAC,IAAI,EAAE,OAAO,CAAC,GAAG,QAAQ,CAAe,OAAO,CAAC,CAAC;IAExD,SAAS,CAAC,GAAG,EAAE;QACX,IAAI,OAAO,MAAM,KAAK,WAAW;YAAE,OAAO;QAE1C,MAAM,YAAY,GAAG,GAAG,EAAE,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC,CAAC;QAE9C,YAAY,EAAE,CAAC;QACf,MAAM,CAAC,gBAAgB,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAC;QAChD,OAAO,GAAG,EAAE,CAAC,MAAM,CAAC,mBAAmB,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAC;QACpE,uDAAuD;IACvD,CAAC,EAAE,CAAC,EAAE,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,CAAC,CAAC;IAE3B,OAAO,IAAI,CAAC;AAChB,CAAC"}
@@ -0,0 +1,22 @@
1
+ /**
2
+ * Creates a lightweight external store with React 18's useSyncExternalStore.
3
+ * No Context/Provider needed — just create and use anywhere.
4
+ *
5
+ * @example
6
+ * ```ts
7
+ * // store.ts
8
+ * export const useCounter = createMkStore(0);
9
+ *
10
+ * // Component.tsx
11
+ * const [count, setCount] = useCounter();
12
+ * setCount(count + 1);
13
+ * ```
14
+ */
15
+ export declare function createMkStore<T>(initialState: T): {
16
+ (): readonly [T, (newState: T | ((prev: T) => T)) => void];
17
+ getState: () => T;
18
+ setState: (newState: T | ((prev: T) => T)) => void;
19
+ subscribe: (listener: () => void) => () => void;
20
+ reset: () => void;
21
+ };
22
+ //# sourceMappingURL=useMkStore.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useMkStore.d.ts","sourceRoot":"","sources":["../../src/hooks/useMkStore.ts"],"names":[],"mappings":"AAEA;;;;;;;;;;;;;GAaG;AACH,wBAAgB,aAAa,CAAC,CAAC,EAAE,YAAY,EAAE,CAAC;QAqCvB,SAAS,CAAC,CAAC,EAAE,CAAC,QAAQ,EAAE,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,KAAK,IAAI,CAAC;;yBA3B/C,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC;0BAUnB,MAAM,IAAI;;EA6B1C"}
@@ -0,0 +1,58 @@
1
+ import { useSyncExternalStore } from 'react';
2
+ /**
3
+ * Creates a lightweight external store with React 18's useSyncExternalStore.
4
+ * No Context/Provider needed — just create and use anywhere.
5
+ *
6
+ * @example
7
+ * ```ts
8
+ * // store.ts
9
+ * export const useCounter = createMkStore(0);
10
+ *
11
+ * // Component.tsx
12
+ * const [count, setCount] = useCounter();
13
+ * setCount(count + 1);
14
+ * ```
15
+ */
16
+ export function createMkStore(initialState) {
17
+ let state = initialState;
18
+ let listeners = [];
19
+ const notifyListeners = () => {
20
+ listeners.forEach(listener => listener());
21
+ };
22
+ const getSnapshot = () => state;
23
+ const setState = (newState) => {
24
+ const nextState = typeof newState === 'function'
25
+ ? newState(state)
26
+ : newState;
27
+ if (Object.is(state, nextState))
28
+ return;
29
+ state = nextState;
30
+ notifyListeners();
31
+ };
32
+ const subscribe = (listener) => {
33
+ listeners.push(listener);
34
+ return () => {
35
+ listeners = listeners.filter(l => l !== listener);
36
+ };
37
+ };
38
+ /** Reset store to initial state */
39
+ const reset = () => {
40
+ state = initialState;
41
+ notifyListeners();
42
+ };
43
+ /**
44
+ * React hook to consume this store.
45
+ * Returns [state, setState] tuple (like useState).
46
+ */
47
+ function useStore() {
48
+ const currentState = useSyncExternalStore(subscribe, getSnapshot, getSnapshot);
49
+ return [currentState, setState];
50
+ }
51
+ // Attach utilities to the hook
52
+ useStore.getState = getSnapshot;
53
+ useStore.setState = setState;
54
+ useStore.subscribe = subscribe;
55
+ useStore.reset = reset;
56
+ return useStore;
57
+ }
58
+ //# sourceMappingURL=useMkStore.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useMkStore.js","sourceRoot":"","sources":["../../src/hooks/useMkStore.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,OAAO,CAAC;AAE7C;;;;;;;;;;;;;GAaG;AACH,MAAM,UAAU,aAAa,CAAI,YAAe;IAC5C,IAAI,KAAK,GAAG,YAAY,CAAC;IACzB,IAAI,SAAS,GAAsB,EAAE,CAAC;IAEtC,MAAM,eAAe,GAAG,GAAG,EAAE;QACzB,SAAS,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC,QAAQ,EAAE,CAAC,CAAC;IAC9C,CAAC,CAAC;IAEF,MAAM,WAAW,GAAG,GAAG,EAAE,CAAC,KAAK,CAAC;IAEhC,MAAM,QAAQ,GAAG,CAAC,QAA8B,EAAE,EAAE;QAChD,MAAM,SAAS,GAAG,OAAO,QAAQ,KAAK,UAAU;YAC5C,CAAC,CAAE,QAA2B,CAAC,KAAK,CAAC;YACrC,CAAC,CAAC,QAAQ,CAAC;QAEf,IAAI,MAAM,CAAC,EAAE,CAAC,KAAK,EAAE,SAAS,CAAC;YAAE,OAAO;QACxC,KAAK,GAAG,SAAS,CAAC;QAClB,eAAe,EAAE,CAAC;IACtB,CAAC,CAAC;IAEF,MAAM,SAAS,GAAG,CAAC,QAAoB,EAAE,EAAE;QACvC,SAAS,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACzB,OAAO,GAAG,EAAE;YACR,SAAS,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,KAAK,QAAQ,CAAC,CAAC;QACtD,CAAC,CAAC;IACN,CAAC,CAAC;IAEF,mCAAmC;IACnC,MAAM,KAAK,GAAG,GAAG,EAAE;QACf,KAAK,GAAG,YAAY,CAAC;QACrB,eAAe,EAAE,CAAC;IACtB,CAAC,CAAC;IAEF;;;OAGG;IACH,SAAS,QAAQ;QACb,MAAM,YAAY,GAAG,oBAAoB,CAAC,SAAS,EAAE,WAAW,EAAE,WAAW,CAAC,CAAC;QAC/E,OAAO,CAAC,YAAY,EAAE,QAAQ,CAAU,CAAC;IAC7C,CAAC;IAED,+BAA+B;IAC/B,QAAQ,CAAC,QAAQ,GAAG,WAAW,CAAC;IAChC,QAAQ,CAAC,QAAQ,GAAG,QAAQ,CAAC;IAC7B,QAAQ,CAAC,SAAS,GAAG,SAAS,CAAC;IAC/B,QAAQ,CAAC,KAAK,GAAG,KAAK,CAAC;IAEvB,OAAO,QAAQ,CAAC;AACpB,CAAC"}
@@ -0,0 +1,6 @@
1
+ /**
2
+ * useMkToggle
3
+ * 🚀 Gestor de estado booleano simple y atómico.
4
+ */
5
+ export declare const useMkToggle: (initialValue?: boolean) => [boolean, () => void, (v: boolean) => void];
6
+ //# sourceMappingURL=useMkToggle.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useMkToggle.d.ts","sourceRoot":"","sources":["../../src/hooks/useMkToggle.ts"],"names":[],"mappings":"AAEA;;;GAGG;AACH,eAAO,MAAM,WAAW,GAAI,eAAc,OAAe,KAAG,CAAC,OAAO,EAAE,MAAM,IAAI,EAAE,CAAC,CAAC,EAAE,OAAO,KAAK,IAAI,CAQrG,CAAC"}
@@ -0,0 +1,13 @@
1
+ import { useState, useCallback } from 'react';
2
+ /**
3
+ * useMkToggle
4
+ * 🚀 Gestor de estado booleano simple y atómico.
5
+ */
6
+ export const useMkToggle = (initialValue = false) => {
7
+ const [value, setValue] = useState(initialValue);
8
+ const toggle = useCallback(() => {
9
+ setValue((v) => !v);
10
+ }, []);
11
+ return [value, toggle, setValue];
12
+ };
13
+ //# sourceMappingURL=useMkToggle.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useMkToggle.js","sourceRoot":"","sources":["../../src/hooks/useMkToggle.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,OAAO,CAAC;AAE9C;;;GAGG;AACH,MAAM,CAAC,MAAM,WAAW,GAAG,CAAC,eAAwB,KAAK,EAA+C,EAAE;IACxG,MAAM,CAAC,KAAK,EAAE,QAAQ,CAAC,GAAG,QAAQ,CAAU,YAAY,CAAC,CAAC;IAE1D,MAAM,MAAM,GAAG,WAAW,CAAC,GAAG,EAAE;QAC9B,QAAQ,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;IACtB,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,OAAO,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,CAAC,CAAC;AACnC,CAAC,CAAC"}
@@ -0,0 +1,33 @@
1
+ export * from './components';
2
+ export { MkThemeEditor } from './components/MkThemeEditor';
3
+ export { MkThemeProvider, useMkTheme } from './theme/MkThemeProvider';
4
+ export * from './context/MkApiContext';
5
+ export * from './context/MkToastContext';
6
+ export * from './context/MkConfirmContext';
7
+ export * from './theme/MkThemeProvider';
8
+ export * from './hooks/useApi';
9
+ export * from './hooks/useMkList';
10
+ export * from './hooks/useMkInfiniteList';
11
+ export * from './hooks/useMkDebounce';
12
+ export * from './hooks/useMkInViewPort';
13
+ export * from './hooks/useMkClickOutside';
14
+ export * from './hooks/useMkEffectDebug';
15
+ export * from './hooks/useMkEvent';
16
+ export * from './hooks/useMkLocalStorage';
17
+ export * from './hooks/useMkPrevious';
18
+ export * from './hooks/useMkToggle';
19
+ export * from './hooks/useMkForm';
20
+ export * from './hooks/useMkCrud';
21
+ export * from './hooks/useMkMediaQuery';
22
+ export * from './hooks/useMkScreenSize';
23
+ export * from './hooks/useMkLongPress';
24
+ export * from './hooks/useMkStore';
25
+ export { MkAuthProvider } from './auth/MkAuthProvider';
26
+ export type { MkAuthProviderProps } from './auth/MkAuthProvider';
27
+ export { useMkAuth } from './auth/useMkAuth';
28
+ export { MkAuthForm } from './auth/MkAuthForm';
29
+ export type { MkAuthFormProps } from './auth/MkAuthForm';
30
+ export type { MkAuthContextValue } from './auth/MkAuthContext';
31
+ export type { AdminDto, AuthTokens, LoginInput, LoginResponse, RefreshResponse, } from './auth/types';
32
+ export * from './utils/images';
33
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAC;AAC7B,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAC3D,OAAO,EAAE,eAAe,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AAGtE,cAAc,wBAAwB,CAAC;AACvC,cAAc,0BAA0B,CAAC;AACzC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,yBAAyB,CAAC;AAGxC,cAAc,gBAAgB,CAAC;AAC/B,cAAc,mBAAmB,CAAC;AAClC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,uBAAuB,CAAC;AACtC,cAAc,yBAAyB,CAAC;AACxC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,0BAA0B,CAAC;AACzC,cAAc,oBAAoB,CAAC;AACnC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,uBAAuB,CAAC;AACtC,cAAc,qBAAqB,CAAC;AACpC,cAAc,mBAAmB,CAAC;AAClC,cAAc,mBAAmB,CAAC;AAClC,cAAc,yBAAyB,CAAC;AACxC,cAAc,yBAAyB,CAAC;AACxC,cAAc,wBAAwB,CAAC;AACvC,cAAc,oBAAoB,CAAC;AAGnC,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACvD,YAAY,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AACjE,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAC7C,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAC/C,YAAY,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACzD,YAAY,EAAE,kBAAkB,EAAE,MAAM,sBAAsB,CAAC;AAC/D,YAAY,EACR,QAAQ,EACR,UAAU,EACV,UAAU,EACV,aAAa,EACb,eAAe,GAClB,MAAM,cAAc,CAAC;AAGtB,cAAc,gBAAgB,CAAC"}
package/dist/index.js ADDED
@@ -0,0 +1,37 @@
1
+ export * from './components';
2
+ export { MkThemeEditor } from './components/MkThemeEditor';
3
+ export { MkThemeProvider, useMkTheme } from './theme/MkThemeProvider';
4
+ // Contexts
5
+ export * from './context/MkApiContext';
6
+ export * from './context/MkToastContext';
7
+ export * from './context/MkConfirmContext';
8
+ export * from './theme/MkThemeProvider';
9
+ // Hooks
10
+ export * from './hooks/useApi';
11
+ export * from './hooks/useMkList';
12
+ export * from './hooks/useMkInfiniteList';
13
+ export * from './hooks/useMkDebounce';
14
+ export * from './hooks/useMkInViewPort';
15
+ export * from './hooks/useMkClickOutside';
16
+ export * from './hooks/useMkEffectDebug';
17
+ export * from './hooks/useMkEvent';
18
+ export * from './hooks/useMkLocalStorage';
19
+ export * from './hooks/useMkPrevious';
20
+ export * from './hooks/useMkToggle';
21
+ export * from './hooks/useMkForm';
22
+ export * from './hooks/useMkCrud';
23
+ export * from './hooks/useMkMediaQuery';
24
+ export * from './hooks/useMkScreenSize';
25
+ export * from './hooks/useMkLongPress';
26
+ export * from './hooks/useMkStore';
27
+ // Auth (mk-web 1.0 — scope-aware provider, see MK-WEB-1.0.3 / 1.0.4)
28
+ export { MkAuthProvider } from './auth/MkAuthProvider';
29
+ export { useMkAuth } from './auth/useMkAuth';
30
+ export { MkAuthForm } from './auth/MkAuthForm';
31
+ // Utils
32
+ export * from './utils/images';
33
+ // Note: Global CSS (`@mk/web/styles/index.css`) MUST be imported by the
34
+ // consuming app from `pages/_app.tsx` (or `app/layout.tsx`) — Next 13+
35
+ // forbids auto-importing global CSS from a package's main entry, and
36
+ // Turbopack in Next 16 enforces it strictly. See package README for usage.
37
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAC;AAC7B,OAAO,EAAE,aAAa,EAAE,MAAM,4BAA4B,CAAC;AAC3D,OAAO,EAAE,eAAe,EAAE,UAAU,EAAE,MAAM,yBAAyB,CAAC;AAEtE,WAAW;AACX,cAAc,wBAAwB,CAAC;AACvC,cAAc,0BAA0B,CAAC;AACzC,cAAc,4BAA4B,CAAC;AAC3C,cAAc,yBAAyB,CAAC;AAExC,QAAQ;AACR,cAAc,gBAAgB,CAAC;AAC/B,cAAc,mBAAmB,CAAC;AAClC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,uBAAuB,CAAC;AACtC,cAAc,yBAAyB,CAAC;AACxC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,0BAA0B,CAAC;AACzC,cAAc,oBAAoB,CAAC;AACnC,cAAc,2BAA2B,CAAC;AAC1C,cAAc,uBAAuB,CAAC;AACtC,cAAc,qBAAqB,CAAC;AACpC,cAAc,mBAAmB,CAAC;AAClC,cAAc,mBAAmB,CAAC;AAClC,cAAc,yBAAyB,CAAC;AACxC,cAAc,yBAAyB,CAAC;AACxC,cAAc,wBAAwB,CAAC;AACvC,cAAc,oBAAoB,CAAC;AAEnC,qEAAqE;AACrE,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAEvD,OAAO,EAAE,SAAS,EAAE,MAAM,kBAAkB,CAAC;AAC7C,OAAO,EAAE,UAAU,EAAE,MAAM,mBAAmB,CAAC;AAW/C,QAAQ;AACR,cAAc,gBAAgB,CAAC;AAE/B,wEAAwE;AACxE,uEAAuE;AACvE,qEAAqE;AACrE,2EAA2E"}
@@ -0,0 +1,124 @@
1
+ /**
2
+ * MK-Director Design Tokens
3
+ * -------------------------
4
+ * Overwrite these variables in your own CSS to customize the entire UI Kit.
5
+ */
6
+
7
+ :root {
8
+ /* Colors - Light Mode */
9
+ --mk-primary: #3b82f6;
10
+ --mk-primary-foreground: #ffffff;
11
+
12
+ --mk-background: #ffffff;
13
+ --mk-foreground: #0f172a;
14
+
15
+ --mk-muted: #f1f5f9;
16
+ --mk-muted-foreground: #64748b;
17
+
18
+ --mk-accent: #f8fafc;
19
+ --mk-accent-foreground: #0f172a;
20
+
21
+ --mk-border: #e2e8f0;
22
+ --mk-input: #e2e8f0;
23
+
24
+ --mk-success: #10b981;
25
+ --mk-success-foreground: #ffffff;
26
+ --mk-error: #ef4444;
27
+ --mk-error-foreground: #ffffff;
28
+ --mk-warning: #f59e0b;
29
+ --mk-warning-foreground: #ffffff;
30
+ --mk-info: #3b82f6;
31
+ --mk-info-foreground: #ffffff;
32
+
33
+ /* Card / Surface */
34
+ --mk-card: #ffffff;
35
+ --mk-card-foreground: #0f172a;
36
+
37
+ /* Popover / Dropdown */
38
+ --mk-popover: #ffffff;
39
+ --mk-popover-foreground: #0f172a;
40
+
41
+ /* Shared Tokens */
42
+ --mk-radius: 0.5rem;
43
+ --mk-font-sans: 'Inter', system-ui, sans-serif;
44
+
45
+ /* Animations & Transitions */
46
+ --mk-transition: 0.25s cubic-bezier(0.4, 0, 0.2, 1);
47
+ --mk-ease-in-out: cubic-bezier(0.4, 0, 0.2, 1);
48
+ --mk-ease-out: cubic-bezier(0, 0, 0.2, 1);
49
+ --mk-bounce: cubic-bezier(0.34, 1.56, 0.64, 1);
50
+ }
51
+
52
+ @keyframes mk-fade-in {
53
+ from {
54
+ opacity: 0;
55
+ transform: translateY(8px);
56
+ }
57
+ to {
58
+ opacity: 1;
59
+ transform: translateY(0);
60
+ }
61
+ }
62
+
63
+ @keyframes mk-shimmer {
64
+ 0% {
65
+ background-position: -200% 0;
66
+ }
67
+ 100% {
68
+ background-position: 200% 0;
69
+ }
70
+ }
71
+
72
+ @keyframes mk-pulse-subtle {
73
+ 0%,
74
+ 100% {
75
+ opacity: 1;
76
+ transform: scale(1);
77
+ }
78
+ 50% {
79
+ opacity: 0.85;
80
+ transform: scale(0.995);
81
+ }
82
+ }
83
+
84
+ /* Dark Mode */
85
+ .mk-dark {
86
+ --mk-background: #0f172a;
87
+ --mk-foreground: #f8fafc;
88
+
89
+ --mk-muted: #1e293b;
90
+ --mk-muted-foreground: #94a3b8;
91
+
92
+ --mk-accent: #1e293b;
93
+ --mk-accent-foreground: #f8fafc;
94
+
95
+ --mk-border: #334155;
96
+ --mk-input: #334155;
97
+
98
+ --mk-primary: #60a5fa;
99
+ --mk-primary-foreground: #0f172a;
100
+
101
+ --mk-success-foreground: #0f172a;
102
+ --mk-error-foreground: #ffffff;
103
+ --mk-warning-foreground: #0f172a;
104
+ --mk-info-foreground: #0f172a;
105
+
106
+ /* Card / Surface */
107
+ --mk-card: #1e293b;
108
+ --mk-card-foreground: #f8fafc;
109
+
110
+ /* Popover / Dropdown */
111
+ --mk-popover: #1e293b;
112
+ --mk-popover-foreground: #f8fafc;
113
+ }
114
+
115
+ /* Global Styles */
116
+ * {
117
+ border-color: var(--mk-border);
118
+ }
119
+
120
+ body {
121
+ background-color: var(--mk-background);
122
+ color: var(--mk-foreground);
123
+ font-family: var(--mk-font-sans);
124
+ }
@@ -0,0 +1,2 @@
1
+ import '@testing-library/jest-dom';
2
+ //# sourceMappingURL=test-setup.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"test-setup.d.ts","sourceRoot":"","sources":["../src/test-setup.ts"],"names":[],"mappings":"AAAA,OAAO,2BAA2B,CAAC"}
@@ -0,0 +1,2 @@
1
+ import '@testing-library/jest-dom';
2
+ //# sourceMappingURL=test-setup.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"test-setup.js","sourceRoot":"","sources":["../src/test-setup.ts"],"names":[],"mappings":"AAAA,OAAO,2BAA2B,CAAC"}