@khipu/design-system 0.2.0-alpha.8 → 0.2.0-alpha.81
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/beercss/khipu-beercss.css +1334 -150
- package/dist/beercss/khipu-beercss.js +17 -7
- package/dist/beercss/khipu-beercss.min.css +1 -1
- package/dist/beercss/khipu-beercss.min.js +1 -1
- package/dist/beercss/khipu-beercss.scoped.css +8203 -0
- package/dist/beercss/khipu-beercss.scoped.min.css +1 -0
- package/dist/beercss/metadata.json +8 -4
- package/dist/index.d.mts +840 -265
- package/dist/index.d.ts +840 -265
- package/dist/index.js +1191 -510
- package/dist/index.mjs +1185 -509
- package/package.json +12 -9
- package/dist/khipu-logo-color-TV75AKOV.svg +0 -19
package/dist/index.js
CHANGED
|
@@ -37,6 +37,8 @@ __export(index_exports, {
|
|
|
37
37
|
KdsBankList: () => KdsBankList,
|
|
38
38
|
KdsBankModal: () => KdsBankModal,
|
|
39
39
|
KdsBankRow: () => KdsBankRow,
|
|
40
|
+
KdsBillAttachment: () => KdsBillAttachment,
|
|
41
|
+
KdsBillAttachments: () => KdsBillAttachments,
|
|
40
42
|
KdsBottomSheet: () => KdsBottomSheet,
|
|
41
43
|
KdsButton: () => KdsButton,
|
|
42
44
|
KdsCard: () => KdsCard,
|
|
@@ -47,24 +49,25 @@ __export(index_exports, {
|
|
|
47
49
|
KdsCardSelector: () => KdsCardSelector,
|
|
48
50
|
KdsCheckbox: () => KdsCheckbox,
|
|
49
51
|
KdsChip: () => KdsChip,
|
|
52
|
+
KdsCopyButton: () => KdsCopyButton,
|
|
50
53
|
KdsCopyRow: () => KdsCopyRow,
|
|
51
54
|
KdsCopyableTable: () => KdsCopyableTable,
|
|
52
55
|
KdsCountdown: () => KdsCountdown,
|
|
53
56
|
KdsDivider: () => KdsDivider,
|
|
54
57
|
KdsExpandPanel: () => KdsExpandPanel,
|
|
58
|
+
KdsInvoiceMerchant: () => KdsInvoiceMerchant,
|
|
55
59
|
KdsInvoiceSticky: () => KdsInvoiceSticky,
|
|
56
60
|
KdsLinearProgress: () => KdsLinearProgress,
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
KdsLogoHeaderLogo: () => KdsLogoHeaderLogo,
|
|
61
|
-
KdsLogoHeaderSeparator: () => KdsLogoHeaderSeparator,
|
|
62
|
-
KdsModal: () => KdsModal,
|
|
61
|
+
KdsMerchantTile: () => KdsMerchantTile,
|
|
62
|
+
KdsMontoRow: () => KdsMontoRow,
|
|
63
|
+
KdsPaymentTotal: () => KdsPaymentTotal,
|
|
63
64
|
KdsQrRow: () => KdsQrRow,
|
|
64
65
|
KdsRadioGroup: () => KdsRadioGroup,
|
|
65
66
|
KdsRecapList: () => KdsRecapList,
|
|
67
|
+
KdsSearchField: () => KdsSearchField,
|
|
66
68
|
KdsSectionNote: () => KdsSectionNote,
|
|
67
69
|
KdsSecureFooter: () => KdsSecureFooter,
|
|
70
|
+
KdsSecureLoader: () => KdsSecureLoader,
|
|
68
71
|
KdsSegmentedTabs: () => KdsSegmentedTabs,
|
|
69
72
|
KdsSelect: () => KdsSelect,
|
|
70
73
|
KdsSnackbar: () => KdsSnackbar,
|
|
@@ -100,6 +103,8 @@ __export(index_exports, {
|
|
|
100
103
|
useAutoHide: () => useAutoHide,
|
|
101
104
|
useCopyToClipboard: () => useCopyToClipboard,
|
|
102
105
|
useCountdown: () => useCountdown,
|
|
106
|
+
useExpandToggle: () => useExpandToggle,
|
|
107
|
+
useStickyInvoiceCollapse: () => useStickyInvoiceCollapse,
|
|
103
108
|
useTabsKeyboard: () => useTabsKeyboard,
|
|
104
109
|
zIndex: () => zIndex
|
|
105
110
|
});
|
|
@@ -454,6 +459,8 @@ var semanticColors = {
|
|
|
454
459
|
// From Figma: warning/light
|
|
455
460
|
dark: "#E65100",
|
|
456
461
|
// From Figma: warning/dark
|
|
462
|
+
warm: "#8A6D1A",
|
|
463
|
+
// Warm/olive variant for header icons (LigoPay handoff v2)
|
|
457
464
|
container: "#FFFBEB",
|
|
458
465
|
// Light amber background for chips/badges
|
|
459
466
|
contrastText: "#FFFFFF"
|
|
@@ -472,6 +479,8 @@ var semanticColors = {
|
|
|
472
479
|
main: "#0288D1",
|
|
473
480
|
light: "#03A9F4",
|
|
474
481
|
dark: "#01579B",
|
|
482
|
+
blue: "#5A5FE0",
|
|
483
|
+
// Khipu-blue / LigoPay informational blue (distinct from cyan main)
|
|
475
484
|
container: "#EFF6FF",
|
|
476
485
|
// Light blue background for chips/badges
|
|
477
486
|
contrastText: "#FFFFFF"
|
|
@@ -514,8 +523,10 @@ var fontSizes = {
|
|
|
514
523
|
// 24px
|
|
515
524
|
"3xl": "1.875rem",
|
|
516
525
|
// 30px
|
|
517
|
-
"4xl": "2.25rem"
|
|
526
|
+
"4xl": "2.25rem",
|
|
518
527
|
// 36px
|
|
528
|
+
decimalSup: "0.5em"
|
|
529
|
+
// Relative size for decimal superscript in amount displays
|
|
519
530
|
};
|
|
520
531
|
var lineHeights = {
|
|
521
532
|
tight: 1.2,
|
|
@@ -1147,7 +1158,7 @@ var KdsButton = (0, import_react.forwardRef)(
|
|
|
1147
1158
|
children: [
|
|
1148
1159
|
!loading && startIcon && /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("span", { className: "kds-icon", children: /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("i", { className: "material-symbols-outlined", children: startIcon }) }),
|
|
1149
1160
|
loading ? /* @__PURE__ */ (0, import_jsx_runtime2.jsxs)(import_jsx_runtime2.Fragment, { children: [
|
|
1150
|
-
/* @__PURE__ */ (0, import_jsx_runtime2.jsx)("
|
|
1161
|
+
/* @__PURE__ */ (0, import_jsx_runtime2.jsx)("progress", { className: "circle indeterminate small" }),
|
|
1151
1162
|
/* @__PURE__ */ (0, import_jsx_runtime2.jsx)("span", { children })
|
|
1152
1163
|
] }) : /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("span", { children }),
|
|
1153
1164
|
!loading && endIcon && /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("span", { className: "kds-icon", children: /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("i", { className: "material-symbols-outlined", children: endIcon }) })
|
|
@@ -1166,14 +1177,31 @@ var KdsTextField = (0, import_react2.forwardRef)(
|
|
|
1166
1177
|
helperText,
|
|
1167
1178
|
error,
|
|
1168
1179
|
fullWidth = true,
|
|
1180
|
+
narrow = false,
|
|
1169
1181
|
readOnly,
|
|
1170
1182
|
startIcon,
|
|
1171
1183
|
endIcon,
|
|
1184
|
+
required,
|
|
1172
1185
|
className,
|
|
1173
1186
|
id,
|
|
1187
|
+
type,
|
|
1188
|
+
revealable,
|
|
1189
|
+
revealLabel = "Mostrar u ocultar contrase\xF1a",
|
|
1190
|
+
requiredMark = true,
|
|
1174
1191
|
...props
|
|
1175
1192
|
}, ref) => {
|
|
1193
|
+
const [revealed, setRevealed] = (0, import_react2.useState)(false);
|
|
1176
1194
|
const fieldId = id || `kds-field-${label.toLowerCase().replace(/\s+/g, "-")}`;
|
|
1195
|
+
const isRevealable = !!revealable && !readOnly && !props.disabled;
|
|
1196
|
+
const inputType = isRevealable ? revealed ? "text" : "password" : type;
|
|
1197
|
+
const hasSuffix = !!endIcon || readOnly || isRevealable;
|
|
1198
|
+
const toggleReveal = () => setRevealed((v) => !v);
|
|
1199
|
+
const onToggleKeyDown = (e) => {
|
|
1200
|
+
if (e.key === "Enter" || e.key === " ") {
|
|
1201
|
+
e.preventDefault();
|
|
1202
|
+
toggleReveal();
|
|
1203
|
+
}
|
|
1204
|
+
};
|
|
1177
1205
|
return /* @__PURE__ */ (0, import_jsx_runtime3.jsxs)(
|
|
1178
1206
|
"div",
|
|
1179
1207
|
{
|
|
@@ -1181,9 +1209,12 @@ var KdsTextField = (0, import_react2.forwardRef)(
|
|
|
1181
1209
|
"field",
|
|
1182
1210
|
"label",
|
|
1183
1211
|
"border",
|
|
1212
|
+
startIcon && "prefix",
|
|
1213
|
+
hasSuffix && "suffix",
|
|
1184
1214
|
error && "invalid",
|
|
1185
1215
|
readOnly && "locked",
|
|
1186
|
-
fullWidth && "kds-w-full",
|
|
1216
|
+
fullWidth && !narrow && "kds-w-full",
|
|
1217
|
+
narrow && "kds-field--narrow",
|
|
1187
1218
|
className
|
|
1188
1219
|
),
|
|
1189
1220
|
children: [
|
|
@@ -1193,14 +1224,32 @@ var KdsTextField = (0, import_react2.forwardRef)(
|
|
|
1193
1224
|
{
|
|
1194
1225
|
ref,
|
|
1195
1226
|
id: fieldId,
|
|
1196
|
-
|
|
1227
|
+
type: inputType,
|
|
1197
1228
|
readOnly,
|
|
1198
|
-
|
|
1229
|
+
required,
|
|
1230
|
+
...props,
|
|
1231
|
+
placeholder: " "
|
|
1199
1232
|
}
|
|
1200
1233
|
),
|
|
1201
|
-
/* @__PURE__ */ (0, import_jsx_runtime3.
|
|
1234
|
+
/* @__PURE__ */ (0, import_jsx_runtime3.jsxs)("label", { htmlFor: fieldId, children: [
|
|
1235
|
+
label,
|
|
1236
|
+
required && requiredMark && " *"
|
|
1237
|
+
] }),
|
|
1202
1238
|
readOnly && /* @__PURE__ */ (0, import_jsx_runtime3.jsx)("i", { className: "material-symbols-outlined", children: "lock" }),
|
|
1203
|
-
|
|
1239
|
+
isRevealable && /* @__PURE__ */ (0, import_jsx_runtime3.jsx)(
|
|
1240
|
+
"a",
|
|
1241
|
+
{
|
|
1242
|
+
className: "kds-field-reveal",
|
|
1243
|
+
role: "button",
|
|
1244
|
+
tabIndex: 0,
|
|
1245
|
+
"aria-label": revealLabel,
|
|
1246
|
+
"aria-pressed": revealed,
|
|
1247
|
+
onClick: toggleReveal,
|
|
1248
|
+
onKeyDown: onToggleKeyDown,
|
|
1249
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime3.jsx)("i", { className: "material-symbols-outlined", "aria-hidden": "true", children: revealed ? "visibility" : "visibility_off" })
|
|
1250
|
+
}
|
|
1251
|
+
),
|
|
1252
|
+
endIcon && !readOnly && !isRevealable && /* @__PURE__ */ (0, import_jsx_runtime3.jsx)("i", { className: "material-symbols-outlined", children: endIcon }),
|
|
1204
1253
|
helperText && /* @__PURE__ */ (0, import_jsx_runtime3.jsx)("span", { className: "helper", children: helperText })
|
|
1205
1254
|
]
|
|
1206
1255
|
}
|
|
@@ -1209,76 +1258,41 @@ var KdsTextField = (0, import_react2.forwardRef)(
|
|
|
1209
1258
|
);
|
|
1210
1259
|
KdsTextField.displayName = "KdsTextField";
|
|
1211
1260
|
|
|
1212
|
-
// src/components/core/
|
|
1261
|
+
// src/components/core/KdsSearchField/KdsSearchField.tsx
|
|
1213
1262
|
var import_react3 = require("react");
|
|
1214
1263
|
var import_jsx_runtime4 = require("react/jsx-runtime");
|
|
1215
|
-
var
|
|
1216
|
-
({
|
|
1217
|
-
const
|
|
1218
|
-
|
|
1219
|
-
|
|
1220
|
-
|
|
1264
|
+
var KdsSearchField = (0, import_react3.forwardRef)(
|
|
1265
|
+
({ className, withIcon = false, ...props }, ref) => {
|
|
1266
|
+
const input = /* @__PURE__ */ (0, import_jsx_runtime4.jsx)(
|
|
1267
|
+
"input",
|
|
1268
|
+
{
|
|
1269
|
+
ref,
|
|
1270
|
+
type: "search",
|
|
1271
|
+
className: (0, import_clsx.clsx)("kds-search-field", className),
|
|
1272
|
+
...props
|
|
1273
|
+
}
|
|
1274
|
+
);
|
|
1275
|
+
if (!withIcon) {
|
|
1276
|
+
return input;
|
|
1277
|
+
}
|
|
1278
|
+
return /* @__PURE__ */ (0, import_jsx_runtime4.jsxs)("div", { className: "kds-search-field-wrapper", children: [
|
|
1279
|
+
/* @__PURE__ */ (0, import_jsx_runtime4.jsx)("i", { className: "material-symbols-outlined kds-search-field-icon", "aria-hidden": "true", children: "search" }),
|
|
1280
|
+
input
|
|
1221
1281
|
] });
|
|
1222
1282
|
}
|
|
1223
1283
|
);
|
|
1224
|
-
|
|
1284
|
+
KdsSearchField.displayName = "KdsSearchField";
|
|
1225
1285
|
|
|
1226
|
-
// src/components/core/
|
|
1286
|
+
// src/components/core/KdsCheckbox/KdsCheckbox.tsx
|
|
1227
1287
|
var import_react4 = require("react");
|
|
1228
|
-
var Dialog = __toESM(require("@radix-ui/react-dialog"));
|
|
1229
1288
|
var import_jsx_runtime5 = require("react/jsx-runtime");
|
|
1230
|
-
var
|
|
1231
|
-
({
|
|
1232
|
-
|
|
1233
|
-
|
|
1234
|
-
|
|
1235
|
-
description,
|
|
1236
|
-
footer,
|
|
1237
|
-
children,
|
|
1238
|
-
size = "md",
|
|
1239
|
-
showCloseButton = true,
|
|
1240
|
-
className
|
|
1241
|
-
}, ref) => /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(
|
|
1242
|
-
Dialog.Root,
|
|
1243
|
-
{
|
|
1244
|
-
open,
|
|
1245
|
-
onOpenChange: (o) => {
|
|
1246
|
-
if (!o) onClose();
|
|
1247
|
-
},
|
|
1248
|
-
children: /* @__PURE__ */ (0, import_jsx_runtime5.jsxs)(Dialog.Portal, { children: [
|
|
1249
|
-
/* @__PURE__ */ (0, import_jsx_runtime5.jsx)(Dialog.Overlay, { className: "kds-bottom-sheet-scrim" }),
|
|
1250
|
-
/* @__PURE__ */ (0, import_jsx_runtime5.jsxs)(
|
|
1251
|
-
Dialog.Content,
|
|
1252
|
-
{
|
|
1253
|
-
ref,
|
|
1254
|
-
className: (0, import_clsx.clsx)(
|
|
1255
|
-
"kds-bottom-sheet",
|
|
1256
|
-
`kds-bottom-sheet-${size}`,
|
|
1257
|
-
className
|
|
1258
|
-
),
|
|
1259
|
-
children: [
|
|
1260
|
-
title && /* @__PURE__ */ (0, import_jsx_runtime5.jsxs)("div", { className: "kds-bottom-sheet-header", children: [
|
|
1261
|
-
/* @__PURE__ */ (0, import_jsx_runtime5.jsx)(Dialog.Title, { className: "kds-bottom-sheet-title", children: title }),
|
|
1262
|
-
showCloseButton && /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(Dialog.Close, { asChild: true, children: /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(
|
|
1263
|
-
"button",
|
|
1264
|
-
{
|
|
1265
|
-
className: "kds-bottom-sheet-close",
|
|
1266
|
-
"aria-label": "Cerrar",
|
|
1267
|
-
children: /* @__PURE__ */ (0, import_jsx_runtime5.jsx)("i", { className: "material-symbols-outlined", children: "close" })
|
|
1268
|
-
}
|
|
1269
|
-
) })
|
|
1270
|
-
] }),
|
|
1271
|
-
description && /* @__PURE__ */ (0, import_jsx_runtime5.jsx)(Dialog.Description, { className: "kds-bottom-sheet-description", children: description }),
|
|
1272
|
-
/* @__PURE__ */ (0, import_jsx_runtime5.jsx)("div", { className: "kds-bottom-sheet-body", children }),
|
|
1273
|
-
footer && /* @__PURE__ */ (0, import_jsx_runtime5.jsx)("div", { className: "kds-bottom-sheet-actions", children: footer })
|
|
1274
|
-
]
|
|
1275
|
-
}
|
|
1276
|
-
)
|
|
1277
|
-
] })
|
|
1278
|
-
}
|
|
1279
|
-
)
|
|
1289
|
+
var KdsCheckbox = (0, import_react4.forwardRef)(
|
|
1290
|
+
({ label, className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime5.jsxs)("label", { className: (0, import_clsx.clsx)("checkbox", className), children: [
|
|
1291
|
+
/* @__PURE__ */ (0, import_jsx_runtime5.jsx)("input", { ref, type: "checkbox", ...props }),
|
|
1292
|
+
/* @__PURE__ */ (0, import_jsx_runtime5.jsx)("span", { children: label })
|
|
1293
|
+
] })
|
|
1280
1294
|
);
|
|
1281
|
-
|
|
1295
|
+
KdsCheckbox.displayName = "KdsCheckbox";
|
|
1282
1296
|
|
|
1283
1297
|
// src/components/core/KdsCard/KdsCard.tsx
|
|
1284
1298
|
var import_react5 = require("react");
|
|
@@ -1315,50 +1329,161 @@ KdsCardFooter.displayName = "KdsCardFooter";
|
|
|
1315
1329
|
// src/components/core/KdsSpinner/KdsSpinner.tsx
|
|
1316
1330
|
var import_react6 = require("react");
|
|
1317
1331
|
var import_jsx_runtime7 = require("react/jsx-runtime");
|
|
1332
|
+
var SIZE_CLASS = {
|
|
1333
|
+
small: "small",
|
|
1334
|
+
medium: null,
|
|
1335
|
+
large: "large"
|
|
1336
|
+
};
|
|
1318
1337
|
var KdsSpinner = (0, import_react6.forwardRef)(
|
|
1319
|
-
({ size = "medium", label, className, ...props }, ref) =>
|
|
1320
|
-
|
|
1321
|
-
|
|
1322
|
-
|
|
1323
|
-
|
|
1338
|
+
({ size = "medium", label, className, ...props }, ref) => {
|
|
1339
|
+
const sizeClass = SIZE_CLASS[size];
|
|
1340
|
+
return /* @__PURE__ */ (0, import_jsx_runtime7.jsxs)(
|
|
1341
|
+
"div",
|
|
1342
|
+
{
|
|
1343
|
+
ref,
|
|
1344
|
+
className: (0, import_clsx.clsx)("kds-flex kds-flex-col kds-items-center kds-gap-2", className),
|
|
1345
|
+
role: "status",
|
|
1346
|
+
...props,
|
|
1347
|
+
children: [
|
|
1348
|
+
/* @__PURE__ */ (0, import_jsx_runtime7.jsx)("progress", { className: (0, import_clsx.clsx)("circle indeterminate", sizeClass) }),
|
|
1349
|
+
label && /* @__PURE__ */ (0, import_jsx_runtime7.jsx)("span", { className: "kds-text-body-small kds-text-muted", children: label }),
|
|
1350
|
+
!label && /* @__PURE__ */ (0, import_jsx_runtime7.jsx)("span", { className: "kds-hidden", children: "Cargando" })
|
|
1351
|
+
]
|
|
1352
|
+
}
|
|
1353
|
+
);
|
|
1354
|
+
}
|
|
1324
1355
|
);
|
|
1325
1356
|
KdsSpinner.displayName = "KdsSpinner";
|
|
1326
1357
|
|
|
1327
|
-
// src/components/core/
|
|
1358
|
+
// src/components/core/KdsSecureLoader/KdsSecureLoader.tsx
|
|
1328
1359
|
var import_react7 = require("react");
|
|
1329
1360
|
var import_jsx_runtime8 = require("react/jsx-runtime");
|
|
1330
|
-
var
|
|
1331
|
-
({
|
|
1361
|
+
var KdsSecureLoader = (0, import_react7.forwardRef)(
|
|
1362
|
+
({ title, message, className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime8.jsxs)("div", { ref, className: (0, import_clsx.clsx)("kds-secure-loader", className), role: "status", "aria-busy": "true", ...props, children: [
|
|
1363
|
+
(title || message) && /* @__PURE__ */ (0, import_jsx_runtime8.jsxs)("div", { className: "kds-secure-loader-text", children: [
|
|
1364
|
+
title && /* @__PURE__ */ (0, import_jsx_runtime8.jsx)("p", { className: "kds-secure-loader-title", children: title }),
|
|
1365
|
+
message && /* @__PURE__ */ (0, import_jsx_runtime8.jsx)("p", { className: "kds-secure-loader-message", children: message })
|
|
1366
|
+
] }),
|
|
1367
|
+
/* @__PURE__ */ (0, import_jsx_runtime8.jsxs)("div", { className: "kds-secure-loader-spinner", children: [
|
|
1368
|
+
/* @__PURE__ */ (0, import_jsx_runtime8.jsx)(
|
|
1369
|
+
"svg",
|
|
1370
|
+
{
|
|
1371
|
+
className: "kds-secure-loader-ring",
|
|
1372
|
+
viewBox: "22 22 44 44",
|
|
1373
|
+
width: "100",
|
|
1374
|
+
height: "100",
|
|
1375
|
+
fill: "none",
|
|
1376
|
+
"aria-hidden": "true",
|
|
1377
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime8.jsx)("circle", { cx: "44", cy: "44", r: "20.2", fill: "none" })
|
|
1378
|
+
}
|
|
1379
|
+
),
|
|
1380
|
+
/* @__PURE__ */ (0, import_jsx_runtime8.jsx)("i", { className: "material-symbols-outlined kds-secure-loader-lock", "aria-hidden": "true", children: "lock" })
|
|
1381
|
+
] })
|
|
1382
|
+
] })
|
|
1332
1383
|
);
|
|
1333
|
-
|
|
1384
|
+
KdsSecureLoader.displayName = "KdsSecureLoader";
|
|
1334
1385
|
|
|
1335
|
-
// src/components/core/
|
|
1386
|
+
// src/components/core/KdsCopyButton/KdsCopyButton.tsx
|
|
1387
|
+
var import_react9 = require("react");
|
|
1388
|
+
|
|
1389
|
+
// src/components/core/hooks/useCopyToClipboard.ts
|
|
1336
1390
|
var import_react8 = require("react");
|
|
1391
|
+
function useCopyToClipboard(resetMs = 1200) {
|
|
1392
|
+
const [copied, setCopied] = (0, import_react8.useState)(false);
|
|
1393
|
+
const copy = (0, import_react8.useCallback)(
|
|
1394
|
+
async (text) => {
|
|
1395
|
+
try {
|
|
1396
|
+
await navigator.clipboard.writeText(text);
|
|
1397
|
+
setCopied(true);
|
|
1398
|
+
setTimeout(() => setCopied(false), resetMs);
|
|
1399
|
+
} catch {
|
|
1400
|
+
}
|
|
1401
|
+
},
|
|
1402
|
+
[resetMs]
|
|
1403
|
+
);
|
|
1404
|
+
return { copied, copy };
|
|
1405
|
+
}
|
|
1406
|
+
|
|
1407
|
+
// src/components/core/KdsCopyButton/KdsCopyButton.tsx
|
|
1337
1408
|
var import_jsx_runtime9 = require("react/jsx-runtime");
|
|
1338
|
-
var
|
|
1339
|
-
({
|
|
1340
|
-
|
|
1341
|
-
|
|
1342
|
-
|
|
1343
|
-
|
|
1344
|
-
|
|
1345
|
-
|
|
1346
|
-
|
|
1347
|
-
|
|
1348
|
-
|
|
1349
|
-
|
|
1350
|
-
|
|
1351
|
-
|
|
1352
|
-
|
|
1353
|
-
|
|
1354
|
-
|
|
1355
|
-
|
|
1409
|
+
var KdsCopyButton = (0, import_react9.forwardRef)(
|
|
1410
|
+
({ value, copiedText = "Copiado", className, ...props }, ref) => {
|
|
1411
|
+
const { copied, copy } = useCopyToClipboard();
|
|
1412
|
+
return /* @__PURE__ */ (0, import_jsx_runtime9.jsxs)(
|
|
1413
|
+
"button",
|
|
1414
|
+
{
|
|
1415
|
+
ref,
|
|
1416
|
+
type: "button",
|
|
1417
|
+
className: (0, import_clsx.clsx)("kds-copy-button", copied && "copied", className),
|
|
1418
|
+
onClick: () => copy(value),
|
|
1419
|
+
"aria-label": `Copiar: ${value}`,
|
|
1420
|
+
...props,
|
|
1421
|
+
children: [
|
|
1422
|
+
/* @__PURE__ */ (0, import_jsx_runtime9.jsxs)("span", { className: "kds-copy-button-label", children: [
|
|
1423
|
+
/* @__PURE__ */ (0, import_jsx_runtime9.jsx)("span", { className: "kds-copy-button-value", "aria-hidden": copied || void 0, children: value }),
|
|
1424
|
+
/* @__PURE__ */ (0, import_jsx_runtime9.jsx)("span", { className: "kds-copy-button-copied", "aria-hidden": !copied || void 0, children: copiedText })
|
|
1425
|
+
] }),
|
|
1426
|
+
/* @__PURE__ */ (0, import_jsx_runtime9.jsx)("i", { className: "material-symbols-outlined", "aria-hidden": "true", children: copied ? "check" : "content_copy" })
|
|
1427
|
+
]
|
|
1428
|
+
}
|
|
1429
|
+
);
|
|
1430
|
+
}
|
|
1431
|
+
);
|
|
1432
|
+
KdsCopyButton.displayName = "KdsCopyButton";
|
|
1433
|
+
|
|
1434
|
+
// src/components/core/KdsLinearProgress/KdsLinearProgress.tsx
|
|
1435
|
+
var import_react10 = require("react");
|
|
1436
|
+
var import_jsx_runtime10 = require("react/jsx-runtime");
|
|
1437
|
+
var KdsLinearProgress = (0, import_react10.forwardRef)(
|
|
1438
|
+
({ value, max = 100, className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime10.jsx)("progress", { ref, className: (0, import_clsx.clsx)("kds-progress", className), value, max, ...props })
|
|
1439
|
+
);
|
|
1440
|
+
KdsLinearProgress.displayName = "KdsLinearProgress";
|
|
1441
|
+
|
|
1442
|
+
// src/components/core/KdsAlert/KdsAlert.tsx
|
|
1443
|
+
var import_react11 = require("react");
|
|
1444
|
+
var import_jsx_runtime11 = require("react/jsx-runtime");
|
|
1445
|
+
var DEFAULT_ICONS = {
|
|
1446
|
+
success: "check_circle",
|
|
1447
|
+
info: "info",
|
|
1448
|
+
warning: "warning",
|
|
1449
|
+
error: "error"
|
|
1450
|
+
};
|
|
1451
|
+
var KdsAlert = (0, import_react11.forwardRef)(
|
|
1452
|
+
({ severity, title, icon, inline, onClose, children, className, ...props }, ref) => {
|
|
1453
|
+
const resolvedIcon = icon === false ? null : typeof icon === "string" ? icon : DEFAULT_ICONS[severity];
|
|
1454
|
+
return /* @__PURE__ */ (0, import_jsx_runtime11.jsxs)(
|
|
1455
|
+
"div",
|
|
1456
|
+
{
|
|
1457
|
+
ref,
|
|
1458
|
+
role: "alert",
|
|
1459
|
+
className: (0, import_clsx.clsx)("kds-alert", `kds-${severity}`, inline && "kds-alert-inline", className),
|
|
1460
|
+
...props,
|
|
1461
|
+
children: [
|
|
1462
|
+
resolvedIcon && /* @__PURE__ */ (0, import_jsx_runtime11.jsx)("div", { className: "kds-alert-icon", children: /* @__PURE__ */ (0, import_jsx_runtime11.jsx)("i", { className: "material-symbols-outlined", children: resolvedIcon }) }),
|
|
1463
|
+
/* @__PURE__ */ (0, import_jsx_runtime11.jsxs)("div", { className: "kds-alert-content", children: [
|
|
1464
|
+
title && /* @__PURE__ */ (0, import_jsx_runtime11.jsx)("p", { className: "kds-alert-title", children: title }),
|
|
1465
|
+
/* @__PURE__ */ (0, import_jsx_runtime11.jsx)("p", { className: "kds-alert-description", children })
|
|
1466
|
+
] }),
|
|
1467
|
+
onClose && /* @__PURE__ */ (0, import_jsx_runtime11.jsx)(
|
|
1468
|
+
"button",
|
|
1469
|
+
{
|
|
1470
|
+
type: "button",
|
|
1471
|
+
className: "kds-alert-close",
|
|
1472
|
+
onClick: onClose,
|
|
1473
|
+
"aria-label": "Cerrar",
|
|
1474
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime11.jsx)("i", { className: "material-symbols-outlined", children: "close" })
|
|
1475
|
+
}
|
|
1476
|
+
)
|
|
1477
|
+
]
|
|
1478
|
+
}
|
|
1479
|
+
);
|
|
1480
|
+
}
|
|
1356
1481
|
);
|
|
1357
1482
|
KdsAlert.displayName = "KdsAlert";
|
|
1358
1483
|
|
|
1359
1484
|
// src/components/core/KdsTypography/KdsTypography.tsx
|
|
1360
|
-
var
|
|
1361
|
-
var
|
|
1485
|
+
var import_react12 = require("react");
|
|
1486
|
+
var import_jsx_runtime12 = require("react/jsx-runtime");
|
|
1362
1487
|
var variantTag = {
|
|
1363
1488
|
display1: "h1",
|
|
1364
1489
|
display2: "h2",
|
|
@@ -1371,12 +1496,13 @@ var variantTag = {
|
|
|
1371
1496
|
label: "span",
|
|
1372
1497
|
"label-small": "span",
|
|
1373
1498
|
muted: "p",
|
|
1374
|
-
link: "span"
|
|
1499
|
+
link: "span",
|
|
1500
|
+
strong: "span"
|
|
1375
1501
|
};
|
|
1376
|
-
var KdsTypography = (0,
|
|
1502
|
+
var KdsTypography = (0, import_react12.forwardRef)(
|
|
1377
1503
|
({ variant = "body", color, as, children, className, ...props }, ref) => {
|
|
1378
1504
|
const Tag = as || variantTag[variant];
|
|
1379
|
-
return /* @__PURE__ */ (0,
|
|
1505
|
+
return /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(
|
|
1380
1506
|
Tag,
|
|
1381
1507
|
{
|
|
1382
1508
|
ref,
|
|
@@ -1394,12 +1520,12 @@ var KdsTypography = (0, import_react9.forwardRef)(
|
|
|
1394
1520
|
KdsTypography.displayName = "KdsTypography";
|
|
1395
1521
|
|
|
1396
1522
|
// src/components/core/KdsTabs/KdsTabs.tsx
|
|
1397
|
-
var
|
|
1523
|
+
var import_react14 = __toESM(require("react"));
|
|
1398
1524
|
|
|
1399
1525
|
// src/components/core/hooks/useTabsKeyboard.ts
|
|
1400
|
-
var
|
|
1526
|
+
var import_react13 = require("react");
|
|
1401
1527
|
function useTabsKeyboard(tabCount, activeIndex, onChange) {
|
|
1402
|
-
const onKeyDown = (0,
|
|
1528
|
+
const onKeyDown = (0, import_react13.useCallback)(
|
|
1403
1529
|
(e) => {
|
|
1404
1530
|
let next = activeIndex;
|
|
1405
1531
|
if (e.key === "ArrowRight") next = (activeIndex + 1) % tabCount;
|
|
@@ -1419,31 +1545,31 @@ function useTabsKeyboard(tabCount, activeIndex, onChange) {
|
|
|
1419
1545
|
}
|
|
1420
1546
|
|
|
1421
1547
|
// src/components/core/KdsTabs/KdsTabs.tsx
|
|
1422
|
-
var
|
|
1423
|
-
var KdsTabs = (0,
|
|
1424
|
-
({ activeIndex, onChange,
|
|
1425
|
-
const tabCount =
|
|
1548
|
+
var import_jsx_runtime13 = require("react/jsx-runtime");
|
|
1549
|
+
var KdsTabs = (0, import_react14.forwardRef)(
|
|
1550
|
+
({ activeIndex, onChange, children, className, style, ...props }, ref) => {
|
|
1551
|
+
const tabCount = import_react14.Children.count(children);
|
|
1426
1552
|
const { onKeyDown } = useTabsKeyboard(tabCount, activeIndex, onChange);
|
|
1427
|
-
const mergedStyle = (0,
|
|
1428
|
-
|
|
1429
|
-
return {
|
|
1553
|
+
const mergedStyle = (0, import_react14.useMemo)(
|
|
1554
|
+
() => ({
|
|
1430
1555
|
...style,
|
|
1431
1556
|
"--_tab-count": tabCount,
|
|
1432
1557
|
"--_active-idx": activeIndex
|
|
1433
|
-
}
|
|
1434
|
-
|
|
1435
|
-
|
|
1558
|
+
}),
|
|
1559
|
+
[tabCount, activeIndex, style]
|
|
1560
|
+
);
|
|
1561
|
+
return /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(
|
|
1436
1562
|
"div",
|
|
1437
1563
|
{
|
|
1438
1564
|
ref,
|
|
1439
1565
|
role: "tablist",
|
|
1440
|
-
className: (0, import_clsx.clsx)(
|
|
1566
|
+
className: (0, import_clsx.clsx)("kds-segmented-tabs", className),
|
|
1441
1567
|
style: mergedStyle,
|
|
1442
1568
|
onKeyDown,
|
|
1443
1569
|
...props,
|
|
1444
|
-
children:
|
|
1445
|
-
if (!
|
|
1446
|
-
return
|
|
1570
|
+
children: import_react14.Children.map(children, (child, i) => {
|
|
1571
|
+
if (!import_react14.default.isValidElement(child)) return child;
|
|
1572
|
+
return import_react14.default.cloneElement(child, {
|
|
1447
1573
|
_active: i === activeIndex,
|
|
1448
1574
|
_onClick: () => onChange(i)
|
|
1449
1575
|
});
|
|
@@ -1453,11 +1579,12 @@ var KdsTabs = (0, import_react11.forwardRef)(
|
|
|
1453
1579
|
}
|
|
1454
1580
|
);
|
|
1455
1581
|
KdsTabs.displayName = "KdsTabs";
|
|
1456
|
-
var KdsTab = (0,
|
|
1457
|
-
({ _active, _onClick, children, className, ...props }, ref) => /* @__PURE__ */ (0,
|
|
1582
|
+
var KdsTab = (0, import_react14.forwardRef)(
|
|
1583
|
+
({ _active, _onClick, children, className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(
|
|
1458
1584
|
"button",
|
|
1459
1585
|
{
|
|
1460
1586
|
ref,
|
|
1587
|
+
type: "button",
|
|
1461
1588
|
role: "tab",
|
|
1462
1589
|
"aria-selected": _active,
|
|
1463
1590
|
tabIndex: _active ? 0 : -1,
|
|
@@ -1469,8 +1596,8 @@ var KdsTab = (0, import_react11.forwardRef)(
|
|
|
1469
1596
|
)
|
|
1470
1597
|
);
|
|
1471
1598
|
KdsTab.displayName = "KdsTab";
|
|
1472
|
-
var KdsTabPanel = (0,
|
|
1473
|
-
({ active, children, className, ...props }, ref) => /* @__PURE__ */ (0,
|
|
1599
|
+
var KdsTabPanel = (0, import_react14.forwardRef)(
|
|
1600
|
+
({ active, children, className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime13.jsx)(
|
|
1474
1601
|
"div",
|
|
1475
1602
|
{
|
|
1476
1603
|
ref,
|
|
@@ -1484,193 +1611,131 @@ var KdsTabPanel = (0, import_react11.forwardRef)(
|
|
|
1484
1611
|
);
|
|
1485
1612
|
KdsTabPanel.displayName = "KdsTabPanel";
|
|
1486
1613
|
|
|
1487
|
-
// src/components/core/KdsLogoHeader/KdsLogoHeader.tsx
|
|
1488
|
-
var import_react12 = require("react");
|
|
1489
|
-
|
|
1490
|
-
// src/assets/images/khipu-logo-color.svg
|
|
1491
|
-
var khipu_logo_color_default = "./khipu-logo-color-TV75AKOV.svg";
|
|
1492
|
-
|
|
1493
|
-
// src/components/core/KdsLogoHeader/KdsLogoHeader.tsx
|
|
1494
|
-
var import_jsx_runtime12 = require("react/jsx-runtime");
|
|
1495
|
-
var KhipuLogo = () => /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(
|
|
1496
|
-
"img",
|
|
1497
|
-
{
|
|
1498
|
-
src: khipu_logo_color_default,
|
|
1499
|
-
alt: "Khipu",
|
|
1500
|
-
className: "kds-logo-header-logo-img"
|
|
1501
|
-
}
|
|
1502
|
-
);
|
|
1503
|
-
var KdsLogoHeaderLogo = (0, import_react12.forwardRef)(
|
|
1504
|
-
({ children, className, ...props }, ref) => {
|
|
1505
|
-
return /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(
|
|
1506
|
-
"div",
|
|
1507
|
-
{
|
|
1508
|
-
ref,
|
|
1509
|
-
className: (0, import_clsx.clsx)("kds-logo-header-logo", className),
|
|
1510
|
-
...props,
|
|
1511
|
-
children: children || /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(KhipuLogo, {})
|
|
1512
|
-
}
|
|
1513
|
-
);
|
|
1514
|
-
}
|
|
1515
|
-
);
|
|
1516
|
-
KdsLogoHeaderLogo.displayName = "KdsLogoHeaderLogo";
|
|
1517
|
-
var KdsLogoHeaderSeparator = (0, import_react12.forwardRef)(
|
|
1518
|
-
({ children = "|", className, ...props }, ref) => {
|
|
1519
|
-
return /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(
|
|
1520
|
-
"span",
|
|
1521
|
-
{
|
|
1522
|
-
ref,
|
|
1523
|
-
className: (0, import_clsx.clsx)("kds-logo-header-separator", className),
|
|
1524
|
-
...props,
|
|
1525
|
-
children
|
|
1526
|
-
}
|
|
1527
|
-
);
|
|
1528
|
-
}
|
|
1529
|
-
);
|
|
1530
|
-
KdsLogoHeaderSeparator.displayName = "KdsLogoHeaderSeparator";
|
|
1531
|
-
var KdsLogoHeaderCode = (0, import_react12.forwardRef)(
|
|
1532
|
-
({ children, className, ...props }, ref) => {
|
|
1533
|
-
return /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(
|
|
1534
|
-
"span",
|
|
1535
|
-
{
|
|
1536
|
-
ref,
|
|
1537
|
-
className: (0, import_clsx.clsx)("kds-logo-header-code", className),
|
|
1538
|
-
...props,
|
|
1539
|
-
children
|
|
1540
|
-
}
|
|
1541
|
-
);
|
|
1542
|
-
}
|
|
1543
|
-
);
|
|
1544
|
-
KdsLogoHeaderCode.displayName = "KdsLogoHeaderCode";
|
|
1545
|
-
var KdsLogoHeaderCloseButton = (0, import_react12.forwardRef)(
|
|
1546
|
-
({ onClose, className, ...props }, ref) => {
|
|
1547
|
-
return /* @__PURE__ */ (0, import_jsx_runtime12.jsx)("div", { className: "kds-logo-header-close-wrapper", children: /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(
|
|
1548
|
-
"button",
|
|
1549
|
-
{
|
|
1550
|
-
ref,
|
|
1551
|
-
onClick: onClose,
|
|
1552
|
-
className: (0, import_clsx.clsx)("kds-btn kds-btn-icon", className),
|
|
1553
|
-
"aria-label": "close",
|
|
1554
|
-
...props,
|
|
1555
|
-
children: /* @__PURE__ */ (0, import_jsx_runtime12.jsx)("i", { className: "material-symbols-outlined", children: "close" })
|
|
1556
|
-
}
|
|
1557
|
-
) });
|
|
1558
|
-
}
|
|
1559
|
-
);
|
|
1560
|
-
KdsLogoHeaderCloseButton.displayName = "KdsLogoHeaderCloseButton";
|
|
1561
|
-
var KdsLogoHeader = (0, import_react12.forwardRef)(
|
|
1562
|
-
({ children, className, ...props }, ref) => {
|
|
1563
|
-
return /* @__PURE__ */ (0, import_jsx_runtime12.jsx)(
|
|
1564
|
-
"div",
|
|
1565
|
-
{
|
|
1566
|
-
ref,
|
|
1567
|
-
className: (0, import_clsx.clsx)("kds-brand-row", className),
|
|
1568
|
-
...props,
|
|
1569
|
-
children
|
|
1570
|
-
}
|
|
1571
|
-
);
|
|
1572
|
-
}
|
|
1573
|
-
);
|
|
1574
|
-
KdsLogoHeader.displayName = "KdsLogoHeader";
|
|
1575
|
-
|
|
1576
1614
|
// src/components/core/KdsRadioGroup/KdsRadioGroup.tsx
|
|
1577
|
-
var
|
|
1578
|
-
var
|
|
1579
|
-
var KdsRadioGroup = (0,
|
|
1580
|
-
({ label, name, options, value, onChange, className, ...props }, ref) => /* @__PURE__ */ (0,
|
|
1581
|
-
|
|
1582
|
-
|
|
1583
|
-
|
|
1584
|
-
|
|
1585
|
-
|
|
1586
|
-
|
|
1587
|
-
|
|
1588
|
-
|
|
1589
|
-
|
|
1590
|
-
|
|
1591
|
-
|
|
1592
|
-
|
|
1593
|
-
|
|
1594
|
-
|
|
1595
|
-
|
|
1596
|
-
|
|
1615
|
+
var import_react15 = require("react");
|
|
1616
|
+
var import_jsx_runtime14 = require("react/jsx-runtime");
|
|
1617
|
+
var KdsRadioGroup = (0, import_react15.forwardRef)(
|
|
1618
|
+
({ label, name, options, value, onChange, size, variant, className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime14.jsxs)(
|
|
1619
|
+
"fieldset",
|
|
1620
|
+
{
|
|
1621
|
+
ref,
|
|
1622
|
+
className: (0, import_clsx.clsx)("kds-radio-group", variant === "card" && "kds-radio-group--card", className),
|
|
1623
|
+
...props,
|
|
1624
|
+
children: [
|
|
1625
|
+
label && /* @__PURE__ */ (0, import_jsx_runtime14.jsx)("legend", { children: label }),
|
|
1626
|
+
options.map((opt) => /* @__PURE__ */ (0, import_jsx_runtime14.jsxs)("label", { className: (0, import_clsx.clsx)("radio", size), children: [
|
|
1627
|
+
/* @__PURE__ */ (0, import_jsx_runtime14.jsx)(
|
|
1628
|
+
"input",
|
|
1629
|
+
{
|
|
1630
|
+
type: "radio",
|
|
1631
|
+
name,
|
|
1632
|
+
value: opt.value,
|
|
1633
|
+
checked: value === opt.value,
|
|
1634
|
+
disabled: opt.disabled,
|
|
1635
|
+
onChange: () => onChange?.(opt.value)
|
|
1636
|
+
}
|
|
1637
|
+
),
|
|
1638
|
+
/* @__PURE__ */ (0, import_jsx_runtime14.jsx)("span", { children: opt.label })
|
|
1639
|
+
] }, opt.value))
|
|
1640
|
+
]
|
|
1641
|
+
}
|
|
1642
|
+
)
|
|
1597
1643
|
);
|
|
1598
1644
|
KdsRadioGroup.displayName = "KdsRadioGroup";
|
|
1599
1645
|
|
|
1600
1646
|
// src/components/core/KdsSelect/KdsSelect.tsx
|
|
1601
|
-
var
|
|
1602
|
-
var
|
|
1603
|
-
var
|
|
1604
|
-
var KdsSelectRoot = (0, import_react14.forwardRef)(
|
|
1647
|
+
var import_react16 = require("react");
|
|
1648
|
+
var import_jsx_runtime15 = require("react/jsx-runtime");
|
|
1649
|
+
var KdsSelect = (0, import_react16.forwardRef)(
|
|
1605
1650
|
({
|
|
1606
|
-
value,
|
|
1607
|
-
onValueChange,
|
|
1608
|
-
placeholder,
|
|
1609
1651
|
label,
|
|
1610
|
-
|
|
1652
|
+
options,
|
|
1653
|
+
placeholder,
|
|
1611
1654
|
helperText,
|
|
1612
|
-
|
|
1655
|
+
error,
|
|
1656
|
+
prefixIcon,
|
|
1613
1657
|
fullWidth = true,
|
|
1614
|
-
|
|
1615
|
-
|
|
1616
|
-
|
|
1617
|
-
|
|
1618
|
-
|
|
1619
|
-
|
|
1620
|
-
|
|
1621
|
-
|
|
1622
|
-
|
|
1623
|
-
|
|
1624
|
-
className
|
|
1625
|
-
|
|
1626
|
-
|
|
1627
|
-
|
|
1628
|
-
|
|
1629
|
-
|
|
1630
|
-
|
|
1631
|
-
|
|
1658
|
+
disabled,
|
|
1659
|
+
required,
|
|
1660
|
+
className,
|
|
1661
|
+
id,
|
|
1662
|
+
...props
|
|
1663
|
+
}, ref) => {
|
|
1664
|
+
const fieldId = id || `kds-select-${label.toLowerCase().replace(/\s+/g, "-")}`;
|
|
1665
|
+
return /* @__PURE__ */ (0, import_jsx_runtime15.jsxs)(
|
|
1666
|
+
"div",
|
|
1667
|
+
{
|
|
1668
|
+
className: (0, import_clsx.clsx)(
|
|
1669
|
+
"field",
|
|
1670
|
+
"label",
|
|
1671
|
+
"border",
|
|
1672
|
+
prefixIcon && "prefix",
|
|
1673
|
+
error && "invalid",
|
|
1674
|
+
fullWidth && "kds-w-full",
|
|
1675
|
+
className
|
|
1676
|
+
),
|
|
1677
|
+
children: [
|
|
1678
|
+
prefixIcon && /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("i", { className: "material-symbols-outlined", children: prefixIcon }),
|
|
1679
|
+
/* @__PURE__ */ (0, import_jsx_runtime15.jsxs)(
|
|
1680
|
+
"select",
|
|
1681
|
+
{
|
|
1682
|
+
ref,
|
|
1683
|
+
id: fieldId,
|
|
1684
|
+
disabled,
|
|
1685
|
+
required,
|
|
1686
|
+
...props,
|
|
1687
|
+
children: [
|
|
1688
|
+
placeholder !== void 0 && /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("option", { value: "", children: placeholder }),
|
|
1689
|
+
options.map((opt) => /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("option", { value: opt.value, disabled: opt.disabled, children: opt.label }, opt.value))
|
|
1690
|
+
]
|
|
1691
|
+
}
|
|
1692
|
+
),
|
|
1693
|
+
/* @__PURE__ */ (0, import_jsx_runtime15.jsxs)("label", { htmlFor: fieldId, children: [
|
|
1694
|
+
label,
|
|
1695
|
+
required && " *"
|
|
1632
1696
|
] }),
|
|
1633
|
-
|
|
1634
|
-
]
|
|
1635
|
-
|
|
1636
|
-
|
|
1637
|
-
|
|
1638
|
-
)
|
|
1639
|
-
);
|
|
1640
|
-
KdsSelectRoot.displayName = "KdsSelect";
|
|
1641
|
-
var KdsSelectItem = (0, import_react14.forwardRef)(
|
|
1642
|
-
({ children, className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime14.jsxs)(Select.Item, { ref, className: (0, import_clsx.clsx)("kds-select-item", className), ...props, children: [
|
|
1643
|
-
/* @__PURE__ */ (0, import_jsx_runtime14.jsx)(Select.ItemText, { children }),
|
|
1644
|
-
/* @__PURE__ */ (0, import_jsx_runtime14.jsx)(Select.ItemIndicator, { className: "kds-select-item-indicator", children: /* @__PURE__ */ (0, import_jsx_runtime14.jsx)("i", { className: "material-symbols-outlined", children: "check" }) })
|
|
1645
|
-
] })
|
|
1697
|
+
helperText && /* @__PURE__ */ (0, import_jsx_runtime15.jsx)("span", { className: "helper", children: helperText })
|
|
1698
|
+
]
|
|
1699
|
+
}
|
|
1700
|
+
);
|
|
1701
|
+
}
|
|
1646
1702
|
);
|
|
1647
|
-
|
|
1648
|
-
var KdsSelect = Object.assign(KdsSelectRoot, {
|
|
1649
|
-
Item: KdsSelectItem
|
|
1650
|
-
});
|
|
1703
|
+
KdsSelect.displayName = "KdsSelect";
|
|
1651
1704
|
|
|
1652
1705
|
// src/components/core/KdsChip/KdsChip.tsx
|
|
1653
|
-
var
|
|
1654
|
-
var
|
|
1655
|
-
var KdsChip = (0,
|
|
1656
|
-
({ color, icon, onDelete, children, className, ...props }, ref) => /* @__PURE__ */ (0,
|
|
1657
|
-
icon && /* @__PURE__ */ (0,
|
|
1658
|
-
children,
|
|
1659
|
-
onDelete && /* @__PURE__ */ (0,
|
|
1706
|
+
var import_react17 = require("react");
|
|
1707
|
+
var import_jsx_runtime16 = require("react/jsx-runtime");
|
|
1708
|
+
var KdsChip = (0, import_react17.forwardRef)(
|
|
1709
|
+
({ color, icon, onDelete, children, className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime16.jsxs)("span", { ref, className: (0, import_clsx.clsx)("kds-badge", color, className), ...props, children: [
|
|
1710
|
+
icon && /* @__PURE__ */ (0, import_jsx_runtime16.jsx)("i", { className: "material-symbols-outlined", children: icon }),
|
|
1711
|
+
/* @__PURE__ */ (0, import_jsx_runtime16.jsx)("span", { children }),
|
|
1712
|
+
onDelete && /* @__PURE__ */ (0, import_jsx_runtime16.jsx)(
|
|
1713
|
+
"button",
|
|
1714
|
+
{
|
|
1715
|
+
type: "button",
|
|
1716
|
+
className: "kds-badge-close",
|
|
1717
|
+
onClick: (e) => {
|
|
1718
|
+
e.stopPropagation();
|
|
1719
|
+
onDelete();
|
|
1720
|
+
},
|
|
1721
|
+
"aria-label": "Eliminar",
|
|
1722
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime16.jsx)("i", { className: "material-symbols-outlined", children: "close" })
|
|
1723
|
+
}
|
|
1724
|
+
)
|
|
1660
1725
|
] })
|
|
1661
1726
|
);
|
|
1662
1727
|
KdsChip.displayName = "KdsChip";
|
|
1663
1728
|
|
|
1664
1729
|
// src/components/core/KdsSnackbar/KdsSnackbar.tsx
|
|
1665
|
-
var
|
|
1730
|
+
var import_react19 = require("react");
|
|
1666
1731
|
|
|
1667
1732
|
// src/components/core/hooks/useAutoHide.ts
|
|
1668
|
-
var
|
|
1733
|
+
var import_react18 = require("react");
|
|
1669
1734
|
function useAutoHide(durationMs, onHide) {
|
|
1670
|
-
const [visible, setVisible] = (0,
|
|
1671
|
-
const onHideRef = (0,
|
|
1735
|
+
const [visible, setVisible] = (0, import_react18.useState)(true);
|
|
1736
|
+
const onHideRef = (0, import_react18.useRef)(onHide);
|
|
1672
1737
|
onHideRef.current = onHide;
|
|
1673
|
-
(0,
|
|
1738
|
+
(0, import_react18.useEffect)(() => {
|
|
1674
1739
|
if (durationMs <= 0) return;
|
|
1675
1740
|
const timer = setTimeout(() => {
|
|
1676
1741
|
setVisible(false);
|
|
@@ -1682,22 +1747,61 @@ function useAutoHide(durationMs, onHide) {
|
|
|
1682
1747
|
}
|
|
1683
1748
|
|
|
1684
1749
|
// src/components/core/KdsSnackbar/KdsSnackbar.tsx
|
|
1685
|
-
var
|
|
1686
|
-
var
|
|
1687
|
-
|
|
1688
|
-
|
|
1750
|
+
var import_jsx_runtime17 = require("react/jsx-runtime");
|
|
1751
|
+
var DEFAULT_ICONS2 = {
|
|
1752
|
+
info: "info",
|
|
1753
|
+
success: "check_circle",
|
|
1754
|
+
error: "error"
|
|
1755
|
+
};
|
|
1756
|
+
var KdsSnackbar = (0, import_react19.forwardRef)(
|
|
1757
|
+
({
|
|
1758
|
+
message,
|
|
1759
|
+
type = "info",
|
|
1760
|
+
duration = 5e3,
|
|
1761
|
+
onClose,
|
|
1762
|
+
open = true,
|
|
1763
|
+
icon,
|
|
1764
|
+
className,
|
|
1765
|
+
style,
|
|
1766
|
+
...props
|
|
1767
|
+
}, ref) => {
|
|
1768
|
+
const autoDismiss = duration > 0;
|
|
1769
|
+
const { visible } = useAutoHide(autoDismiss ? duration : 0, onClose);
|
|
1689
1770
|
if (!open || !visible) return null;
|
|
1690
|
-
|
|
1691
|
-
|
|
1692
|
-
|
|
1693
|
-
|
|
1771
|
+
const resolvedIcon = icon === false ? null : icon ?? DEFAULT_ICONS2[type];
|
|
1772
|
+
const mergedStyle = autoDismiss ? { ...style, ["--kds-snackbar-duration"]: `${duration}ms` } : style ?? {};
|
|
1773
|
+
return /* @__PURE__ */ (0, import_jsx_runtime17.jsxs)(
|
|
1774
|
+
"div",
|
|
1775
|
+
{
|
|
1776
|
+
ref,
|
|
1777
|
+
role: "status",
|
|
1778
|
+
className: (0, import_clsx.clsx)("snackbar", "active", type, className),
|
|
1779
|
+
"data-auto-dismiss": autoDismiss ? "true" : void 0,
|
|
1780
|
+
style: mergedStyle,
|
|
1781
|
+
...props,
|
|
1782
|
+
children: [
|
|
1783
|
+
resolvedIcon && /* @__PURE__ */ (0, import_jsx_runtime17.jsx)("i", { className: "material-symbols-outlined", children: resolvedIcon }),
|
|
1784
|
+
/* @__PURE__ */ (0, import_jsx_runtime17.jsx)("span", { className: "max", children: message }),
|
|
1785
|
+
onClose && /* @__PURE__ */ (0, import_jsx_runtime17.jsx)(
|
|
1786
|
+
"button",
|
|
1787
|
+
{
|
|
1788
|
+
type: "button",
|
|
1789
|
+
className: "kds-snackbar-close",
|
|
1790
|
+
onClick: onClose,
|
|
1791
|
+
"aria-label": "Cerrar",
|
|
1792
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime17.jsx)("i", { className: "material-symbols-outlined", children: "close" })
|
|
1793
|
+
}
|
|
1794
|
+
)
|
|
1795
|
+
]
|
|
1796
|
+
}
|
|
1797
|
+
);
|
|
1694
1798
|
}
|
|
1695
1799
|
);
|
|
1696
1800
|
KdsSnackbar.displayName = "KdsSnackbar";
|
|
1697
1801
|
|
|
1698
1802
|
// src/components/core/KdsTooltip/KdsTooltip.tsx
|
|
1699
1803
|
var Tooltip = __toESM(require("@radix-ui/react-tooltip"));
|
|
1700
|
-
var
|
|
1804
|
+
var import_jsx_runtime18 = require("react/jsx-runtime");
|
|
1701
1805
|
function KdsTooltip({
|
|
1702
1806
|
content,
|
|
1703
1807
|
children,
|
|
@@ -1708,167 +1812,377 @@ function KdsTooltip({
|
|
|
1708
1812
|
onOpenChange,
|
|
1709
1813
|
delayDuration = 300
|
|
1710
1814
|
}) {
|
|
1711
|
-
return /* @__PURE__ */ (0,
|
|
1712
|
-
/* @__PURE__ */ (0,
|
|
1713
|
-
/* @__PURE__ */ (0,
|
|
1714
|
-
|
|
1715
|
-
|
|
1716
|
-
|
|
1815
|
+
return /* @__PURE__ */ (0, import_jsx_runtime18.jsx)(Tooltip.Provider, { delayDuration, children: /* @__PURE__ */ (0, import_jsx_runtime18.jsxs)(Tooltip.Root, { open, defaultOpen, onOpenChange, children: [
|
|
1816
|
+
/* @__PURE__ */ (0, import_jsx_runtime18.jsx)(Tooltip.Trigger, { asChild: true, children }),
|
|
1817
|
+
/* @__PURE__ */ (0, import_jsx_runtime18.jsx)(Tooltip.Portal, { children: /* @__PURE__ */ (0, import_jsx_runtime18.jsxs)(
|
|
1818
|
+
Tooltip.Content,
|
|
1819
|
+
{
|
|
1820
|
+
className: (0, import_clsx.clsx)("kds-tooltip", className),
|
|
1821
|
+
side: placement,
|
|
1822
|
+
sideOffset: 6,
|
|
1823
|
+
collisionPadding: 8,
|
|
1824
|
+
children: [
|
|
1825
|
+
content,
|
|
1826
|
+
/* @__PURE__ */ (0, import_jsx_runtime18.jsx)(Tooltip.Arrow, { className: "kds-tooltip-arrow", width: 10, height: 5 })
|
|
1827
|
+
]
|
|
1828
|
+
}
|
|
1829
|
+
) })
|
|
1717
1830
|
] }) });
|
|
1718
1831
|
}
|
|
1719
1832
|
|
|
1720
1833
|
// src/components/core/KdsAccordion/KdsAccordion.tsx
|
|
1721
|
-
var
|
|
1722
|
-
var
|
|
1723
|
-
var KdsAccordion = (0,
|
|
1724
|
-
({ children, className, ...props }, ref) => /* @__PURE__ */ (0,
|
|
1834
|
+
var import_react20 = require("react");
|
|
1835
|
+
var import_jsx_runtime19 = require("react/jsx-runtime");
|
|
1836
|
+
var KdsAccordion = (0, import_react20.forwardRef)(
|
|
1837
|
+
({ children, className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime19.jsx)("details", { ref, className: (0, import_clsx.clsx)("kds-accordion", className), ...props, children })
|
|
1725
1838
|
);
|
|
1726
1839
|
KdsAccordion.displayName = "KdsAccordion";
|
|
1727
|
-
var KdsAccordionSummary = (0,
|
|
1728
|
-
({ children, className, ...props }, ref) => /* @__PURE__ */ (0,
|
|
1840
|
+
var KdsAccordionSummary = (0, import_react20.forwardRef)(
|
|
1841
|
+
({ children, className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime19.jsxs)("summary", { ref, className: (0, import_clsx.clsx)("kds-accordion-summary", className), ...props, children: [
|
|
1729
1842
|
children,
|
|
1730
|
-
/* @__PURE__ */ (0,
|
|
1843
|
+
/* @__PURE__ */ (0, import_jsx_runtime19.jsx)("i", { className: "material-symbols-outlined", children: "expand_more" })
|
|
1731
1844
|
] })
|
|
1732
1845
|
);
|
|
1733
1846
|
KdsAccordionSummary.displayName = "KdsAccordionSummary";
|
|
1734
|
-
var KdsAccordionDetails = (0,
|
|
1735
|
-
({ children, className, ...props }, ref) => /* @__PURE__ */ (0,
|
|
1847
|
+
var KdsAccordionDetails = (0, import_react20.forwardRef)(
|
|
1848
|
+
({ children, className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime19.jsx)("div", { ref, className: (0, import_clsx.clsx)("kds-accordion-details", className), ...props, children })
|
|
1736
1849
|
);
|
|
1737
1850
|
KdsAccordionDetails.displayName = "KdsAccordionDetails";
|
|
1738
1851
|
|
|
1739
1852
|
// src/components/core/KdsDivider/KdsDivider.tsx
|
|
1740
|
-
var
|
|
1741
|
-
var
|
|
1742
|
-
var KdsDivider = (0,
|
|
1743
|
-
({ dashed, className, ...props }, ref) => /* @__PURE__ */ (0,
|
|
1853
|
+
var import_react21 = require("react");
|
|
1854
|
+
var import_jsx_runtime20 = require("react/jsx-runtime");
|
|
1855
|
+
var KdsDivider = (0, import_react21.forwardRef)(
|
|
1856
|
+
({ dashed, className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime20.jsx)("hr", { ref, className: (0, import_clsx.clsx)(dashed ? "kds-hr-dashed" : "kds-hr", className), ...props })
|
|
1744
1857
|
);
|
|
1745
1858
|
KdsDivider.displayName = "KdsDivider";
|
|
1746
1859
|
|
|
1747
1860
|
// src/components/core/KdsSectionNote/KdsSectionNote.tsx
|
|
1748
|
-
var
|
|
1749
|
-
var
|
|
1750
|
-
var KdsSectionNote = (0,
|
|
1751
|
-
({ icon = "info", children, className, ...props }, ref) => /* @__PURE__ */ (0,
|
|
1752
|
-
/* @__PURE__ */ (0,
|
|
1753
|
-
/* @__PURE__ */ (0,
|
|
1861
|
+
var import_react22 = require("react");
|
|
1862
|
+
var import_jsx_runtime21 = require("react/jsx-runtime");
|
|
1863
|
+
var KdsSectionNote = (0, import_react22.forwardRef)(
|
|
1864
|
+
({ icon = "info", children, className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime21.jsxs)("p", { ref, className: (0, import_clsx.clsx)("kds-section-note", className), ...props, children: [
|
|
1865
|
+
/* @__PURE__ */ (0, import_jsx_runtime21.jsx)("i", { className: "material-symbols-outlined", children: icon }),
|
|
1866
|
+
/* @__PURE__ */ (0, import_jsx_runtime21.jsx)("span", { children })
|
|
1754
1867
|
] })
|
|
1755
1868
|
);
|
|
1756
1869
|
KdsSectionNote.displayName = "KdsSectionNote";
|
|
1757
1870
|
|
|
1758
1871
|
// src/components/core/KdsStatusBlock/KdsStatusBlock.tsx
|
|
1759
|
-
var
|
|
1760
|
-
var
|
|
1761
|
-
var KdsStatusBlock = (0,
|
|
1762
|
-
({ status, icon, title, description, inline, className, ...props }, ref) => /* @__PURE__ */ (0,
|
|
1763
|
-
/* @__PURE__ */ (0,
|
|
1764
|
-
/* @__PURE__ */ (0,
|
|
1765
|
-
/* @__PURE__ */ (0,
|
|
1766
|
-
description && /* @__PURE__ */ (0,
|
|
1872
|
+
var import_react23 = require("react");
|
|
1873
|
+
var import_jsx_runtime22 = require("react/jsx-runtime");
|
|
1874
|
+
var KdsStatusBlock = (0, import_react23.forwardRef)(
|
|
1875
|
+
({ status, icon, title, description, inline, className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime22.jsxs)("div", { ref, className: (0, import_clsx.clsx)("kds-status-block", inline && "inline", className), "data-status": status, ...props, children: [
|
|
1876
|
+
/* @__PURE__ */ (0, import_jsx_runtime22.jsx)("div", { className: "kds-status-block-icon", children: icon && /* @__PURE__ */ (0, import_jsx_runtime22.jsx)("i", { className: "material-symbols-outlined", children: icon }) }),
|
|
1877
|
+
/* @__PURE__ */ (0, import_jsx_runtime22.jsxs)("div", { children: [
|
|
1878
|
+
/* @__PURE__ */ (0, import_jsx_runtime22.jsx)("h2", { className: "kds-status-block-title", children: title }),
|
|
1879
|
+
description && /* @__PURE__ */ (0, import_jsx_runtime22.jsx)("p", { className: "kds-status-block-description", children: description })
|
|
1767
1880
|
] })
|
|
1768
1881
|
] })
|
|
1769
1882
|
);
|
|
1770
1883
|
KdsStatusBlock.displayName = "KdsStatusBlock";
|
|
1771
1884
|
|
|
1772
1885
|
// src/components/core/KdsStepper/KdsStepper.tsx
|
|
1773
|
-
var import_react22 = require("react");
|
|
1774
|
-
var import_jsx_runtime22 = require("react/jsx-runtime");
|
|
1775
|
-
var KdsStepper = (0, import_react22.forwardRef)(
|
|
1776
|
-
({ steps, current, className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime22.jsx)("div", { ref, className: (0, import_clsx.clsx)("kds-stepper", className), "data-steps": steps, "data-current": current, ...props, children: Array.from({ length: steps }, (_, i) => /* @__PURE__ */ (0, import_jsx_runtime22.jsxs)("div", { className: (0, import_clsx.clsx)("kds-step", i < current && "completed", i === current && "current"), children: [
|
|
1777
|
-
/* @__PURE__ */ (0, import_jsx_runtime22.jsx)("div", { className: "kds-step-indicator", children: i < current ? "\u2713" : i + 1 }),
|
|
1778
|
-
i < steps - 1 && /* @__PURE__ */ (0, import_jsx_runtime22.jsx)("div", { className: "kds-step-line" })
|
|
1779
|
-
] }, i)) })
|
|
1780
|
-
);
|
|
1781
|
-
KdsStepper.displayName = "KdsStepper";
|
|
1782
|
-
|
|
1783
|
-
// src/components/core/KdsCopyRow/KdsCopyRow.tsx
|
|
1784
1886
|
var import_react24 = require("react");
|
|
1785
|
-
|
|
1786
|
-
|
|
1787
|
-
|
|
1788
|
-
|
|
1789
|
-
|
|
1790
|
-
|
|
1791
|
-
|
|
1792
|
-
|
|
1793
|
-
|
|
1794
|
-
|
|
1795
|
-
setTimeout(() => setCopied(false), resetMs);
|
|
1796
|
-
} catch {
|
|
1797
|
-
}
|
|
1887
|
+
var import_jsx_runtime23 = require("react/jsx-runtime");
|
|
1888
|
+
var KdsStepper = (0, import_react24.forwardRef)(
|
|
1889
|
+
({ steps, current, className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime23.jsx)("div", { ref, className: (0, import_clsx.clsx)("kds-stepper", className), ...props, children: steps.map((label, i) => /* @__PURE__ */ (0, import_jsx_runtime23.jsxs)(
|
|
1890
|
+
"div",
|
|
1891
|
+
{
|
|
1892
|
+
className: (0, import_clsx.clsx)("kds-step", i < current && "completed", i === current && "current"),
|
|
1893
|
+
children: [
|
|
1894
|
+
/* @__PURE__ */ (0, import_jsx_runtime23.jsx)("div", { className: "kds-step-indicator" }),
|
|
1895
|
+
/* @__PURE__ */ (0, import_jsx_runtime23.jsx)("div", { className: "kds-step-label", children: label })
|
|
1896
|
+
]
|
|
1798
1897
|
},
|
|
1799
|
-
|
|
1800
|
-
)
|
|
1801
|
-
|
|
1802
|
-
|
|
1898
|
+
`${i}-${label}`
|
|
1899
|
+
)) })
|
|
1900
|
+
);
|
|
1901
|
+
KdsStepper.displayName = "KdsStepper";
|
|
1803
1902
|
|
|
1804
1903
|
// src/components/core/KdsCopyRow/KdsCopyRow.tsx
|
|
1805
|
-
var
|
|
1806
|
-
var
|
|
1807
|
-
|
|
1904
|
+
var import_react25 = require("react");
|
|
1905
|
+
var import_jsx_runtime24 = require("react/jsx-runtime");
|
|
1906
|
+
var KdsCopyRow = (0, import_react25.forwardRef)(
|
|
1907
|
+
({ label, value, copiedText = "Copiado", className, ...props }, ref) => {
|
|
1808
1908
|
const { copied, copy } = useCopyToClipboard();
|
|
1809
|
-
return /* @__PURE__ */ (0,
|
|
1810
|
-
|
|
1811
|
-
|
|
1812
|
-
|
|
1813
|
-
|
|
1909
|
+
return /* @__PURE__ */ (0, import_jsx_runtime24.jsxs)(
|
|
1910
|
+
"button",
|
|
1911
|
+
{
|
|
1912
|
+
ref,
|
|
1913
|
+
type: "button",
|
|
1914
|
+
className: (0, import_clsx.clsx)("kds-copy-row", copied && "copied", className),
|
|
1915
|
+
"data-copy": value,
|
|
1916
|
+
onClick: () => copy(value),
|
|
1917
|
+
"aria-label": `Copiar ${label}: ${value}`,
|
|
1918
|
+
...props,
|
|
1919
|
+
children: [
|
|
1920
|
+
/* @__PURE__ */ (0, import_jsx_runtime24.jsx)("i", { className: "material-symbols-outlined", "aria-hidden": "true", children: "content_copy" }),
|
|
1921
|
+
/* @__PURE__ */ (0, import_jsx_runtime24.jsxs)("div", { children: [
|
|
1922
|
+
/* @__PURE__ */ (0, import_jsx_runtime24.jsx)("span", { className: "kds-copy-row-label", children: label }),
|
|
1923
|
+
/* @__PURE__ */ (0, import_jsx_runtime24.jsx)("span", { className: "kds-copy-row-value", children: value })
|
|
1924
|
+
] }),
|
|
1925
|
+
/* @__PURE__ */ (0, import_jsx_runtime24.jsxs)("span", { className: "kds-copy-toast", "aria-hidden": "true", children: [
|
|
1926
|
+
/* @__PURE__ */ (0, import_jsx_runtime24.jsx)("i", { className: "material-symbols-outlined", children: "check_circle" }),
|
|
1927
|
+
" ",
|
|
1928
|
+
copiedText
|
|
1929
|
+
] })
|
|
1930
|
+
]
|
|
1931
|
+
}
|
|
1932
|
+
);
|
|
1814
1933
|
}
|
|
1815
1934
|
);
|
|
1816
1935
|
KdsCopyRow.displayName = "KdsCopyRow";
|
|
1817
1936
|
|
|
1818
1937
|
// src/components/core/KdsCopyableTable/KdsCopyableTable.tsx
|
|
1819
|
-
var
|
|
1820
|
-
var
|
|
1821
|
-
|
|
1822
|
-
|
|
1823
|
-
|
|
1824
|
-
|
|
1825
|
-
|
|
1826
|
-
|
|
1827
|
-
|
|
1828
|
-
|
|
1829
|
-
|
|
1830
|
-
|
|
1831
|
-
|
|
1832
|
-
|
|
1833
|
-
|
|
1834
|
-
|
|
1835
|
-
|
|
1836
|
-
|
|
1837
|
-
|
|
1938
|
+
var import_react26 = require("react");
|
|
1939
|
+
var import_jsx_runtime25 = require("react/jsx-runtime");
|
|
1940
|
+
async function copyToClipboard(text) {
|
|
1941
|
+
try {
|
|
1942
|
+
if (navigator.clipboard?.writeText) {
|
|
1943
|
+
await navigator.clipboard.writeText(text);
|
|
1944
|
+
return true;
|
|
1945
|
+
}
|
|
1946
|
+
} catch {
|
|
1947
|
+
}
|
|
1948
|
+
const ta = document.createElement("textarea");
|
|
1949
|
+
ta.value = text;
|
|
1950
|
+
ta.style.position = "fixed";
|
|
1951
|
+
ta.style.opacity = "0";
|
|
1952
|
+
document.body.appendChild(ta);
|
|
1953
|
+
ta.select();
|
|
1954
|
+
try {
|
|
1955
|
+
document.execCommand("copy");
|
|
1956
|
+
return true;
|
|
1957
|
+
} catch {
|
|
1958
|
+
return false;
|
|
1959
|
+
} finally {
|
|
1960
|
+
document.body.removeChild(ta);
|
|
1961
|
+
}
|
|
1962
|
+
}
|
|
1963
|
+
var TRANSITION_MS = 300;
|
|
1964
|
+
function GridVariant({
|
|
1965
|
+
gridRows,
|
|
1966
|
+
disabled,
|
|
1967
|
+
className,
|
|
1968
|
+
forwardedRef,
|
|
1969
|
+
rest
|
|
1970
|
+
}) {
|
|
1971
|
+
return /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(
|
|
1972
|
+
"div",
|
|
1973
|
+
{
|
|
1974
|
+
ref: forwardedRef,
|
|
1975
|
+
className: (0, import_clsx.clsx)("kds-copyable-table", "kds-copyable-table--grid", className),
|
|
1976
|
+
...rest,
|
|
1977
|
+
children: gridRows.map((cells, rowIndex) => /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(
|
|
1978
|
+
"div",
|
|
1979
|
+
{
|
|
1980
|
+
className: "kds-copyable-table-row kds-copyable-table-row--grid",
|
|
1981
|
+
"data-testid": "kds-grid-row",
|
|
1982
|
+
children: cells.map((text, cellIndex) => /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(
|
|
1983
|
+
"span",
|
|
1984
|
+
{
|
|
1985
|
+
className: (0, import_clsx.clsx)("kds-grid-cell", disabled && "kds-grid-cell--disabled"),
|
|
1986
|
+
children: text
|
|
1987
|
+
},
|
|
1988
|
+
cellIndex
|
|
1989
|
+
))
|
|
1990
|
+
},
|
|
1991
|
+
rowIndex
|
|
1992
|
+
))
|
|
1993
|
+
}
|
|
1994
|
+
);
|
|
1995
|
+
}
|
|
1996
|
+
function CopyableVariant({
|
|
1997
|
+
rows,
|
|
1998
|
+
copyAllLabel = "Copiar todos los datos",
|
|
1999
|
+
copiedAllLabel = "Datos copiados",
|
|
2000
|
+
showCopyAll = true,
|
|
2001
|
+
className,
|
|
2002
|
+
forwardedRef,
|
|
2003
|
+
rest
|
|
2004
|
+
}) {
|
|
2005
|
+
const copiedTimers = (0, import_react26.useRef)(/* @__PURE__ */ new Map());
|
|
2006
|
+
const settlingTimers = (0, import_react26.useRef)(/* @__PURE__ */ new Map());
|
|
2007
|
+
const [copiedRows, setCopiedRows] = (0, import_react26.useState)(/* @__PURE__ */ new Set());
|
|
2008
|
+
const [settlingRows, setSettlingRows] = (0, import_react26.useState)(/* @__PURE__ */ new Set());
|
|
2009
|
+
const [allCopied, setAllCopied] = (0, import_react26.useState)(false);
|
|
2010
|
+
const markCopied = (0, import_react26.useCallback)((indexes, duration = 1500) => {
|
|
2011
|
+
setCopiedRows((prev) => {
|
|
2012
|
+
const next = new Set(prev);
|
|
2013
|
+
indexes.forEach((i) => next.add(i));
|
|
2014
|
+
return next;
|
|
2015
|
+
});
|
|
2016
|
+
indexes.forEach((i) => {
|
|
2017
|
+
const st = settlingTimers.current.get(i);
|
|
2018
|
+
if (st) {
|
|
2019
|
+
clearTimeout(st);
|
|
2020
|
+
settlingTimers.current.delete(i);
|
|
2021
|
+
}
|
|
2022
|
+
});
|
|
2023
|
+
setSettlingRows((prev) => {
|
|
2024
|
+
const next = new Set(prev);
|
|
2025
|
+
indexes.forEach((i) => next.delete(i));
|
|
2026
|
+
return next;
|
|
2027
|
+
});
|
|
2028
|
+
indexes.forEach((i) => {
|
|
2029
|
+
const existing = copiedTimers.current.get(i);
|
|
2030
|
+
if (existing) clearTimeout(existing);
|
|
2031
|
+
const t = setTimeout(() => {
|
|
2032
|
+
setCopiedRows((prev) => {
|
|
2033
|
+
const next = new Set(prev);
|
|
2034
|
+
next.delete(i);
|
|
2035
|
+
return next;
|
|
2036
|
+
});
|
|
2037
|
+
setSettlingRows((prev) => {
|
|
2038
|
+
const next = new Set(prev);
|
|
2039
|
+
next.add(i);
|
|
2040
|
+
return next;
|
|
2041
|
+
});
|
|
2042
|
+
copiedTimers.current.delete(i);
|
|
2043
|
+
const settlingT = setTimeout(() => {
|
|
2044
|
+
setSettlingRows((prev) => {
|
|
2045
|
+
const next = new Set(prev);
|
|
2046
|
+
next.delete(i);
|
|
2047
|
+
return next;
|
|
2048
|
+
});
|
|
2049
|
+
settlingTimers.current.delete(i);
|
|
2050
|
+
}, TRANSITION_MS);
|
|
2051
|
+
settlingTimers.current.set(i, settlingT);
|
|
2052
|
+
}, duration);
|
|
2053
|
+
copiedTimers.current.set(i, t);
|
|
2054
|
+
});
|
|
2055
|
+
}, []);
|
|
2056
|
+
const handleRowCopy = async (row, index) => {
|
|
2057
|
+
const ok = await copyToClipboard(row.copy ?? row.value);
|
|
2058
|
+
if (ok) markCopied([index]);
|
|
2059
|
+
};
|
|
2060
|
+
const handleCopyAll = async () => {
|
|
2061
|
+
const text = rows.map((r) => `${r.label}: ${r.value}`).join("\n");
|
|
2062
|
+
const ok = await copyToClipboard(text);
|
|
2063
|
+
if (ok) {
|
|
2064
|
+
markCopied(rows.map((_, i) => i));
|
|
2065
|
+
setAllCopied(true);
|
|
2066
|
+
setTimeout(() => setAllCopied(false), 2e3);
|
|
2067
|
+
}
|
|
2068
|
+
};
|
|
2069
|
+
return /* @__PURE__ */ (0, import_jsx_runtime25.jsxs)(import_jsx_runtime25.Fragment, { children: [
|
|
2070
|
+
/* @__PURE__ */ (0, import_jsx_runtime25.jsx)("div", { ref: forwardedRef, className: (0, import_clsx.clsx)("kds-copyable-table", className), ...rest, children: rows.map((row, i) => /* @__PURE__ */ (0, import_jsx_runtime25.jsxs)(
|
|
2071
|
+
"div",
|
|
2072
|
+
{
|
|
2073
|
+
className: (0, import_clsx.clsx)(
|
|
2074
|
+
"kds-copyable-table-row",
|
|
2075
|
+
copiedRows.has(i) && "copied",
|
|
2076
|
+
settlingRows.has(i) && "settling"
|
|
2077
|
+
),
|
|
2078
|
+
role: "button",
|
|
2079
|
+
tabIndex: 0,
|
|
2080
|
+
onClick: () => handleRowCopy(row, i),
|
|
2081
|
+
onKeyDown: (e) => {
|
|
2082
|
+
if (e.key === "Enter" || e.key === " ") {
|
|
2083
|
+
e.preventDefault();
|
|
2084
|
+
handleRowCopy(row, i);
|
|
2085
|
+
}
|
|
2086
|
+
},
|
|
2087
|
+
"aria-label": `Copiar ${row.label}: ${row.value}`,
|
|
2088
|
+
children: [
|
|
2089
|
+
/* @__PURE__ */ (0, import_jsx_runtime25.jsx)("span", { className: "kds-key", children: row.label }),
|
|
2090
|
+
/* @__PURE__ */ (0, import_jsx_runtime25.jsx)("span", { className: "kds-value", children: row.value })
|
|
2091
|
+
]
|
|
2092
|
+
},
|
|
2093
|
+
`${row.label}-${i}`
|
|
2094
|
+
)) }),
|
|
2095
|
+
showCopyAll && /* @__PURE__ */ (0, import_jsx_runtime25.jsxs)(
|
|
2096
|
+
"button",
|
|
2097
|
+
{
|
|
2098
|
+
type: "button",
|
|
2099
|
+
className: (0, import_clsx.clsx)(
|
|
2100
|
+
"kds-btn",
|
|
2101
|
+
"kds-btn-outlined",
|
|
2102
|
+
"kds-btn-block",
|
|
2103
|
+
"kds-copy-all-btn",
|
|
2104
|
+
allCopied && "copied"
|
|
2105
|
+
),
|
|
2106
|
+
onClick: handleCopyAll,
|
|
2107
|
+
"aria-label": allCopied ? copiedAllLabel : copyAllLabel,
|
|
2108
|
+
children: [
|
|
2109
|
+
/* @__PURE__ */ (0, import_jsx_runtime25.jsx)("span", { className: "kds-icon", children: /* @__PURE__ */ (0, import_jsx_runtime25.jsx)("i", { className: "material-symbols-outlined", children: allCopied ? "check" : "content_copy" }) }),
|
|
2110
|
+
/* @__PURE__ */ (0, import_jsx_runtime25.jsx)("span", { children: allCopied ? copiedAllLabel : copyAllLabel })
|
|
2111
|
+
]
|
|
2112
|
+
}
|
|
2113
|
+
)
|
|
2114
|
+
] });
|
|
2115
|
+
}
|
|
2116
|
+
var KdsCopyableTable = (0, import_react26.forwardRef)(
|
|
2117
|
+
({
|
|
2118
|
+
rows = [],
|
|
2119
|
+
variant = "copyable",
|
|
2120
|
+
gridRows = [],
|
|
2121
|
+
disabled = false,
|
|
2122
|
+
copyAllLabel,
|
|
2123
|
+
copiedAllLabel,
|
|
2124
|
+
showCopyAll,
|
|
2125
|
+
className,
|
|
2126
|
+
...props
|
|
2127
|
+
}, ref) => {
|
|
2128
|
+
if (variant === "grid") {
|
|
2129
|
+
return /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(
|
|
2130
|
+
GridVariant,
|
|
2131
|
+
{
|
|
2132
|
+
gridRows,
|
|
2133
|
+
disabled,
|
|
2134
|
+
className,
|
|
2135
|
+
forwardedRef: ref,
|
|
2136
|
+
rest: props
|
|
2137
|
+
}
|
|
2138
|
+
);
|
|
2139
|
+
}
|
|
2140
|
+
return /* @__PURE__ */ (0, import_jsx_runtime25.jsx)(
|
|
2141
|
+
CopyableVariant,
|
|
2142
|
+
{
|
|
2143
|
+
rows,
|
|
2144
|
+
copyAllLabel,
|
|
2145
|
+
copiedAllLabel,
|
|
2146
|
+
showCopyAll,
|
|
2147
|
+
className,
|
|
2148
|
+
forwardedRef: ref,
|
|
2149
|
+
rest: props
|
|
2150
|
+
}
|
|
2151
|
+
);
|
|
1838
2152
|
}
|
|
1839
2153
|
);
|
|
1840
2154
|
KdsCopyableTable.displayName = "KdsCopyableTable";
|
|
1841
2155
|
|
|
1842
2156
|
// src/components/core/KdsExpandPanel/KdsExpandPanel.tsx
|
|
1843
|
-
var
|
|
1844
|
-
var
|
|
1845
|
-
var KdsExpandPanel = (0,
|
|
2157
|
+
var import_react27 = require("react");
|
|
2158
|
+
var import_jsx_runtime26 = require("react/jsx-runtime");
|
|
2159
|
+
var KdsExpandPanel = (0, import_react27.forwardRef)(
|
|
1846
2160
|
({ label, defaultExpanded = false, children, className, ...props }, ref) => {
|
|
1847
|
-
const [expanded, setExpanded] = (0,
|
|
1848
|
-
return /* @__PURE__ */ (0,
|
|
1849
|
-
/* @__PURE__ */ (0,
|
|
2161
|
+
const [expanded, setExpanded] = (0, import_react27.useState)(defaultExpanded);
|
|
2162
|
+
return /* @__PURE__ */ (0, import_jsx_runtime26.jsxs)("div", { ref, className, ...props, children: [
|
|
2163
|
+
/* @__PURE__ */ (0, import_jsx_runtime26.jsxs)(
|
|
1850
2164
|
"button",
|
|
1851
2165
|
{
|
|
1852
2166
|
className: "kds-expand-toggle",
|
|
1853
2167
|
onClick: () => setExpanded((v) => !v),
|
|
1854
2168
|
"aria-expanded": expanded,
|
|
1855
2169
|
children: [
|
|
1856
|
-
/* @__PURE__ */ (0,
|
|
1857
|
-
/* @__PURE__ */ (0,
|
|
2170
|
+
/* @__PURE__ */ (0, import_jsx_runtime26.jsx)("span", { children: label }),
|
|
2171
|
+
/* @__PURE__ */ (0, import_jsx_runtime26.jsx)("i", { className: "material-symbols-outlined", children: expanded ? "expand_less" : "expand_more" })
|
|
1858
2172
|
]
|
|
1859
2173
|
}
|
|
1860
2174
|
),
|
|
1861
|
-
/* @__PURE__ */ (0,
|
|
2175
|
+
/* @__PURE__ */ (0, import_jsx_runtime26.jsx)("div", { className: (0, import_clsx.clsx)("kds-expand-panel", expanded && "open"), hidden: !expanded, children })
|
|
1862
2176
|
] });
|
|
1863
2177
|
}
|
|
1864
2178
|
);
|
|
1865
2179
|
KdsExpandPanel.displayName = "KdsExpandPanel";
|
|
1866
2180
|
|
|
1867
2181
|
// src/components/core/KdsCountdown/KdsCountdown.tsx
|
|
1868
|
-
var
|
|
2182
|
+
var import_react29 = require("react");
|
|
1869
2183
|
|
|
1870
2184
|
// src/components/core/hooks/useCountdown.ts
|
|
1871
|
-
var
|
|
2185
|
+
var import_react28 = require("react");
|
|
1872
2186
|
function calcRemaining(deadline) {
|
|
1873
2187
|
const diff = Math.max(0, new Date(deadline).getTime() - Date.now());
|
|
1874
2188
|
const totalSeconds = Math.floor(diff / 1e3);
|
|
@@ -1881,8 +2195,8 @@ function calcRemaining(deadline) {
|
|
|
1881
2195
|
};
|
|
1882
2196
|
}
|
|
1883
2197
|
function useCountdown(deadline) {
|
|
1884
|
-
const [state, setState] = (0,
|
|
1885
|
-
(0,
|
|
2198
|
+
const [state, setState] = (0, import_react28.useState)(() => calcRemaining(deadline));
|
|
2199
|
+
(0, import_react28.useEffect)(() => {
|
|
1886
2200
|
const tick = () => setState(calcRemaining(deadline));
|
|
1887
2201
|
const id = setInterval(tick, 1e3);
|
|
1888
2202
|
return () => clearInterval(id);
|
|
@@ -1891,13 +2205,13 @@ function useCountdown(deadline) {
|
|
|
1891
2205
|
}
|
|
1892
2206
|
|
|
1893
2207
|
// src/components/core/KdsCountdown/KdsCountdown.tsx
|
|
1894
|
-
var
|
|
1895
|
-
var KdsCountdown = (0,
|
|
2208
|
+
var import_jsx_runtime27 = require("react/jsx-runtime");
|
|
2209
|
+
var KdsCountdown = (0, import_react29.forwardRef)(
|
|
1896
2210
|
({ deadline, label, onExpire, className, ...props }, ref) => {
|
|
1897
2211
|
const { hours, minutes, seconds, expired, urgent } = useCountdown(deadline);
|
|
1898
|
-
const onExpireRef = (0,
|
|
2212
|
+
const onExpireRef = (0, import_react29.useRef)(onExpire);
|
|
1899
2213
|
onExpireRef.current = onExpire;
|
|
1900
|
-
(0,
|
|
2214
|
+
(0, import_react29.useEffect)(() => {
|
|
1901
2215
|
if (expired) {
|
|
1902
2216
|
onExpireRef.current?.();
|
|
1903
2217
|
}
|
|
@@ -1906,9 +2220,9 @@ var KdsCountdown = (0, import_react28.forwardRef)(
|
|
|
1906
2220
|
return null;
|
|
1907
2221
|
}
|
|
1908
2222
|
const pad = (n) => String(n).padStart(2, "0");
|
|
1909
|
-
return /* @__PURE__ */ (0,
|
|
1910
|
-
label && /* @__PURE__ */ (0,
|
|
1911
|
-
/* @__PURE__ */ (0,
|
|
2223
|
+
return /* @__PURE__ */ (0, import_jsx_runtime27.jsxs)("div", { ref, className: (0, import_clsx.clsx)("kds-countdown", urgent && "urgent", className), ...props, children: [
|
|
2224
|
+
label && /* @__PURE__ */ (0, import_jsx_runtime27.jsx)("span", { className: "kds-countdown-label", children: label }),
|
|
2225
|
+
/* @__PURE__ */ (0, import_jsx_runtime27.jsxs)("span", { className: "kds-countdown-value", children: [
|
|
1912
2226
|
pad(hours),
|
|
1913
2227
|
":",
|
|
1914
2228
|
pad(minutes),
|
|
@@ -1921,96 +2235,98 @@ var KdsCountdown = (0, import_react28.forwardRef)(
|
|
|
1921
2235
|
KdsCountdown.displayName = "KdsCountdown";
|
|
1922
2236
|
|
|
1923
2237
|
// src/components/core/KdsSegmentedTabs/KdsSegmentedTabs.tsx
|
|
1924
|
-
var
|
|
1925
|
-
var
|
|
1926
|
-
var KdsSegmentedTabs = (0,
|
|
1927
|
-
(props, ref) => /* @__PURE__ */ (0,
|
|
2238
|
+
var import_react30 = require("react");
|
|
2239
|
+
var import_jsx_runtime28 = require("react/jsx-runtime");
|
|
2240
|
+
var KdsSegmentedTabs = (0, import_react30.forwardRef)(
|
|
2241
|
+
(props, ref) => /* @__PURE__ */ (0, import_jsx_runtime28.jsx)(KdsTabs, { ref, ...props })
|
|
1928
2242
|
);
|
|
1929
2243
|
KdsSegmentedTabs.displayName = "KdsSegmentedTabs";
|
|
1930
2244
|
|
|
1931
2245
|
// src/components/domain/KdsBankRow/KdsBankRow.tsx
|
|
1932
|
-
var
|
|
1933
|
-
var
|
|
1934
|
-
var KdsBankRow = (0,
|
|
1935
|
-
({ name, logoUrl, selected, className, ...props }, ref) =>
|
|
1936
|
-
"
|
|
1937
|
-
|
|
1938
|
-
|
|
1939
|
-
|
|
1940
|
-
|
|
1941
|
-
|
|
1942
|
-
|
|
1943
|
-
|
|
1944
|
-
|
|
1945
|
-
|
|
1946
|
-
|
|
1947
|
-
|
|
1948
|
-
|
|
2246
|
+
var import_react31 = require("react");
|
|
2247
|
+
var import_jsx_runtime29 = require("react/jsx-runtime");
|
|
2248
|
+
var KdsBankRow = (0, import_react31.forwardRef)(
|
|
2249
|
+
({ name, logoUrl, selected, hideLogo, className, ...props }, ref) => {
|
|
2250
|
+
const nameStr = typeof name === "string" ? name : "";
|
|
2251
|
+
return /* @__PURE__ */ (0, import_jsx_runtime29.jsxs)(
|
|
2252
|
+
"button",
|
|
2253
|
+
{
|
|
2254
|
+
ref,
|
|
2255
|
+
type: "button",
|
|
2256
|
+
className: (0, import_clsx.clsx)("kds-bank-row", selected && "selected", className),
|
|
2257
|
+
...props,
|
|
2258
|
+
children: [
|
|
2259
|
+
!hideLogo && /* @__PURE__ */ (0, import_jsx_runtime29.jsx)("span", { className: "kds-bank-row-logo", children: logoUrl ? /* @__PURE__ */ (0, import_jsx_runtime29.jsx)("img", { src: logoUrl, alt: nameStr }) : /* @__PURE__ */ (0, import_jsx_runtime29.jsx)("span", { className: "initials", children: nameStr.charAt(0) }) }),
|
|
2260
|
+
/* @__PURE__ */ (0, import_jsx_runtime29.jsx)("span", { className: "kds-bank-row-name", children: name }),
|
|
2261
|
+
/* @__PURE__ */ (0, import_jsx_runtime29.jsx)("i", { className: "material-symbols-outlined", children: selected ? "check_circle" : "chevron_right" })
|
|
2262
|
+
]
|
|
2263
|
+
}
|
|
2264
|
+
);
|
|
2265
|
+
}
|
|
1949
2266
|
);
|
|
1950
2267
|
KdsBankRow.displayName = "KdsBankRow";
|
|
1951
2268
|
|
|
1952
2269
|
// src/components/domain/KdsBankList/KdsBankList.tsx
|
|
1953
|
-
var
|
|
1954
|
-
var
|
|
1955
|
-
var KdsBankList = (0,
|
|
1956
|
-
({ children, className, ...props }, ref) => /* @__PURE__ */ (0,
|
|
2270
|
+
var import_react32 = require("react");
|
|
2271
|
+
var import_jsx_runtime30 = require("react/jsx-runtime");
|
|
2272
|
+
var KdsBankList = (0, import_react32.forwardRef)(
|
|
2273
|
+
({ children, className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime30.jsx)("div", { ref, className: (0, import_clsx.clsx)("kds-bank-list", className), role: "list", ...props, children })
|
|
1957
2274
|
);
|
|
1958
2275
|
KdsBankList.displayName = "KdsBankList";
|
|
1959
2276
|
|
|
1960
2277
|
// src/components/domain/KdsBankModal/KdsBankModal.tsx
|
|
1961
|
-
var
|
|
1962
|
-
var
|
|
1963
|
-
var
|
|
1964
|
-
var KdsBankModal = (0,
|
|
2278
|
+
var import_react33 = require("react");
|
|
2279
|
+
var Dialog = __toESM(require("@radix-ui/react-dialog"));
|
|
2280
|
+
var import_jsx_runtime31 = require("react/jsx-runtime");
|
|
2281
|
+
var KdsBankModal = (0, import_react33.forwardRef)(
|
|
1965
2282
|
({ open, onClose, title = "Selecciona tu banco", searchPlaceholder = "Buscar banco...", onSearch, children, className, container }, ref) => {
|
|
1966
|
-
const [query, setQuery] = (0,
|
|
2283
|
+
const [query, setQuery] = (0, import_react33.useState)("");
|
|
1967
2284
|
const handleSearch = (value) => {
|
|
1968
2285
|
setQuery(value);
|
|
1969
2286
|
onSearch?.(value);
|
|
1970
2287
|
};
|
|
1971
|
-
return /* @__PURE__ */ (0,
|
|
2288
|
+
return /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(Dialog.Root, { open, onOpenChange: (o) => {
|
|
1972
2289
|
if (!o) onClose();
|
|
1973
|
-
}, children: /* @__PURE__ */ (0,
|
|
1974
|
-
/* @__PURE__ */ (0,
|
|
1975
|
-
/* @__PURE__ */ (0,
|
|
1976
|
-
/* @__PURE__ */ (0,
|
|
2290
|
+
}, children: /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(Dialog.Portal, { container, children: /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(Dialog.Overlay, { className: "kds-bank-modal-scrim open", children: /* @__PURE__ */ (0, import_jsx_runtime31.jsxs)(Dialog.Content, { ref, className: (0, import_clsx.clsx)("kds-bank-modal", className), children: [
|
|
2291
|
+
/* @__PURE__ */ (0, import_jsx_runtime31.jsxs)("div", { className: "kds-bank-modal-header", children: [
|
|
2292
|
+
/* @__PURE__ */ (0, import_jsx_runtime31.jsx)(Dialog.Title, { asChild: true, children: /* @__PURE__ */ (0, import_jsx_runtime31.jsx)("h3", { children: title }) }),
|
|
2293
|
+
/* @__PURE__ */ (0, import_jsx_runtime31.jsx)(Dialog.Close, { asChild: true, children: /* @__PURE__ */ (0, import_jsx_runtime31.jsx)("button", { className: "kds-bank-modal-close", "aria-label": "Cerrar", children: /* @__PURE__ */ (0, import_jsx_runtime31.jsx)("i", { className: "material-symbols-outlined", children: "close" }) }) })
|
|
1977
2294
|
] }),
|
|
1978
|
-
/* @__PURE__ */ (0,
|
|
1979
|
-
|
|
2295
|
+
/* @__PURE__ */ (0, import_jsx_runtime31.jsx)("div", { className: "kds-bank-modal-search", children: /* @__PURE__ */ (0, import_jsx_runtime31.jsx)(
|
|
2296
|
+
KdsSearchField,
|
|
1980
2297
|
{
|
|
1981
|
-
type: "text",
|
|
1982
2298
|
placeholder: searchPlaceholder,
|
|
1983
2299
|
value: query,
|
|
1984
2300
|
onChange: (e) => handleSearch(e.target.value)
|
|
1985
2301
|
}
|
|
1986
2302
|
) }),
|
|
1987
|
-
/* @__PURE__ */ (0,
|
|
2303
|
+
/* @__PURE__ */ (0, import_jsx_runtime31.jsx)("div", { className: "kds-bank-modal-body", children })
|
|
1988
2304
|
] }) }) }) });
|
|
1989
2305
|
}
|
|
1990
2306
|
);
|
|
1991
2307
|
KdsBankModal.displayName = "KdsBankModal";
|
|
1992
2308
|
|
|
1993
2309
|
// src/components/domain/KdsQrRow/KdsQrRow.tsx
|
|
1994
|
-
var
|
|
1995
|
-
var
|
|
1996
|
-
var KdsQrRow = (0,
|
|
1997
|
-
({ name, description, badge, icon = "qr_code_2", className, ...props }, ref) => /* @__PURE__ */ (0,
|
|
1998
|
-
/* @__PURE__ */ (0,
|
|
1999
|
-
/* @__PURE__ */ (0,
|
|
2000
|
-
/* @__PURE__ */ (0,
|
|
2001
|
-
description && /* @__PURE__ */ (0,
|
|
2310
|
+
var import_react34 = require("react");
|
|
2311
|
+
var import_jsx_runtime32 = require("react/jsx-runtime");
|
|
2312
|
+
var KdsQrRow = (0, import_react34.forwardRef)(
|
|
2313
|
+
({ name, description, badge, icon = "qr_code_2", className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime32.jsxs)("button", { ref, type: "button", className: (0, import_clsx.clsx)("kds-qr-row", className), ...props, children: [
|
|
2314
|
+
/* @__PURE__ */ (0, import_jsx_runtime32.jsx)("span", { className: "kds-qr-avatar", "aria-hidden": "true", children: /* @__PURE__ */ (0, import_jsx_runtime32.jsx)("i", { className: "material-symbols-outlined", children: icon }) }),
|
|
2315
|
+
/* @__PURE__ */ (0, import_jsx_runtime32.jsxs)("span", { className: "kds-qr-text", children: [
|
|
2316
|
+
/* @__PURE__ */ (0, import_jsx_runtime32.jsx)("span", { className: "kds-qr-title", children: name }),
|
|
2317
|
+
description && /* @__PURE__ */ (0, import_jsx_runtime32.jsx)("span", { className: "kds-qr-subtitle", children: description })
|
|
2002
2318
|
] }),
|
|
2003
|
-
badge && /* @__PURE__ */ (0,
|
|
2004
|
-
/* @__PURE__ */ (0,
|
|
2319
|
+
badge && /* @__PURE__ */ (0, import_jsx_runtime32.jsx)("span", { className: "kds-qr-badge", children: badge }),
|
|
2320
|
+
/* @__PURE__ */ (0, import_jsx_runtime32.jsx)("i", { className: "material-symbols-outlined", children: "chevron_right" })
|
|
2005
2321
|
] })
|
|
2006
2322
|
);
|
|
2007
2323
|
KdsQrRow.displayName = "KdsQrRow";
|
|
2008
2324
|
|
|
2009
2325
|
// src/components/domain/KdsCardSelector/KdsCardSelector.tsx
|
|
2010
|
-
var
|
|
2011
|
-
var
|
|
2012
|
-
var KdsCardSelector = (0,
|
|
2013
|
-
({ icon, title, description, selected, className, ...props }, ref) => /* @__PURE__ */ (0,
|
|
2326
|
+
var import_react35 = require("react");
|
|
2327
|
+
var import_jsx_runtime33 = require("react/jsx-runtime");
|
|
2328
|
+
var KdsCardSelector = (0, import_react35.forwardRef)(
|
|
2329
|
+
({ icon, title, description, selected, className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime33.jsxs)(
|
|
2014
2330
|
"button",
|
|
2015
2331
|
{
|
|
2016
2332
|
ref,
|
|
@@ -2018,9 +2334,9 @@ var KdsCardSelector = (0, import_react34.forwardRef)(
|
|
|
2018
2334
|
className: (0, import_clsx.clsx)("kds-card-selector", selected && "selected", className),
|
|
2019
2335
|
...props,
|
|
2020
2336
|
children: [
|
|
2021
|
-
icon && /* @__PURE__ */ (0,
|
|
2022
|
-
/* @__PURE__ */ (0,
|
|
2023
|
-
description && /* @__PURE__ */ (0,
|
|
2337
|
+
icon && /* @__PURE__ */ (0, import_jsx_runtime33.jsx)("span", { className: "kds-card-selector-icon", children: /* @__PURE__ */ (0, import_jsx_runtime33.jsx)("i", { className: "material-symbols-outlined", children: icon }) }),
|
|
2338
|
+
/* @__PURE__ */ (0, import_jsx_runtime33.jsx)("span", { className: "kds-card-selector-title", children: title }),
|
|
2339
|
+
description && /* @__PURE__ */ (0, import_jsx_runtime33.jsx)("span", { className: "kds-card-selector-description", children: description })
|
|
2024
2340
|
]
|
|
2025
2341
|
}
|
|
2026
2342
|
)
|
|
@@ -2028,26 +2344,26 @@ var KdsCardSelector = (0, import_react34.forwardRef)(
|
|
|
2028
2344
|
KdsCardSelector.displayName = "KdsCardSelector";
|
|
2029
2345
|
|
|
2030
2346
|
// src/components/domain/KdsCardPlan/KdsCardPlan.tsx
|
|
2031
|
-
var
|
|
2032
|
-
var
|
|
2033
|
-
var KdsCardPlan = (0,
|
|
2034
|
-
({ title, price, period, features, recommended, badgeText, action, className, ...props }, ref) => /* @__PURE__ */ (0,
|
|
2347
|
+
var import_react36 = require("react");
|
|
2348
|
+
var import_jsx_runtime34 = require("react/jsx-runtime");
|
|
2349
|
+
var KdsCardPlan = (0, import_react36.forwardRef)(
|
|
2350
|
+
({ title, price, period, features, recommended, badgeText, action, className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime34.jsxs)(
|
|
2035
2351
|
"div",
|
|
2036
2352
|
{
|
|
2037
2353
|
ref,
|
|
2038
2354
|
className: (0, import_clsx.clsx)("kds-card-plan", recommended && "recommended", className),
|
|
2039
2355
|
...props,
|
|
2040
2356
|
children: [
|
|
2041
|
-
|
|
2042
|
-
/* @__PURE__ */ (0,
|
|
2043
|
-
|
|
2044
|
-
/* @__PURE__ */ (0,
|
|
2045
|
-
period && /* @__PURE__ */ (0, import_jsx_runtime33.jsxs)("span", { children: [
|
|
2357
|
+
/* @__PURE__ */ (0, import_jsx_runtime34.jsx)("div", { className: "kds-card-plan-header", children: /* @__PURE__ */ (0, import_jsx_runtime34.jsx)("h3", { children: title }) }),
|
|
2358
|
+
/* @__PURE__ */ (0, import_jsx_runtime34.jsxs)("div", { className: "kds-card-plan-price", children: [
|
|
2359
|
+
/* @__PURE__ */ (0, import_jsx_runtime34.jsx)("span", { className: "kds-price", children: price }),
|
|
2360
|
+
period && /* @__PURE__ */ (0, import_jsx_runtime34.jsxs)("span", { className: "kds-price-period", children: [
|
|
2046
2361
|
"/",
|
|
2047
2362
|
period
|
|
2048
2363
|
] })
|
|
2049
2364
|
] }),
|
|
2050
|
-
|
|
2365
|
+
badgeText && /* @__PURE__ */ (0, import_jsx_runtime34.jsx)("span", { className: "kds-card-plan-badge", children: badgeText }),
|
|
2366
|
+
features && features.length > 0 && /* @__PURE__ */ (0, import_jsx_runtime34.jsx)("ul", { className: "kds-card-plan-features", children: features.map((f, i) => /* @__PURE__ */ (0, import_jsx_runtime34.jsx)("li", { children: f }, i)) }),
|
|
2051
2367
|
action
|
|
2052
2368
|
]
|
|
2053
2369
|
}
|
|
@@ -2056,50 +2372,410 @@ var KdsCardPlan = (0, import_react35.forwardRef)(
|
|
|
2056
2372
|
KdsCardPlan.displayName = "KdsCardPlan";
|
|
2057
2373
|
|
|
2058
2374
|
// src/components/domain/KdsInvoiceSticky/KdsInvoiceSticky.tsx
|
|
2059
|
-
var
|
|
2060
|
-
var
|
|
2061
|
-
var KdsInvoiceSticky = (0,
|
|
2062
|
-
({ children, className, ...props }, ref) => /* @__PURE__ */ (0,
|
|
2375
|
+
var import_react37 = require("react");
|
|
2376
|
+
var import_jsx_runtime35 = require("react/jsx-runtime");
|
|
2377
|
+
var KdsInvoiceSticky = (0, import_react37.forwardRef)(
|
|
2378
|
+
({ children, className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime35.jsx)(
|
|
2379
|
+
"article",
|
|
2380
|
+
{
|
|
2381
|
+
ref,
|
|
2382
|
+
className: (0, import_clsx.clsx)("kds-card-elevated", "kds-invoice-sticky", className),
|
|
2383
|
+
...props,
|
|
2384
|
+
children
|
|
2385
|
+
}
|
|
2386
|
+
)
|
|
2063
2387
|
);
|
|
2064
2388
|
KdsInvoiceSticky.displayName = "KdsInvoiceSticky";
|
|
2065
2389
|
|
|
2066
2390
|
// src/components/domain/KdsBottomSheet/KdsBottomSheet.tsx
|
|
2067
|
-
var
|
|
2068
|
-
var
|
|
2069
|
-
var
|
|
2070
|
-
var KdsBottomSheet = (0,
|
|
2071
|
-
({
|
|
2072
|
-
|
|
2073
|
-
|
|
2074
|
-
|
|
2075
|
-
|
|
2076
|
-
|
|
2077
|
-
actions
|
|
2078
|
-
|
|
2391
|
+
var import_react38 = require("react");
|
|
2392
|
+
var Dialog2 = __toESM(require("@radix-ui/react-dialog"));
|
|
2393
|
+
var import_jsx_runtime36 = require("react/jsx-runtime");
|
|
2394
|
+
var KdsBottomSheet = (0, import_react38.forwardRef)(
|
|
2395
|
+
({
|
|
2396
|
+
open,
|
|
2397
|
+
onClose,
|
|
2398
|
+
title,
|
|
2399
|
+
description,
|
|
2400
|
+
children,
|
|
2401
|
+
actions,
|
|
2402
|
+
showGrabber = true,
|
|
2403
|
+
showCloseButton = false,
|
|
2404
|
+
container,
|
|
2405
|
+
className
|
|
2406
|
+
}, ref) => /* @__PURE__ */ (0, import_jsx_runtime36.jsx)(
|
|
2407
|
+
Dialog2.Root,
|
|
2408
|
+
{
|
|
2409
|
+
open,
|
|
2410
|
+
onOpenChange: (o) => {
|
|
2411
|
+
if (!o) onClose();
|
|
2412
|
+
},
|
|
2413
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime36.jsx)(Dialog2.Portal, { container, children: /* @__PURE__ */ (0, import_jsx_runtime36.jsx)(Dialog2.Overlay, { className: "kds-bottom-sheet-scrim open", children: /* @__PURE__ */ (0, import_jsx_runtime36.jsxs)(
|
|
2414
|
+
Dialog2.Content,
|
|
2415
|
+
{
|
|
2416
|
+
ref,
|
|
2417
|
+
className: (0, import_clsx.clsx)("kds-bottom-sheet", className),
|
|
2418
|
+
onPointerDownOutside: (e) => {
|
|
2419
|
+
const target = e.target;
|
|
2420
|
+
if (target.closest(".kds-bottom-sheet")) e.preventDefault();
|
|
2421
|
+
},
|
|
2422
|
+
children: [
|
|
2423
|
+
showGrabber && /* @__PURE__ */ (0, import_jsx_runtime36.jsx)("div", { className: "kds-bottom-sheet-grabber", "aria-hidden": "true" }),
|
|
2424
|
+
showCloseButton && /* @__PURE__ */ (0, import_jsx_runtime36.jsx)(Dialog2.Close, { asChild: true, children: /* @__PURE__ */ (0, import_jsx_runtime36.jsx)(
|
|
2425
|
+
"button",
|
|
2426
|
+
{
|
|
2427
|
+
type: "button",
|
|
2428
|
+
className: "kds-bottom-sheet-close",
|
|
2429
|
+
"aria-label": "Cerrar",
|
|
2430
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime36.jsx)("i", { className: "material-symbols-outlined", children: "close" })
|
|
2431
|
+
}
|
|
2432
|
+
) }),
|
|
2433
|
+
title && /* @__PURE__ */ (0, import_jsx_runtime36.jsx)(Dialog2.Title, { className: "kds-bottom-sheet-title", children: title }),
|
|
2434
|
+
description && /* @__PURE__ */ (0, import_jsx_runtime36.jsx)(Dialog2.Description, { className: "kds-bottom-sheet-description", children: description }),
|
|
2435
|
+
/* @__PURE__ */ (0, import_jsx_runtime36.jsx)("div", { className: "kds-bottom-sheet-body", children }),
|
|
2436
|
+
actions && /* @__PURE__ */ (0, import_jsx_runtime36.jsx)("div", { className: "kds-bottom-sheet-actions", children: actions })
|
|
2437
|
+
]
|
|
2438
|
+
}
|
|
2439
|
+
) }) })
|
|
2440
|
+
}
|
|
2441
|
+
)
|
|
2079
2442
|
);
|
|
2080
2443
|
KdsBottomSheet.displayName = "KdsBottomSheet";
|
|
2081
2444
|
|
|
2082
2445
|
// src/components/domain/KdsSecureFooter/KdsSecureFooter.tsx
|
|
2083
|
-
var
|
|
2084
|
-
|
|
2085
|
-
|
|
2086
|
-
|
|
2087
|
-
|
|
2088
|
-
|
|
2446
|
+
var import_react40 = require("react");
|
|
2447
|
+
|
|
2448
|
+
// src/components/domain/KdsSecureFooter/KhipuWordmark.tsx
|
|
2449
|
+
var import_react39 = require("react");
|
|
2450
|
+
var import_jsx_runtime37 = require("react/jsx-runtime");
|
|
2451
|
+
var KhipuWordmark = (0, import_react39.forwardRef)(
|
|
2452
|
+
({ className = "khipu-mark", ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime37.jsxs)(
|
|
2453
|
+
"svg",
|
|
2454
|
+
{
|
|
2455
|
+
ref,
|
|
2456
|
+
viewBox: "0 0 45 15",
|
|
2457
|
+
role: "img",
|
|
2458
|
+
"aria-label": "Khipu",
|
|
2459
|
+
className,
|
|
2460
|
+
xmlns: "http://www.w3.org/2000/svg",
|
|
2461
|
+
...props,
|
|
2462
|
+
children: [
|
|
2463
|
+
/* @__PURE__ */ (0, import_jsx_runtime37.jsx)("path", { d: "M16.6417 11.8339C16.7273 11.9196 16.8272 11.9624 16.9472 11.9624H18.9628C19.0798 11.9624 19.1826 11.9196 19.2682 11.8339C19.3539 11.7483 19.3967 11.6483 19.3967 11.5284V7.12891C19.3967 6.50081 19.3111 5.95551 19.1398 5.49586C18.9685 5.03621 18.7315 4.65937 18.4289 4.3596C18.1234 4.05983 17.758 3.83999 17.3326 3.69439C16.9043 3.55164 16.4361 3.47741 15.9251 3.47741C15.4226 3.47741 14.9801 3.58019 14.5975 3.7886C14.2121 3.99702 13.9295 4.214 13.7496 4.43668V1.03071C13.7496 0.913654 13.7068 0.810874 13.6211 0.728079C13.5355 0.642434 13.4355 0.599609 13.3185 0.599609H11.2943C11.1773 0.599609 11.0745 0.642434 10.9888 0.728079C10.9032 0.813729 10.8604 0.913654 10.8604 1.03071V11.5284C10.8604 11.6455 10.9032 11.7483 10.9888 11.8339C11.0745 11.9196 11.1744 11.9624 11.2943 11.9624H13.3099C13.427 11.9624 13.5298 11.9196 13.6126 11.8339C13.6982 11.7483 13.741 11.6483 13.741 11.5284V7.48006C13.741 7.02041 13.8495 6.65216 14.0693 6.37521C14.2892 6.09826 14.6375 5.95836 15.1171 5.95836C15.5968 5.95836 15.9479 6.09826 16.1735 6.37521C16.3961 6.65216 16.5103 7.02041 16.5103 7.48006V11.5284C16.5132 11.6483 16.556 11.7483 16.6417 11.8339Z", fill: "#8347AD" }),
|
|
2464
|
+
/* @__PURE__ */ (0, import_jsx_runtime37.jsx)("path", { d: "M23.6189 3.64014H21.6005C21.4834 3.64014 21.3806 3.68296 21.295 3.76861C21.2093 3.85426 21.1665 3.95418 21.1665 4.07124V11.5284C21.1665 11.6454 21.2093 11.7482 21.295 11.8339C21.3806 11.9195 21.4806 11.9623 21.6005 11.9623H23.6161C23.7331 11.9623 23.8359 11.9195 23.9187 11.8339C24.0044 11.7482 24.0472 11.6483 24.0472 11.5284V4.07124C24.0472 3.95418 24.0044 3.85141 23.9187 3.76861C23.8359 3.68296 23.736 3.64014 23.6189 3.64014Z", fill: "#8347AD" }),
|
|
2465
|
+
/* @__PURE__ */ (0, import_jsx_runtime37.jsx)("path", { d: "M34.1881 10.0723C34.3851 9.61264 34.4936 9.07019 34.5164 8.43924C34.5278 8.27934 34.5335 8.06239 34.5335 7.79114C34.5335 7.51994 34.5278 7.30294 34.5164 7.14309C34.4936 6.51499 34.3851 5.96969 34.1881 5.51004C33.9911 5.05039 33.7313 4.67068 33.4115 4.36519C33.0918 4.05971 32.7178 3.83702 32.2924 3.69427C31.8642 3.55152 31.4131 3.47729 30.9334 3.47729C30.5823 3.47729 30.2854 3.50584 30.0455 3.5658C29.8057 3.62575 29.603 3.69998 29.4374 3.78848C29.2718 3.87984 29.1348 3.98263 29.0206 4.09968C28.9093 4.21674 28.8036 4.32808 28.7094 4.43657V4.06828C28.7094 3.95122 28.6666 3.84844 28.5809 3.7628C28.4953 3.67715 28.3954 3.63432 28.2783 3.63432H26.3426C26.2256 3.63432 26.1228 3.67715 26.0372 3.7628C25.9515 3.84844 25.9087 3.94837 25.9087 4.06828V14.566C25.9087 14.683 25.9515 14.7858 26.0372 14.8715C26.1228 14.9571 26.2227 14.9999 26.3426 14.9999H28.3583C28.4753 14.9999 28.5781 14.9571 28.6637 14.8715C28.7494 14.7858 28.7922 14.6859 28.7922 14.566V11.1629C28.8664 11.2599 28.9635 11.3627 29.0806 11.474C29.1976 11.5854 29.3432 11.691 29.5117 11.7852C29.683 11.8823 29.8857 11.9622 30.1198 12.0251C30.3539 12.0879 30.6251 12.1221 30.9363 12.1221C31.4159 12.1221 31.8699 12.0479 32.2953 11.8994C32.7206 11.751 33.0946 11.5226 33.4144 11.22C33.7313 10.9145 33.9911 10.5319 34.1881 10.0723ZM31.65 8.24794C31.6186 8.62194 31.4959 8.94739 31.2817 9.22434C31.0676 9.50129 30.7107 9.64119 30.2083 9.64119C29.9742 9.64119 29.7715 9.60404 29.6002 9.52984C29.4289 9.45559 29.289 9.35569 29.1748 9.23289C29.0634 9.11014 28.9749 8.97309 28.9121 8.82464C28.8493 8.67619 28.8065 8.52204 28.7836 8.35929C28.7608 8.19939 28.7522 8.01384 28.7522 7.79974C28.7522 7.58559 28.7637 7.40004 28.7836 7.24014C28.8036 7.08029 28.8465 6.92609 28.9121 6.77479C28.9749 6.62634 29.0634 6.48929 29.1748 6.36654C29.2861 6.24374 29.4289 6.14384 29.6002 6.06959C29.7715 5.99539 29.9742 5.95824 30.2083 5.95824C30.7107 5.95824 31.0676 6.09814 31.2817 6.37509C31.4959 6.65204 31.6186 6.97749 31.65 7.35149C31.6843 7.65124 31.6843 7.95104 31.65 8.24794Z", fill: "#8347AD" }),
|
|
2466
|
+
/* @__PURE__ */ (0, import_jsx_runtime37.jsx)("path", { d: "M41.7481 11.8339C41.8337 11.9195 41.9337 11.9623 42.0536 11.9623H43.9093C44.0264 11.9623 44.1291 11.9195 44.2119 11.8339C44.2976 11.7482 44.3404 11.6483 44.3404 11.5284V4.07124C44.3404 3.95418 44.2976 3.85141 44.2119 3.76861C44.1263 3.68296 44.0264 3.64014 43.9093 3.64014H41.8937C41.7766 3.64014 41.6739 3.68296 41.5882 3.76861C41.5026 3.85426 41.4597 3.95418 41.4597 4.07124V8.1196C41.4597 8.57925 41.3598 8.94755 41.1628 9.22445C40.9658 9.5014 40.6318 9.6413 40.1636 9.6413C39.6954 9.6413 39.3585 9.5014 39.1558 9.22445C38.9531 8.94755 38.8503 8.57925 38.8503 8.1196V4.07124C38.8503 3.95418 38.8075 3.85141 38.7218 3.76861C38.6362 3.68296 38.5363 3.64014 38.4163 3.64014H36.4007C36.2837 3.64014 36.1809 3.68296 36.0953 3.76861C36.0096 3.85426 35.9668 3.95418 35.9668 4.07124V8.47075C35.9668 9.7298 36.2723 10.6519 36.8861 11.24C37.4999 11.8282 38.325 12.1194 39.3585 12.1194C39.6897 12.1194 39.9752 12.0908 40.215 12.0309C40.4548 11.9709 40.6661 11.8967 40.8459 11.8082C41.0286 11.7168 41.18 11.6169 41.3027 11.5027C41.4255 11.3914 41.5283 11.2772 41.6139 11.1601V11.5284C41.6196 11.6483 41.6624 11.7482 41.7481 11.8339Z", fill: "#8347AD" }),
|
|
2467
|
+
/* @__PURE__ */ (0, import_jsx_runtime37.jsx)("path", { d: "M22.5569 2.78074C21.7889 2.78074 21.1665 2.1555 21.1665 1.39037C21.1665 0.622385 21.7918 0 22.5569 0C23.3249 0 23.9473 0.62524 23.9473 1.39037C23.9501 2.1555 23.3249 2.78074 22.5569 2.78074Z", fill: "#3CB4E5" }),
|
|
2468
|
+
/* @__PURE__ */ (0, import_jsx_runtime37.jsx)("path", { d: "M3.1374 7.43996V4.78198L2.34372 5.77836C2.22095 5.93256 2.21524 6.14951 2.32944 6.31226L3.1374 7.43996Z", fill: "#743CEB" }),
|
|
2469
|
+
/* @__PURE__ */ (0, import_jsx_runtime37.jsx)("path", { d: "M2.96345 0.722369C2.88351 0.642434 2.78074 0.599609 2.66368 0.599609H0.40826C0.299771 0.599609 0.205557 0.639579 0.122763 0.722369C0.0428246 0.802309 0 0.905089 0 1.02214V11.557C0 11.6655 0.0399696 11.7597 0.122763 11.8425C0.202703 11.9224 0.299771 11.9652 0.40826 11.9652H2.66368C2.78359 11.9652 2.88351 11.9253 2.96345 11.8425C3.04339 11.7625 3.08622 11.6655 3.08622 11.557V8.41081L2.83783 8.08246L2.83212 8.07676L2.82642 8.06821L1.81576 6.65216C1.55024 6.28101 1.56166 5.76996 1.84716 5.41306L2.84069 4.16261L3.08622 3.84285V1.01929C3.08622 0.902234 3.04625 0.802309 2.96345 0.722369Z", fill: "#8347AD" }),
|
|
2470
|
+
/* @__PURE__ */ (0, import_jsx_runtime37.jsx)("path", { d: "M9.60962 11.9625C9.70667 11.9625 9.78947 11.9282 9.85227 11.8568C9.91797 11.7855 9.94937 11.7084 9.94937 11.6227C9.94937 11.5371 9.92652 11.4714 9.88367 11.4286L5.89242 6.0384L9.59247 1.13642C9.63532 1.08217 9.65812 1.01651 9.65812 0.942284C9.65812 0.856634 9.62387 0.776694 9.55252 0.708174C9.50967 0.665349 9.45832 0.633944 9.40407 0.616814C9.37267 0.608249 9.33552 0.602539 9.30127 0.602539H6.73752C6.56337 0.602539 6.42632 0.636799 6.32352 0.708174C6.22077 0.779549 6.14082 0.850924 6.08942 0.928009L3.32868 4.54525L2.32944 5.80145C2.27234 5.8728 2.24094 5.95845 2.24094 6.04695C2.23808 6.13545 2.26378 6.2211 2.31802 6.2982L2.83477 7.0205L3.32868 7.70855L6.29787 11.6199C6.32927 11.6627 6.39492 11.7312 6.49197 11.8226C6.55192 11.8797 6.63472 11.9197 6.73752 11.9425C6.80032 11.9568 6.86882 11.9625 6.94592 11.9625H9.60962Z", fill: "#3CB4E5" })
|
|
2471
|
+
]
|
|
2472
|
+
}
|
|
2473
|
+
)
|
|
2474
|
+
);
|
|
2475
|
+
KhipuWordmark.displayName = "KhipuWordmark";
|
|
2476
|
+
|
|
2477
|
+
// src/components/domain/KdsSecureFooter/KdsSecureFooter.tsx
|
|
2478
|
+
var import_jsx_runtime38 = require("react/jsx-runtime");
|
|
2479
|
+
var KdsSecureFooter = (0, import_react40.forwardRef)(
|
|
2480
|
+
({ variant = "default", showLogo = true, psp, children, className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime38.jsxs)("footer", { ref, className: (0, import_clsx.clsx)("kds-secure-footer", variant === "inside" && "inside", className), ...props, children: [
|
|
2481
|
+
/* @__PURE__ */ (0, import_jsx_runtime38.jsxs)("svg", { className: "kds-secure-footer-lock", viewBox: "0 0 24 24", "aria-hidden": "true", children: [
|
|
2482
|
+
/* @__PURE__ */ (0, import_jsx_runtime38.jsx)("rect", { x: "4.5", y: "10.5", width: "15", height: "10", rx: "2.25" }),
|
|
2483
|
+
/* @__PURE__ */ (0, import_jsx_runtime38.jsx)("path", { d: "M8 10.5V7a4 4 0 0 1 8 0v3.5" })
|
|
2484
|
+
] }),
|
|
2485
|
+
children || /* @__PURE__ */ (0, import_jsx_runtime38.jsx)("span", { children: "Pago seguro procesado por" }),
|
|
2486
|
+
showLogo && /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(KhipuWordmark, {}),
|
|
2487
|
+
psp && /* @__PURE__ */ (0, import_jsx_runtime38.jsxs)(import_jsx_runtime38.Fragment, { children: [
|
|
2488
|
+
/* @__PURE__ */ (0, import_jsx_runtime38.jsx)("span", { className: "kds-secure-footer-sep", "aria-hidden": "true" }),
|
|
2489
|
+
psp
|
|
2490
|
+
] })
|
|
2089
2491
|
] })
|
|
2090
2492
|
);
|
|
2091
2493
|
KdsSecureFooter.displayName = "KdsSecureFooter";
|
|
2092
2494
|
|
|
2093
2495
|
// src/components/domain/KdsRecapList/KdsRecapList.tsx
|
|
2094
|
-
var
|
|
2095
|
-
var
|
|
2096
|
-
var KdsRecapList = (0,
|
|
2097
|
-
({ items, className, ...props }, ref) => /* @__PURE__ */ (0,
|
|
2098
|
-
/* @__PURE__ */ (0,
|
|
2099
|
-
/* @__PURE__ */ (0,
|
|
2496
|
+
var import_react41 = require("react");
|
|
2497
|
+
var import_jsx_runtime39 = require("react/jsx-runtime");
|
|
2498
|
+
var KdsRecapList = (0, import_react41.forwardRef)(
|
|
2499
|
+
({ items, className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime39.jsx)("ul", { ref, className: (0, import_clsx.clsx)("kds-recap-list", className), ...props, children: items.map((item, i) => /* @__PURE__ */ (0, import_jsx_runtime39.jsxs)("li", { children: [
|
|
2500
|
+
/* @__PURE__ */ (0, import_jsx_runtime39.jsx)("span", { className: "kds-key", children: item.label }),
|
|
2501
|
+
/* @__PURE__ */ (0, import_jsx_runtime39.jsx)("span", { className: (0, import_clsx.clsx)("kds-value", !item.value && item.placeholder && "placeholder"), children: item.value || item.placeholder || "-" })
|
|
2100
2502
|
] }, i)) })
|
|
2101
2503
|
);
|
|
2102
2504
|
KdsRecapList.displayName = "KdsRecapList";
|
|
2505
|
+
|
|
2506
|
+
// src/components/domain/KdsMontoRow/KdsMontoRow.tsx
|
|
2507
|
+
var import_react42 = require("react");
|
|
2508
|
+
var import_jsx_runtime40 = require("react/jsx-runtime");
|
|
2509
|
+
var KdsMontoRow = (0, import_react42.forwardRef)(
|
|
2510
|
+
({ title, value, deadline, className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime40.jsxs)("div", { ref, className: (0, import_clsx.clsx)("kds-monto-row", className), ...props, children: [
|
|
2511
|
+
/* @__PURE__ */ (0, import_jsx_runtime40.jsxs)("div", { children: [
|
|
2512
|
+
/* @__PURE__ */ (0, import_jsx_runtime40.jsx)("div", { className: "kds-monto-row-title", children: title }),
|
|
2513
|
+
deadline && /* @__PURE__ */ (0, import_jsx_runtime40.jsx)("div", { className: "kds-monto-row-deadline", children: deadline })
|
|
2514
|
+
] }),
|
|
2515
|
+
/* @__PURE__ */ (0, import_jsx_runtime40.jsx)("div", { className: "kds-monto-row-value", children: value })
|
|
2516
|
+
] })
|
|
2517
|
+
);
|
|
2518
|
+
KdsMontoRow.displayName = "KdsMontoRow";
|
|
2519
|
+
|
|
2520
|
+
// src/components/domain/KdsMerchantTile/KdsMerchantTile.tsx
|
|
2521
|
+
var import_react43 = require("react");
|
|
2522
|
+
var import_jsx_runtime41 = require("react/jsx-runtime");
|
|
2523
|
+
var KdsMerchantTile = (0, import_react43.forwardRef)(
|
|
2524
|
+
({ name, logoUrl, initials, compact, className, ...props }, ref) => {
|
|
2525
|
+
const displayInitials = (initials ?? name.slice(0, 2)).toUpperCase();
|
|
2526
|
+
return /* @__PURE__ */ (0, import_jsx_runtime41.jsx)(
|
|
2527
|
+
"div",
|
|
2528
|
+
{
|
|
2529
|
+
ref,
|
|
2530
|
+
className: (0, import_clsx.clsx)("kds-merchant-tile", logoUrl && "logo", compact && "compact", className),
|
|
2531
|
+
"aria-label": name,
|
|
2532
|
+
...props,
|
|
2533
|
+
children: logoUrl ? /* @__PURE__ */ (0, import_jsx_runtime41.jsx)("img", { src: logoUrl, alt: name }) : displayInitials
|
|
2534
|
+
}
|
|
2535
|
+
);
|
|
2536
|
+
}
|
|
2537
|
+
);
|
|
2538
|
+
KdsMerchantTile.displayName = "KdsMerchantTile";
|
|
2539
|
+
|
|
2540
|
+
// src/components/domain/KdsInvoiceMerchant/KdsInvoiceMerchant.tsx
|
|
2541
|
+
var import_react44 = require("react");
|
|
2542
|
+
var import_jsx_runtime42 = require("react/jsx-runtime");
|
|
2543
|
+
var KdsInvoiceMerchant = (0, import_react44.forwardRef)(
|
|
2544
|
+
({ logoUrl, brandColor, className, style, ...props }, ref) => {
|
|
2545
|
+
const [failed, setFailed] = (0, import_react44.useState)(false);
|
|
2546
|
+
const showLogo = !!logoUrl && !failed;
|
|
2547
|
+
return /* @__PURE__ */ (0, import_jsx_runtime42.jsx)(
|
|
2548
|
+
"div",
|
|
2549
|
+
{
|
|
2550
|
+
ref,
|
|
2551
|
+
className: (0, import_clsx.clsx)("kds-invoice-merchant", className),
|
|
2552
|
+
"aria-hidden": "true",
|
|
2553
|
+
style: brandColor ? { background: brandColor, ...style } : style,
|
|
2554
|
+
...props,
|
|
2555
|
+
children: showLogo ? /* @__PURE__ */ (0, import_jsx_runtime42.jsx)("img", { src: logoUrl, alt: "", onError: () => setFailed(true) }) : /* @__PURE__ */ (0, import_jsx_runtime42.jsx)("i", { className: "material-symbols-outlined", children: "storefront" })
|
|
2556
|
+
}
|
|
2557
|
+
);
|
|
2558
|
+
}
|
|
2559
|
+
);
|
|
2560
|
+
KdsInvoiceMerchant.displayName = "KdsInvoiceMerchant";
|
|
2561
|
+
|
|
2562
|
+
// src/components/domain/KdsPaymentTotal/KdsPaymentTotal.tsx
|
|
2563
|
+
var import_react45 = require("react");
|
|
2564
|
+
var import_jsx_runtime43 = require("react/jsx-runtime");
|
|
2565
|
+
var KdsPaymentTotal = (0, import_react45.forwardRef)(
|
|
2566
|
+
({
|
|
2567
|
+
variant = "default",
|
|
2568
|
+
tone = "brand",
|
|
2569
|
+
centered = false,
|
|
2570
|
+
amount,
|
|
2571
|
+
currency = "S/",
|
|
2572
|
+
decimals = 2,
|
|
2573
|
+
locale = "es-PE",
|
|
2574
|
+
label = "Monto a pagar",
|
|
2575
|
+
title = "Escanea el QR",
|
|
2576
|
+
titleMobile = "Descarga el QR",
|
|
2577
|
+
className,
|
|
2578
|
+
...props
|
|
2579
|
+
}, ref) => {
|
|
2580
|
+
const { integer, fraction } = formatAmount(amount, decimals, locale);
|
|
2581
|
+
const isEmail = variant === "email";
|
|
2582
|
+
const isInfoTone = tone === "info";
|
|
2583
|
+
return /* @__PURE__ */ (0, import_jsx_runtime43.jsxs)(
|
|
2584
|
+
"div",
|
|
2585
|
+
{
|
|
2586
|
+
ref,
|
|
2587
|
+
className: (0, import_clsx.clsx)(
|
|
2588
|
+
"kds-payment-total",
|
|
2589
|
+
isEmail && "kds-payment-total--email",
|
|
2590
|
+
isInfoTone && "kds-payment-total--tone-info",
|
|
2591
|
+
centered && "kds-payment-total--centered",
|
|
2592
|
+
className
|
|
2593
|
+
),
|
|
2594
|
+
...props,
|
|
2595
|
+
children: [
|
|
2596
|
+
!isEmail && title != null && /* @__PURE__ */ (0, import_jsx_runtime43.jsx)("h5", { className: "kds-payment-total-title", children: title }),
|
|
2597
|
+
!isEmail && titleMobile != null && /* @__PURE__ */ (0, import_jsx_runtime43.jsx)("h5", { className: "kds-payment-total-title-mobile", children: titleMobile }),
|
|
2598
|
+
label != null && /* @__PURE__ */ (0, import_jsx_runtime43.jsx)("h6", { className: "kds-payment-label", children: label }),
|
|
2599
|
+
/* @__PURE__ */ (0, import_jsx_runtime43.jsxs)("h5", { className: "kds-payment-amount", children: [
|
|
2600
|
+
currency,
|
|
2601
|
+
" ",
|
|
2602
|
+
integer,
|
|
2603
|
+
fraction !== null && /* @__PURE__ */ (0, import_jsx_runtime43.jsx)("sup", { className: "kds-payment-total-decimal-sup", children: fraction })
|
|
2604
|
+
] })
|
|
2605
|
+
]
|
|
2606
|
+
}
|
|
2607
|
+
);
|
|
2608
|
+
}
|
|
2609
|
+
);
|
|
2610
|
+
KdsPaymentTotal.displayName = "KdsPaymentTotal";
|
|
2611
|
+
function formatAmount(amount, decimals, locale) {
|
|
2612
|
+
const showDecimals = typeof decimals === "number" && decimals > 0;
|
|
2613
|
+
if (typeof amount === "number") {
|
|
2614
|
+
if (showDecimals) {
|
|
2615
|
+
const fixed = amount.toFixed(decimals);
|
|
2616
|
+
const [int, frac] = fixed.split(".");
|
|
2617
|
+
const formattedInt2 = new Intl.NumberFormat(locale, { maximumFractionDigits: 0 }).format(
|
|
2618
|
+
Number(int)
|
|
2619
|
+
);
|
|
2620
|
+
return { integer: formattedInt2, fraction: frac ?? null };
|
|
2621
|
+
}
|
|
2622
|
+
const formattedInt = new Intl.NumberFormat(locale, { maximumFractionDigits: 0 }).format(
|
|
2623
|
+
Math.trunc(amount)
|
|
2624
|
+
);
|
|
2625
|
+
return { integer: formattedInt, fraction: null };
|
|
2626
|
+
}
|
|
2627
|
+
const str = amount.trim();
|
|
2628
|
+
const dotIdx = str.indexOf(".");
|
|
2629
|
+
if (dotIdx === -1 || !showDecimals) {
|
|
2630
|
+
return { integer: str, fraction: null };
|
|
2631
|
+
}
|
|
2632
|
+
return {
|
|
2633
|
+
integer: str.slice(0, dotIdx),
|
|
2634
|
+
fraction: str.slice(dotIdx + 1)
|
|
2635
|
+
};
|
|
2636
|
+
}
|
|
2637
|
+
|
|
2638
|
+
// src/components/domain/KdsBillAttachment/KdsBillAttachment.tsx
|
|
2639
|
+
var import_react46 = require("react");
|
|
2640
|
+
var import_jsx_runtime44 = require("react/jsx-runtime");
|
|
2641
|
+
var KdsBillAttachment = (0, import_react46.forwardRef)(
|
|
2642
|
+
({ filename, href, icon = "attach_file", className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime44.jsxs)(
|
|
2643
|
+
"a",
|
|
2644
|
+
{
|
|
2645
|
+
ref,
|
|
2646
|
+
href,
|
|
2647
|
+
target: "_blank",
|
|
2648
|
+
rel: "noopener noreferrer",
|
|
2649
|
+
className: (0, import_clsx.clsx)("kds-bill-attachment", className),
|
|
2650
|
+
...props,
|
|
2651
|
+
children: [
|
|
2652
|
+
/* @__PURE__ */ (0, import_jsx_runtime44.jsx)("i", { className: "material-symbols-outlined", children: icon }),
|
|
2653
|
+
/* @__PURE__ */ (0, import_jsx_runtime44.jsx)("span", { children: filename })
|
|
2654
|
+
]
|
|
2655
|
+
}
|
|
2656
|
+
)
|
|
2657
|
+
);
|
|
2658
|
+
KdsBillAttachment.displayName = "KdsBillAttachment";
|
|
2659
|
+
var KdsBillAttachments = (0, import_react46.forwardRef)(
|
|
2660
|
+
({ children, className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime44.jsx)("div", { ref, className: (0, import_clsx.clsx)("kds-bill-attachments", className), ...props, children })
|
|
2661
|
+
);
|
|
2662
|
+
KdsBillAttachments.displayName = "KdsBillAttachments";
|
|
2663
|
+
|
|
2664
|
+
// src/components/core/hooks/useStickyInvoiceCollapse.ts
|
|
2665
|
+
var import_react47 = require("react");
|
|
2666
|
+
function useStickyInvoiceCollapse(options = {}) {
|
|
2667
|
+
const { onCollapseStart, collapseEnd = 20, mobileBreakpoint = 768 } = options;
|
|
2668
|
+
const onCollapseStartRef = (0, import_react47.useRef)(onCollapseStart);
|
|
2669
|
+
onCollapseStartRef.current = onCollapseStart;
|
|
2670
|
+
(0, import_react47.useEffect)(() => {
|
|
2671
|
+
let viewportOffset = 0;
|
|
2672
|
+
let ticking = false;
|
|
2673
|
+
let wasCollapsing = false;
|
|
2674
|
+
const isMobile = () => window.innerWidth < mobileBreakpoint;
|
|
2675
|
+
const closeOpenPanels = (sticky) => {
|
|
2676
|
+
const toggles = sticky.querySelectorAll(
|
|
2677
|
+
'[data-expand-toggle][aria-expanded="true"], .kds-expand-toggle[aria-expanded="true"]'
|
|
2678
|
+
);
|
|
2679
|
+
toggles.forEach((toggle) => {
|
|
2680
|
+
toggle.setAttribute("aria-expanded", "false");
|
|
2681
|
+
const panelId = toggle.getAttribute("aria-controls");
|
|
2682
|
+
const panel = panelId ? document.getElementById(panelId) : toggle.parentElement?.querySelector("[data-expand-panel], .kds-expand-panel");
|
|
2683
|
+
panel?.classList.remove("open");
|
|
2684
|
+
});
|
|
2685
|
+
};
|
|
2686
|
+
const apply = () => {
|
|
2687
|
+
ticking = false;
|
|
2688
|
+
const screen = document.querySelector(".kds-screen.active");
|
|
2689
|
+
if (!screen) return;
|
|
2690
|
+
const sticky = screen.querySelector(".kds-invoice-sticky");
|
|
2691
|
+
if (!sticky || !isMobile()) {
|
|
2692
|
+
screen.style.removeProperty("--collapse-progress");
|
|
2693
|
+
screen.style.removeProperty("--collapse-collapsible-h");
|
|
2694
|
+
sticky?.classList.remove("is-collapsed");
|
|
2695
|
+
wasCollapsing = false;
|
|
2696
|
+
return;
|
|
2697
|
+
}
|
|
2698
|
+
const scrollY = Math.max(window.scrollY || window.pageYOffset || 0, viewportOffset);
|
|
2699
|
+
const progress = Math.min(Math.max(scrollY / collapseEnd, 0), 1);
|
|
2700
|
+
if (!screen.style.getPropertyValue("--collapse-collapsible-h")) {
|
|
2701
|
+
const collapsible = sticky.querySelector(".kds-invoice-collapsible");
|
|
2702
|
+
if (collapsible) {
|
|
2703
|
+
screen.style.setProperty("--collapse-collapsible-h", `${collapsible.offsetHeight}px`);
|
|
2704
|
+
}
|
|
2705
|
+
}
|
|
2706
|
+
screen.style.setProperty("--collapse-progress", String(progress));
|
|
2707
|
+
sticky.classList.toggle("is-collapsed", progress >= 1);
|
|
2708
|
+
if (progress > 0) {
|
|
2709
|
+
if (!wasCollapsing) {
|
|
2710
|
+
wasCollapsing = true;
|
|
2711
|
+
closeOpenPanels(sticky);
|
|
2712
|
+
onCollapseStartRef.current?.();
|
|
2713
|
+
}
|
|
2714
|
+
} else {
|
|
2715
|
+
wasCollapsing = false;
|
|
2716
|
+
}
|
|
2717
|
+
};
|
|
2718
|
+
const onScroll = () => {
|
|
2719
|
+
if (ticking) return;
|
|
2720
|
+
ticking = true;
|
|
2721
|
+
window.requestAnimationFrame(apply);
|
|
2722
|
+
};
|
|
2723
|
+
const onMessage = (event) => {
|
|
2724
|
+
if (event.data && event.data.type === "VIEWPORT_OFFSET") {
|
|
2725
|
+
viewportOffset = Math.max(0, event.data.offsetTop || 0);
|
|
2726
|
+
onScroll();
|
|
2727
|
+
}
|
|
2728
|
+
};
|
|
2729
|
+
window.addEventListener("scroll", onScroll, { passive: true });
|
|
2730
|
+
window.addEventListener("resize", onScroll);
|
|
2731
|
+
window.addEventListener("message", onMessage);
|
|
2732
|
+
apply();
|
|
2733
|
+
return () => {
|
|
2734
|
+
window.removeEventListener("scroll", onScroll);
|
|
2735
|
+
window.removeEventListener("resize", onScroll);
|
|
2736
|
+
window.removeEventListener("message", onMessage);
|
|
2737
|
+
};
|
|
2738
|
+
}, [collapseEnd, mobileBreakpoint]);
|
|
2739
|
+
}
|
|
2740
|
+
|
|
2741
|
+
// src/components/core/hooks/useExpandToggle.ts
|
|
2742
|
+
var import_react48 = require("react");
|
|
2743
|
+
function useExpandToggle(options = {}) {
|
|
2744
|
+
const { defaultOpen = false, open: controlledOpen, onOpenChange, id } = options;
|
|
2745
|
+
const generatedId = (0, import_react48.useId)();
|
|
2746
|
+
const panelId = id ?? `kds-expand-${generatedId}`;
|
|
2747
|
+
const isControlled = controlledOpen !== void 0;
|
|
2748
|
+
const [uncontrolledOpen, setUncontrolledOpen] = (0, import_react48.useState)(defaultOpen);
|
|
2749
|
+
const open = isControlled ? controlledOpen : uncontrolledOpen;
|
|
2750
|
+
const setOpen = (0, import_react48.useCallback)(
|
|
2751
|
+
(next) => {
|
|
2752
|
+
if (!isControlled) {
|
|
2753
|
+
setUncontrolledOpen(next);
|
|
2754
|
+
}
|
|
2755
|
+
onOpenChange?.(next);
|
|
2756
|
+
},
|
|
2757
|
+
[isControlled, onOpenChange]
|
|
2758
|
+
);
|
|
2759
|
+
const toggle = (0, import_react48.useCallback)(() => setOpen(!open), [open, setOpen]);
|
|
2760
|
+
const getToggleProps = (0, import_react48.useCallback)(
|
|
2761
|
+
() => ({
|
|
2762
|
+
type: "button",
|
|
2763
|
+
"aria-expanded": open,
|
|
2764
|
+
"aria-controls": panelId,
|
|
2765
|
+
onClick: () => toggle()
|
|
2766
|
+
}),
|
|
2767
|
+
[open, panelId, toggle]
|
|
2768
|
+
);
|
|
2769
|
+
const getPanelProps = (0, import_react48.useCallback)(
|
|
2770
|
+
(baseClassName = "kds-expand-panel") => ({
|
|
2771
|
+
id: panelId,
|
|
2772
|
+
className: open ? `${baseClassName} open` : baseClassName,
|
|
2773
|
+
hidden: !open
|
|
2774
|
+
}),
|
|
2775
|
+
[open, panelId]
|
|
2776
|
+
);
|
|
2777
|
+
return { open, setOpen, toggle, getToggleProps, getPanelProps };
|
|
2778
|
+
}
|
|
2103
2779
|
// Annotate the CommonJS export names for ESM import in node:
|
|
2104
2780
|
0 && (module.exports = {
|
|
2105
2781
|
KdsAccordion,
|
|
@@ -2109,6 +2785,8 @@ KdsRecapList.displayName = "KdsRecapList";
|
|
|
2109
2785
|
KdsBankList,
|
|
2110
2786
|
KdsBankModal,
|
|
2111
2787
|
KdsBankRow,
|
|
2788
|
+
KdsBillAttachment,
|
|
2789
|
+
KdsBillAttachments,
|
|
2112
2790
|
KdsBottomSheet,
|
|
2113
2791
|
KdsButton,
|
|
2114
2792
|
KdsCard,
|
|
@@ -2119,24 +2797,25 @@ KdsRecapList.displayName = "KdsRecapList";
|
|
|
2119
2797
|
KdsCardSelector,
|
|
2120
2798
|
KdsCheckbox,
|
|
2121
2799
|
KdsChip,
|
|
2800
|
+
KdsCopyButton,
|
|
2122
2801
|
KdsCopyRow,
|
|
2123
2802
|
KdsCopyableTable,
|
|
2124
2803
|
KdsCountdown,
|
|
2125
2804
|
KdsDivider,
|
|
2126
2805
|
KdsExpandPanel,
|
|
2806
|
+
KdsInvoiceMerchant,
|
|
2127
2807
|
KdsInvoiceSticky,
|
|
2128
2808
|
KdsLinearProgress,
|
|
2129
|
-
|
|
2130
|
-
|
|
2131
|
-
|
|
2132
|
-
KdsLogoHeaderLogo,
|
|
2133
|
-
KdsLogoHeaderSeparator,
|
|
2134
|
-
KdsModal,
|
|
2809
|
+
KdsMerchantTile,
|
|
2810
|
+
KdsMontoRow,
|
|
2811
|
+
KdsPaymentTotal,
|
|
2135
2812
|
KdsQrRow,
|
|
2136
2813
|
KdsRadioGroup,
|
|
2137
2814
|
KdsRecapList,
|
|
2815
|
+
KdsSearchField,
|
|
2138
2816
|
KdsSectionNote,
|
|
2139
2817
|
KdsSecureFooter,
|
|
2818
|
+
KdsSecureLoader,
|
|
2140
2819
|
KdsSegmentedTabs,
|
|
2141
2820
|
KdsSelect,
|
|
2142
2821
|
KdsSnackbar,
|
|
@@ -2172,6 +2851,8 @@ KdsRecapList.displayName = "KdsRecapList";
|
|
|
2172
2851
|
useAutoHide,
|
|
2173
2852
|
useCopyToClipboard,
|
|
2174
2853
|
useCountdown,
|
|
2854
|
+
useExpandToggle,
|
|
2855
|
+
useStickyInvoiceCollapse,
|
|
2175
2856
|
useTabsKeyboard,
|
|
2176
2857
|
zIndex
|
|
2177
2858
|
});
|