@makroz/web 1.2.6 → 1.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (182) hide show
  1. package/dist/auth/CookieStorageAdapter.test.d.ts +11 -0
  2. package/dist/auth/CookieStorageAdapter.test.d.ts.map +1 -0
  3. package/dist/auth/CookieStorageAdapter.test.js +80 -0
  4. package/dist/auth/CookieStorageAdapter.test.js.map +1 -0
  5. package/dist/auth/LocalStorageAdapter.test.d.ts +12 -0
  6. package/dist/auth/LocalStorageAdapter.test.d.ts.map +1 -0
  7. package/dist/auth/LocalStorageAdapter.test.js +71 -0
  8. package/dist/auth/LocalStorageAdapter.test.js.map +1 -0
  9. package/dist/auth/authExports.test.d.ts +2 -0
  10. package/dist/auth/authExports.test.d.ts.map +1 -0
  11. package/dist/auth/authExports.test.js +15 -0
  12. package/dist/auth/authExports.test.js.map +1 -0
  13. package/dist/components/MkAccordion.stories.test.d.ts +2 -0
  14. package/dist/components/MkAccordion.stories.test.d.ts.map +1 -0
  15. package/dist/components/MkAccordion.stories.test.js +18 -0
  16. package/dist/components/MkAccordion.stories.test.js.map +1 -0
  17. package/dist/components/MkAlert.stories.test.d.ts +2 -0
  18. package/dist/components/MkAlert.stories.test.d.ts.map +1 -0
  19. package/dist/components/MkAlert.stories.test.js +16 -0
  20. package/dist/components/MkAlert.stories.test.js.map +1 -0
  21. package/dist/components/MkAvatar.stories.test.d.ts +2 -0
  22. package/dist/components/MkAvatar.stories.test.d.ts.map +1 -0
  23. package/dist/components/MkAvatar.stories.test.js +16 -0
  24. package/dist/components/MkAvatar.stories.test.js.map +1 -0
  25. package/dist/components/MkBadge.stories.test.d.ts +2 -0
  26. package/dist/components/MkBadge.stories.test.d.ts.map +1 -0
  27. package/dist/components/MkBadge.stories.test.js +16 -0
  28. package/dist/components/MkBadge.stories.test.js.map +1 -0
  29. package/dist/components/MkButton.test.d.ts +2 -0
  30. package/dist/components/MkButton.test.d.ts.map +1 -0
  31. package/dist/components/MkButton.test.js +56 -0
  32. package/dist/components/MkButton.test.js.map +1 -0
  33. package/dist/components/MkCheck.stories.test.d.ts +2 -0
  34. package/dist/components/MkCheck.stories.test.d.ts.map +1 -0
  35. package/dist/components/MkCheck.stories.test.js +16 -0
  36. package/dist/components/MkCheck.stories.test.js.map +1 -0
  37. package/dist/components/MkDatePicker.stories.test.d.ts +2 -0
  38. package/dist/components/MkDatePicker.stories.test.d.ts.map +1 -0
  39. package/dist/components/MkDatePicker.stories.test.js +16 -0
  40. package/dist/components/MkDatePicker.stories.test.js.map +1 -0
  41. package/dist/components/MkDivider.stories.test.d.ts +2 -0
  42. package/dist/components/MkDivider.stories.test.d.ts.map +1 -0
  43. package/dist/components/MkDivider.stories.test.js +15 -0
  44. package/dist/components/MkDivider.stories.test.js.map +1 -0
  45. package/dist/components/MkDropDown.stories.test.d.ts +2 -0
  46. package/dist/components/MkDropDown.stories.test.d.ts.map +1 -0
  47. package/dist/components/MkDropDown.stories.test.js +18 -0
  48. package/dist/components/MkDropDown.stories.test.js.map +1 -0
  49. package/dist/components/MkEmptyState.stories.test.d.ts +2 -0
  50. package/dist/components/MkEmptyState.stories.test.d.ts.map +1 -0
  51. package/dist/components/MkEmptyState.stories.test.js +15 -0
  52. package/dist/components/MkEmptyState.stories.test.js.map +1 -0
  53. package/dist/components/MkFileUpload-leak.test.d.ts +16 -0
  54. package/dist/components/MkFileUpload-leak.test.d.ts.map +1 -0
  55. package/dist/components/MkFileUpload-leak.test.js +157 -0
  56. package/dist/components/MkFileUpload-leak.test.js.map +1 -0
  57. package/dist/components/MkFileUpload.stories.test.d.ts +2 -0
  58. package/dist/components/MkFileUpload.stories.test.d.ts.map +1 -0
  59. package/dist/components/MkFileUpload.stories.test.js +15 -0
  60. package/dist/components/MkFileUpload.stories.test.js.map +1 -0
  61. package/dist/components/MkInfiniteList.stories.test.d.ts +2 -0
  62. package/dist/components/MkInfiniteList.stories.test.d.ts.map +1 -0
  63. package/dist/components/MkInfiniteList.stories.test.js +24 -0
  64. package/dist/components/MkInfiniteList.stories.test.js.map +1 -0
  65. package/dist/components/MkInput.stories.test.d.ts +2 -0
  66. package/dist/components/MkInput.stories.test.d.ts.map +1 -0
  67. package/dist/components/MkInput.stories.test.js +16 -0
  68. package/dist/components/MkInput.stories.test.js.map +1 -0
  69. package/dist/components/MkLoading.stories.test.d.ts +2 -0
  70. package/dist/components/MkLoading.stories.test.d.ts.map +1 -0
  71. package/dist/components/MkLoading.stories.test.js +15 -0
  72. package/dist/components/MkLoading.stories.test.js.map +1 -0
  73. package/dist/components/MkProgressBar.stories.test.d.ts +2 -0
  74. package/dist/components/MkProgressBar.stories.test.d.ts.map +1 -0
  75. package/dist/components/MkProgressBar.stories.test.js +15 -0
  76. package/dist/components/MkProgressBar.stories.test.js.map +1 -0
  77. package/dist/components/MkRadio.stories.test.d.ts +2 -0
  78. package/dist/components/MkRadio.stories.test.d.ts.map +1 -0
  79. package/dist/components/MkRadio.stories.test.js +18 -0
  80. package/dist/components/MkRadio.stories.test.js.map +1 -0
  81. package/dist/components/MkSearchInput.stories.test.d.ts +2 -0
  82. package/dist/components/MkSearchInput.stories.test.d.ts.map +1 -0
  83. package/dist/components/MkSearchInput.stories.test.js +15 -0
  84. package/dist/components/MkSearchInput.stories.test.js.map +1 -0
  85. package/dist/components/MkSelect.stories.test.d.ts +2 -0
  86. package/dist/components/MkSelect.stories.test.d.ts.map +1 -0
  87. package/dist/components/MkSelect.stories.test.js +21 -0
  88. package/dist/components/MkSelect.stories.test.js.map +1 -0
  89. package/dist/components/MkSkeleton.stories.test.d.ts +2 -0
  90. package/dist/components/MkSkeleton.stories.test.d.ts.map +1 -0
  91. package/dist/components/MkSkeleton.stories.test.js +15 -0
  92. package/dist/components/MkSkeleton.stories.test.js.map +1 -0
  93. package/dist/components/MkSwitch.stories.test.d.ts +2 -0
  94. package/dist/components/MkSwitch.stories.test.d.ts.map +1 -0
  95. package/dist/components/MkSwitch.stories.test.js +15 -0
  96. package/dist/components/MkSwitch.stories.test.js.map +1 -0
  97. package/dist/components/MkTable-keyExtractor.test.d.ts +15 -0
  98. package/dist/components/MkTable-keyExtractor.test.d.ts.map +1 -0
  99. package/dist/components/MkTable-keyExtractor.test.js +65 -0
  100. package/dist/components/MkTable-keyExtractor.test.js.map +1 -0
  101. package/dist/components/MkTable.stories.test.d.ts +2 -0
  102. package/dist/components/MkTable.stories.test.d.ts.map +1 -0
  103. package/dist/components/MkTable.stories.test.js +25 -0
  104. package/dist/components/MkTable.stories.test.js.map +1 -0
  105. package/dist/components/MkTextArea.stories.test.d.ts +2 -0
  106. package/dist/components/MkTextArea.stories.test.d.ts.map +1 -0
  107. package/dist/components/MkTextArea.stories.test.js +15 -0
  108. package/dist/components/MkTextArea.stories.test.js.map +1 -0
  109. package/dist/components/MkToastContainer.stories.test.d.ts +2 -0
  110. package/dist/components/MkToastContainer.stories.test.d.ts.map +1 -0
  111. package/dist/components/MkToastContainer.stories.test.js +29 -0
  112. package/dist/components/MkToastContainer.stories.test.js.map +1 -0
  113. package/dist/components/MkTooltip.stories.test.d.ts +2 -0
  114. package/dist/components/MkTooltip.stories.test.d.ts.map +1 -0
  115. package/dist/components/MkTooltip.stories.test.js +15 -0
  116. package/dist/components/MkTooltip.stories.test.js.map +1 -0
  117. package/dist/components/MkWindowList.stories.test.d.ts +2 -0
  118. package/dist/components/MkWindowList.stories.test.d.ts.map +1 -0
  119. package/dist/components/MkWindowList.stories.test.js +19 -0
  120. package/dist/components/MkWindowList.stories.test.js.map +1 -0
  121. package/dist/hooks/useApi.test.d.ts +2 -0
  122. package/dist/hooks/useApi.test.d.ts.map +1 -0
  123. package/dist/hooks/useApi.test.js +238 -0
  124. package/dist/hooks/useApi.test.js.map +1 -0
  125. package/dist/hooks/useMkCrud.test.d.ts +2 -0
  126. package/dist/hooks/useMkCrud.test.d.ts.map +1 -0
  127. package/dist/hooks/useMkCrud.test.js +87 -0
  128. package/dist/hooks/useMkCrud.test.js.map +1 -0
  129. package/dist/hooks/useMkForm.test.d.ts +2 -0
  130. package/dist/hooks/useMkForm.test.d.ts.map +1 -0
  131. package/dist/hooks/useMkForm.test.js +116 -0
  132. package/dist/hooks/useMkForm.test.js.map +1 -0
  133. package/dist/hooks/useMkInfiniteList.d.ts.map +1 -1
  134. package/dist/hooks/useMkInfiniteList.js +6 -2
  135. package/dist/hooks/useMkInfiniteList.js.map +1 -1
  136. package/dist/hooks/useMkInfiniteList.test.d.ts +2 -0
  137. package/dist/hooks/useMkInfiniteList.test.d.ts.map +1 -0
  138. package/dist/hooks/useMkInfiniteList.test.js +84 -0
  139. package/dist/hooks/useMkInfiniteList.test.js.map +1 -0
  140. package/dist/hooks/useMkList.d.ts +15 -4
  141. package/dist/hooks/useMkList.d.ts.map +1 -1
  142. package/dist/hooks/useMkList.js +16 -12
  143. package/dist/hooks/useMkList.js.map +1 -1
  144. package/dist/hooks/useMkList.test.d.ts +2 -0
  145. package/dist/hooks/useMkList.test.d.ts.map +1 -0
  146. package/dist/hooks/useMkList.test.js +265 -0
  147. package/dist/hooks/useMkList.test.js.map +1 -0
  148. package/dist/theme/MkThemeProvider.test.d.ts +2 -0
  149. package/dist/theme/MkThemeProvider.test.d.ts.map +1 -0
  150. package/dist/theme/MkThemeProvider.test.js +32 -0
  151. package/dist/theme/MkThemeProvider.test.js.map +1 -0
  152. package/package.json +19 -19
  153. package/LICENSE +0 -33
  154. package/dist/components/MkAccordion.module.css +0 -79
  155. package/dist/components/MkAlert.module.css +0 -103
  156. package/dist/components/MkAvatar.module.css +0 -62
  157. package/dist/components/MkBadge.module.css +0 -74
  158. package/dist/components/MkButton.module.css +0 -85
  159. package/dist/components/MkCard.module.css +0 -63
  160. package/dist/components/MkCheck.module.css +0 -87
  161. package/dist/components/MkDatePicker.module.css +0 -77
  162. package/dist/components/MkDivider.module.css +0 -39
  163. package/dist/components/MkDropDown.module.css +0 -108
  164. package/dist/components/MkEmptyState.module.css +0 -35
  165. package/dist/components/MkFileUpload.module.css +0 -74
  166. package/dist/components/MkInfiniteList.module.css +0 -69
  167. package/dist/components/MkInput.module.css +0 -94
  168. package/dist/components/MkLoading.module.css +0 -39
  169. package/dist/components/MkModal.module.css +0 -107
  170. package/dist/components/MkProgressBar.module.css +0 -48
  171. package/dist/components/MkRadio.module.css +0 -74
  172. package/dist/components/MkSearchInput.module.css +0 -80
  173. package/dist/components/MkSelect.module.css +0 -177
  174. package/dist/components/MkSkeleton.module.css +0 -28
  175. package/dist/components/MkSwitch.module.css +0 -108
  176. package/dist/components/MkTable.module.css +0 -163
  177. package/dist/components/MkTabs.module.css +0 -117
  178. package/dist/components/MkThemeEditor.module.css +0 -177
  179. package/dist/components/MkToastContainer.module.css +0 -95
  180. package/dist/components/MkTooltip.module.css +0 -43
  181. package/dist/components/MkWindowList.module.css +0 -59
  182. package/dist/styles/index.css +0 -124
