@khipu/design-system 0.1.0-alpha.12

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.
package/dist/index.js ADDED
@@ -0,0 +1,2276 @@
1
+ "use strict";
2
+ var __create = Object.create;
3
+ var __defProp = Object.defineProperty;
4
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
5
+ var __getOwnPropNames = Object.getOwnPropertyNames;
6
+ var __getProtoOf = Object.getPrototypeOf;
7
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
8
+ var __export = (target, all) => {
9
+ for (var name in all)
10
+ __defProp(target, name, { get: all[name], enumerable: true });
11
+ };
12
+ var __copyProps = (to, from, except, desc) => {
13
+ if (from && typeof from === "object" || typeof from === "function") {
14
+ for (let key of __getOwnPropNames(from))
15
+ if (!__hasOwnProp.call(to, key) && key !== except)
16
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
17
+ }
18
+ return to;
19
+ };
20
+ var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(
21
+ // If the importer is in node compatibility mode or this is not an ESM
22
+ // file that has been converted to a CommonJS file using a Babel-
23
+ // compatible transform (i.e. "__esModule" has not been set), then set
24
+ // "default" to the CommonJS "module.exports" for node compatibility.
25
+ isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", { value: mod, enumerable: true }) : target,
26
+ mod
27
+ ));
28
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
29
+
30
+ // src/index.ts
31
+ var index_exports = {};
32
+ __export(index_exports, {
33
+ Box: () => import_Box5.default,
34
+ CheckCircleIcon: () => import_CheckCircle.default,
35
+ CheckIcon: () => import_Check.default,
36
+ ChevronLeftIcon: () => import_ChevronLeft.default,
37
+ ChevronRightIcon: () => import_ChevronRight.default,
38
+ CloseIcon: () => import_Close3.default,
39
+ Container: () => import_Container.default,
40
+ Divider: () => import_Divider.default,
41
+ ErrorIcon: () => import_Error.default,
42
+ ExpandLessIcon: () => import_ExpandLess.default,
43
+ ExpandMoreIcon: () => import_ExpandMore.default,
44
+ Grid: () => import_Grid.default,
45
+ IconButton: () => import_IconButton3.default,
46
+ InfoIcon: () => import_Info.default,
47
+ InputAdornment: () => import_InputAdornment2.default,
48
+ KdsAlert: () => KdsAlert,
49
+ KdsButton: () => KdsButton,
50
+ KdsCard: () => KdsCard,
51
+ KdsCardActions: () => KdsCardActions,
52
+ KdsCardContent: () => KdsCardContent,
53
+ KdsCardHeader: () => KdsCardHeader,
54
+ KdsCheckbox: () => KdsCheckbox,
55
+ KdsLinearProgress: () => KdsLinearProgress,
56
+ KdsLogoHeader: () => KdsLogoHeader,
57
+ KdsLogoHeaderCloseButton: () => KdsLogoHeaderCloseButton,
58
+ KdsLogoHeaderCode: () => KdsLogoHeaderCode,
59
+ KdsLogoHeaderLogo: () => KdsLogoHeaderLogo,
60
+ KdsLogoHeaderSeparator: () => KdsLogoHeaderSeparator,
61
+ KdsModal: () => KdsModal,
62
+ KdsSpinner: () => KdsSpinner,
63
+ KdsTab: () => KdsTab,
64
+ KdsTabPanel: () => KdsTabPanel,
65
+ KdsTabs: () => KdsTabs,
66
+ KdsTextField: () => KdsTextField,
67
+ KdsTypography: () => KdsTypography,
68
+ KhipuThemeProvider: () => KhipuThemeProvider,
69
+ Link: () => import_Link.default,
70
+ LockIcon: () => import_Lock.default,
71
+ LockOutlinedIcon: () => import_LockOutlined.default,
72
+ MailOutlineIcon: () => import_MailOutline.default,
73
+ PersonIcon: () => import_Person.default,
74
+ SearchIcon: () => import_Search.default,
75
+ Stack: () => import_Stack.default,
76
+ VisibilityIcon: () => import_Visibility.default,
77
+ VisibilityOffIcon: () => import_VisibilityOff.default,
78
+ WarningIcon: () => import_Warning.default,
79
+ borderRadius: () => borderRadius,
80
+ breakpoints: () => breakpoints,
81
+ colors: () => colors,
82
+ fontFamilies: () => fontFamilies,
83
+ fontSizes: () => fontSizes,
84
+ fontWeights: () => fontWeights,
85
+ khipuTheme: () => khipuTheme,
86
+ letterSpacings: () => letterSpacings,
87
+ lineHeights: () => lineHeights,
88
+ semanticSpacing: () => semanticSpacing,
89
+ shadows: () => shadows,
90
+ spacing: () => spacing,
91
+ tokens: () => tokens,
92
+ transitions: () => transitions,
93
+ typography: () => typography,
94
+ zIndex: () => zIndex
95
+ });
96
+ module.exports = __toCommonJS(index_exports);
97
+
98
+ // src/theme/index.ts
99
+ var import_styles = require("@mui/material/styles");
100
+
101
+ // src/tokens/index.ts
102
+ var lightModeColors = {
103
+ // Primary palette - Purple (Khipu brand)
104
+ primary: {
105
+ main: "#4CAF50",
106
+ light: "#81C784",
107
+ dark: "#388E3C",
108
+ contrastText: "#FFFFFF",
109
+ states: {
110
+ hover: "rgba(131, 71, 173, 0.04)",
111
+ selected: "rgba(131, 71, 173, 0.08)",
112
+ focus: "rgba(131, 71, 173, 0.12)",
113
+ focusVisible: "rgba(131, 71, 173, 0.30)",
114
+ outlinedBorder: "rgba(131, 71, 173, 0.50)"
115
+ }
116
+ },
117
+ // Secondary palette - Cyan/Turquoise
118
+ secondary: {
119
+ main: "#3CB4E5",
120
+ light: "#6AC6EB",
121
+ dark: "#198EBE",
122
+ contrastText: "#FFFFFF"
123
+ },
124
+ // Text colors (based on black with opacity)
125
+ text: {
126
+ primary: "rgba(0, 0, 0, 0.87)",
127
+ secondary: "rgba(0, 0, 0, 0.60)",
128
+ disabled: "rgba(0, 0, 0, 0.38)",
129
+ hint: "rgba(0, 0, 0, 0.38)"
130
+ },
131
+ // Background colors
132
+ background: {
133
+ default: "#FFFFFF",
134
+ paper: "#FFFFFF",
135
+ elevated: "#FAFAFA"
136
+ },
137
+ // Action colors
138
+ action: {
139
+ active: "rgba(0, 0, 0, 0.56)",
140
+ hover: "rgba(0, 0, 0, 0.04)",
141
+ selected: "rgba(0, 0, 0, 0.08)",
142
+ disabled: "rgba(0, 0, 0, 0.38)",
143
+ disabledBackground: "rgba(0, 0, 0, 0.12)",
144
+ focus: "rgba(0, 0, 0, 0.12)"
145
+ },
146
+ // Divider
147
+ divider: "rgba(0, 0, 0, 0.12)",
148
+ // Component-specific colors
149
+ components: {
150
+ input: {
151
+ outlined: {
152
+ enabledBorder: "rgba(0, 0, 0, 0.23)",
153
+ hoverBorder: "rgba(0, 0, 0, 0.87)"
154
+ }
155
+ }
156
+ }
157
+ };
158
+ var darkModeColors = {
159
+ // Primary palette - Purple (Khipu brand) - From Figma K-Tokens
160
+ primary: {
161
+ main: "#E3B5FF",
162
+ light: "#F1D6FF",
163
+ dark: "#4C0676",
164
+ contrastText: "rgba(76, 6, 118, 0.87)",
165
+ states: {
166
+ hover: "rgba(227, 181, 255, 0.08)",
167
+ selected: "rgba(227, 181, 255, 0.16)",
168
+ focus: "rgba(227, 181, 255, 0.24)",
169
+ focusVisible: "rgba(227, 181, 255, 0.40)",
170
+ outlinedBorder: "rgba(227, 181, 255, 0.50)"
171
+ }
172
+ },
173
+ // Secondary palette - Cyan/Turquoise - From Figma K-Tokens
174
+ secondary: {
175
+ main: "#B5EAFF",
176
+ light: "#D6F3FF",
177
+ dark: "#065676",
178
+ contrastText: "rgba(6, 86, 118, 0.87)"
179
+ },
180
+ // Text colors (based on white with opacity) - From Figma K-Tokens
181
+ text: {
182
+ primary: "rgba(255, 255, 255, 1)",
183
+ secondary: "rgba(255, 255, 255, 0.70)",
184
+ disabled: "rgba(255, 255, 255, 0.38)",
185
+ hint: "rgba(255, 255, 255, 0.38)"
186
+ },
187
+ // Background colors - From Figma K-Tokens
188
+ background: {
189
+ default: "#181818",
190
+ paper: "#121212",
191
+ elevated: "#2C2C2C"
192
+ },
193
+ // Action colors (based on white with opacity) - From Figma K-Tokens
194
+ action: {
195
+ active: "rgba(255, 255, 255, 0.56)",
196
+ hover: "rgba(255, 255, 255, 0.08)",
197
+ selected: "rgba(255, 255, 255, 0.16)",
198
+ disabled: "rgba(255, 255, 255, 0.38)",
199
+ disabledBackground: "rgba(255, 255, 255, 0.12)",
200
+ focus: "rgba(255, 255, 255, 0.12)"
201
+ },
202
+ // Divider
203
+ divider: "rgba(255, 255, 255, 0.12)",
204
+ // Component-specific colors - From Figma K-Tokens
205
+ components: {
206
+ input: {
207
+ outlined: {
208
+ enabledBorder: "rgba(255, 255, 255, 0.23)",
209
+ hoverBorder: "rgba(255, 255, 255, 1)"
210
+ }
211
+ }
212
+ }
213
+ };
214
+ var semanticColors = {
215
+ success: {
216
+ main: "#2E7D32",
217
+ light: "#4CAF50",
218
+ dark: "#1B5E20",
219
+ contrastText: "#FFFFFF"
220
+ },
221
+ warning: {
222
+ main: "#ED6C02",
223
+ light: "#FF9800",
224
+ dark: "#E65100",
225
+ contrastText: "#FFFFFF"
226
+ },
227
+ error: {
228
+ main: "#D32F2F",
229
+ light: "#EF5350",
230
+ dark: "#C62828",
231
+ contrastText: "#FFFFFF"
232
+ },
233
+ info: {
234
+ main: "#0288D1",
235
+ light: "#03A9F4",
236
+ dark: "#01579B",
237
+ contrastText: "#FFFFFF"
238
+ }
239
+ };
240
+ var colors = {
241
+ ...lightModeColors,
242
+ ...semanticColors
243
+ };
244
+ var fontFamilies = {
245
+ primary: '"Public Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"',
246
+ secondary: '"Public Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"',
247
+ mono: '"Roboto Mono", "SF Mono", "Monaco", monospace'
248
+ };
249
+ var fontWeights = {
250
+ light: 300,
251
+ regular: 400,
252
+ medium: 500,
253
+ semiBold: 600,
254
+ bold: 700
255
+ };
256
+ var fontSizes = {
257
+ xs: "0.75rem",
258
+ // 12px
259
+ sm: "0.875rem",
260
+ // 14px
261
+ base: "1rem",
262
+ // 16px
263
+ lg: "1.125rem",
264
+ // 18px
265
+ xl: "1.25rem",
266
+ // 20px
267
+ "2xl": "1.5rem",
268
+ // 24px
269
+ "3xl": "1.875rem",
270
+ // 30px
271
+ "4xl": "2.25rem"
272
+ // 36px
273
+ };
274
+ var lineHeights = {
275
+ tight: 1.2,
276
+ snug: 1.375,
277
+ normal: 1.5,
278
+ relaxed: 1.66,
279
+ loose: 2
280
+ };
281
+ var letterSpacings = {
282
+ tighter: "-0.05em",
283
+ tight: "-0.025em",
284
+ normal: "0.15px",
285
+ wide: "0.4px",
286
+ wider: "0.46px",
287
+ widest: "1px"
288
+ };
289
+ var typography = {
290
+ h1: {
291
+ fontFamily: fontFamilies.primary,
292
+ fontWeight: fontWeights.bold,
293
+ fontSize: "2.5rem",
294
+ lineHeight: 1.2,
295
+ letterSpacing: "-0.01562em"
296
+ },
297
+ h2: {
298
+ fontFamily: fontFamilies.primary,
299
+ fontWeight: fontWeights.bold,
300
+ fontSize: "2rem",
301
+ lineHeight: 1.2,
302
+ letterSpacing: "-0.00833em"
303
+ },
304
+ h3: {
305
+ fontFamily: fontFamilies.primary,
306
+ fontWeight: fontWeights.semiBold,
307
+ fontSize: "1.75rem",
308
+ lineHeight: 1.2,
309
+ letterSpacing: "0em"
310
+ },
311
+ h4: {
312
+ fontFamily: fontFamilies.primary,
313
+ fontWeight: fontWeights.semiBold,
314
+ fontSize: "1.5rem",
315
+ lineHeight: 1.235,
316
+ letterSpacing: "0.00735em"
317
+ },
318
+ h5: {
319
+ fontFamily: fontFamilies.primary,
320
+ fontWeight: fontWeights.semiBold,
321
+ fontSize: "1.25rem",
322
+ lineHeight: 1.334,
323
+ letterSpacing: "0em"
324
+ },
325
+ h6: {
326
+ fontFamily: fontFamilies.primary,
327
+ fontWeight: fontWeights.semiBold,
328
+ fontSize: "1.25rem",
329
+ // 20px
330
+ lineHeight: "32px",
331
+ letterSpacing: "0.15px"
332
+ },
333
+ subtitle1: {
334
+ fontFamily: fontFamilies.secondary,
335
+ fontWeight: fontWeights.regular,
336
+ fontSize: "1rem",
337
+ lineHeight: 1.75,
338
+ letterSpacing: "0.00938em"
339
+ },
340
+ subtitle2: {
341
+ fontFamily: fontFamilies.secondary,
342
+ fontWeight: fontWeights.medium,
343
+ fontSize: "0.875rem",
344
+ lineHeight: 1.57,
345
+ letterSpacing: "0.00714em"
346
+ },
347
+ body1: {
348
+ fontFamily: fontFamilies.secondary,
349
+ fontWeight: fontWeights.regular,
350
+ fontSize: "1rem",
351
+ // 16px
352
+ lineHeight: 1.5,
353
+ letterSpacing: "0.15px"
354
+ },
355
+ body2: {
356
+ fontFamily: fontFamilies.secondary,
357
+ fontWeight: fontWeights.regular,
358
+ fontSize: "0.875rem",
359
+ lineHeight: 1.43,
360
+ letterSpacing: "0.01071em"
361
+ },
362
+ button: {
363
+ fontFamily: fontFamilies.secondary,
364
+ fontWeight: fontWeights.medium,
365
+ fontSize: "0.9375rem",
366
+ // 15px
367
+ lineHeight: "26px",
368
+ letterSpacing: "0.46px",
369
+ textTransform: "uppercase"
370
+ },
371
+ caption: {
372
+ fontFamily: fontFamilies.secondary,
373
+ fontWeight: fontWeights.regular,
374
+ fontSize: "0.75rem",
375
+ // 12px
376
+ lineHeight: 1.66,
377
+ letterSpacing: "0.4px"
378
+ },
379
+ overline: {
380
+ fontFamily: fontFamilies.primary,
381
+ fontWeight: fontWeights.regular,
382
+ fontSize: "0.75rem",
383
+ // 12px
384
+ lineHeight: "15px",
385
+ letterSpacing: "1px",
386
+ textTransform: "uppercase"
387
+ },
388
+ inputValue: {
389
+ fontFamily: fontFamilies.secondary,
390
+ fontWeight: fontWeights.regular,
391
+ fontSize: "1rem",
392
+ lineHeight: "24px",
393
+ letterSpacing: "0.15px"
394
+ },
395
+ inputLabel: {
396
+ fontFamily: fontFamilies.secondary,
397
+ fontWeight: fontWeights.regular,
398
+ fontSize: "0.75rem",
399
+ lineHeight: "12px",
400
+ letterSpacing: "0.15px"
401
+ }
402
+ };
403
+ var spacing = {
404
+ 0: "0px",
405
+ 1: "8px",
406
+ 2: "16px",
407
+ 3: "24px",
408
+ 4: "32px",
409
+ 5: "40px",
410
+ 6: "48px",
411
+ 7: "56px",
412
+ 8: "64px",
413
+ 9: "72px",
414
+ 10: "80px",
415
+ 11: "88px",
416
+ 12: "96px"
417
+ };
418
+ var semanticSpacing = {
419
+ // Card spacing
420
+ card: {
421
+ paddingY: "10px",
422
+ paddingX: "20px",
423
+ padding: "10px 20px",
424
+ gap: "16px",
425
+ // Internal gap between card elements
426
+ listGap: "12px"
427
+ // Gap between cards in a list
428
+ },
429
+ // Box/Container spacing
430
+ box: {
431
+ paddingY: "32px",
432
+ paddingX: "20px",
433
+ padding: "32px 20px"
434
+ },
435
+ // Input spacing
436
+ input: {
437
+ paddingY: "16px",
438
+ paddingX: "12px",
439
+ padding: "16px 12px"
440
+ },
441
+ // Button spacing
442
+ button: {
443
+ paddingY: "8px",
444
+ paddingX: "22px",
445
+ padding: "8px 22px"
446
+ },
447
+ // Layout gaps
448
+ sectionGap: "32px",
449
+ formGap: "20px",
450
+ inlineGap: "8px",
451
+ stackGap: "16px",
452
+ // Modal
453
+ modalPadding: "24px"
454
+ };
455
+ var borderRadius = {
456
+ none: "0px",
457
+ sm: "4px",
458
+ // Default MUI/Figma border radius
459
+ md: "8px",
460
+ lg: "12px",
461
+ xl: "16px",
462
+ "2xl": "20px",
463
+ "3xl": "24px",
464
+ full: "9999px",
465
+ // Component-specific
466
+ button: "4px",
467
+ input: "4px",
468
+ card: "20px",
469
+ modal: "20px",
470
+ chip: "16px",
471
+ avatar: "100px",
472
+ iconContainer: "10px"
473
+ };
474
+ var shadows = {
475
+ none: "none",
476
+ // From Figma: elevation/2 (used on primary buttons)
477
+ elevation2: "0px 3px 1px -2px rgba(0,0,0,0.2), 0px 2px 2px 0px rgba(0,0,0,0.14), 0px 1px 5px 0px rgba(0,0,0,0.12)",
478
+ // Semantic shadows from Figma
479
+ button: "0px 3px 1px -2px rgba(0,0,0,0.2), 0px 2px 2px 0px rgba(0,0,0,0.14), 0px 1px 5px 0px rgba(0,0,0,0.12)",
480
+ // elevation/2
481
+ card: "none",
482
+ // Figma cards use borders, not shadows
483
+ modal: "0px 11px 15px -7px rgba(0,0,0,0.2), 0px 24px 38px 3px rgba(0,0,0,0.14), 0px 9px 46px 8px rgba(0,0,0,0.12)",
484
+ dropdown: "0px 5px 5px -3px rgba(0,0,0,0.2), 0px 8px 10px 1px rgba(0,0,0,0.14), 0px 3px 14px 2px rgba(0,0,0,0.12)"
485
+ };
486
+ var borders = {
487
+ // Card borders (no shadow in Figma)
488
+ card: "1px solid rgba(0, 0, 0, 0.42)",
489
+ cardSelected: "2px solid #8347AD",
490
+ // Input borders
491
+ inputOutlined: "1px solid rgba(0, 0, 0, 0.23)",
492
+ inputStandard: "1px solid rgba(0, 0, 0, 0.42)",
493
+ // Button borders
494
+ buttonOutlinedPrimary: "1px solid rgba(131, 71, 173, 0.5)",
495
+ buttonOutlinedInfo: "1px solid rgba(2, 136, 209, 0.5)",
496
+ // Dividers
497
+ divider: "1px solid #e0e0e0",
498
+ container: "1px solid rgba(58, 53, 65, 0.3)"
499
+ };
500
+ var zIndex = {
501
+ mobileStepper: 1e3,
502
+ fab: 1050,
503
+ speedDial: 1050,
504
+ appBar: 1100,
505
+ drawer: 1200,
506
+ modal: 1300,
507
+ snackbar: 1400,
508
+ tooltip: 1500
509
+ };
510
+ var transitions = {
511
+ duration: {
512
+ shortest: 150,
513
+ shorter: 200,
514
+ short: 250,
515
+ standard: 300,
516
+ complex: 375,
517
+ enteringScreen: 225,
518
+ leavingScreen: 195
519
+ },
520
+ easing: {
521
+ easeInOut: "cubic-bezier(0.4, 0, 0.2, 1)",
522
+ easeOut: "cubic-bezier(0.0, 0, 0.2, 1)",
523
+ easeIn: "cubic-bezier(0.4, 0, 1, 1)",
524
+ sharp: "cubic-bezier(0.4, 0, 0.6, 1)"
525
+ }
526
+ };
527
+ var breakpoints = {
528
+ xs: "444px",
529
+ sm: "600px",
530
+ md: "900px",
531
+ lg: "1200px",
532
+ xl: "1536px"
533
+ };
534
+ var tokensByMode = {
535
+ light: {
536
+ colors: { ...lightModeColors, ...semanticColors },
537
+ fontFamilies,
538
+ fontWeights,
539
+ fontSizes,
540
+ lineHeights,
541
+ letterSpacings,
542
+ typography,
543
+ spacing,
544
+ semanticSpacing,
545
+ borderRadius,
546
+ borders,
547
+ shadows,
548
+ zIndex,
549
+ transitions,
550
+ breakpoints
551
+ },
552
+ dark: {
553
+ colors: { ...darkModeColors, ...semanticColors },
554
+ fontFamilies,
555
+ fontWeights,
556
+ fontSizes,
557
+ lineHeights,
558
+ letterSpacings,
559
+ typography,
560
+ spacing,
561
+ semanticSpacing,
562
+ borderRadius,
563
+ borders,
564
+ shadows,
565
+ zIndex,
566
+ transitions,
567
+ breakpoints
568
+ }
569
+ };
570
+ var tokens = {
571
+ colors,
572
+ fontFamilies,
573
+ fontWeights,
574
+ fontSizes,
575
+ lineHeights,
576
+ letterSpacings,
577
+ typography,
578
+ spacing,
579
+ semanticSpacing,
580
+ borderRadius,
581
+ borders,
582
+ shadows,
583
+ zIndex,
584
+ transitions,
585
+ breakpoints
586
+ };
587
+
588
+ // src/theme/index.ts
589
+ var figmaColors = {
590
+ ...colors,
591
+ // Add states to info color (not in tokens yet)
592
+ info: {
593
+ ...colors.info,
594
+ states: {
595
+ outlinedBorder: "rgba(2, 136, 209, 0.5)"
596
+ }
597
+ },
598
+ // Add input colors (not in tokens yet)
599
+ input: {
600
+ outlined: {
601
+ enabledBorder: "rgba(0, 0, 0, 0.23)",
602
+ hoverBorder: "rgba(0, 0, 0, 0.87)",
603
+ standardBorder: "rgba(0, 0, 0, 0.42)"
604
+ }
605
+ },
606
+ // Add alert colors (not in tokens yet)
607
+ alert: {
608
+ info: {
609
+ background: "#E5F6FD",
610
+ color: "#014361"
611
+ },
612
+ success: {
613
+ background: "#EDF7ED",
614
+ color: "#1E4620"
615
+ }
616
+ }
617
+ };
618
+ var figmaTypography = {
619
+ fontFamily: {
620
+ primary: fontFamilies.primary,
621
+ secondary: fontFamilies.secondary,
622
+ display: fontFamilies.primary
623
+ },
624
+ fontWeight: fontWeights,
625
+ fontSize: {
626
+ xs: fontSizes.xs,
627
+ sm: fontSizes.sm,
628
+ base: fontSizes.base,
629
+ button: "0.9375rem",
630
+ // Not in tokens yet
631
+ md: "0.875rem",
632
+ // Not in tokens yet
633
+ lg: fontSizes.lg,
634
+ xl: fontSizes.xl
635
+ }
636
+ };
637
+ var palette = {
638
+ primary: {
639
+ main: figmaColors.primary.main,
640
+ light: figmaColors.primary.light,
641
+ dark: figmaColors.primary.dark,
642
+ contrastText: figmaColors.primary.contrastText
643
+ },
644
+ secondary: {
645
+ main: "#9C27B0",
646
+ light: "#BA68C8",
647
+ dark: "#7B1FA2",
648
+ contrastText: "#FFFFFF"
649
+ },
650
+ success: {
651
+ main: figmaColors.success.main,
652
+ light: figmaColors.success.light,
653
+ dark: figmaColors.success.dark,
654
+ contrastText: figmaColors.success.contrastText
655
+ },
656
+ warning: {
657
+ main: figmaColors.warning.main,
658
+ light: figmaColors.warning.light,
659
+ dark: figmaColors.warning.dark,
660
+ contrastText: figmaColors.warning.contrastText
661
+ },
662
+ error: {
663
+ main: figmaColors.error.main,
664
+ light: figmaColors.error.light,
665
+ dark: figmaColors.error.dark,
666
+ contrastText: figmaColors.error.contrastText
667
+ },
668
+ info: {
669
+ main: figmaColors.info.main,
670
+ light: figmaColors.info.light,
671
+ dark: figmaColors.info.dark,
672
+ contrastText: figmaColors.info.contrastText
673
+ },
674
+ text: {
675
+ primary: figmaColors.text.primary,
676
+ secondary: figmaColors.text.secondary,
677
+ disabled: figmaColors.text.disabled
678
+ },
679
+ background: {
680
+ default: figmaColors.background.default,
681
+ paper: figmaColors.background.paper
682
+ },
683
+ action: {
684
+ active: figmaColors.action.active,
685
+ hover: figmaColors.action.hover,
686
+ selected: figmaColors.action.selected,
687
+ disabled: figmaColors.action.disabled,
688
+ disabledBackground: figmaColors.action.disabledBackground,
689
+ focus: figmaColors.action.focus
690
+ },
691
+ divider: figmaColors.divider
692
+ };
693
+ var typography2 = {
694
+ fontFamily: `${figmaTypography.fontFamily.primary}, ${figmaTypography.fontFamily.secondary}, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif`,
695
+ // Headings - Public Sans SemiBold
696
+ h1: {
697
+ fontFamily: figmaTypography.fontFamily.primary,
698
+ fontWeight: figmaTypography.fontWeight.bold,
699
+ fontSize: "2.5rem",
700
+ lineHeight: 1.2,
701
+ letterSpacing: "-0.01562em"
702
+ },
703
+ h2: {
704
+ fontFamily: figmaTypography.fontFamily.primary,
705
+ fontWeight: figmaTypography.fontWeight.bold,
706
+ fontSize: "2rem",
707
+ lineHeight: 1.2,
708
+ letterSpacing: "-0.00833em"
709
+ },
710
+ h3: {
711
+ fontFamily: figmaTypography.fontFamily.primary,
712
+ fontWeight: figmaTypography.fontWeight.semiBold,
713
+ fontSize: "1.75rem",
714
+ lineHeight: 1.2,
715
+ letterSpacing: "0em"
716
+ },
717
+ h4: {
718
+ fontFamily: figmaTypography.fontFamily.primary,
719
+ fontWeight: figmaTypography.fontWeight.semiBold,
720
+ fontSize: "1.5rem",
721
+ lineHeight: 1.235,
722
+ letterSpacing: "0.00735em"
723
+ },
724
+ // H5 - Inter Medium 24px (from Figma Light/Typography/H5)
725
+ h5: {
726
+ fontFamily: figmaTypography.fontFamily.display,
727
+ fontWeight: figmaTypography.fontWeight.medium,
728
+ fontSize: "1.5rem",
729
+ // 24px
730
+ lineHeight: 1.334,
731
+ letterSpacing: "0em"
732
+ },
733
+ // H6 - Public Sans SemiBold 20px (from Figma Light/Typography/H6)
734
+ h6: {
735
+ fontFamily: figmaTypography.fontFamily.primary,
736
+ fontWeight: figmaTypography.fontWeight.semiBold,
737
+ fontSize: "1.25rem",
738
+ // 20px
739
+ lineHeight: "32px",
740
+ letterSpacing: "0.15px"
741
+ },
742
+ // Subtitle1 - Roboto Regular 16px
743
+ subtitle1: {
744
+ fontFamily: figmaTypography.fontFamily.secondary,
745
+ fontWeight: figmaTypography.fontWeight.regular,
746
+ fontSize: "1rem",
747
+ lineHeight: 1.75,
748
+ letterSpacing: "0.15px"
749
+ },
750
+ // Subtitle2 - Roboto Medium 14px
751
+ subtitle2: {
752
+ fontFamily: figmaTypography.fontFamily.secondary,
753
+ fontWeight: figmaTypography.fontWeight.medium,
754
+ fontSize: "0.875rem",
755
+ lineHeight: 1.57,
756
+ letterSpacing: "0.1px"
757
+ },
758
+ // Body1 - From Figma typography/body1: Roboto Regular 16px
759
+ body1: {
760
+ fontFamily: figmaTypography.fontFamily.secondary,
761
+ fontWeight: figmaTypography.fontWeight.regular,
762
+ fontSize: "1rem",
763
+ // 16px
764
+ lineHeight: 1.5,
765
+ letterSpacing: "0.15px"
766
+ },
767
+ // Body2 - Roboto Regular 14px
768
+ body2: {
769
+ fontFamily: figmaTypography.fontFamily.secondary,
770
+ fontWeight: figmaTypography.fontWeight.regular,
771
+ fontSize: "0.875rem",
772
+ // 14px
773
+ lineHeight: 1.43,
774
+ letterSpacing: "0.17px"
775
+ },
776
+ // Button - From Figma button/large: Roboto Medium 15px
777
+ button: {
778
+ fontFamily: figmaTypography.fontFamily.secondary,
779
+ fontWeight: figmaTypography.fontWeight.medium,
780
+ fontSize: "0.9375rem",
781
+ // 15px
782
+ lineHeight: "26px",
783
+ letterSpacing: "0.46px",
784
+ textTransform: "uppercase"
785
+ },
786
+ // Caption - From Figma typography/caption: Roboto Regular 12px
787
+ caption: {
788
+ fontFamily: figmaTypography.fontFamily.secondary,
789
+ fontWeight: figmaTypography.fontWeight.regular,
790
+ fontSize: "0.75rem",
791
+ // 12px
792
+ lineHeight: 1.66,
793
+ letterSpacing: "0.4px"
794
+ },
795
+ // Overline - From Figma Light/Typography/Overline: Public Sans Regular 12px
796
+ overline: {
797
+ fontFamily: figmaTypography.fontFamily.primary,
798
+ fontWeight: figmaTypography.fontWeight.regular,
799
+ fontSize: "0.75rem",
800
+ // 12px
801
+ lineHeight: "15px",
802
+ letterSpacing: "1px",
803
+ textTransform: "uppercase"
804
+ }
805
+ };
806
+ var shape = {
807
+ borderRadius: 4
808
+ // borderRadius from Figma
809
+ };
810
+ var components = {
811
+ // CSS Baseline - Font imports
812
+ MuiCssBaseline: {
813
+ styleOverrides: `
814
+ @import url('https://fonts.googleapis.com/css2?family=Open+Sans:ital,wght@0,300..800;1,300..800&family=Public+Sans:ital,wght@0,100..900;1,100..900&display=swap');
815
+ `
816
+ },
817
+ // ==========================================================================
818
+ // BUTTON - Figma button/large specs
819
+ // ==========================================================================
820
+ MuiButton: {
821
+ styleOverrides: {
822
+ root: {
823
+ fontFamily: figmaTypography.fontFamily.secondary,
824
+ fontWeight: figmaTypography.fontWeight.medium,
825
+ fontSize: "0.9375rem",
826
+ // 15px
827
+ lineHeight: "26px",
828
+ letterSpacing: "0.46px",
829
+ textTransform: "uppercase",
830
+ borderRadius: 4,
831
+ minHeight: 50,
832
+ padding: "8px 22px",
833
+ // Disabled state from Figma
834
+ "&.Mui-disabled": {
835
+ backgroundColor: figmaColors.action.disabledBackground,
836
+ color: figmaColors.action.disabled
837
+ }
838
+ },
839
+ contained: {
840
+ // elevation/2 from Figma
841
+ boxShadow: "0px 3px 1px -2px rgba(0,0,0,0.2), 0px 2px 2px 0px rgba(0,0,0,0.14), 0px 1px 5px 0px rgba(0,0,0,0.12)",
842
+ "&:hover": {
843
+ boxShadow: "0px 2px 4px -1px rgba(0,0,0,0.2), 0px 4px 5px 0px rgba(0,0,0,0.14), 0px 1px 10px 0px rgba(0,0,0,0.12)"
844
+ }
845
+ },
846
+ containedPrimary: {
847
+ backgroundColor: figmaColors.primary.main,
848
+ color: figmaColors.primary.contrastText,
849
+ "&:hover": {
850
+ backgroundColor: figmaColors.primary.dark
851
+ }
852
+ },
853
+ containedSuccess: {
854
+ // Success button uses success.light (#4CAF50) from Figma
855
+ backgroundColor: figmaColors.success.light,
856
+ color: figmaColors.success.contrastText,
857
+ "&:hover": {
858
+ backgroundColor: figmaColors.success.main
859
+ }
860
+ },
861
+ containedInfo: {
862
+ backgroundColor: figmaColors.info.light,
863
+ color: figmaColors.info.contrastText,
864
+ "&:hover": {
865
+ backgroundColor: figmaColors.info.main
866
+ }
867
+ },
868
+ outlined: {
869
+ borderWidth: 1,
870
+ "&:hover": {
871
+ borderWidth: 1
872
+ }
873
+ },
874
+ outlinedPrimary: {
875
+ borderColor: figmaColors.primary.states.outlinedBorder,
876
+ color: figmaColors.primary.main,
877
+ "&:hover": {
878
+ backgroundColor: figmaColors.primary.states.hover,
879
+ borderColor: figmaColors.primary.main
880
+ }
881
+ },
882
+ outlinedInfo: {
883
+ // From Figma: info/_states/outlinedBorder
884
+ borderColor: figmaColors.info.states.outlinedBorder,
885
+ color: figmaColors.info.main,
886
+ "&:hover": {
887
+ backgroundColor: "rgba(2, 136, 209, 0.04)",
888
+ borderColor: figmaColors.info.main
889
+ }
890
+ },
891
+ sizeSmall: {
892
+ padding: "6px 16px",
893
+ fontSize: "0.8125rem",
894
+ minHeight: 32
895
+ },
896
+ sizeMedium: {
897
+ padding: "8px 22px",
898
+ fontSize: "0.9375rem",
899
+ minHeight: 42
900
+ },
901
+ sizeLarge: {
902
+ padding: "8px 22px",
903
+ fontSize: "0.9375rem",
904
+ minHeight: 50
905
+ }
906
+ },
907
+ defaultProps: {
908
+ disableElevation: false
909
+ }
910
+ },
911
+ // ==========================================================================
912
+ // TEXT FIELD - Figma input specs
913
+ // ==========================================================================
914
+ MuiTextField: {
915
+ styleOverrides: {
916
+ root: {
917
+ "& .MuiOutlinedInput-root": {
918
+ borderRadius: 4,
919
+ fontFamily: figmaTypography.fontFamily.secondary,
920
+ fontSize: "1rem",
921
+ // 16px from _fontSize/1rem
922
+ lineHeight: "24px",
923
+ letterSpacing: "0.15px",
924
+ "& fieldset": {
925
+ borderColor: figmaColors.input.outlined.enabledBorder,
926
+ borderWidth: 1
927
+ },
928
+ "&:hover fieldset": {
929
+ borderColor: figmaColors.input.outlined.hoverBorder
930
+ },
931
+ "&.Mui-focused fieldset": {
932
+ borderColor: figmaColors.primary.main,
933
+ borderWidth: 2
934
+ }
935
+ },
936
+ "& .MuiInputLabel-root": {
937
+ fontFamily: figmaTypography.fontFamily.secondary,
938
+ fontSize: "1rem",
939
+ letterSpacing: "0.15px",
940
+ color: figmaColors.text.secondary,
941
+ "&.Mui-focused": {
942
+ color: figmaColors.primary.main
943
+ },
944
+ "&.MuiInputLabel-shrink": {
945
+ fontSize: "0.75rem",
946
+ // 12px when shrunk
947
+ lineHeight: "12px",
948
+ letterSpacing: "0.15px"
949
+ }
950
+ },
951
+ "& .MuiInputBase-input": {
952
+ fontFamily: figmaTypography.fontFamily.secondary,
953
+ fontSize: "1rem",
954
+ fontWeight: figmaTypography.fontWeight.regular,
955
+ lineHeight: "24px",
956
+ letterSpacing: "0.15px",
957
+ color: figmaColors.text.primary,
958
+ padding: "16px 12px",
959
+ "&::placeholder": {
960
+ color: figmaColors.text.secondary,
961
+ opacity: 1
962
+ }
963
+ },
964
+ // Adornment styling
965
+ "& .MuiInputAdornment-root": {
966
+ color: figmaColors.action.active
967
+ }
968
+ }
969
+ },
970
+ defaultProps: {
971
+ variant: "outlined",
972
+ fullWidth: true
973
+ }
974
+ },
975
+ MuiOutlinedInput: {
976
+ styleOverrides: {
977
+ root: {
978
+ "& .MuiOutlinedInput-notchedOutline": {
979
+ borderColor: figmaColors.input.outlined.enabledBorder
980
+ },
981
+ "&:hover .MuiOutlinedInput-notchedOutline": {
982
+ borderColor: figmaColors.input.outlined.hoverBorder
983
+ },
984
+ "&.Mui-focused .MuiOutlinedInput-notchedOutline": {
985
+ borderColor: figmaColors.primary.main,
986
+ borderWidth: 2
987
+ }
988
+ },
989
+ input: {
990
+ padding: "16px 12px"
991
+ }
992
+ }
993
+ },
994
+ MuiInputLabel: {
995
+ styleOverrides: {
996
+ root: {
997
+ fontFamily: figmaTypography.fontFamily.secondary,
998
+ "&.Mui-focused": {
999
+ color: figmaColors.primary.main
1000
+ }
1001
+ },
1002
+ shrink: {
1003
+ fontSize: "0.75rem"
1004
+ }
1005
+ }
1006
+ },
1007
+ // ==========================================================================
1008
+ // CHECKBOX - Figma checkbox specs with purple checked state
1009
+ // ==========================================================================
1010
+ MuiCheckbox: {
1011
+ styleOverrides: {
1012
+ root: {
1013
+ padding: 9,
1014
+ color: figmaColors.action.active,
1015
+ "&.Mui-checked": {
1016
+ color: figmaColors.primary.main
1017
+ },
1018
+ "&.MuiCheckbox-indeterminate": {
1019
+ color: figmaColors.primary.main
1020
+ },
1021
+ "&:hover": {
1022
+ backgroundColor: figmaColors.primary.states.hover
1023
+ }
1024
+ },
1025
+ colorPrimary: {
1026
+ "&.Mui-checked": {
1027
+ color: figmaColors.primary.main
1028
+ }
1029
+ }
1030
+ },
1031
+ defaultProps: {
1032
+ color: "primary"
1033
+ }
1034
+ },
1035
+ MuiFormControlLabel: {
1036
+ styleOverrides: {
1037
+ root: {
1038
+ marginLeft: -9,
1039
+ marginRight: 0
1040
+ },
1041
+ label: {
1042
+ fontFamily: figmaTypography.fontFamily.secondary,
1043
+ fontSize: "1rem",
1044
+ fontWeight: figmaTypography.fontWeight.regular,
1045
+ lineHeight: 1.5,
1046
+ letterSpacing: "0.15px",
1047
+ color: figmaColors.text.secondary
1048
+ }
1049
+ }
1050
+ },
1051
+ // ==========================================================================
1052
+ // CARD - Figma card specs with 6px border radius and outlined border
1053
+ // ==========================================================================
1054
+ MuiCard: {
1055
+ styleOverrides: {
1056
+ root: {
1057
+ borderRadius: 6,
1058
+ // Default shadow from Figma --joy-shadow-xs
1059
+ boxShadow: "0px 1px 2px 0px rgba(187, 187, 187, 0.12)"
1060
+ }
1061
+ }
1062
+ },
1063
+ MuiCardActionArea: {
1064
+ styleOverrides: {
1065
+ root: {
1066
+ "&:hover": {
1067
+ backgroundColor: figmaColors.action.hover
1068
+ }
1069
+ }
1070
+ }
1071
+ },
1072
+ MuiCardContent: {
1073
+ styleOverrides: {
1074
+ root: {
1075
+ padding: "16px 20px",
1076
+ "&:last-child": {
1077
+ paddingBottom: "16px"
1078
+ }
1079
+ }
1080
+ }
1081
+ },
1082
+ // ==========================================================================
1083
+ // LINEAR PROGRESS - Figma info color (#03A9F4) progress bar
1084
+ // ==========================================================================
1085
+ MuiLinearProgress: {
1086
+ styleOverrides: {
1087
+ root: {
1088
+ height: 4,
1089
+ borderRadius: 0,
1090
+ "&.MuiLinearProgress-colorInfo": {
1091
+ backgroundColor: `rgba(3, 169, 244, 0.4)`,
1092
+ "& .MuiLinearProgress-bar": {
1093
+ backgroundColor: figmaColors.info.light
1094
+ // #03A9F4
1095
+ }
1096
+ },
1097
+ "&.MuiLinearProgress-colorPrimary": {
1098
+ backgroundColor: `rgba(131, 71, 173, 0.4)`,
1099
+ "& .MuiLinearProgress-bar": {
1100
+ backgroundColor: figmaColors.primary.main
1101
+ // #8347AD
1102
+ }
1103
+ }
1104
+ },
1105
+ bar: {
1106
+ borderRadius: 0
1107
+ }
1108
+ },
1109
+ defaultProps: {
1110
+ color: "info"
1111
+ }
1112
+ },
1113
+ // ==========================================================================
1114
+ // CIRCULAR PROGRESS
1115
+ // ==========================================================================
1116
+ MuiCircularProgress: {
1117
+ styleOverrides: {
1118
+ colorPrimary: {
1119
+ color: figmaColors.primary.main
1120
+ }
1121
+ },
1122
+ defaultProps: {
1123
+ color: "primary"
1124
+ }
1125
+ },
1126
+ // ==========================================================================
1127
+ // ALERT - Figma alert backgrounds and colors
1128
+ // ==========================================================================
1129
+ MuiAlert: {
1130
+ styleOverrides: {
1131
+ root: {
1132
+ borderRadius: 4,
1133
+ fontFamily: figmaTypography.fontFamily.secondary,
1134
+ fontSize: "0.875rem",
1135
+ lineHeight: 1.43,
1136
+ letterSpacing: "0.17px",
1137
+ padding: "6px 16px"
1138
+ },
1139
+ standardInfo: {
1140
+ backgroundColor: figmaColors.alert.info.background,
1141
+ // #E5F6FD
1142
+ color: figmaColors.alert.info.color,
1143
+ // #014361
1144
+ "& .MuiAlert-icon": {
1145
+ color: figmaColors.alert.info.color
1146
+ }
1147
+ },
1148
+ standardSuccess: {
1149
+ backgroundColor: figmaColors.alert.success.background,
1150
+ // #EDF7ED
1151
+ color: figmaColors.alert.success.color,
1152
+ // #1E4620
1153
+ "& .MuiAlert-icon": {
1154
+ color: figmaColors.success.main
1155
+ }
1156
+ },
1157
+ standardWarning: {
1158
+ backgroundColor: "#FFF4E5",
1159
+ color: "#663C00",
1160
+ "& .MuiAlert-icon": {
1161
+ color: figmaColors.warning.main
1162
+ }
1163
+ },
1164
+ standardError: {
1165
+ backgroundColor: "#FDEDED",
1166
+ color: "#5F2120",
1167
+ "& .MuiAlert-icon": {
1168
+ color: figmaColors.error.main
1169
+ }
1170
+ },
1171
+ icon: {
1172
+ padding: "7px 0",
1173
+ marginRight: 12
1174
+ }
1175
+ }
1176
+ },
1177
+ MuiAlertTitle: {
1178
+ styleOverrides: {
1179
+ root: {
1180
+ fontFamily: figmaTypography.fontFamily.secondary,
1181
+ fontWeight: figmaTypography.fontWeight.medium,
1182
+ fontSize: "1rem",
1183
+ lineHeight: 1.5,
1184
+ marginBottom: 4
1185
+ }
1186
+ }
1187
+ },
1188
+ // ==========================================================================
1189
+ // DIALOG/MODAL - Figma modal specs
1190
+ // ==========================================================================
1191
+ MuiDialog: {
1192
+ styleOverrides: {
1193
+ paper: {
1194
+ borderRadius: 12,
1195
+ boxShadow: "0px 4px 4px rgba(0, 0, 0, 0.25)"
1196
+ }
1197
+ }
1198
+ },
1199
+ MuiDialogTitle: {
1200
+ styleOverrides: {
1201
+ root: {
1202
+ fontFamily: figmaTypography.fontFamily.primary,
1203
+ fontWeight: figmaTypography.fontWeight.semiBold,
1204
+ fontSize: "1.25rem",
1205
+ lineHeight: "32px",
1206
+ letterSpacing: "0.15px",
1207
+ padding: "16px 24px"
1208
+ }
1209
+ }
1210
+ },
1211
+ MuiDialogContent: {
1212
+ styleOverrides: {
1213
+ root: {
1214
+ padding: "16px 24px"
1215
+ }
1216
+ }
1217
+ },
1218
+ MuiDialogActions: {
1219
+ styleOverrides: {
1220
+ root: {
1221
+ padding: "16px 24px",
1222
+ gap: 8
1223
+ }
1224
+ }
1225
+ },
1226
+ // ==========================================================================
1227
+ // TOOLTIP - Figma tooltip specs
1228
+ // ==========================================================================
1229
+ MuiTooltip: {
1230
+ styleOverrides: {
1231
+ tooltip: {
1232
+ backgroundColor: "rgba(97, 97, 97, 0.9)",
1233
+ fontFamily: figmaTypography.fontFamily.secondary,
1234
+ fontWeight: figmaTypography.fontWeight.medium,
1235
+ fontSize: "0.875rem",
1236
+ lineHeight: "24px",
1237
+ letterSpacing: "0.17px",
1238
+ borderRadius: 4,
1239
+ padding: "4px 8px"
1240
+ }
1241
+ }
1242
+ },
1243
+ // ==========================================================================
1244
+ // TYPOGRAPHY COMPONENT
1245
+ // ==========================================================================
1246
+ MuiTypography: {
1247
+ styleOverrides: {
1248
+ root: {
1249
+ // Default to body text styling
1250
+ }
1251
+ }
1252
+ },
1253
+ // ==========================================================================
1254
+ // DIVIDER
1255
+ // ==========================================================================
1256
+ MuiDivider: {
1257
+ styleOverrides: {
1258
+ root: {
1259
+ borderColor: "#DDDEE0"
1260
+ }
1261
+ }
1262
+ },
1263
+ // ==========================================================================
1264
+ // LINK
1265
+ // ==========================================================================
1266
+ MuiLink: {
1267
+ styleOverrides: {
1268
+ root: {
1269
+ color: figmaColors.info.main,
1270
+ textDecoration: "none",
1271
+ "&:hover": {
1272
+ textDecoration: "underline"
1273
+ }
1274
+ }
1275
+ }
1276
+ },
1277
+ // ==========================================================================
1278
+ // ICON BUTTON
1279
+ // ==========================================================================
1280
+ MuiIconButton: {
1281
+ styleOverrides: {
1282
+ root: {
1283
+ color: figmaColors.text.secondary,
1284
+ "&:hover": {
1285
+ backgroundColor: figmaColors.action.hover
1286
+ }
1287
+ }
1288
+ }
1289
+ }
1290
+ };
1291
+ var khipuTheme = (0, import_styles.createTheme)({
1292
+ palette,
1293
+ typography: typography2,
1294
+ shape,
1295
+ components
1296
+ });
1297
+
1298
+ // src/theme/ThemeProvider.tsx
1299
+ var import_material = require("@mui/material");
1300
+ var import_jsx_runtime = require("react/jsx-runtime");
1301
+ function KhipuThemeProvider({
1302
+ children,
1303
+ includeCssBaseline = true
1304
+ }) {
1305
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(import_material.ThemeProvider, { theme: khipuTheme, children: [
1306
+ includeCssBaseline && /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_material.CssBaseline, {}),
1307
+ children
1308
+ ] });
1309
+ }
1310
+
1311
+ // src/components/core/KdsButton/KdsButton.tsx
1312
+ var import_react = require("react");
1313
+ var import_Button = __toESM(require("@mui/material/Button"));
1314
+ var import_CircularProgress = __toESM(require("@mui/material/CircularProgress"));
1315
+ var import_jsx_runtime2 = require("react/jsx-runtime");
1316
+ var KdsButton = (0, import_react.forwardRef)(
1317
+ ({
1318
+ variant = "contained",
1319
+ color = "primary",
1320
+ size = "large",
1321
+ fullWidth = false,
1322
+ loading = false,
1323
+ disabled = false,
1324
+ startIcon,
1325
+ endIcon,
1326
+ children,
1327
+ sx,
1328
+ ...props
1329
+ }, ref) => {
1330
+ const isDisabled = disabled || loading;
1331
+ return /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(
1332
+ import_Button.default,
1333
+ {
1334
+ ref,
1335
+ variant,
1336
+ color,
1337
+ size,
1338
+ fullWidth,
1339
+ disabled: isDisabled,
1340
+ startIcon: loading ? void 0 : startIcon,
1341
+ endIcon: loading ? void 0 : endIcon,
1342
+ sx: {
1343
+ // Additional custom styles can be merged here
1344
+ ...sx
1345
+ },
1346
+ ...props,
1347
+ children: loading ? /* @__PURE__ */ (0, import_jsx_runtime2.jsxs)(import_jsx_runtime2.Fragment, { children: [
1348
+ /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(
1349
+ import_CircularProgress.default,
1350
+ {
1351
+ size: 20,
1352
+ color: "inherit",
1353
+ sx: { mr: 1 }
1354
+ }
1355
+ ),
1356
+ children
1357
+ ] }) : children
1358
+ }
1359
+ );
1360
+ }
1361
+ );
1362
+ KdsButton.displayName = "KdsButton";
1363
+
1364
+ // src/components/core/KdsTextField/KdsTextField.tsx
1365
+ var import_react2 = require("react");
1366
+ var import_TextField = __toESM(require("@mui/material/TextField"));
1367
+ var import_InputAdornment = __toESM(require("@mui/material/InputAdornment"));
1368
+ var import_jsx_runtime3 = require("react/jsx-runtime");
1369
+ var KdsTextField = (0, import_react2.forwardRef)(
1370
+ ({
1371
+ variant = "outlined",
1372
+ size = "medium",
1373
+ fullWidth = true,
1374
+ startAdornment,
1375
+ endAdornment,
1376
+ InputProps,
1377
+ ...props
1378
+ }, ref) => {
1379
+ const mergedInputProps = {
1380
+ ...InputProps,
1381
+ ...startAdornment && {
1382
+ startAdornment: /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(import_InputAdornment.default, { position: "start", children: startAdornment })
1383
+ },
1384
+ ...endAdornment && {
1385
+ endAdornment: /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(import_InputAdornment.default, { position: "end", children: endAdornment })
1386
+ }
1387
+ };
1388
+ return /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(
1389
+ import_TextField.default,
1390
+ {
1391
+ inputRef: ref,
1392
+ variant,
1393
+ size,
1394
+ fullWidth,
1395
+ InputProps: mergedInputProps,
1396
+ ...props
1397
+ }
1398
+ );
1399
+ }
1400
+ );
1401
+ KdsTextField.displayName = "KdsTextField";
1402
+
1403
+ // src/components/core/KdsCheckbox/KdsCheckbox.tsx
1404
+ var import_react3 = require("react");
1405
+ var import_Checkbox = __toESM(require("@mui/material/Checkbox"));
1406
+ var import_FormControlLabel = __toESM(require("@mui/material/FormControlLabel"));
1407
+ var import_jsx_runtime4 = require("react/jsx-runtime");
1408
+ var KdsCheckbox = (0, import_react3.forwardRef)(
1409
+ ({
1410
+ label,
1411
+ color = "primary",
1412
+ size = "medium",
1413
+ disabled = false,
1414
+ ...props
1415
+ }, ref) => {
1416
+ const checkbox = /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(
1417
+ import_Checkbox.default,
1418
+ {
1419
+ ref,
1420
+ color,
1421
+ size,
1422
+ disabled,
1423
+ ...props
1424
+ }
1425
+ );
1426
+ if (label) {
1427
+ return /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(
1428
+ import_FormControlLabel.default,
1429
+ {
1430
+ control: checkbox,
1431
+ label,
1432
+ disabled
1433
+ }
1434
+ );
1435
+ }
1436
+ return checkbox;
1437
+ }
1438
+ );
1439
+ KdsCheckbox.displayName = "KdsCheckbox";
1440
+
1441
+ // src/components/core/KdsModal/KdsModal.tsx
1442
+ var import_Dialog = __toESM(require("@mui/material/Dialog"));
1443
+ var import_DialogTitle = __toESM(require("@mui/material/DialogTitle"));
1444
+ var import_DialogContent = __toESM(require("@mui/material/DialogContent"));
1445
+ var import_DialogActions = __toESM(require("@mui/material/DialogActions"));
1446
+ var import_IconButton = __toESM(require("@mui/material/IconButton"));
1447
+ var import_Close = __toESM(require("@mui/icons-material/Close"));
1448
+ var import_Box = __toESM(require("@mui/material/Box"));
1449
+ var import_jsx_runtime5 = require("react/jsx-runtime");
1450
+ var KdsModal = ({
1451
+ open,
1452
+ onClose,
1453
+ title,
1454
+ children,
1455
+ footer,
1456
+ size = "sm",
1457
+ showCloseButton = true,
1458
+ ...props
1459
+ }) => {
1460
+ return /* @__PURE__ */ (0, import_jsx_runtime5.jsxs)(
1461
+ import_Dialog.default,
1462
+ {
1463
+ open,
1464
+ onClose,
1465
+ maxWidth: size,
1466
+ fullWidth: true,
1467
+ PaperProps: {
1468
+ sx: {
1469
+ borderRadius: "12px",
1470
+ boxShadow: "0px 4px 4px rgba(0, 0, 0, 0.25)"
1471
+ }
1472
+ },
1473
+ ...props,
1474
+ children: [
1475
+ (title || showCloseButton) && /* @__PURE__ */ (0, import_jsx_runtime5.jsxs)(
1476
+ import_DialogTitle.default,
1477
+ {
1478
+ sx: {
1479
+ display: "flex",
1480
+ alignItems: "center",
1481
+ justifyContent: title ? "space-between" : "flex-end",
1482
+ fontFamily: '"Public Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"',
1483
+ fontFeatureSettings: "'liga' off, 'clig' off",
1484
+ fontWeight: 600,
1485
+ fontSize: "1.25rem",
1486
+ lineHeight: "32px",
1487
+ letterSpacing: "0.15px",
1488
+ textAlign: "center",
1489
+ py: 2,
1490
+ px: 3
1491
+ },
1492
+ children: [
1493
+ title && /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(import_Box.default, { sx: { flex: 1 }, children: title }),
1494
+ showCloseButton && /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(
1495
+ import_IconButton.default,
1496
+ {
1497
+ "aria-label": "Cerrar",
1498
+ onClick: onClose,
1499
+ sx: {
1500
+ color: "text.secondary",
1501
+ ml: "auto"
1502
+ },
1503
+ children: /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(import_Close.default, {})
1504
+ }
1505
+ )
1506
+ ]
1507
+ }
1508
+ ),
1509
+ /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(
1510
+ import_DialogContent.default,
1511
+ {
1512
+ sx: {
1513
+ px: 3,
1514
+ py: 2
1515
+ },
1516
+ children
1517
+ }
1518
+ ),
1519
+ footer && /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(
1520
+ import_DialogActions.default,
1521
+ {
1522
+ sx: {
1523
+ px: 3,
1524
+ py: 2,
1525
+ gap: 1
1526
+ },
1527
+ children: footer
1528
+ }
1529
+ )
1530
+ ]
1531
+ }
1532
+ );
1533
+ };
1534
+ KdsModal.displayName = "KdsModal";
1535
+
1536
+ // src/components/core/KdsCard/KdsCard.tsx
1537
+ var import_react4 = require("react");
1538
+ var import_Card = __toESM(require("@mui/material/Card"));
1539
+ var import_CardHeader = __toESM(require("@mui/material/CardHeader"));
1540
+ var import_CardContent = __toESM(require("@mui/material/CardContent"));
1541
+ var import_CardActions = __toESM(require("@mui/material/CardActions"));
1542
+ var import_CardActionArea = __toESM(require("@mui/material/CardActionArea"));
1543
+ var import_jsx_runtime6 = require("react/jsx-runtime");
1544
+ var paddingMap = {
1545
+ none: "0",
1546
+ sm: "8px 16px",
1547
+ // Compact
1548
+ md: "10px 20px",
1549
+ // Figma default (bank selection cards)
1550
+ lg: "16px 20px"
1551
+ // Spacious
1552
+ };
1553
+ var KdsCard = (0, import_react4.forwardRef)(
1554
+ ({
1555
+ variant = "elevation",
1556
+ elevation = 1,
1557
+ padding,
1558
+ clickable = false,
1559
+ onCardClick,
1560
+ children,
1561
+ sx,
1562
+ ...props
1563
+ }, ref) => {
1564
+ const cardContent = clickable ? /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(import_CardActionArea.default, { onClick: onCardClick, children }) : children;
1565
+ return /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(
1566
+ import_Card.default,
1567
+ {
1568
+ ref,
1569
+ variant,
1570
+ elevation: variant === "elevation" ? elevation : 0,
1571
+ sx: {
1572
+ borderRadius: "6px",
1573
+ ...variant === "outlined" && {
1574
+ border: "1px solid rgba(0, 0, 0, 0.42)"
1575
+ },
1576
+ ...padding && {
1577
+ padding: paddingMap[padding]
1578
+ },
1579
+ ...sx
1580
+ },
1581
+ ...props,
1582
+ children: cardContent
1583
+ }
1584
+ );
1585
+ }
1586
+ );
1587
+ KdsCard.displayName = "KdsCard";
1588
+ var KdsCardHeader = (0, import_react4.forwardRef)(
1589
+ (props, ref) => {
1590
+ return /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(import_CardHeader.default, { ref, ...props });
1591
+ }
1592
+ );
1593
+ KdsCardHeader.displayName = "KdsCardHeader";
1594
+ var KdsCardContent = (0, import_react4.forwardRef)(
1595
+ (props, ref) => {
1596
+ return /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(import_CardContent.default, { ref, ...props });
1597
+ }
1598
+ );
1599
+ KdsCardContent.displayName = "KdsCardContent";
1600
+ var KdsCardActions = (0, import_react4.forwardRef)(
1601
+ (props, ref) => {
1602
+ return /* @__PURE__ */ (0, import_jsx_runtime6.jsx)(import_CardActions.default, { ref, ...props });
1603
+ }
1604
+ );
1605
+ KdsCardActions.displayName = "KdsCardActions";
1606
+
1607
+ // src/components/core/KdsSpinner/KdsSpinner.tsx
1608
+ var import_CircularProgress2 = __toESM(require("@mui/material/CircularProgress"));
1609
+ var import_Box2 = __toESM(require("@mui/material/Box"));
1610
+ var import_jsx_runtime7 = require("react/jsx-runtime");
1611
+ var sizeMap = {
1612
+ small: 20,
1613
+ medium: 40,
1614
+ large: 60
1615
+ };
1616
+ var KdsSpinner = ({
1617
+ size = "medium",
1618
+ color = "primary",
1619
+ customSize,
1620
+ label = "Cargando...",
1621
+ sx,
1622
+ ...props
1623
+ }) => {
1624
+ const spinnerSize = customSize || sizeMap[size];
1625
+ return /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(
1626
+ import_Box2.default,
1627
+ {
1628
+ sx: {
1629
+ display: "inline-flex",
1630
+ alignItems: "center",
1631
+ justifyContent: "center"
1632
+ },
1633
+ role: "progressbar",
1634
+ "aria-label": label,
1635
+ children: /* @__PURE__ */ (0, import_jsx_runtime7.jsx)(
1636
+ import_CircularProgress2.default,
1637
+ {
1638
+ size: spinnerSize,
1639
+ color,
1640
+ sx,
1641
+ ...props
1642
+ }
1643
+ )
1644
+ }
1645
+ );
1646
+ };
1647
+ KdsSpinner.displayName = "KdsSpinner";
1648
+
1649
+ // src/components/core/KdsLinearProgress/KdsLinearProgress.tsx
1650
+ var import_LinearProgress = __toESM(require("@mui/material/LinearProgress"));
1651
+ var import_jsx_runtime8 = require("react/jsx-runtime");
1652
+ var KdsLinearProgress = ({
1653
+ color = "info",
1654
+ variant = "indeterminate",
1655
+ value,
1656
+ sx,
1657
+ ...props
1658
+ }) => {
1659
+ return /* @__PURE__ */ (0, import_jsx_runtime8.jsx)(
1660
+ import_LinearProgress.default,
1661
+ {
1662
+ color,
1663
+ variant,
1664
+ value,
1665
+ sx: {
1666
+ height: 4,
1667
+ borderRadius: 0,
1668
+ backgroundColor: "rgba(3, 169, 244, 0.4)",
1669
+ "& .MuiLinearProgress-bar": {
1670
+ backgroundColor: "#03A9F4"
1671
+ },
1672
+ ...sx
1673
+ },
1674
+ ...props
1675
+ }
1676
+ );
1677
+ };
1678
+ KdsLinearProgress.displayName = "KdsLinearProgress";
1679
+
1680
+ // src/components/core/KdsAlert/KdsAlert.tsx
1681
+ var import_Alert = __toESM(require("@mui/material/Alert"));
1682
+ var import_AlertTitle = __toESM(require("@mui/material/AlertTitle"));
1683
+ var import_jsx_runtime9 = require("react/jsx-runtime");
1684
+ var KdsAlert = ({
1685
+ severity = "info",
1686
+ variant = "standard",
1687
+ title,
1688
+ children,
1689
+ onClose,
1690
+ sx,
1691
+ ...props
1692
+ }) => {
1693
+ return /* @__PURE__ */ (0, import_jsx_runtime9.jsxs)(
1694
+ import_Alert.default,
1695
+ {
1696
+ severity,
1697
+ variant,
1698
+ onClose,
1699
+ sx: {
1700
+ borderRadius: "4px",
1701
+ fontFamily: '"Public Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"',
1702
+ fontFeatureSettings: "'liga' off, 'clig' off",
1703
+ fontSize: "0.875rem",
1704
+ lineHeight: 1.43,
1705
+ letterSpacing: "0.17px",
1706
+ ...sx
1707
+ },
1708
+ ...props,
1709
+ children: [
1710
+ title && /* @__PURE__ */ (0, import_jsx_runtime9.jsx)(import_AlertTitle.default, { children: title }),
1711
+ children
1712
+ ]
1713
+ }
1714
+ );
1715
+ };
1716
+ KdsAlert.displayName = "KdsAlert";
1717
+
1718
+ // src/components/core/KdsTypography/KdsTypography.tsx
1719
+ var import_react5 = require("react");
1720
+ var import_Typography = __toESM(require("@mui/material/Typography"));
1721
+ var import_jsx_runtime10 = require("react/jsx-runtime");
1722
+ var colorMap = {
1723
+ primary: "#272930",
1724
+ // onSurface
1725
+ secondary: "rgba(0, 0, 0, 0.60)",
1726
+ tertiary: "#81848F",
1727
+ disabled: "#9797A5",
1728
+ error: "#D32F2F",
1729
+ success: "#2E7D32",
1730
+ info: "#0288D1",
1731
+ inherit: "inherit"
1732
+ };
1733
+ var fontFeatureSettings = "'liga' off, 'clig' off";
1734
+ var variantStyles = {
1735
+ // Display variants
1736
+ display1: {
1737
+ fontFamily: '"Public Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"',
1738
+ fontFeatureSettings,
1739
+ fontWeight: 700,
1740
+ fontSize: "2.5rem",
1741
+ // 40px
1742
+ lineHeight: 1.2,
1743
+ letterSpacing: "-0.01562em"
1744
+ },
1745
+ display2: {
1746
+ fontFamily: '"Public Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"',
1747
+ fontFeatureSettings,
1748
+ fontWeight: 700,
1749
+ fontSize: "2rem",
1750
+ // 32px
1751
+ lineHeight: 1.2,
1752
+ letterSpacing: "-0.00833em"
1753
+ },
1754
+ // Heading variants
1755
+ heading1: {
1756
+ fontFamily: '"Public Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"',
1757
+ fontFeatureSettings,
1758
+ fontWeight: 600,
1759
+ fontSize: "1.75rem",
1760
+ // 28px
1761
+ lineHeight: 1.2,
1762
+ letterSpacing: 0
1763
+ },
1764
+ heading2: {
1765
+ fontFamily: '"Public Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"',
1766
+ fontFeatureSettings,
1767
+ fontWeight: 600,
1768
+ fontSize: "1.5rem",
1769
+ // 24px
1770
+ lineHeight: 1.235,
1771
+ letterSpacing: "0.00735em"
1772
+ },
1773
+ heading3: {
1774
+ fontFamily: '"Public Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"',
1775
+ fontFeatureSettings,
1776
+ fontWeight: 600,
1777
+ fontSize: "1.25rem",
1778
+ // 20px
1779
+ lineHeight: "32px",
1780
+ letterSpacing: "0.15px"
1781
+ },
1782
+ // Body variants
1783
+ bodyLarge: {
1784
+ fontFamily: '"Public Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"',
1785
+ fontFeatureSettings,
1786
+ fontWeight: 400,
1787
+ fontSize: "1rem",
1788
+ // 16px
1789
+ lineHeight: 1.5,
1790
+ letterSpacing: "0.15px"
1791
+ },
1792
+ body: {
1793
+ fontFamily: '"Public Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"',
1794
+ fontFeatureSettings,
1795
+ fontWeight: 400,
1796
+ fontSize: "0.875rem",
1797
+ // 14px
1798
+ lineHeight: 1.43,
1799
+ letterSpacing: "0.17px"
1800
+ },
1801
+ bodySmall: {
1802
+ fontFamily: '"Public Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"',
1803
+ fontFeatureSettings,
1804
+ fontWeight: 400,
1805
+ fontSize: "0.75rem",
1806
+ // 12px
1807
+ lineHeight: 1.66,
1808
+ letterSpacing: "0.4px"
1809
+ },
1810
+ // Label variants
1811
+ label: {
1812
+ fontFamily: '"Public Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"',
1813
+ fontFeatureSettings,
1814
+ fontWeight: 400,
1815
+ fontSize: "0.75rem",
1816
+ // 12px
1817
+ lineHeight: "15px",
1818
+ letterSpacing: "1px",
1819
+ textTransform: "uppercase"
1820
+ },
1821
+ labelSmall: {
1822
+ fontFamily: '"Public Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"',
1823
+ fontFeatureSettings,
1824
+ fontWeight: 500,
1825
+ fontSize: "0.625rem",
1826
+ // 10px
1827
+ lineHeight: "14px",
1828
+ letterSpacing: 0
1829
+ },
1830
+ // Card variants
1831
+ cardTitle: {
1832
+ fontFamily: '"Public Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"',
1833
+ fontFeatureSettings,
1834
+ fontWeight: 600,
1835
+ fontSize: "1rem",
1836
+ // 16px
1837
+ lineHeight: "24px",
1838
+ letterSpacing: "0.15px"
1839
+ },
1840
+ cardSubtitle: {
1841
+ fontFamily: '"Public Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"',
1842
+ fontFeatureSettings,
1843
+ fontWeight: 600,
1844
+ fontSize: "0.875rem",
1845
+ // 14px
1846
+ lineHeight: "20px",
1847
+ letterSpacing: "0.15px"
1848
+ },
1849
+ // Semantic variants
1850
+ muted: {
1851
+ fontFamily: '"Public Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"',
1852
+ fontFeatureSettings,
1853
+ fontWeight: 400,
1854
+ fontSize: "0.875rem",
1855
+ // 14px
1856
+ lineHeight: 1.43,
1857
+ letterSpacing: "0.17px",
1858
+ color: "#81848F"
1859
+ },
1860
+ link: {
1861
+ fontFamily: '"Public Sans", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"',
1862
+ fontFeatureSettings,
1863
+ fontWeight: 400,
1864
+ fontSize: "0.875rem",
1865
+ // 14px
1866
+ lineHeight: 1.43,
1867
+ letterSpacing: "0.17px",
1868
+ color: "#0288D1",
1869
+ textDecoration: "none",
1870
+ cursor: "pointer",
1871
+ "&:hover": {
1872
+ textDecoration: "underline"
1873
+ }
1874
+ }
1875
+ };
1876
+ var muiVariantMap = {
1877
+ display1: "h1",
1878
+ display2: "h2",
1879
+ heading1: "h3",
1880
+ heading2: "h4",
1881
+ heading3: "h6",
1882
+ bodyLarge: "body1",
1883
+ body: "body2",
1884
+ bodySmall: "caption",
1885
+ label: "overline",
1886
+ labelSmall: "caption",
1887
+ cardTitle: "subtitle1",
1888
+ cardSubtitle: "subtitle2",
1889
+ muted: "body2",
1890
+ link: "body2"
1891
+ };
1892
+ var isKhipuVariant = (variant) => {
1893
+ return variant in variantStyles;
1894
+ };
1895
+ var KdsTypography = (0, import_react5.forwardRef)(
1896
+ ({ variant = "body", color = "primary", truncate, maxLines, sx, ...props }, ref) => {
1897
+ const isCustomVariant = typeof variant === "string" && isKhipuVariant(variant);
1898
+ const combinedSx = [
1899
+ // Apply custom variant styles if it's a Khipu variant
1900
+ isCustomVariant ? variantStyles[variant] : {},
1901
+ // Apply color (unless it's muted or link which have built-in colors)
1902
+ isCustomVariant && variant !== "muted" && variant !== "link" && color ? { color: colorMap[color] || color } : {},
1903
+ // Truncation styles
1904
+ truncate ? {
1905
+ overflow: "hidden",
1906
+ textOverflow: "ellipsis",
1907
+ ...maxLines ? {
1908
+ display: "-webkit-box",
1909
+ WebkitLineClamp: maxLines,
1910
+ WebkitBoxOrient: "vertical"
1911
+ } : {
1912
+ whiteSpace: "nowrap"
1913
+ }
1914
+ } : {},
1915
+ // User-provided sx
1916
+ ...Array.isArray(sx) ? sx : [sx]
1917
+ ];
1918
+ return /* @__PURE__ */ (0, import_jsx_runtime10.jsx)(
1919
+ import_Typography.default,
1920
+ {
1921
+ ref,
1922
+ variant: isCustomVariant ? muiVariantMap[variant] : variant,
1923
+ sx: combinedSx,
1924
+ ...props
1925
+ }
1926
+ );
1927
+ }
1928
+ );
1929
+ KdsTypography.displayName = "KdsTypography";
1930
+
1931
+ // src/components/core/KdsTabs/KdsTabs.tsx
1932
+ var import_react6 = require("react");
1933
+ var import_Tabs = __toESM(require("@mui/material/Tabs"));
1934
+ var import_Tab = __toESM(require("@mui/material/Tab"));
1935
+ var import_Box3 = __toESM(require("@mui/material/Box"));
1936
+ var import_jsx_runtime11 = require("react/jsx-runtime");
1937
+ var TabsContext = (0, import_react6.createContext)(null);
1938
+ var KdsTab = (0, import_react6.forwardRef)(
1939
+ ({ label, value, icon, disabled = false, sx, ...props }, ref) => {
1940
+ return /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(
1941
+ import_Tab.default,
1942
+ {
1943
+ ref,
1944
+ label,
1945
+ value,
1946
+ icon,
1947
+ disabled,
1948
+ sx: {
1949
+ fontFamily: fontFamilies.secondary,
1950
+ fontWeight: fontWeights.medium,
1951
+ fontSize: "14px",
1952
+ lineHeight: "24px",
1953
+ letterSpacing: "0.4px",
1954
+ textTransform: "uppercase",
1955
+ minHeight: "42px",
1956
+ padding: "9px 16px",
1957
+ flex: 1,
1958
+ maxWidth: "none",
1959
+ "&.Mui-selected": {
1960
+ color: colors.info.main
1961
+ },
1962
+ "&:not(.Mui-selected)": {
1963
+ color: colors.text.secondary
1964
+ },
1965
+ ...sx
1966
+ },
1967
+ ...props
1968
+ }
1969
+ );
1970
+ }
1971
+ );
1972
+ KdsTab.displayName = "KdsTab";
1973
+ var KdsTabPanel = (0, import_react6.forwardRef)(
1974
+ ({ value, selectedValue, children, sx, ...props }, ref) => {
1975
+ const isSelected = value === selectedValue;
1976
+ if (!isSelected) {
1977
+ return null;
1978
+ }
1979
+ return /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(
1980
+ import_Box3.default,
1981
+ {
1982
+ ref,
1983
+ role: "tabpanel",
1984
+ id: `tabpanel-${value}`,
1985
+ "aria-labelledby": `tab-${value}`,
1986
+ sx: {
1987
+ width: "100%",
1988
+ ...sx
1989
+ },
1990
+ ...props,
1991
+ children
1992
+ }
1993
+ );
1994
+ }
1995
+ );
1996
+ KdsTabPanel.displayName = "KdsTabPanel";
1997
+ var KdsTabs = (0, import_react6.forwardRef)(
1998
+ ({
1999
+ value,
2000
+ onChange,
2001
+ color = "info",
2002
+ variant = "fullWidth",
2003
+ children,
2004
+ sx,
2005
+ ...props
2006
+ }, ref) => {
2007
+ const indicatorColor = color === "info" ? colors.info.main : color === "primary" ? colors.primary.main : colors.secondary.main;
2008
+ return /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(TabsContext.Provider, { value: { value, onChange }, children: /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(
2009
+ import_Tabs.default,
2010
+ {
2011
+ ref,
2012
+ value,
2013
+ onChange,
2014
+ variant,
2015
+ textColor: "inherit",
2016
+ TabIndicatorProps: {
2017
+ sx: {
2018
+ backgroundColor: indicatorColor,
2019
+ height: "2px"
2020
+ }
2021
+ },
2022
+ sx: {
2023
+ width: "100%",
2024
+ minHeight: "42px",
2025
+ "& .MuiTabs-flexContainer": {
2026
+ width: "100%"
2027
+ },
2028
+ ...sx
2029
+ },
2030
+ ...props,
2031
+ children
2032
+ }
2033
+ ) });
2034
+ }
2035
+ );
2036
+ KdsTabs.displayName = "KdsTabs";
2037
+
2038
+ // src/components/core/KdsLogoHeader/KdsLogoHeader.tsx
2039
+ var import_react7 = require("react");
2040
+ var import_Box4 = __toESM(require("@mui/material/Box"));
2041
+ var import_IconButton2 = __toESM(require("@mui/material/IconButton"));
2042
+ var import_Close2 = __toESM(require("@mui/icons-material/Close"));
2043
+
2044
+ // src/assets/images/khipu-logo-color.svg
2045
+ var khipu_logo_color_default = "./khipu-logo-color-TV75AKOV.svg";
2046
+
2047
+ // src/components/core/KdsLogoHeader/KdsLogoHeader.tsx
2048
+ var import_jsx_runtime12 = require("react/jsx-runtime");
2049
+ var KhipuLogo = () => /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(
2050
+ import_Box4.default,
2051
+ {
2052
+ component: "img",
2053
+ src: khipu_logo_color_default,
2054
+ alt: "Khipu",
2055
+ sx: {
2056
+ height: "15px",
2057
+ maxHeight: "15px",
2058
+ width: "auto",
2059
+ maxWidth: "50px",
2060
+ objectFit: "contain"
2061
+ }
2062
+ }
2063
+ );
2064
+ var KdsLogoHeaderLogo = (0, import_react7.forwardRef)(
2065
+ ({ children, sx, ...props }, ref) => {
2066
+ return /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(
2067
+ import_Box4.default,
2068
+ {
2069
+ ref,
2070
+ sx: {
2071
+ display: "flex",
2072
+ alignItems: "center",
2073
+ height: "15px",
2074
+ overflow: "hidden",
2075
+ ...sx
2076
+ },
2077
+ ...props,
2078
+ children: children || /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(KhipuLogo, {})
2079
+ }
2080
+ );
2081
+ }
2082
+ );
2083
+ KdsLogoHeaderLogo.displayName = "KdsLogoHeaderLogo";
2084
+ var KdsLogoHeaderSeparator = (0, import_react7.forwardRef)(
2085
+ ({ children = "|", sx, ...props }, ref) => {
2086
+ return /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(
2087
+ import_Box4.default,
2088
+ {
2089
+ ref,
2090
+ component: "span",
2091
+ sx: {
2092
+ fontFamily: fontFamilies.secondary,
2093
+ fontWeight: fontWeights.medium,
2094
+ fontSize: "10px",
2095
+ lineHeight: "14px",
2096
+ color: "#9797A5",
2097
+ ...sx
2098
+ },
2099
+ ...props,
2100
+ children
2101
+ }
2102
+ );
2103
+ }
2104
+ );
2105
+ KdsLogoHeaderSeparator.displayName = "KdsLogoHeaderSeparator";
2106
+ var KdsLogoHeaderCode = (0, import_react7.forwardRef)(
2107
+ ({ children, sx, ...props }, ref) => {
2108
+ return /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(
2109
+ import_Box4.default,
2110
+ {
2111
+ ref,
2112
+ component: "span",
2113
+ sx: {
2114
+ fontFamily: fontFamilies.primary,
2115
+ fontWeight: fontWeights.medium,
2116
+ fontSize: "9px",
2117
+ lineHeight: "14px",
2118
+ color: "#9797A5",
2119
+ whiteSpace: "nowrap",
2120
+ ...sx
2121
+ },
2122
+ ...props,
2123
+ children
2124
+ }
2125
+ );
2126
+ }
2127
+ );
2128
+ KdsLogoHeaderCode.displayName = "KdsLogoHeaderCode";
2129
+ var KdsLogoHeaderCloseButton = (0, import_react7.forwardRef)(
2130
+ ({ onClose, sx, ...props }, ref) => {
2131
+ return /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(
2132
+ import_Box4.default,
2133
+ {
2134
+ sx: {
2135
+ flex: 1,
2136
+ display: "flex",
2137
+ justifyContent: "flex-end"
2138
+ },
2139
+ children: /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(
2140
+ import_IconButton2.default,
2141
+ {
2142
+ ref,
2143
+ onClick: onClose,
2144
+ size: "small",
2145
+ "aria-label": "close",
2146
+ sx: {
2147
+ color: colors.action.active,
2148
+ padding: 0,
2149
+ "&:hover": {
2150
+ backgroundColor: colors.action.hover
2151
+ },
2152
+ ...sx
2153
+ },
2154
+ ...props,
2155
+ children: /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(import_Close2.default, { sx: { fontSize: 24 } })
2156
+ }
2157
+ )
2158
+ }
2159
+ );
2160
+ }
2161
+ );
2162
+ KdsLogoHeaderCloseButton.displayName = "KdsLogoHeaderCloseButton";
2163
+ var KdsLogoHeader = (0, import_react7.forwardRef)(
2164
+ ({ children, sx, ...props }, ref) => {
2165
+ return /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(
2166
+ import_Box4.default,
2167
+ {
2168
+ ref,
2169
+ sx: {
2170
+ display: "flex",
2171
+ alignItems: "center",
2172
+ gap: spacing[2],
2173
+ paddingX: semanticSpacing.card.paddingX,
2174
+ paddingY: semanticSpacing.card.paddingY,
2175
+ backgroundColor: colors.background.default,
2176
+ ...sx
2177
+ },
2178
+ ...props,
2179
+ children
2180
+ }
2181
+ );
2182
+ }
2183
+ );
2184
+ KdsLogoHeader.displayName = "KdsLogoHeader";
2185
+
2186
+ // src/index.ts
2187
+ var import_Box5 = __toESM(require("@mui/material/Box"));
2188
+ var import_InputAdornment2 = __toESM(require("@mui/material/InputAdornment"));
2189
+ var import_Divider = __toESM(require("@mui/material/Divider"));
2190
+ var import_Link = __toESM(require("@mui/material/Link"));
2191
+ var import_IconButton3 = __toESM(require("@mui/material/IconButton"));
2192
+ var import_Stack = __toESM(require("@mui/material/Stack"));
2193
+ var import_Grid = __toESM(require("@mui/material/Grid"));
2194
+ var import_Container = __toESM(require("@mui/material/Container"));
2195
+ var import_Search = __toESM(require("@mui/icons-material/Search"));
2196
+ var import_ChevronRight = __toESM(require("@mui/icons-material/ChevronRight"));
2197
+ var import_ChevronLeft = __toESM(require("@mui/icons-material/ChevronLeft"));
2198
+ var import_Close3 = __toESM(require("@mui/icons-material/Close"));
2199
+ var import_Check = __toESM(require("@mui/icons-material/Check"));
2200
+ var import_CheckCircle = __toESM(require("@mui/icons-material/CheckCircle"));
2201
+ var import_Person = __toESM(require("@mui/icons-material/Person"));
2202
+ var import_Lock = __toESM(require("@mui/icons-material/Lock"));
2203
+ var import_LockOutlined = __toESM(require("@mui/icons-material/LockOutlined"));
2204
+ var import_MailOutline = __toESM(require("@mui/icons-material/MailOutline"));
2205
+ var import_ExpandMore = __toESM(require("@mui/icons-material/ExpandMore"));
2206
+ var import_ExpandLess = __toESM(require("@mui/icons-material/ExpandLess"));
2207
+ var import_Info = __toESM(require("@mui/icons-material/Info"));
2208
+ var import_Warning = __toESM(require("@mui/icons-material/Warning"));
2209
+ var import_Error = __toESM(require("@mui/icons-material/Error"));
2210
+ var import_Visibility = __toESM(require("@mui/icons-material/Visibility"));
2211
+ var import_VisibilityOff = __toESM(require("@mui/icons-material/VisibilityOff"));
2212
+ // Annotate the CommonJS export names for ESM import in node:
2213
+ 0 && (module.exports = {
2214
+ Box,
2215
+ CheckCircleIcon,
2216
+ CheckIcon,
2217
+ ChevronLeftIcon,
2218
+ ChevronRightIcon,
2219
+ CloseIcon,
2220
+ Container,
2221
+ Divider,
2222
+ ErrorIcon,
2223
+ ExpandLessIcon,
2224
+ ExpandMoreIcon,
2225
+ Grid,
2226
+ IconButton,
2227
+ InfoIcon,
2228
+ InputAdornment,
2229
+ KdsAlert,
2230
+ KdsButton,
2231
+ KdsCard,
2232
+ KdsCardActions,
2233
+ KdsCardContent,
2234
+ KdsCardHeader,
2235
+ KdsCheckbox,
2236
+ KdsLinearProgress,
2237
+ KdsLogoHeader,
2238
+ KdsLogoHeaderCloseButton,
2239
+ KdsLogoHeaderCode,
2240
+ KdsLogoHeaderLogo,
2241
+ KdsLogoHeaderSeparator,
2242
+ KdsModal,
2243
+ KdsSpinner,
2244
+ KdsTab,
2245
+ KdsTabPanel,
2246
+ KdsTabs,
2247
+ KdsTextField,
2248
+ KdsTypography,
2249
+ KhipuThemeProvider,
2250
+ Link,
2251
+ LockIcon,
2252
+ LockOutlinedIcon,
2253
+ MailOutlineIcon,
2254
+ PersonIcon,
2255
+ SearchIcon,
2256
+ Stack,
2257
+ VisibilityIcon,
2258
+ VisibilityOffIcon,
2259
+ WarningIcon,
2260
+ borderRadius,
2261
+ breakpoints,
2262
+ colors,
2263
+ fontFamilies,
2264
+ fontSizes,
2265
+ fontWeights,
2266
+ khipuTheme,
2267
+ letterSpacings,
2268
+ lineHeights,
2269
+ semanticSpacing,
2270
+ shadows,
2271
+ spacing,
2272
+ tokens,
2273
+ transitions,
2274
+ typography,
2275
+ zIndex
2276
+ });