@@ -0,0 +1,11 @@
1
+ /**
2
+ * Tests for CookieStorageAdapter.
3
+ *
4
+ * jsdom provides `document.cookie`, but it does not implement
5
+ * `Max-Age` or `Secure` exactly like a real browser — the cookie
6
+ * round-trip works because we set and read in the same context.
7
+ * Path=/SameSite=Lax are advisory on jsdom and don't affect the
8
+ * read-back.
9
+ */
10
+ export {};
11
+ //# sourceMappingURL=CookieStorageAdapter.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CookieStorageAdapter.test.d.ts","sourceRoot":"","sources":["../../src/auth/CookieStorageAdapter.test.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG"}
@@ -0,0 +1,80 @@
1
+ /**
2
+ * Tests for CookieStorageAdapter.
3
+ *
4
+ * jsdom provides `document.cookie`, but it does not implement
5
+ * `Max-Age` or `Secure` exactly like a real browser — the cookie
6
+ * round-trip works because we set and read in the same context.
7
+ * Path=/SameSite=Lax are advisory on jsdom and don't affect the
8
+ * read-back.
9
+ */
10
+ import { describe, it, expect, beforeEach, vi } from 'vitest';
11
+ import { CookieStorageAdapter } from './AuthStorageAdapter';
12
+ function clearCookies() {
13
+ // Wipe every cookie jsdom knows about so each test is independent.
14
+ const cookies = document.cookie.split('; ');
15
+ for (const c of cookies) {
16
+ const eq = c.indexOf('=');
17
+ const name = eq === -1 ? c : c.slice(0, eq);
18
+ document.cookie = `${name}=; Max-Age=0; Path=/`;
19
+ }
20
+ }
21
+ describe('CookieStorageAdapter', () => {
22
+ beforeEach(() => {
23
+ clearCookies();
24
+ });
25
+ it('roundtrips a string value through document.cookie', () => {
26
+ const adapter = new CookieStorageAdapter();
27
+ adapter.setItem('mk_auth_admin_access_token', 'abc123');
28
+ expect(adapter.getItem('mk_auth_admin_access_token')).toBe('abc123');
29
+ });
30
+ it('roundtrips URL-encoded values (handles "=", spaces, unicode)', () => {
31
+ const adapter = new CookieStorageAdapter();
32
+ const tricky = 'token=abc; spaced value / 中文';
33
+ adapter.setItem('k', tricky);
34
+ expect(adapter.getItem('k')).toBe(tricky);
35
+ });
36
+ it('returns null for missing keys', () => {
37
+ const adapter = new CookieStorageAdapter();
38
+ expect(adapter.getItem('does-not-exist')).toBeNull();
39
+ });
40
+ it('removes a key with removeItem', () => {
41
+ const adapter = new CookieStorageAdapter();
42
+ adapter.setItem('k', 'v');
43
+ expect(adapter.getItem('k')).toBe('v');
44
+ adapter.removeItem('k');
45
+ expect(adapter.getItem('k')).toBeNull();
46
+ });
47
+ it('emits the Secure flag when constructed with secure:true', () => {
48
+ var _a;
49
+ const adapter = new CookieStorageAdapter({ secure: true });
50
+ const setSpy = vi.spyOn(document, 'cookie', 'set');
51
+ adapter.setItem('k', 'v');
52
+ // jsdom normalizes attribute casing; check the substring appears.
53
+ expect((_a = setSpy.mock.calls[0]) === null || _a === void 0 ? void 0 : _a[0]).toContain('Secure');
54
+ setSpy.mockRestore();
55
+ });
56
+ it('is a no-op when document is undefined (SSR)', () => {
57
+ const original = globalThis.document;
58
+ delete globalThis.document;
59
+ try {
60
+ const adapter = new CookieStorageAdapter();
61
+ expect(() => adapter.setItem('k', 'v')).not.toThrow();
62
+ expect(adapter.getItem('k')).toBeNull();
63
+ expect(() => adapter.removeItem('k')).not.toThrow();
64
+ }
65
+ finally {
66
+ globalThis.document = original;
67
+ }
68
+ });
69
+ it('exposes a singleton-style default via getDefaultAuthStorage()', async () => {
70
+ const { getDefaultAuthStorage } = await import('./AuthStorageAdapter');
71
+ const a = getDefaultAuthStorage();
72
+ const b = getDefaultAuthStorage();
73
+ expect(a).toBeInstanceOf(CookieStorageAdapter);
74
+ expect(b).toBeInstanceOf(CookieStorageAdapter);
75
+ // Each call returns a fresh instance — multiple providers in the
76
+ // same tree (different scopes) must not share adapter state.
77
+ expect(a).not.toBe(b);
78
+ });
79
+ });
80
+ //# sourceMappingURL=CookieStorageAdapter.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CookieStorageAdapter.test.js","sourceRoot":"","sources":["../../src/auth/CookieStorageAdapter.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,12 @@
1
+ /**
2
+ * Tests for the deprecated LocalStorageAdapter.
3
+ *
4
+ * Behavior must match the previous default (read/write/remove via
5
+ * `window.localStorage`) plus a one-shot `console.warn` on the first
6
+ * `setItem`. The warn flag is module-level (so a single session
7
+ * surfaces one warning even if multiple adapters are constructed);
8
+ * tests reload the module via `vi.resetModules()` to reset that flag
9
+ * per-test without changing production behavior.
10
+ */
11
+ export {};
12
+ //# sourceMappingURL=LocalStorageAdapter.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"LocalStorageAdapter.test.d.ts","sourceRoot":"","sources":["../../src/auth/LocalStorageAdapter.test.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG"}
@@ -0,0 +1,71 @@
1
+ /**
2
+ * Tests for the deprecated LocalStorageAdapter.
3
+ *
4
+ * Behavior must match the previous default (read/write/remove via
5
+ * `window.localStorage`) plus a one-shot `console.warn` on the first
6
+ * `setItem`. The warn flag is module-level (so a single session
7
+ * surfaces one warning even if multiple adapters are constructed);
8
+ * tests reload the module via `vi.resetModules()` to reset that flag
9
+ * per-test without changing production behavior.
10
+ */
11
+ import { describe, it, expect, beforeEach, vi, afterEach } from 'vitest';
12
+ describe('LocalStorageAdapter (deprecated)', () => {
13
+ beforeEach(() => {
14
+ window.localStorage.clear();
15
+ vi.restoreAllMocks();
16
+ vi.resetModules();
17
+ });
18
+ afterEach(() => {
19
+ window.localStorage.clear();
20
+ });
21
+ it('roundtrips a value through window.localStorage', async () => {
22
+ const { LocalStorageAdapter } = await import('./AuthStorageAdapter');
23
+ const adapter = new LocalStorageAdapter();
24
+ adapter.setItem('k', 'v');
25
+ expect(adapter.getItem('k')).toBe('v');
26
+ adapter.removeItem('k');
27
+ expect(adapter.getItem('k')).toBeNull();
28
+ });
29
+ it('emits a one-shot console.warn on first setItem', async () => {
30
+ var _a, _b;
31
+ const warn = vi.spyOn(console, 'warn').mockImplementation(() => { });
32
+ const { LocalStorageAdapter } = await import('./AuthStorageAdapter');
33
+ const adapter = new LocalStorageAdapter();
34
+ adapter.setItem('first', 'a');
35
+ adapter.setItem('second', 'b');
36
+ adapter.setItem('third', 'c');
37
+ expect(warn).toHaveBeenCalledTimes(1);
38
+ const message = String((_b = (_a = warn.mock.calls[0]) === null || _a === void 0 ? void 0 : _a[0]) !== null && _b !== void 0 ? _b : '');
39
+ expect(message).toContain('LocalStorageAdapter');
40
+ expect(message).toContain('deprecated');
41
+ expect(message).toContain('XSS');
42
+ });
43
+ it('does NOT warn on getItem or removeItem', async () => {
44
+ const warn = vi.spyOn(console, 'warn').mockImplementation(() => { });
45
+ const { LocalStorageAdapter } = await import('./AuthStorageAdapter');
46
+ const adapter = new LocalStorageAdapter();
47
+ adapter.getItem('k');
48
+ adapter.removeItem('k');
49
+ expect(warn).not.toHaveBeenCalled();
50
+ });
51
+ it('returns null for missing keys', async () => {
52
+ const { LocalStorageAdapter } = await import('./AuthStorageAdapter');
53
+ const adapter = new LocalStorageAdapter();
54
+ expect(adapter.getItem('absent')).toBeNull();
55
+ });
56
+ it('is SSR-safe (no-op when window is undefined)', async () => {
57
+ const { LocalStorageAdapter } = await import('./AuthStorageAdapter');
58
+ const originalWindow = globalThis.window;
59
+ delete globalThis.window;
60
+ try {
61
+ const adapter = new LocalStorageAdapter();
62
+ expect(() => adapter.setItem('k', 'v')).not.toThrow();
63
+ expect(() => adapter.removeItem('k')).not.toThrow();
64
+ expect(adapter.getItem('k')).toBeNull();
65
+ }
66
+ finally {
67
+ globalThis.window = originalWindow;
68
+ }
69
+ });
70
+ });
71
+ //# sourceMappingURL=LocalStorageAdapter.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"LocalStorageAdapter.test.js","sourceRoot":"","sources":["../../src/auth/LocalStorageAdapter.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=authExports.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"authExports.test.d.ts","sourceRoot":"","sources":["../../src/auth/authExports.test.ts"],"names":[],"mappings":""}
@@ -0,0 +1,15 @@
1
+ import { describe, it, expect } from 'vitest';
2
+ import { renderHook } from '@testing-library/react';
3
+ import { useMkAuth, MkAuthProvider } from '../index';
4
+ describe('Public API Auth Exports (mk-web)', () => {
5
+ it('should export the new useMkAuth hook instead of the legacy one', () => {
6
+ expect(useMkAuth).toBeDefined();
7
+ // El hook nuevo lanza "MkAuthProvider missing" si se invoca fuera de un proveedor.
8
+ // El hook viejo lanzaba "useMkAuth debe usarse dentro de MkAuthProvider".
9
+ expect(() => renderHook(() => useMkAuth())).toThrowError(/MkAuthProvider missing/);
10
+ });
11
+ it('should export the new MkAuthProvider', () => {
12
+ expect(MkAuthProvider).toBeDefined();
13
+ });
14
+ });
15
+ //# sourceMappingURL=authExports.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"authExports.test.js","sourceRoot":"","sources":["../../src/auth/authExports.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,MAAM,QAAQ,CAAC;AAC9C,OAAO,EAAE,UAAU,EAAE,MAAM,wBAAwB,CAAC;AACpD,OAAO,EAAE,SAAS,EAAE,cAAc,EAAE,MAAM,UAAU,CAAC;AAErD,QAAQ,CAAC,kCAAkC,EAAE,GAAG,EAAE;IAC9C,EAAE,CAAC,gEAAgE,EAAE,GAAG,EAAE;QACtE,MAAM,CAAC,SAAS,CAAC,CAAC,WAAW,EAAE,CAAC;QAChC,mFAAmF;QACnF,0EAA0E;QAC1E,MAAM,CAAC,GAAG,EAAE,CAAC,UAAU,CAAC,GAAG,EAAE,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,YAAY,CAAC,wBAAwB,CAAC,CAAC;IACvF,CAAC,CAAC,CAAC;IAEH,EAAE,CAAC,sCAAsC,EAAE,GAAG,EAAE;QAC5C,MAAM,CAAC,cAAc,CAAC,CAAC,WAAW,EAAE,CAAC;IACzC,CAAC,CAAC,CAAC;AACP,CAAC,CAAC,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=MkAccordion.stories.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MkAccordion.stories.test.d.ts","sourceRoot":"","sources":["../../src/components/MkAccordion.stories.test.tsx"],"names":[],"mappings":""}
@@ -0,0 +1,18 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ /**
3
+ * Smoke snapshot for MkAccordion — required by R-MK-002.
4
+ */
5
+ import { describe, it, expect, afterEach } from 'vitest';
6
+ import { render, cleanup } from '@testing-library/react';
7
+ import { MkAccordion } from './MkAccordion';
8
+ describe('MkAccordion story smoke', () => {
9
+ afterEach(cleanup);
10
+ it('renders with items', () => {
11
+ const { container } = render(_jsx(MkAccordion, { items: [
12
+ { key: 'a', title: 'First', content: _jsx("p", { children: "First content" }) },
13
+ { key: 'b', title: 'Second', content: _jsx("p", { children: "Second content" }) },
14
+ ] }));
15
+ expect(container.firstChild).toMatchSnapshot();
16
+ });
17
+ });
18
+ //# sourceMappingURL=MkAccordion.stories.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MkAccordion.stories.test.js","sourceRoot":"","sources":["../../src/components/MkAccordion.stories.test.tsx"],"names":[],"mappings":";AAAA;;GAEG;AACH,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAC;AACzD,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAE5C,QAAQ,CAAC,yBAAyB,EAAE,GAAG,EAAE;IACrC,SAAS,CAAC,OAAO,CAAC,CAAC;IAEnB,EAAE,CAAC,oBAAoB,EAAE,GAAG,EAAE;QAC1B,MAAM,EAAE,SAAS,EAAE,GAAG,MAAM,CACxB,KAAC,WAAW,IACR,KAAK,EAAE;gBACH,EAAE,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE,OAAO,EAAE,OAAO,EAAE,wCAAoB,EAAE;gBAC3D,EAAE,GAAG,EAAE,GAAG,EAAE,KAAK,EAAE,QAAQ,EAAE,OAAO,EAAE,yCAAqB,EAAE;aAChE,GACH,CACL,CAAC;QACF,MAAM,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC,eAAe,EAAE,CAAC;IACnD,CAAC,CAAC,CAAC;AACP,CAAC,CAAC,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=MkAlert.stories.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MkAlert.stories.test.d.ts","sourceRoot":"","sources":["../../src/components/MkAlert.stories.test.tsx"],"names":[],"mappings":""}
@@ -0,0 +1,16 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ /**
3
+ * Smoke snapshot for MkAlert — generates `__snapshots__/MkAlert.stories.snap`.
4
+ * Required by R-MK-002 stories coverage rule (mk:lint:stories).
5
+ */
6
+ import { describe, it, expect, afterEach } from 'vitest';
7
+ import { render, cleanup } from '@testing-library/react';
8
+ import { MkAlert } from './MkAlert';
9
+ describe('MkAlert story smoke', () => {
10
+ afterEach(cleanup);
11
+ it('renders warning variant', () => {
12
+ const { container } = render(_jsx(MkAlert, { variant: "warning", title: "Atenci\u00F3n", children: "Esta acci\u00F3n no se puede deshacer." }));
13
+ expect(container.firstChild).toMatchSnapshot();
14
+ });
15
+ });
16
+ //# sourceMappingURL=MkAlert.stories.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MkAlert.stories.test.js","sourceRoot":"","sources":["../../src/components/MkAlert.stories.test.tsx"],"names":[],"mappings":";AAAA;;;GAGG;AACH,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAC;AACzD,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEpC,QAAQ,CAAC,qBAAqB,EAAE,GAAG,EAAE;IACjC,SAAS,CAAC,OAAO,CAAC,CAAC;IAEnB,EAAE,CAAC,yBAAyB,EAAE,GAAG,EAAE;QAC/B,MAAM,EAAE,SAAS,EAAE,GAAG,MAAM,CACxB,KAAC,OAAO,IAAC,OAAO,EAAC,SAAS,EAAC,KAAK,EAAC,eAAU,uDAEjC,CACb,CAAC;QACF,MAAM,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC,eAAe,EAAE,CAAC;IACnD,CAAC,CAAC,CAAC;AACP,CAAC,CAAC,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=MkAvatar.stories.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MkAvatar.stories.test.d.ts","sourceRoot":"","sources":["../../src/components/MkAvatar.stories.test.tsx"],"names":[],"mappings":""}
@@ -0,0 +1,16 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ /**
3
+ * Smoke snapshot for MkAvatar — generates `__snapshots__/MkAvatar.stories.snap`.
4
+ * Required by R-MK-002 stories coverage rule (mk:lint:stories).
5
+ */
6
+ import { describe, it, expect, afterEach } from 'vitest';
7
+ import { render, cleanup } from '@testing-library/react';
8
+ import { MkAvatar } from './MkAvatar';
9
+ describe('MkAvatar story smoke', () => {
10
+ afterEach(cleanup);
11
+ it('renders with initials', () => {
12
+ const { container } = render(_jsx(MkAvatar, { name: "Mario Guzman" }));
13
+ expect(container.firstChild).toMatchSnapshot();
14
+ });
15
+ });
16
+ //# sourceMappingURL=MkAvatar.stories.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MkAvatar.stories.test.js","sourceRoot":"","sources":["../../src/components/MkAvatar.stories.test.tsx"],"names":[],"mappings":";AAAA;;;GAGG;AACH,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAC;AACzD,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAEtC,QAAQ,CAAC,sBAAsB,EAAE,GAAG,EAAE;IAClC,SAAS,CAAC,OAAO,CAAC,CAAC;IAEnB,EAAE,CAAC,uBAAuB,EAAE,GAAG,EAAE;QAC7B,MAAM,EAAE,SAAS,EAAE,GAAG,MAAM,CAAC,KAAC,QAAQ,IAAC,IAAI,EAAC,cAAc,GAAG,CAAC,CAAC;QAC/D,MAAM,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC,eAAe,EAAE,CAAC;IACnD,CAAC,CAAC,CAAC;AACP,CAAC,CAAC,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=MkBadge.stories.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MkBadge.stories.test.d.ts","sourceRoot":"","sources":["../../src/components/MkBadge.stories.test.tsx"],"names":[],"mappings":""}
@@ -0,0 +1,16 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ /**
3
+ * Smoke snapshot for MkBadge — generates `__snapshots__/MkBadge.stories.snap`.
4
+ * Required by R-MK-002 stories coverage rule (mk:lint:stories).
5
+ */
6
+ import { describe, it, expect, afterEach } from 'vitest';
7
+ import { render, cleanup } from '@testing-library/react';
8
+ import { MkBadge } from './MkBadge';
9
+ describe('MkBadge story smoke', () => {
10
+ afterEach(cleanup);
11
+ it('renders with dot', () => {
12
+ const { container } = render(_jsx(MkBadge, { variant: "success", dot: true, children: "Live" }));
13
+ expect(container.firstChild).toMatchSnapshot();
14
+ });
15
+ });
16
+ //# sourceMappingURL=MkBadge.stories.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MkBadge.stories.test.js","sourceRoot":"","sources":["../../src/components/MkBadge.stories.test.tsx"],"names":[],"mappings":";AAAA;;;GAGG;AACH,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAC;AACzD,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEpC,QAAQ,CAAC,qBAAqB,EAAE,GAAG,EAAE;IACjC,SAAS,CAAC,OAAO,CAAC,CAAC;IAEnB,EAAE,CAAC,kBAAkB,EAAE,GAAG,EAAE;QACxB,MAAM,EAAE,SAAS,EAAE,GAAG,MAAM,CAAC,KAAC,OAAO,IAAC,OAAO,EAAC,SAAS,EAAC,GAAG,2BAAe,CAAC,CAAC;QAC5E,MAAM,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC,eAAe,EAAE,CAAC;IACnD,CAAC,CAAC,CAAC;AACP,CAAC,CAAC,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=MkButton.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MkButton.test.d.ts","sourceRoot":"","sources":["../../src/components/MkButton.test.tsx"],"names":[],"mappings":""}
@@ -0,0 +1,56 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ import { describe, it, expect, vi } from 'vitest';
3
+ import { render, screen, fireEvent } from '@testing-library/react';
4
+ import { MkButton } from '../components/MkButton';
5
+ describe('MkButton', () => {
6
+ it('renders with correct text', () => {
7
+ render(_jsx(MkButton, { children: "Click me" }));
8
+ const button = screen.getByRole('button');
9
+ expect(button.textContent).toBe('Click me');
10
+ });
11
+ it('calls onClick when clicked', () => {
12
+ const handleClick = vi.fn();
13
+ render(_jsx(MkButton, { onClick: handleClick, children: "Click me" }));
14
+ fireEvent.click(screen.getByRole('button'));
15
+ expect(handleClick).toHaveBeenCalledTimes(1);
16
+ });
17
+ it('does not call onClick when disabled', () => {
18
+ const handleClick = vi.fn();
19
+ render(_jsx(MkButton, { disabled: true, onClick: handleClick, children: "Click me" }));
20
+ fireEvent.click(screen.getByRole('button'));
21
+ expect(handleClick).not.toHaveBeenCalled();
22
+ });
23
+ it('applies variant class correctly', () => {
24
+ const { container } = render(_jsx(MkButton, { variant: "outline", children: "Outline" }));
25
+ const button = container.querySelector('button');
26
+ expect(button === null || button === void 0 ? void 0 : button.className).toMatch(/outline/);
27
+ });
28
+ it('shows loading spinner and disables button', () => {
29
+ render(_jsx(MkButton, { loading: true, children: "Click me" }));
30
+ const button = screen.getByRole('button');
31
+ expect(button === null || button === void 0 ? void 0 : button.disabled).toBe(true);
32
+ // When loading, children are replaced with spinner
33
+ expect(button === null || button === void 0 ? void 0 : button.querySelector('span')).not.toBeNull();
34
+ });
35
+ it('does not render children when loading', () => {
36
+ render(_jsx(MkButton, { loading: true, children: "Submit Form" }));
37
+ // When loading, the spinner replaces the children
38
+ expect(screen.queryByText('Submit Form')).toBeNull();
39
+ });
40
+ it('applies custom className', () => {
41
+ const { container } = render(_jsx(MkButton, { className: "custom-class", children: "Test" }));
42
+ const button = container.querySelector('button');
43
+ expect(button === null || button === void 0 ? void 0 : button.className).toContain('custom-class');
44
+ });
45
+ it('supports error variant', () => {
46
+ const { container } = render(_jsx(MkButton, { variant: "error", children: "Delete" }));
47
+ const button = container.querySelector('button');
48
+ expect(button === null || button === void 0 ? void 0 : button.className).toMatch(/error/);
49
+ });
50
+ it('supports ghost variant', () => {
51
+ const { container } = render(_jsx(MkButton, { variant: "ghost", children: "Ghost" }));
52
+ const button = container.querySelector('button');
53
+ expect(button === null || button === void 0 ? void 0 : button.className).toMatch(/ghost/);
54
+ });
55
+ });
56
+ //# sourceMappingURL=MkButton.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MkButton.test.js","sourceRoot":"","sources":["../../src/components/MkButton.test.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=MkCheck.stories.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MkCheck.stories.test.d.ts","sourceRoot":"","sources":["../../src/components/MkCheck.stories.test.tsx"],"names":[],"mappings":""}
@@ -0,0 +1,16 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ /**
3
+ * Smoke snapshot for MkCheck — generates `__snapshots__/MkCheck.stories.snap`.
4
+ * Required by R-MK-002 stories coverage rule (mk:lint:stories).
5
+ */
6
+ import { describe, it, expect, afterEach } from 'vitest';
7
+ import { render, cleanup } from '@testing-library/react';
8
+ import { MkCheck } from './MkCheck';
9
+ describe('MkCheck story smoke', () => {
10
+ afterEach(cleanup);
11
+ it('renders checked', () => {
12
+ const { container } = render(_jsx(MkCheck, { label: "I agree", checked: true }));
13
+ expect(container.firstChild).toMatchSnapshot();
14
+ });
15
+ });
16
+ //# sourceMappingURL=MkCheck.stories.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MkCheck.stories.test.js","sourceRoot":"","sources":["../../src/components/MkCheck.stories.test.tsx"],"names":[],"mappings":";AAAA;;;GAGG;AACH,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAC;AACzD,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEpC,QAAQ,CAAC,qBAAqB,EAAE,GAAG,EAAE;IACjC,SAAS,CAAC,OAAO,CAAC,CAAC;IAEnB,EAAE,CAAC,iBAAiB,EAAE,GAAG,EAAE;QACvB,MAAM,EAAE,SAAS,EAAE,GAAG,MAAM,CAAC,KAAC,OAAO,IAAC,KAAK,EAAC,SAAS,EAAC,OAAO,SAAG,CAAC,CAAC;QAClE,MAAM,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC,eAAe,EAAE,CAAC;IACnD,CAAC,CAAC,CAAC;AACP,CAAC,CAAC,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=MkDatePicker.stories.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MkDatePicker.stories.test.d.ts","sourceRoot":"","sources":["../../src/components/MkDatePicker.stories.test.tsx"],"names":[],"mappings":""}
@@ -0,0 +1,16 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ /**
3
+ * Smoke snapshot for MkDatePicker — generates `__snapshots__/MkDatePicker.stories.snap`.
4
+ * Required by R-MK-002 stories coverage rule (mk:lint:stories).
5
+ */
6
+ import { describe, it, expect, afterEach } from 'vitest';
7
+ import { render, cleanup } from '@testing-library/react';
8
+ import { MkDatePicker } from './MkDatePicker';
9
+ describe('MkDatePicker story smoke', () => {
10
+ afterEach(cleanup);
11
+ it('renders with value', () => {
12
+ const { container } = render(_jsx(MkDatePicker, { label: "Birthday", value: "1990-04-15" }));
13
+ expect(container.firstChild).toMatchSnapshot();
14
+ });
15
+ });
16
+ //# sourceMappingURL=MkDatePicker.stories.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MkDatePicker.stories.test.js","sourceRoot":"","sources":["../../src/components/MkDatePicker.stories.test.tsx"],"names":[],"mappings":";AAAA;;;GAGG;AACH,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAC;AACzD,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAE9C,QAAQ,CAAC,0BAA0B,EAAE,GAAG,EAAE;IACtC,SAAS,CAAC,OAAO,CAAC,CAAC;IAEnB,EAAE,CAAC,oBAAoB,EAAE,GAAG,EAAE;QAC1B,MAAM,EAAE,SAAS,EAAE,GAAG,MAAM,CACxB,KAAC,YAAY,IAAC,KAAK,EAAC,UAAU,EAAC,KAAK,EAAC,YAAY,GAAG,CACvD,CAAC;QACF,MAAM,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC,eAAe,EAAE,CAAC;IACnD,CAAC,CAAC,CAAC;AACP,CAAC,CAAC,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=MkDivider.stories.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MkDivider.stories.test.d.ts","sourceRoot":"","sources":["../../src/components/MkDivider.stories.test.tsx"],"names":[],"mappings":""}
@@ -0,0 +1,15 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ /**
3
+ * Smoke snapshot for MkDivider — required by R-MK-002 (mk:lint:stories).
4
+ */
5
+ import { describe, it, expect, afterEach } from 'vitest';
6
+ import { render, cleanup } from '@testing-library/react';
7
+ import { MkDivider } from './MkDivider';
8
+ describe('MkDivider story smoke', () => {
9
+ afterEach(cleanup);
10
+ it('renders with label', () => {
11
+ const { container } = render(_jsx(MkDivider, { label: "or continue with" }));
12
+ expect(container.firstChild).toMatchSnapshot();
13
+ });
14
+ });
15
+ //# sourceMappingURL=MkDivider.stories.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MkDivider.stories.test.js","sourceRoot":"","sources":["../../src/components/MkDivider.stories.test.tsx"],"names":[],"mappings":";AAAA;;GAEG;AACH,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAC;AACzD,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAExC,QAAQ,CAAC,uBAAuB,EAAE,GAAG,EAAE;IACnC,SAAS,CAAC,OAAO,CAAC,CAAC;IAEnB,EAAE,CAAC,oBAAoB,EAAE,GAAG,EAAE;QAC1B,MAAM,EAAE,SAAS,EAAE,GAAG,MAAM,CAAC,KAAC,SAAS,IAAC,KAAK,EAAC,kBAAkB,GAAG,CAAC,CAAC;QACrE,MAAM,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC,eAAe,EAAE,CAAC;IACnD,CAAC,CAAC,CAAC;AACP,CAAC,CAAC,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=MkDropDown.stories.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MkDropDown.stories.test.d.ts","sourceRoot":"","sources":["../../src/components/MkDropDown.stories.test.tsx"],"names":[],"mappings":""}
@@ -0,0 +1,18 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ /**
3
+ * Smoke snapshot for MkDropDown — required by R-MK-002.
4
+ */
5
+ import { describe, it, expect, afterEach, vi } from 'vitest';
6
+ import { render, cleanup } from '@testing-library/react';
7
+ import { MkDropDown } from './MkDropDown';
8
+ describe('MkDropDown story smoke', () => {
9
+ afterEach(cleanup);
10
+ it('renders with options', () => {
11
+ const { container } = render(_jsx(MkDropDown, { options: [
12
+ { value: 'edit', label: 'Edit' },
13
+ { value: 'delete', label: 'Delete' },
14
+ ], onSelect: vi.fn() }));
15
+ expect(container.firstChild).toMatchSnapshot();
16
+ });
17
+ });
18
+ //# sourceMappingURL=MkDropDown.stories.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MkDropDown.stories.test.js","sourceRoot":"","sources":["../../src/components/MkDropDown.stories.test.tsx"],"names":[],"mappings":";AAAA;;GAEG;AACH,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,SAAS,EAAE,EAAE,EAAE,MAAM,QAAQ,CAAC;AAC7D,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAE1C,QAAQ,CAAC,wBAAwB,EAAE,GAAG,EAAE;IACpC,SAAS,CAAC,OAAO,CAAC,CAAC;IAEnB,EAAE,CAAC,sBAAsB,EAAE,GAAG,EAAE;QAC5B,MAAM,EAAE,SAAS,EAAE,GAAG,MAAM,CACxB,KAAC,UAAU,IACP,OAAO,EAAE;gBACL,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE;gBAChC,EAAE,KAAK,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,EAAE;aACvC,EACD,QAAQ,EAAE,EAAE,CAAC,EAAE,EAAE,GACnB,CACL,CAAC;QACF,MAAM,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC,eAAe,EAAE,CAAC;IACnD,CAAC,CAAC,CAAC;AACP,CAAC,CAAC,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=MkEmptyState.stories.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MkEmptyState.stories.test.d.ts","sourceRoot":"","sources":["../../src/components/MkEmptyState.stories.test.tsx"],"names":[],"mappings":""}
@@ -0,0 +1,15 @@
1
+ import { jsx as _jsx } from "react/jsx-runtime";
2
+ /**
3
+ * Smoke snapshot for MkEmptyState — required by R-MK-002.
4
+ */
5
+ import { describe, it, expect, afterEach } from 'vitest';
6
+ import { render, cleanup } from '@testing-library/react';
7
+ import { MkEmptyState } from './MkEmptyState';
8
+ describe('MkEmptyState story smoke', () => {
9
+ afterEach(cleanup);
10
+ it('renders with title and description', () => {
11
+ const { container } = render(_jsx(MkEmptyState, { title: "No hay datos", description: "Crea el primer registro para empezar.", action: _jsx("button", { children: "Crear" }) }));
12
+ expect(container.firstChild).toMatchSnapshot();
13
+ });
14
+ });
15
+ //# sourceMappingURL=MkEmptyState.stories.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MkEmptyState.stories.test.js","sourceRoot":"","sources":["../../src/components/MkEmptyState.stories.test.tsx"],"names":[],"mappings":";AAAA;;GAEG;AACH,OAAO,EAAE,QAAQ,EAAE,EAAE,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,QAAQ,CAAC;AACzD,OAAO,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,wBAAwB,CAAC;AACzD,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAE9C,QAAQ,CAAC,0BAA0B,EAAE,GAAG,EAAE;IACtC,SAAS,CAAC,OAAO,CAAC,CAAC;IAEnB,EAAE,CAAC,oCAAoC,EAAE,GAAG,EAAE;QAC1C,MAAM,EAAE,SAAS,EAAE,GAAG,MAAM,CACxB,KAAC,YAAY,IACT,KAAK,EAAC,cAAc,EACpB,WAAW,EAAC,uCAAuC,EACnD,MAAM,EAAE,qCAAsB,GAChC,CACL,CAAC;QACF,MAAM,CAAC,SAAS,CAAC,UAAU,CAAC,CAAC,eAAe,EAAE,CAAC;IACnD,CAAC,CAAC,CAAC;AACP,CAAC,CAAC,CAAC"}
@@ -0,0 +1,16 @@
1
+ /**
2
+ * Tests for MkFileUpload object-URL lifecycle.
3
+ *
4
+ * Regression coverage for the leak fixed in v1.3.0: every
5
+ * `URL.createObjectURL` call used to be dropped on the floor, so
6
+ * picking a new set of images (single-select mode) or unmounting
7
+ * with files selected kept the underlying blobs alive in the browser.
8
+ *
9
+ * jsdom 24 does NOT implement `URL.createObjectURL` /
10
+ * `URL.revokeObjectURL` (they are browser-only WHATWG URL extensions),
11
+ * so we stub them on the jsdom `URL` global per test. In a real
12
+ * browser the native implementations do the right thing — these
13
+ * tests just confirm we call them.
14
+ */
15
+ export {};
16
+ //# sourceMappingURL=MkFileUpload-leak.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"MkFileUpload-leak.test.d.ts","sourceRoot":"","sources":["../../src/components/MkFileUpload-leak.test.tsx"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG"}