@khipu/design-system 0.2.0-alpha.99 → 0.3.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (54) hide show
  1. package/dist/beercss/arch.svg +1 -0
  2. package/dist/beercss/arrow.svg +1 -0
  3. package/dist/beercss/boom.svg +1 -0
  4. package/dist/beercss/bun.svg +1 -0
  5. package/dist/beercss/burst.svg +1 -0
  6. package/dist/beercss/circle.svg +1 -0
  7. package/dist/beercss/clamshell.svg +1 -0
  8. package/dist/beercss/diamond.svg +1 -0
  9. package/dist/beercss/fan.svg +1 -0
  10. package/dist/beercss/flower.svg +1 -0
  11. package/dist/beercss/gem.svg +1 -0
  12. package/dist/beercss/ghost-ish.svg +1 -0
  13. package/dist/beercss/heart.svg +1 -0
  14. package/dist/beercss/khipu-beercss.css +868 -98
  15. package/dist/beercss/khipu-beercss.js +75 -0
  16. package/dist/beercss/khipu-beercss.min.css +1 -1
  17. package/dist/beercss/khipu-beercss.min.js +1 -1
  18. package/dist/beercss/khipu-beercss.scoped.css +868 -98
  19. package/dist/beercss/khipu-beercss.scoped.min.css +1 -1
  20. package/dist/beercss/leaf-clover4.svg +1 -0
  21. package/dist/beercss/leaf-clover8.svg +1 -0
  22. package/dist/beercss/loading-indicator.svg +1 -0
  23. package/dist/beercss/material-symbols-outlined.woff2 +0 -0
  24. package/dist/beercss/material-symbols-rounded.woff2 +0 -0
  25. package/dist/beercss/material-symbols-sharp.woff2 +0 -0
  26. package/dist/beercss/material-symbols-subset.woff2 +0 -0
  27. package/dist/beercss/metadata.json +5 -5
  28. package/dist/beercss/oval.svg +1 -0
  29. package/dist/beercss/pentagon.svg +1 -0
  30. package/dist/beercss/pill.svg +1 -0
  31. package/dist/beercss/pixel-circle.svg +1 -0
  32. package/dist/beercss/pixel-triangle.svg +1 -0
  33. package/dist/beercss/puffy-diamond.svg +1 -0
  34. package/dist/beercss/puffy.svg +1 -0
  35. package/dist/beercss/semicircle.svg +1 -0
  36. package/dist/beercss/sided-cookie12.svg +1 -0
  37. package/dist/beercss/sided-cookie4.svg +1 -0
  38. package/dist/beercss/sided-cookie6.svg +1 -0
  39. package/dist/beercss/sided-cookie7.svg +1 -0
  40. package/dist/beercss/sided-cookie9.svg +1 -0
  41. package/dist/beercss/slanted.svg +1 -0
  42. package/dist/beercss/soft-boom.svg +1 -0
  43. package/dist/beercss/soft-burst.svg +1 -0
  44. package/dist/beercss/square.svg +1 -0
  45. package/dist/beercss/sunny.svg +1 -0
  46. package/dist/beercss/triangle.svg +1 -0
  47. package/dist/beercss/very-sunny.svg +1 -0
  48. package/dist/beercss/wavy-circle.svg +1 -0
  49. package/dist/beercss/wavy.svg +1 -0
  50. package/dist/index.d.mts +128 -6
  51. package/dist/index.d.ts +128 -6
  52. package/dist/index.js +394 -156
  53. package/dist/index.mjs +373 -146
  54. package/package.json +3 -2
package/dist/index.js CHANGED
@@ -54,6 +54,7 @@ __export(index_exports, {
54
54
  KdsCopyableTable: () => KdsCopyableTable,
55
55
  KdsCountdown: () => KdsCountdown,
56
56
  KdsDivider: () => KdsDivider,
57
+ KdsEmptyState: () => KdsEmptyState,
57
58
  KdsExpandPanel: () => KdsExpandPanel,
58
59
  KdsFab: () => KdsFab,
59
60
  KdsInvoiceMerchant: () => KdsInvoiceMerchant,
@@ -82,11 +83,14 @@ __export(index_exports, {
82
83
  KdsThemeProvider: () => KdsThemeProvider,
83
84
  KdsTooltip: () => KdsTooltip,
84
85
  KdsTypography: () => KdsTypography,
86
+ LIGHT_LOGO_LUMINANCE_THRESHOLD: () => LIGHT_LOGO_LUMINANCE_THRESHOLD,
85
87
  borderRadius: () => borderRadius,
86
88
  breakpoints: () => breakpoints,
89
+ centerFieldInViewport: () => centerFieldInViewport,
87
90
  clsx: () => import_clsx.clsx,
88
91
  colors: () => colors,
89
92
  colorsByMode: () => colorsByMode,
93
+ focusFirstInvalidField: () => focusFirstInvalidField,
90
94
  fontFamilies: () => fontFamilies,
91
95
  fontSizes: () => fontSizes,
92
96
  fontWeights: () => fontWeights,
@@ -94,9 +98,14 @@ __export(index_exports, {
94
98
  formatDateTime: () => formatDateTime,
95
99
  formatTime: () => formatTime,
96
100
  getContrastColor: () => getContrastColor,
101
+ guideToFirstInvalidFieldOnBlur: () => guideToFirstInvalidFieldOnBlur,
97
102
  letterSpacings: () => letterSpacings,
98
103
  lighten: () => lighten,
99
104
  lineHeights: () => lineHeights,
105
+ measureLogoLuminance: () => measureLogoLuminance,
106
+ pickLogoBackdrop: () => pickLogoBackdrop,
107
+ runAfterPointerGesture: () => runAfterPointerGesture,
108
+ scrollToFirstInvalidField: () => scrollToFirstInvalidField,
100
109
  semanticSpacing: () => semanticSpacing,
101
110
  shadows: () => shadows,
102
111
  spacing: () => spacing,
@@ -109,6 +118,8 @@ __export(index_exports, {
109
118
  useCountdown: () => useCountdown,
110
119
  useExpandToggle: () => useExpandToggle,
111
120
  useHideOnScroll: () => useHideOnScroll,
121
+ useLogoBackdrop: () => useLogoBackdrop,
122
+ useMediaQuery: () => useMediaQuery,
112
123
  useStickyInvoiceCollapse: () => useStickyInvoiceCollapse,
113
124
  useTabsKeyboard: () => useTabsKeyboard,
114
125
  zIndex: () => zIndex
@@ -1184,7 +1195,7 @@ var KdsButton = (0, import_react.forwardRef)(
1184
1195
  children,
1185
1196
  className,
1186
1197
  ...props
1187
- }, ref) => /* @__PURE__ */ (0, import_jsx_runtime2.jsxs)(
1198
+ }, ref) => /* @__PURE__ */ (0, import_jsx_runtime2.jsx)(
1188
1199
  "button",
1189
1200
  {
1190
1201
  ref,
@@ -1198,14 +1209,18 @@ var KdsButton = (0, import_react.forwardRef)(
1198
1209
  disabled: disabled || loading,
1199
1210
  "aria-busy": loading || void 0,
1200
1211
  ...props,
1201
- children: [
1202
- !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 }) }),
1203
- loading ? /* @__PURE__ */ (0, import_jsx_runtime2.jsxs)(import_jsx_runtime2.Fragment, { children: [
1204
- /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("progress", { className: "circle indeterminate small" }),
1205
- /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("span", { children })
1206
- ] }) : /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("span", { children }),
1207
- !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 }) })
1208
- ]
1212
+ children: loading ? /* @__PURE__ */ (0, import_jsx_runtime2.jsxs)(import_jsx_runtime2.Fragment, { children: [
1213
+ /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("progress", { className: "circle indeterminate small" }),
1214
+ /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("span", { children })
1215
+ ] }) : (
1216
+ /* Iconos DENTRO del label (inline): si el texto envuelve en pantallas angostas,
1217
+ el icono fluye con la primera linea en vez de quedar anclado al borde del boton. */
1218
+ /* @__PURE__ */ (0, import_jsx_runtime2.jsxs)("span", { className: "kds-btn-label", children: [
1219
+ startIcon && /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("span", { className: "kds-icon kds-icon-start", children: /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("i", { className: "material-symbols-outlined", children: startIcon }) }),
1220
+ children,
1221
+ endIcon && /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("span", { className: "kds-icon kds-icon-end", children: /* @__PURE__ */ (0, import_jsx_runtime2.jsx)("i", { className: "material-symbols-outlined", children: endIcon }) })
1222
+ ] })
1223
+ )
1209
1224
  }
1210
1225
  )
1211
1226
  );
@@ -1538,6 +1553,7 @@ var variantTag = {
1538
1553
  "body-small": "p",
1539
1554
  label: "span",
1540
1555
  "label-small": "span",
1556
+ "kv-label": "span",
1541
1557
  value: "span",
1542
1558
  code: "span",
1543
1559
  caption: "span",
@@ -2312,13 +2328,36 @@ var KdsFab = (0, import_react31.forwardRef)(
2312
2328
  );
2313
2329
  KdsFab.displayName = "KdsFab";
2314
2330
 
2315
- // src/components/domain/KdsBankRow/KdsBankRow.tsx
2331
+ // src/components/core/KdsEmptyState/KdsEmptyState.tsx
2316
2332
  var import_react32 = require("react");
2317
2333
  var import_jsx_runtime30 = require("react/jsx-runtime");
2318
- var KdsBankRow = (0, import_react32.forwardRef)(
2334
+ var KdsEmptyState = (0, import_react32.forwardRef)(
2335
+ ({ icon = "hide_source", title, description, className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime30.jsxs)(
2336
+ "div",
2337
+ {
2338
+ ref,
2339
+ role: "status",
2340
+ className: (0, import_clsx.clsx)("kds-empty-state", className),
2341
+ ...props,
2342
+ children: [
2343
+ /* @__PURE__ */ (0, import_jsx_runtime30.jsx)("i", { className: "material-symbols-outlined", "aria-hidden": "true", children: icon }),
2344
+ /* @__PURE__ */ (0, import_jsx_runtime30.jsxs)("div", { className: "kds-empty-state-text", children: [
2345
+ /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(KdsTypography, { variant: "body", color: "primary", children: title }),
2346
+ description && /* @__PURE__ */ (0, import_jsx_runtime30.jsx)(KdsTypography, { variant: "body", color: "secondary", children: description })
2347
+ ] })
2348
+ ]
2349
+ }
2350
+ )
2351
+ );
2352
+ KdsEmptyState.displayName = "KdsEmptyState";
2353
+
2354
+ // src/components/domain/KdsBankRow/KdsBankRow.tsx
2355
+ var import_react33 = require("react");
2356
+ var import_jsx_runtime31 = require("react/jsx-runtime");
2357
+ var KdsBankRow = (0, import_react33.forwardRef)(
2319
2358
  ({ name, logoUrl, selected, hideLogo, className, ...props }, ref) => {
2320
2359
  const nameStr = typeof name === "string" ? name : "";
2321
- return /* @__PURE__ */ (0, import_jsx_runtime30.jsxs)(
2360
+ return /* @__PURE__ */ (0, import_jsx_runtime31.jsxs)(
2322
2361
  "button",
2323
2362
  {
2324
2363
  ref,
@@ -2326,9 +2365,9 @@ var KdsBankRow = (0, import_react32.forwardRef)(
2326
2365
  className: (0, import_clsx.clsx)("kds-bank-row", selected && "selected", className),
2327
2366
  ...props,
2328
2367
  children: [
2329
- !hideLogo && /* @__PURE__ */ (0, import_jsx_runtime30.jsx)("span", { className: "kds-bank-row-logo", children: logoUrl ? /* @__PURE__ */ (0, import_jsx_runtime30.jsx)("img", { src: logoUrl, alt: nameStr }) : /* @__PURE__ */ (0, import_jsx_runtime30.jsx)("span", { className: "initials", children: nameStr.charAt(0) }) }),
2330
- /* @__PURE__ */ (0, import_jsx_runtime30.jsx)("span", { className: "kds-bank-row-name", children: name }),
2331
- /* @__PURE__ */ (0, import_jsx_runtime30.jsx)("i", { className: "material-symbols-outlined", children: selected ? "check_circle" : "chevron_right" })
2368
+ !hideLogo && /* @__PURE__ */ (0, import_jsx_runtime31.jsx)("span", { className: "kds-bank-row-logo", children: logoUrl ? /* @__PURE__ */ (0, import_jsx_runtime31.jsx)("img", { src: logoUrl, alt: nameStr }) : /* @__PURE__ */ (0, import_jsx_runtime31.jsx)("span", { className: "initials", children: nameStr.charAt(0) }) }),
2369
+ /* @__PURE__ */ (0, import_jsx_runtime31.jsx)("span", { className: "kds-bank-row-name", children: name }),
2370
+ /* @__PURE__ */ (0, import_jsx_runtime31.jsx)("i", { className: "material-symbols-outlined", children: selected ? "check_circle" : "chevron_right" })
2332
2371
  ]
2333
2372
  }
2334
2373
  );
@@ -2337,32 +2376,32 @@ var KdsBankRow = (0, import_react32.forwardRef)(
2337
2376
  KdsBankRow.displayName = "KdsBankRow";
2338
2377
 
2339
2378
  // src/components/domain/KdsBankList/KdsBankList.tsx
2340
- var import_react33 = require("react");
2341
- var import_jsx_runtime31 = require("react/jsx-runtime");
2342
- var KdsBankList = (0, import_react33.forwardRef)(
2343
- ({ children, className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime31.jsx)("div", { ref, className: (0, import_clsx.clsx)("kds-bank-list", className), role: "list", ...props, children })
2379
+ var import_react34 = require("react");
2380
+ var import_jsx_runtime32 = require("react/jsx-runtime");
2381
+ var KdsBankList = (0, import_react34.forwardRef)(
2382
+ ({ children, className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime32.jsx)("div", { ref, className: (0, import_clsx.clsx)("kds-bank-list", className), role: "list", ...props, children })
2344
2383
  );
2345
2384
  KdsBankList.displayName = "KdsBankList";
2346
2385
 
2347
2386
  // src/components/domain/KdsBankModal/KdsBankModal.tsx
2348
- var import_react34 = require("react");
2387
+ var import_react35 = require("react");
2349
2388
  var Dialog = __toESM(require("@radix-ui/react-dialog"));
2350
- var import_jsx_runtime32 = require("react/jsx-runtime");
2351
- var KdsBankModal = (0, import_react34.forwardRef)(
2389
+ var import_jsx_runtime33 = require("react/jsx-runtime");
2390
+ var KdsBankModal = (0, import_react35.forwardRef)(
2352
2391
  ({ open, onClose, title = "Selecciona tu banco", searchPlaceholder = "Buscar banco...", onSearch, children, className, container }, ref) => {
2353
- const [query, setQuery] = (0, import_react34.useState)("");
2392
+ const [query, setQuery] = (0, import_react35.useState)("");
2354
2393
  const handleSearch = (value) => {
2355
2394
  setQuery(value);
2356
2395
  onSearch?.(value);
2357
2396
  };
2358
- return /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(Dialog.Root, { open, onOpenChange: (o) => {
2397
+ return /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(Dialog.Root, { open, onOpenChange: (o) => {
2359
2398
  if (!o) onClose();
2360
- }, children: /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(Dialog.Portal, { container, children: /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(Dialog.Overlay, { className: "kds-bank-modal-scrim open", children: /* @__PURE__ */ (0, import_jsx_runtime32.jsxs)(Dialog.Content, { ref, className: (0, import_clsx.clsx)("kds-bank-modal", className), children: [
2361
- /* @__PURE__ */ (0, import_jsx_runtime32.jsxs)("div", { className: "kds-bank-modal-header", children: [
2362
- /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(Dialog.Title, { asChild: true, children: /* @__PURE__ */ (0, import_jsx_runtime32.jsx)("h3", { children: title }) }),
2363
- /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(Dialog.Close, { asChild: true, children: /* @__PURE__ */ (0, import_jsx_runtime32.jsx)("button", { className: "kds-bank-modal-close", "aria-label": "Cerrar", children: /* @__PURE__ */ (0, import_jsx_runtime32.jsx)("i", { className: "material-symbols-outlined", children: "close" }) }) })
2399
+ }, children: /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(Dialog.Portal, { container, children: /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(Dialog.Overlay, { className: "kds-bank-modal-scrim open", children: /* @__PURE__ */ (0, import_jsx_runtime33.jsxs)(Dialog.Content, { ref, className: (0, import_clsx.clsx)("kds-bank-modal", className), children: [
2400
+ /* @__PURE__ */ (0, import_jsx_runtime33.jsxs)("div", { className: "kds-bank-modal-header", children: [
2401
+ /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(Dialog.Title, { asChild: true, children: /* @__PURE__ */ (0, import_jsx_runtime33.jsx)("h3", { children: title }) }),
2402
+ /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(Dialog.Close, { asChild: true, children: /* @__PURE__ */ (0, import_jsx_runtime33.jsx)("button", { className: "kds-bank-modal-close", "aria-label": "Cerrar", children: /* @__PURE__ */ (0, import_jsx_runtime33.jsx)("i", { className: "material-symbols-outlined", children: "close" }) }) })
2364
2403
  ] }),
2365
- /* @__PURE__ */ (0, import_jsx_runtime32.jsx)("div", { className: "kds-bank-modal-search", children: /* @__PURE__ */ (0, import_jsx_runtime32.jsx)(
2404
+ /* @__PURE__ */ (0, import_jsx_runtime33.jsx)("div", { className: "kds-bank-modal-search", children: /* @__PURE__ */ (0, import_jsx_runtime33.jsx)(
2366
2405
  KdsSearchField,
2367
2406
  {
2368
2407
  placeholder: searchPlaceholder,
@@ -2370,33 +2409,33 @@ var KdsBankModal = (0, import_react34.forwardRef)(
2370
2409
  onChange: (e) => handleSearch(e.target.value)
2371
2410
  }
2372
2411
  ) }),
2373
- /* @__PURE__ */ (0, import_jsx_runtime32.jsx)("div", { className: "kds-bank-modal-body", children })
2412
+ /* @__PURE__ */ (0, import_jsx_runtime33.jsx)("div", { className: "kds-bank-modal-body", children })
2374
2413
  ] }) }) }) });
2375
2414
  }
2376
2415
  );
2377
2416
  KdsBankModal.displayName = "KdsBankModal";
2378
2417
 
2379
2418
  // src/components/domain/KdsQrRow/KdsQrRow.tsx
2380
- var import_react35 = require("react");
2381
- var import_jsx_runtime33 = require("react/jsx-runtime");
2382
- var KdsQrRow = (0, import_react35.forwardRef)(
2383
- ({ name, description, badge, icon = "qr_code_2", className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime33.jsxs)("button", { ref, type: "button", className: (0, import_clsx.clsx)("kds-qr-row", className), ...props, children: [
2384
- /* @__PURE__ */ (0, import_jsx_runtime33.jsx)("span", { className: "kds-qr-avatar", "aria-hidden": "true", children: /* @__PURE__ */ (0, import_jsx_runtime33.jsx)("i", { className: "material-symbols-outlined", children: icon }) }),
2385
- /* @__PURE__ */ (0, import_jsx_runtime33.jsxs)("span", { className: "kds-qr-text", children: [
2386
- /* @__PURE__ */ (0, import_jsx_runtime33.jsx)("span", { className: "kds-qr-title", children: name }),
2387
- description && /* @__PURE__ */ (0, import_jsx_runtime33.jsx)("span", { className: "kds-qr-subtitle", children: description })
2419
+ var import_react36 = require("react");
2420
+ var import_jsx_runtime34 = require("react/jsx-runtime");
2421
+ var KdsQrRow = (0, import_react36.forwardRef)(
2422
+ ({ name, description, badge, icon = "qr_code_2", className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime34.jsxs)("button", { ref, type: "button", className: (0, import_clsx.clsx)("kds-qr-row", className), ...props, children: [
2423
+ /* @__PURE__ */ (0, import_jsx_runtime34.jsx)("span", { className: "kds-qr-avatar", "aria-hidden": "true", children: /* @__PURE__ */ (0, import_jsx_runtime34.jsx)("i", { className: "material-symbols-outlined", children: icon }) }),
2424
+ /* @__PURE__ */ (0, import_jsx_runtime34.jsxs)("span", { className: "kds-qr-text", children: [
2425
+ /* @__PURE__ */ (0, import_jsx_runtime34.jsx)("span", { className: "kds-qr-title", children: name }),
2426
+ description && /* @__PURE__ */ (0, import_jsx_runtime34.jsx)("span", { className: "kds-qr-subtitle", children: description })
2388
2427
  ] }),
2389
- badge && /* @__PURE__ */ (0, import_jsx_runtime33.jsx)("span", { className: "kds-qr-badge", children: badge }),
2390
- /* @__PURE__ */ (0, import_jsx_runtime33.jsx)("i", { className: "material-symbols-outlined", children: "chevron_right" })
2428
+ badge && /* @__PURE__ */ (0, import_jsx_runtime34.jsx)("span", { className: "kds-qr-badge", children: badge }),
2429
+ /* @__PURE__ */ (0, import_jsx_runtime34.jsx)("i", { className: "material-symbols-outlined", children: "chevron_right" })
2391
2430
  ] })
2392
2431
  );
2393
2432
  KdsQrRow.displayName = "KdsQrRow";
2394
2433
 
2395
2434
  // src/components/domain/KdsCardSelector/KdsCardSelector.tsx
2396
- var import_react36 = require("react");
2397
- var import_jsx_runtime34 = require("react/jsx-runtime");
2398
- var KdsCardSelector = (0, import_react36.forwardRef)(
2399
- ({ icon, title, description, selected, className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime34.jsxs)(
2435
+ var import_react37 = require("react");
2436
+ var import_jsx_runtime35 = require("react/jsx-runtime");
2437
+ var KdsCardSelector = (0, import_react37.forwardRef)(
2438
+ ({ icon, title, description, selected, className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime35.jsxs)(
2400
2439
  "button",
2401
2440
  {
2402
2441
  ref,
@@ -2404,9 +2443,9 @@ var KdsCardSelector = (0, import_react36.forwardRef)(
2404
2443
  className: (0, import_clsx.clsx)("kds-card-selector", selected && "selected", className),
2405
2444
  ...props,
2406
2445
  children: [
2407
- icon && /* @__PURE__ */ (0, import_jsx_runtime34.jsx)("span", { className: "kds-card-selector-icon", children: /* @__PURE__ */ (0, import_jsx_runtime34.jsx)("i", { className: "material-symbols-outlined", children: icon }) }),
2408
- /* @__PURE__ */ (0, import_jsx_runtime34.jsx)("span", { className: "kds-card-selector-title", children: title }),
2409
- description && /* @__PURE__ */ (0, import_jsx_runtime34.jsx)("span", { className: "kds-card-selector-description", children: description })
2446
+ icon && /* @__PURE__ */ (0, import_jsx_runtime35.jsx)("span", { className: "kds-card-selector-icon", children: /* @__PURE__ */ (0, import_jsx_runtime35.jsx)("i", { className: "material-symbols-outlined", children: icon }) }),
2447
+ /* @__PURE__ */ (0, import_jsx_runtime35.jsx)("span", { className: "kds-card-selector-title", children: title }),
2448
+ description && /* @__PURE__ */ (0, import_jsx_runtime35.jsx)("span", { className: "kds-card-selector-description", children: description })
2410
2449
  ]
2411
2450
  }
2412
2451
  )
@@ -2414,26 +2453,26 @@ var KdsCardSelector = (0, import_react36.forwardRef)(
2414
2453
  KdsCardSelector.displayName = "KdsCardSelector";
2415
2454
 
2416
2455
  // src/components/domain/KdsCardPlan/KdsCardPlan.tsx
2417
- var import_react37 = require("react");
2418
- var import_jsx_runtime35 = require("react/jsx-runtime");
2419
- var KdsCardPlan = (0, import_react37.forwardRef)(
2420
- ({ title, price, period, features, recommended, badgeText, action, className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime35.jsxs)(
2456
+ var import_react38 = require("react");
2457
+ var import_jsx_runtime36 = require("react/jsx-runtime");
2458
+ var KdsCardPlan = (0, import_react38.forwardRef)(
2459
+ ({ title, price, period, features, recommended, badgeText, action, className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime36.jsxs)(
2421
2460
  "div",
2422
2461
  {
2423
2462
  ref,
2424
2463
  className: (0, import_clsx.clsx)("kds-card-plan", recommended && "recommended", className),
2425
2464
  ...props,
2426
2465
  children: [
2427
- /* @__PURE__ */ (0, import_jsx_runtime35.jsx)("div", { className: "kds-card-plan-header", children: /* @__PURE__ */ (0, import_jsx_runtime35.jsx)("h3", { children: title }) }),
2428
- /* @__PURE__ */ (0, import_jsx_runtime35.jsxs)("div", { className: "kds-card-plan-price", children: [
2429
- /* @__PURE__ */ (0, import_jsx_runtime35.jsx)("span", { className: "kds-price", children: price }),
2430
- period && /* @__PURE__ */ (0, import_jsx_runtime35.jsxs)("span", { className: "kds-price-period", children: [
2466
+ /* @__PURE__ */ (0, import_jsx_runtime36.jsx)("div", { className: "kds-card-plan-header", children: /* @__PURE__ */ (0, import_jsx_runtime36.jsx)("h3", { children: title }) }),
2467
+ /* @__PURE__ */ (0, import_jsx_runtime36.jsxs)("div", { className: "kds-card-plan-price", children: [
2468
+ /* @__PURE__ */ (0, import_jsx_runtime36.jsx)("span", { className: "kds-price", children: price }),
2469
+ period && /* @__PURE__ */ (0, import_jsx_runtime36.jsxs)("span", { className: "kds-price-period", children: [
2431
2470
  "/",
2432
2471
  period
2433
2472
  ] })
2434
2473
  ] }),
2435
- badgeText && /* @__PURE__ */ (0, import_jsx_runtime35.jsx)("span", { className: "kds-card-plan-badge", children: badgeText }),
2436
- features && features.length > 0 && /* @__PURE__ */ (0, import_jsx_runtime35.jsx)("ul", { className: "kds-card-plan-features", children: features.map((f, i) => /* @__PURE__ */ (0, import_jsx_runtime35.jsx)("li", { children: f }, i)) }),
2474
+ badgeText && /* @__PURE__ */ (0, import_jsx_runtime36.jsx)("span", { className: "kds-card-plan-badge", children: badgeText }),
2475
+ features && features.length > 0 && /* @__PURE__ */ (0, import_jsx_runtime36.jsx)("ul", { className: "kds-card-plan-features", children: features.map((f, i) => /* @__PURE__ */ (0, import_jsx_runtime36.jsx)("li", { children: f }, i)) }),
2437
2476
  action
2438
2477
  ]
2439
2478
  }
@@ -2442,10 +2481,10 @@ var KdsCardPlan = (0, import_react37.forwardRef)(
2442
2481
  KdsCardPlan.displayName = "KdsCardPlan";
2443
2482
 
2444
2483
  // src/components/domain/KdsInvoiceSticky/KdsInvoiceSticky.tsx
2445
- var import_react38 = require("react");
2446
- var import_jsx_runtime36 = require("react/jsx-runtime");
2447
- var KdsInvoiceSticky = (0, import_react38.forwardRef)(
2448
- ({ children, className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime36.jsx)(
2484
+ var import_react39 = require("react");
2485
+ var import_jsx_runtime37 = require("react/jsx-runtime");
2486
+ var KdsInvoiceSticky = (0, import_react39.forwardRef)(
2487
+ ({ children, className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(
2449
2488
  "article",
2450
2489
  {
2451
2490
  ref,
@@ -2458,10 +2497,10 @@ var KdsInvoiceSticky = (0, import_react38.forwardRef)(
2458
2497
  KdsInvoiceSticky.displayName = "KdsInvoiceSticky";
2459
2498
 
2460
2499
  // src/components/domain/KdsBottomSheet/KdsBottomSheet.tsx
2461
- var import_react39 = require("react");
2500
+ var import_react40 = require("react");
2462
2501
  var Dialog2 = __toESM(require("@radix-ui/react-dialog"));
2463
- var import_jsx_runtime37 = require("react/jsx-runtime");
2464
- var KdsBottomSheet = (0, import_react39.forwardRef)(
2502
+ var import_jsx_runtime38 = require("react/jsx-runtime");
2503
+ var KdsBottomSheet = (0, import_react40.forwardRef)(
2465
2504
  ({
2466
2505
  open,
2467
2506
  onClose,
@@ -2474,14 +2513,14 @@ var KdsBottomSheet = (0, import_react39.forwardRef)(
2474
2513
  container,
2475
2514
  className,
2476
2515
  ...props
2477
- }, ref) => /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(
2516
+ }, ref) => /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(
2478
2517
  Dialog2.Root,
2479
2518
  {
2480
2519
  open,
2481
2520
  onOpenChange: (o) => {
2482
2521
  if (!o) onClose();
2483
2522
  },
2484
- children: /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(Dialog2.Portal, { container, children: /* @__PURE__ */ (0, import_jsx_runtime37.jsx)("div", { className: "kds-theme-root", style: { display: "contents" }, children: /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(Dialog2.Overlay, { className: "kds-bottom-sheet-scrim open", children: /* @__PURE__ */ (0, import_jsx_runtime37.jsxs)(
2523
+ children: /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(Dialog2.Portal, { container, children: /* @__PURE__ */ (0, import_jsx_runtime38.jsx)("div", { className: "kds-theme-root", style: { display: "contents" }, children: /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(Dialog2.Overlay, { className: "kds-bottom-sheet-scrim open", children: /* @__PURE__ */ (0, import_jsx_runtime38.jsxs)(
2485
2524
  Dialog2.Content,
2486
2525
  {
2487
2526
  ref,
@@ -2492,20 +2531,20 @@ var KdsBottomSheet = (0, import_react39.forwardRef)(
2492
2531
  },
2493
2532
  ...props,
2494
2533
  children: [
2495
- showGrabber && /* @__PURE__ */ (0, import_jsx_runtime37.jsx)("div", { className: "kds-bottom-sheet-grabber", "aria-hidden": "true" }),
2496
- showCloseButton && /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(Dialog2.Close, { asChild: true, children: /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(
2534
+ showGrabber && /* @__PURE__ */ (0, import_jsx_runtime38.jsx)("div", { className: "kds-bottom-sheet-grabber", "aria-hidden": "true" }),
2535
+ showCloseButton && /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(Dialog2.Close, { asChild: true, children: /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(
2497
2536
  "button",
2498
2537
  {
2499
2538
  type: "button",
2500
2539
  className: "kds-bottom-sheet-close",
2501
2540
  "aria-label": "Cerrar",
2502
- children: /* @__PURE__ */ (0, import_jsx_runtime37.jsx)("i", { className: "material-symbols-outlined", children: "close" })
2541
+ children: /* @__PURE__ */ (0, import_jsx_runtime38.jsx)("i", { className: "material-symbols-outlined", children: "close" })
2503
2542
  }
2504
2543
  ) }),
2505
- title && /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(Dialog2.Title, { className: "kds-bottom-sheet-title", children: title }),
2506
- description && /* @__PURE__ */ (0, import_jsx_runtime37.jsx)(Dialog2.Description, { className: "kds-bottom-sheet-description", children: description }),
2507
- /* @__PURE__ */ (0, import_jsx_runtime37.jsx)("div", { className: "kds-bottom-sheet-body", children }),
2508
- actions && /* @__PURE__ */ (0, import_jsx_runtime37.jsx)("div", { className: "kds-bottom-sheet-actions", children: actions })
2544
+ title && /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(Dialog2.Title, { className: "kds-bottom-sheet-title", children: title }),
2545
+ description && /* @__PURE__ */ (0, import_jsx_runtime38.jsx)(Dialog2.Description, { className: "kds-bottom-sheet-description", children: description }),
2546
+ /* @__PURE__ */ (0, import_jsx_runtime38.jsx)("div", { className: "kds-bottom-sheet-body", children }),
2547
+ actions && /* @__PURE__ */ (0, import_jsx_runtime38.jsx)("div", { className: "kds-bottom-sheet-actions", children: actions })
2509
2548
  ]
2510
2549
  }
2511
2550
  ) }) }) })
@@ -2515,13 +2554,13 @@ var KdsBottomSheet = (0, import_react39.forwardRef)(
2515
2554
  KdsBottomSheet.displayName = "KdsBottomSheet";
2516
2555
 
2517
2556
  // src/components/domain/KdsSecureFooter/KdsSecureFooter.tsx
2518
- var import_react41 = require("react");
2557
+ var import_react42 = require("react");
2519
2558
 
2520
2559
  // src/components/domain/KdsSecureFooter/KhipuWordmark.tsx
2521
- var import_react40 = require("react");
2522
- var import_jsx_runtime38 = require("react/jsx-runtime");
2523
- var KhipuWordmark = (0, import_react40.forwardRef)(
2524
- ({ className = "khipu-mark", ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime38.jsxs)(
2560
+ var import_react41 = require("react");
2561
+ var import_jsx_runtime39 = require("react/jsx-runtime");
2562
+ var KhipuWordmark = (0, import_react41.forwardRef)(
2563
+ ({ className = "khipu-mark", ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime39.jsxs)(
2525
2564
  "svg",
2526
2565
  {
2527
2566
  ref,
@@ -2532,14 +2571,14 @@ var KhipuWordmark = (0, import_react40.forwardRef)(
2532
2571
  xmlns: "http://www.w3.org/2000/svg",
2533
2572
  ...props,
2534
2573
  children: [
2535
- /* @__PURE__ */ (0, import_jsx_runtime38.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" }),
2536
- /* @__PURE__ */ (0, import_jsx_runtime38.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" }),
2537
- /* @__PURE__ */ (0, import_jsx_runtime38.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" }),
2538
- /* @__PURE__ */ (0, import_jsx_runtime38.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" }),
2539
- /* @__PURE__ */ (0, import_jsx_runtime38.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" }),
2540
- /* @__PURE__ */ (0, import_jsx_runtime38.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" }),
2541
- /* @__PURE__ */ (0, import_jsx_runtime38.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" }),
2542
- /* @__PURE__ */ (0, import_jsx_runtime38.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" })
2574
+ /* @__PURE__ */ (0, import_jsx_runtime39.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" }),
2575
+ /* @__PURE__ */ (0, import_jsx_runtime39.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" }),
2576
+ /* @__PURE__ */ (0, import_jsx_runtime39.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" }),
2577
+ /* @__PURE__ */ (0, import_jsx_runtime39.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" }),
2578
+ /* @__PURE__ */ (0, import_jsx_runtime39.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" }),
2579
+ /* @__PURE__ */ (0, import_jsx_runtime39.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" }),
2580
+ /* @__PURE__ */ (0, import_jsx_runtime39.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" }),
2581
+ /* @__PURE__ */ (0, import_jsx_runtime39.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" })
2543
2582
  ]
2544
2583
  }
2545
2584
  )
@@ -2547,17 +2586,17 @@ var KhipuWordmark = (0, import_react40.forwardRef)(
2547
2586
  KhipuWordmark.displayName = "KhipuWordmark";
2548
2587
 
2549
2588
  // src/components/domain/KdsSecureFooter/KdsSecureFooter.tsx
2550
- var import_jsx_runtime39 = require("react/jsx-runtime");
2551
- var KdsSecureFooter = (0, import_react41.forwardRef)(
2552
- ({ variant = "default", showLogo = true, psp, children, className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime39.jsxs)("footer", { ref, className: (0, import_clsx.clsx)("kds-secure-footer", variant === "inside" && "inside", className), ...props, children: [
2553
- /* @__PURE__ */ (0, import_jsx_runtime39.jsxs)("svg", { className: "kds-secure-footer-lock", viewBox: "0 0 24 24", "aria-hidden": "true", children: [
2554
- /* @__PURE__ */ (0, import_jsx_runtime39.jsx)("rect", { x: "4.5", y: "10.5", width: "15", height: "10", rx: "2.25" }),
2555
- /* @__PURE__ */ (0, import_jsx_runtime39.jsx)("path", { d: "M8 10.5V7a4 4 0 0 1 8 0v3.5" })
2589
+ var import_jsx_runtime40 = require("react/jsx-runtime");
2590
+ var KdsSecureFooter = (0, import_react42.forwardRef)(
2591
+ ({ variant = "default", showLogo = true, psp, children, className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime40.jsxs)("footer", { ref, className: (0, import_clsx.clsx)("kds-secure-footer", variant === "inside" && "inside", className), ...props, children: [
2592
+ /* @__PURE__ */ (0, import_jsx_runtime40.jsxs)("svg", { className: "kds-secure-footer-lock", viewBox: "0 0 24 24", "aria-hidden": "true", children: [
2593
+ /* @__PURE__ */ (0, import_jsx_runtime40.jsx)("rect", { x: "4.5", y: "10.5", width: "15", height: "10", rx: "2.25" }),
2594
+ /* @__PURE__ */ (0, import_jsx_runtime40.jsx)("path", { d: "M8 10.5V7a4 4 0 0 1 8 0v3.5" })
2556
2595
  ] }),
2557
- children || /* @__PURE__ */ (0, import_jsx_runtime39.jsx)("span", { children: "Pago seguro procesado por" }),
2558
- showLogo && /* @__PURE__ */ (0, import_jsx_runtime39.jsx)(KhipuWordmark, {}),
2559
- psp && /* @__PURE__ */ (0, import_jsx_runtime39.jsxs)(import_jsx_runtime39.Fragment, { children: [
2560
- /* @__PURE__ */ (0, import_jsx_runtime39.jsx)("span", { className: "kds-secure-footer-sep", "aria-hidden": "true" }),
2596
+ children || /* @__PURE__ */ (0, import_jsx_runtime40.jsx)("span", { children: "Pago seguro procesado por" }),
2597
+ showLogo && /* @__PURE__ */ (0, import_jsx_runtime40.jsx)(KhipuWordmark, {}),
2598
+ psp && /* @__PURE__ */ (0, import_jsx_runtime40.jsxs)(import_jsx_runtime40.Fragment, { children: [
2599
+ /* @__PURE__ */ (0, import_jsx_runtime40.jsx)("span", { className: "kds-secure-footer-sep", "aria-hidden": "true" }),
2561
2600
  psp
2562
2601
  ] })
2563
2602
  ] })
@@ -2565,44 +2604,44 @@ var KdsSecureFooter = (0, import_react41.forwardRef)(
2565
2604
  KdsSecureFooter.displayName = "KdsSecureFooter";
2566
2605
 
2567
2606
  // src/components/domain/KdsRecapList/KdsRecapList.tsx
2568
- var import_react42 = require("react");
2569
- var import_jsx_runtime40 = require("react/jsx-runtime");
2570
- var KdsRecapList = (0, import_react42.forwardRef)(
2571
- ({ items, className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime40.jsx)("ul", { ref, className: (0, import_clsx.clsx)("kds-recap-list", className), ...props, children: items.map((item, i) => /* @__PURE__ */ (0, import_jsx_runtime40.jsxs)("li", { children: [
2572
- /* @__PURE__ */ (0, import_jsx_runtime40.jsx)("span", { className: "kds-key", children: item.label }),
2573
- /* @__PURE__ */ (0, import_jsx_runtime40.jsx)("span", { className: (0, import_clsx.clsx)("kds-value", !item.value && item.placeholder && "placeholder"), children: item.value || item.placeholder || "-" })
2607
+ var import_react43 = require("react");
2608
+ var import_jsx_runtime41 = require("react/jsx-runtime");
2609
+ var KdsRecapList = (0, import_react43.forwardRef)(
2610
+ ({ items, className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime41.jsx)("ul", { ref, className: (0, import_clsx.clsx)("kds-recap-list", className), ...props, children: items.map((item, i) => /* @__PURE__ */ (0, import_jsx_runtime41.jsxs)("li", { children: [
2611
+ /* @__PURE__ */ (0, import_jsx_runtime41.jsx)("span", { className: "kds-key", children: item.label }),
2612
+ /* @__PURE__ */ (0, import_jsx_runtime41.jsx)("span", { className: (0, import_clsx.clsx)("kds-value", !item.value && item.placeholder && "placeholder"), children: item.value || item.placeholder || "-" })
2574
2613
  ] }, i)) })
2575
2614
  );
2576
2615
  KdsRecapList.displayName = "KdsRecapList";
2577
2616
 
2578
2617
  // src/components/domain/KdsMontoRow/KdsMontoRow.tsx
2579
- var import_react43 = require("react");
2580
- var import_jsx_runtime41 = require("react/jsx-runtime");
2581
- var KdsMontoRow = (0, import_react43.forwardRef)(
2582
- ({ title, value, deadline, className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime41.jsxs)("div", { ref, className: (0, import_clsx.clsx)("kds-monto-row", className), ...props, children: [
2583
- /* @__PURE__ */ (0, import_jsx_runtime41.jsxs)("div", { children: [
2584
- /* @__PURE__ */ (0, import_jsx_runtime41.jsx)("div", { className: "kds-monto-row-title", children: title }),
2585
- deadline && /* @__PURE__ */ (0, import_jsx_runtime41.jsx)("div", { className: "kds-monto-row-deadline", children: deadline })
2618
+ var import_react44 = require("react");
2619
+ var import_jsx_runtime42 = require("react/jsx-runtime");
2620
+ var KdsMontoRow = (0, import_react44.forwardRef)(
2621
+ ({ title, value, deadline, className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime42.jsxs)("div", { ref, className: (0, import_clsx.clsx)("kds-monto-row", className), ...props, children: [
2622
+ /* @__PURE__ */ (0, import_jsx_runtime42.jsxs)("div", { children: [
2623
+ /* @__PURE__ */ (0, import_jsx_runtime42.jsx)("div", { className: "kds-monto-row-title", children: title }),
2624
+ deadline && /* @__PURE__ */ (0, import_jsx_runtime42.jsx)("div", { className: "kds-monto-row-deadline", children: deadline })
2586
2625
  ] }),
2587
- /* @__PURE__ */ (0, import_jsx_runtime41.jsx)("div", { className: "kds-monto-row-value", children: value })
2626
+ /* @__PURE__ */ (0, import_jsx_runtime42.jsx)("div", { className: "kds-monto-row-value", children: value })
2588
2627
  ] })
2589
2628
  );
2590
2629
  KdsMontoRow.displayName = "KdsMontoRow";
2591
2630
 
2592
2631
  // src/components/domain/KdsMerchantTile/KdsMerchantTile.tsx
2593
- var import_react44 = require("react");
2594
- var import_jsx_runtime42 = require("react/jsx-runtime");
2595
- var KdsMerchantTile = (0, import_react44.forwardRef)(
2632
+ var import_react45 = require("react");
2633
+ var import_jsx_runtime43 = require("react/jsx-runtime");
2634
+ var KdsMerchantTile = (0, import_react45.forwardRef)(
2596
2635
  ({ name, logoUrl, initials, compact, className, ...props }, ref) => {
2597
2636
  const displayInitials = (initials ?? name.slice(0, 2)).toUpperCase();
2598
- return /* @__PURE__ */ (0, import_jsx_runtime42.jsx)(
2637
+ return /* @__PURE__ */ (0, import_jsx_runtime43.jsx)(
2599
2638
  "div",
2600
2639
  {
2601
2640
  ref,
2602
2641
  className: (0, import_clsx.clsx)("kds-merchant-tile", logoUrl && "logo", compact && "compact", className),
2603
2642
  "aria-label": name,
2604
2643
  ...props,
2605
- children: logoUrl ? /* @__PURE__ */ (0, import_jsx_runtime42.jsx)("img", { src: logoUrl, alt: name }) : displayInitials
2644
+ children: logoUrl ? /* @__PURE__ */ (0, import_jsx_runtime43.jsx)("img", { src: logoUrl, alt: name }) : displayInitials
2606
2645
  }
2607
2646
  );
2608
2647
  }
@@ -2610,21 +2649,98 @@ var KdsMerchantTile = (0, import_react44.forwardRef)(
2610
2649
  KdsMerchantTile.displayName = "KdsMerchantTile";
2611
2650
 
2612
2651
  // src/components/domain/KdsInvoiceMerchant/KdsInvoiceMerchant.tsx
2613
- var import_react45 = require("react");
2614
- var import_jsx_runtime43 = require("react/jsx-runtime");
2615
- var KdsInvoiceMerchant = (0, import_react45.forwardRef)(
2652
+ var import_react47 = require("react");
2653
+
2654
+ // src/components/domain/KdsInvoiceMerchant/useLogoBackdrop.ts
2655
+ var import_react46 = require("react");
2656
+
2657
+ // src/components/domain/KdsInvoiceMerchant/logoLuminance.ts
2658
+ var LIGHT_LOGO_LUMINANCE_THRESHOLD = 0.72;
2659
+ var SAMPLE_SIZE = 16;
2660
+ var ALPHA_THRESHOLD = 128;
2661
+ var MIN_OPAQUE_RATIO = 0.02;
2662
+ function measureLogoLuminance(url) {
2663
+ return new Promise((resolve) => {
2664
+ const probe = new Image();
2665
+ probe.crossOrigin = "anonymous";
2666
+ probe.onload = () => {
2667
+ try {
2668
+ const canvas = document.createElement("canvas");
2669
+ canvas.width = SAMPLE_SIZE;
2670
+ canvas.height = SAMPLE_SIZE;
2671
+ const context = canvas.getContext("2d");
2672
+ if (!context) {
2673
+ resolve(null);
2674
+ return;
2675
+ }
2676
+ context.drawImage(probe, 0, 0, SAMPLE_SIZE, SAMPLE_SIZE);
2677
+ const { data } = context.getImageData(0, 0, SAMPLE_SIZE, SAMPLE_SIZE);
2678
+ let sum = 0;
2679
+ let opaquePixels = 0;
2680
+ for (let i = 0; i < data.length; i += 4) {
2681
+ if (data[i + 3] < ALPHA_THRESHOLD) continue;
2682
+ sum += (0.2126 * data[i] + 0.7152 * data[i + 1] + 0.0722 * data[i + 2]) / 255;
2683
+ opaquePixels++;
2684
+ }
2685
+ if (opaquePixels < SAMPLE_SIZE * SAMPLE_SIZE * MIN_OPAQUE_RATIO) {
2686
+ resolve(null);
2687
+ return;
2688
+ }
2689
+ resolve(sum / opaquePixels);
2690
+ } catch {
2691
+ resolve(null);
2692
+ }
2693
+ };
2694
+ probe.onerror = () => resolve(null);
2695
+ probe.src = url;
2696
+ });
2697
+ }
2698
+ function pickLogoBackdrop(luminance) {
2699
+ return luminance != null && luminance > LIGHT_LOGO_LUMINANCE_THRESHOLD ? "dark" : "light";
2700
+ }
2701
+
2702
+ // src/components/domain/KdsInvoiceMerchant/useLogoBackdrop.ts
2703
+ function useLogoBackdrop(logoUrl) {
2704
+ const [backdrop, setBackdrop] = (0, import_react46.useState)("light");
2705
+ (0, import_react46.useEffect)(() => {
2706
+ let cancelled = false;
2707
+ setBackdrop("light");
2708
+ if (!logoUrl) {
2709
+ return void 0;
2710
+ }
2711
+ measureLogoLuminance(logoUrl).then((luminance) => {
2712
+ if (!cancelled) {
2713
+ setBackdrop(pickLogoBackdrop(luminance));
2714
+ }
2715
+ });
2716
+ return () => {
2717
+ cancelled = true;
2718
+ };
2719
+ }, [logoUrl]);
2720
+ return backdrop;
2721
+ }
2722
+
2723
+ // src/components/domain/KdsInvoiceMerchant/KdsInvoiceMerchant.tsx
2724
+ var import_jsx_runtime44 = require("react/jsx-runtime");
2725
+ var KdsInvoiceMerchant = (0, import_react47.forwardRef)(
2616
2726
  ({ logoUrl, brandColor, className, style, ...props }, ref) => {
2617
- const [failed, setFailed] = (0, import_react45.useState)(false);
2727
+ const [failed, setFailed] = (0, import_react47.useState)(false);
2618
2728
  const showLogo = !!logoUrl && !failed;
2619
- return /* @__PURE__ */ (0, import_jsx_runtime43.jsx)(
2729
+ const backdrop = useLogoBackdrop(showLogo ? logoUrl : void 0);
2730
+ return /* @__PURE__ */ (0, import_jsx_runtime44.jsx)(
2620
2731
  "div",
2621
2732
  {
2622
2733
  ref,
2623
- className: (0, import_clsx.clsx)("kds-invoice-merchant", className),
2734
+ className: (0, import_clsx.clsx)(
2735
+ "kds-invoice-merchant",
2736
+ showLogo && "kds-invoice-merchant-neutral",
2737
+ showLogo && backdrop === "dark" && "dark",
2738
+ className
2739
+ ),
2624
2740
  "aria-hidden": "true",
2625
- style: brandColor ? { background: brandColor, ...style } : style,
2741
+ style: !showLogo && brandColor ? { background: brandColor, ...style } : style,
2626
2742
  ...props,
2627
- children: showLogo ? /* @__PURE__ */ (0, import_jsx_runtime43.jsx)("img", { src: logoUrl, alt: "", onError: () => setFailed(true) }) : /* @__PURE__ */ (0, import_jsx_runtime43.jsx)("i", { className: "material-symbols-outlined", children: "storefront" })
2743
+ children: showLogo ? /* @__PURE__ */ (0, import_jsx_runtime44.jsx)("img", { src: logoUrl, alt: "", onError: () => setFailed(true) }) : /* @__PURE__ */ (0, import_jsx_runtime44.jsx)("i", { className: "material-symbols-outlined", children: "storefront" })
2628
2744
  }
2629
2745
  );
2630
2746
  }
@@ -2632,9 +2748,9 @@ var KdsInvoiceMerchant = (0, import_react45.forwardRef)(
2632
2748
  KdsInvoiceMerchant.displayName = "KdsInvoiceMerchant";
2633
2749
 
2634
2750
  // src/components/domain/KdsPaymentTotal/KdsPaymentTotal.tsx
2635
- var import_react46 = require("react");
2636
- var import_jsx_runtime44 = require("react/jsx-runtime");
2637
- var KdsPaymentTotal = (0, import_react46.forwardRef)(
2751
+ var import_react48 = require("react");
2752
+ var import_jsx_runtime45 = require("react/jsx-runtime");
2753
+ var KdsPaymentTotal = (0, import_react48.forwardRef)(
2638
2754
  ({
2639
2755
  variant = "default",
2640
2756
  tone = "brand",
@@ -2652,7 +2768,7 @@ var KdsPaymentTotal = (0, import_react46.forwardRef)(
2652
2768
  const { integer, fraction } = formatAmount(amount, decimals, locale);
2653
2769
  const isEmail = variant === "email";
2654
2770
  const isInfoTone = tone === "info";
2655
- return /* @__PURE__ */ (0, import_jsx_runtime44.jsxs)(
2771
+ return /* @__PURE__ */ (0, import_jsx_runtime45.jsxs)(
2656
2772
  "div",
2657
2773
  {
2658
2774
  ref,
@@ -2665,14 +2781,14 @@ var KdsPaymentTotal = (0, import_react46.forwardRef)(
2665
2781
  ),
2666
2782
  ...props,
2667
2783
  children: [
2668
- !isEmail && title != null && /* @__PURE__ */ (0, import_jsx_runtime44.jsx)("h5", { className: "kds-payment-total-title", children: title }),
2669
- !isEmail && titleMobile != null && /* @__PURE__ */ (0, import_jsx_runtime44.jsx)("h5", { className: "kds-payment-total-title-mobile", children: titleMobile }),
2670
- label != null && /* @__PURE__ */ (0, import_jsx_runtime44.jsx)("h6", { className: "kds-payment-label", children: label }),
2671
- /* @__PURE__ */ (0, import_jsx_runtime44.jsxs)("h5", { className: "kds-payment-amount", children: [
2784
+ !isEmail && title != null && /* @__PURE__ */ (0, import_jsx_runtime45.jsx)("h5", { className: "kds-payment-total-title", children: title }),
2785
+ !isEmail && titleMobile != null && /* @__PURE__ */ (0, import_jsx_runtime45.jsx)("h5", { className: "kds-payment-total-title-mobile", children: titleMobile }),
2786
+ label != null && /* @__PURE__ */ (0, import_jsx_runtime45.jsx)("h6", { className: "kds-payment-label", children: label }),
2787
+ /* @__PURE__ */ (0, import_jsx_runtime45.jsxs)("h5", { className: "kds-payment-amount", children: [
2672
2788
  currency,
2673
2789
  " ",
2674
2790
  integer,
2675
- fraction !== null && /* @__PURE__ */ (0, import_jsx_runtime44.jsx)("sup", { className: "kds-payment-total-decimal-sup", children: fraction })
2791
+ fraction !== null && /* @__PURE__ */ (0, import_jsx_runtime45.jsx)("sup", { className: "kds-payment-total-decimal-sup", children: fraction })
2676
2792
  ] })
2677
2793
  ]
2678
2794
  }
@@ -2708,10 +2824,10 @@ function formatAmount(amount, decimals, locale) {
2708
2824
  }
2709
2825
 
2710
2826
  // src/components/domain/KdsBillAttachment/KdsBillAttachment.tsx
2711
- var import_react47 = require("react");
2712
- var import_jsx_runtime45 = require("react/jsx-runtime");
2713
- var KdsBillAttachment = (0, import_react47.forwardRef)(
2714
- ({ filename, href, icon = "attach_file", className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime45.jsxs)(
2827
+ var import_react49 = require("react");
2828
+ var import_jsx_runtime46 = require("react/jsx-runtime");
2829
+ var KdsBillAttachment = (0, import_react49.forwardRef)(
2830
+ ({ filename, href, icon = "attach_file", className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime46.jsxs)(
2715
2831
  "a",
2716
2832
  {
2717
2833
  ref,
@@ -2721,25 +2837,119 @@ var KdsBillAttachment = (0, import_react47.forwardRef)(
2721
2837
  className: (0, import_clsx.clsx)("kds-bill-attachment", className),
2722
2838
  ...props,
2723
2839
  children: [
2724
- /* @__PURE__ */ (0, import_jsx_runtime45.jsx)("i", { className: "material-symbols-outlined", children: icon }),
2725
- /* @__PURE__ */ (0, import_jsx_runtime45.jsx)("span", { children: filename })
2840
+ /* @__PURE__ */ (0, import_jsx_runtime46.jsx)("i", { className: "material-symbols-outlined", children: icon }),
2841
+ /* @__PURE__ */ (0, import_jsx_runtime46.jsx)("span", { children: filename })
2726
2842
  ]
2727
2843
  }
2728
2844
  )
2729
2845
  );
2730
2846
  KdsBillAttachment.displayName = "KdsBillAttachment";
2731
- var KdsBillAttachments = (0, import_react47.forwardRef)(
2732
- ({ children, className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime45.jsx)("div", { ref, className: (0, import_clsx.clsx)("kds-bill-attachments", className), ...props, children })
2847
+ var KdsBillAttachments = (0, import_react49.forwardRef)(
2848
+ ({ children, className, ...props }, ref) => /* @__PURE__ */ (0, import_jsx_runtime46.jsx)("div", { ref, className: (0, import_clsx.clsx)("kds-bill-attachments", className), ...props, children })
2733
2849
  );
2734
2850
  KdsBillAttachments.displayName = "KdsBillAttachments";
2735
2851
 
2852
+ // src/utils/runAfterPointerGesture.ts
2853
+ var KEYBOARD_FALLBACK_MS = 400;
2854
+ var runAfterPointerGesture = (callback) => {
2855
+ let done = false;
2856
+ const run = () => {
2857
+ if (done) {
2858
+ return;
2859
+ }
2860
+ done = true;
2861
+ document.removeEventListener("click", run, true);
2862
+ window.setTimeout(callback, 0);
2863
+ };
2864
+ document.addEventListener("click", run, true);
2865
+ window.setTimeout(run, KEYBOARD_FALLBACK_MS);
2866
+ };
2867
+
2868
+ // src/utils/scrollToFirstInvalidField.ts
2869
+ var RECENTER_WINDOW_MS = 1500;
2870
+ var getScrollParent = (field) => {
2871
+ let node = field.parentElement;
2872
+ while (node) {
2873
+ const style = getComputedStyle(node);
2874
+ if (node.scrollHeight > node.clientHeight && /auto|scroll|overlay/.test(style.overflowY)) {
2875
+ const htmlOverflow = getComputedStyle(document.documentElement).overflowY;
2876
+ if (node === document.body && (htmlOverflow === "visible" || htmlOverflow === "")) {
2877
+ return null;
2878
+ }
2879
+ return node;
2880
+ }
2881
+ node = node.parentElement;
2882
+ }
2883
+ return null;
2884
+ };
2885
+ var centerFieldInViewport = (field) => {
2886
+ const viewport = window.visualViewport;
2887
+ const viewportTop = viewport?.offsetTop ?? 0;
2888
+ const viewportHeight = viewport?.height ?? window.innerHeight;
2889
+ const rect = field.getBoundingClientRect();
2890
+ const scroller = getScrollParent(field);
2891
+ if (!scroller || scroller === document.documentElement || scroller === document.scrollingElement) {
2892
+ const top = window.scrollY + rect.top - viewportTop - (viewportHeight - rect.height) / 2;
2893
+ window.scrollTo({ top: Math.max(top, 0), behavior: "smooth" });
2894
+ return;
2895
+ }
2896
+ const scrollerRect = scroller.getBoundingClientRect();
2897
+ const visibleTop = Math.max(scrollerRect.top, viewportTop);
2898
+ const visibleBottom = Math.min(scrollerRect.bottom, viewportTop + viewportHeight);
2899
+ const visibleHeight = Math.max(visibleBottom - visibleTop, 0);
2900
+ const target = scroller.scrollTop + (rect.top - visibleTop) - (visibleHeight - rect.height) / 2;
2901
+ scroller.scrollTo({ top: Math.max(target, 0), behavior: "smooth" });
2902
+ };
2903
+ var isInvalidField = (element) => {
2904
+ const field = element;
2905
+ return typeof field.willValidate === "boolean" && field.willValidate && !field.validity.valid;
2906
+ };
2907
+ var scrollToFirstInvalidField = (form) => {
2908
+ const firstInvalid = Array.from(form.elements).find(isInvalidField);
2909
+ if (!firstInvalid) {
2910
+ return;
2911
+ }
2912
+ centerFieldInViewport(firstInvalid);
2913
+ const viewport = window.visualViewport;
2914
+ if (viewport) {
2915
+ const recenter = () => centerFieldInViewport(firstInvalid);
2916
+ viewport.addEventListener("resize", recenter, { once: true });
2917
+ window.setTimeout(() => viewport.removeEventListener("resize", recenter), RECENTER_WINDOW_MS);
2918
+ }
2919
+ };
2920
+ var focusFirstInvalidField = scrollToFirstInvalidField;
2921
+ var isTextEntryElement = (element) => {
2922
+ if (!element) {
2923
+ return false;
2924
+ }
2925
+ if (element.tagName === "TEXTAREA") {
2926
+ return true;
2927
+ }
2928
+ const input = element;
2929
+ return element.tagName === "INPUT" && !["checkbox", "radio", "button", "submit", "reset"].includes(input.type);
2930
+ };
2931
+ var guideToFirstInvalidFieldOnBlur = (form) => {
2932
+ runAfterPointerGesture(() => {
2933
+ if (!form.isConnected) {
2934
+ return;
2935
+ }
2936
+ const active = document.activeElement;
2937
+ if (active && form.contains(active) && isTextEntryElement(active)) {
2938
+ return;
2939
+ }
2940
+ if (!form.checkValidity()) {
2941
+ scrollToFirstInvalidField(form);
2942
+ }
2943
+ });
2944
+ };
2945
+
2736
2946
  // src/components/core/hooks/useStickyInvoiceCollapse.ts
2737
- var import_react48 = require("react");
2947
+ var import_react50 = require("react");
2738
2948
  function useStickyInvoiceCollapse(options = {}) {
2739
2949
  const { onCollapseStart, collapseEnd = 20, mobileBreakpoint = 768 } = options;
2740
- const onCollapseStartRef = (0, import_react48.useRef)(onCollapseStart);
2950
+ const onCollapseStartRef = (0, import_react50.useRef)(onCollapseStart);
2741
2951
  onCollapseStartRef.current = onCollapseStart;
2742
- (0, import_react48.useEffect)(() => {
2952
+ (0, import_react50.useEffect)(() => {
2743
2953
  let viewportOffset = 0;
2744
2954
  let ticking = false;
2745
2955
  let wasCollapsing = false;
@@ -2812,24 +3022,24 @@ function useStickyInvoiceCollapse(options = {}) {
2812
3022
  }
2813
3023
 
2814
3024
  // src/components/core/hooks/useExpandToggle.ts
2815
- var import_react49 = require("react");
3025
+ var import_react51 = require("react");
2816
3026
  function useExpandToggle(options = {}) {
2817
3027
  const { defaultOpen = false, open: controlledOpen, onOpenChange, id } = options;
2818
- const generatedId = (0, import_react49.useId)();
3028
+ const generatedId = (0, import_react51.useId)();
2819
3029
  const panelId = id ?? `kds-expand-${generatedId}`;
2820
3030
  const isControlled = controlledOpen !== void 0;
2821
- const [uncontrolledOpen, setUncontrolledOpen] = (0, import_react49.useState)(defaultOpen);
3031
+ const [uncontrolledOpen, setUncontrolledOpen] = (0, import_react51.useState)(defaultOpen);
2822
3032
  const open = isControlled ? controlledOpen : uncontrolledOpen;
2823
- const panelRef = (0, import_react49.useRef)(null);
2824
- const setPanelRef = (0, import_react49.useCallback)((node) => {
3033
+ const panelRef = (0, import_react51.useRef)(null);
3034
+ const setPanelRef = (0, import_react51.useCallback)((node) => {
2825
3035
  panelRef.current = node;
2826
3036
  }, []);
2827
- (0, import_react49.useLayoutEffect)(() => {
3037
+ (0, import_react51.useLayoutEffect)(() => {
2828
3038
  const panel = panelRef.current;
2829
3039
  if (!panel) return;
2830
3040
  panel.style.maxHeight = open ? `${panel.scrollHeight}px` : "";
2831
3041
  }, [open]);
2832
- const setOpen = (0, import_react49.useCallback)(
3042
+ const setOpen = (0, import_react51.useCallback)(
2833
3043
  (next) => {
2834
3044
  if (!isControlled) {
2835
3045
  setUncontrolledOpen(next);
@@ -2838,8 +3048,8 @@ function useExpandToggle(options = {}) {
2838
3048
  },
2839
3049
  [isControlled, onOpenChange]
2840
3050
  );
2841
- const toggle = (0, import_react49.useCallback)(() => setOpen(!open), [open, setOpen]);
2842
- const getToggleProps = (0, import_react49.useCallback)(
3051
+ const toggle = (0, import_react51.useCallback)(() => setOpen(!open), [open, setOpen]);
3052
+ const getToggleProps = (0, import_react51.useCallback)(
2843
3053
  () => ({
2844
3054
  type: "button",
2845
3055
  "aria-expanded": open,
@@ -2848,7 +3058,7 @@ function useExpandToggle(options = {}) {
2848
3058
  }),
2849
3059
  [open, panelId, toggle]
2850
3060
  );
2851
- const getPanelProps = (0, import_react49.useCallback)(
3061
+ const getPanelProps = (0, import_react51.useCallback)(
2852
3062
  (baseClassName = "kds-expand-panel") => ({
2853
3063
  id: panelId,
2854
3064
  className: open ? `${baseClassName} open` : baseClassName,
@@ -2861,11 +3071,11 @@ function useExpandToggle(options = {}) {
2861
3071
  }
2862
3072
 
2863
3073
  // src/components/core/hooks/useHideOnScroll.ts
2864
- var import_react50 = require("react");
3074
+ var import_react52 = require("react");
2865
3075
  function useHideOnScroll(options = {}) {
2866
3076
  const { threshold = 8, topOffset = 0 } = options;
2867
- const [hidden, setHidden] = (0, import_react50.useState)(false);
2868
- (0, import_react50.useEffect)(() => {
3077
+ const [hidden, setHidden] = (0, import_react52.useState)(false);
3078
+ (0, import_react52.useEffect)(() => {
2869
3079
  let viewportOffset = 0;
2870
3080
  let lastY = 0;
2871
3081
  let ticking = false;
@@ -2906,6 +3116,23 @@ function useHideOnScroll(options = {}) {
2906
3116
  }, [threshold, topOffset]);
2907
3117
  return { hidden };
2908
3118
  }
3119
+
3120
+ // src/components/core/hooks/useMediaQuery.ts
3121
+ var import_react53 = require("react");
3122
+ function useMediaQuery(query) {
3123
+ const [matches, setMatches] = (0, import_react53.useState)(
3124
+ () => typeof window !== "undefined" ? window.matchMedia(query).matches : false
3125
+ );
3126
+ (0, import_react53.useEffect)(() => {
3127
+ if (typeof window === "undefined") return;
3128
+ const mql = window.matchMedia(query);
3129
+ setMatches(mql.matches);
3130
+ const onChange = (event) => setMatches(event.matches);
3131
+ mql.addEventListener("change", onChange);
3132
+ return () => mql.removeEventListener("change", onChange);
3133
+ }, [query]);
3134
+ return matches;
3135
+ }
2909
3136
  // Annotate the CommonJS export names for ESM import in node:
2910
3137
  0 && (module.exports = {
2911
3138
  KdsAccordion,
@@ -2932,6 +3159,7 @@ function useHideOnScroll(options = {}) {
2932
3159
  KdsCopyableTable,
2933
3160
  KdsCountdown,
2934
3161
  KdsDivider,
3162
+ KdsEmptyState,
2935
3163
  KdsExpandPanel,
2936
3164
  KdsFab,
2937
3165
  KdsInvoiceMerchant,
@@ -2960,11 +3188,14 @@ function useHideOnScroll(options = {}) {
2960
3188
  KdsThemeProvider,
2961
3189
  KdsTooltip,
2962
3190
  KdsTypography,
3191
+ LIGHT_LOGO_LUMINANCE_THRESHOLD,
2963
3192
  borderRadius,
2964
3193
  breakpoints,
3194
+ centerFieldInViewport,
2965
3195
  clsx,
2966
3196
  colors,
2967
3197
  colorsByMode,
3198
+ focusFirstInvalidField,
2968
3199
  fontFamilies,
2969
3200
  fontSizes,
2970
3201
  fontWeights,
@@ -2972,9 +3203,14 @@ function useHideOnScroll(options = {}) {
2972
3203
  formatDateTime,
2973
3204
  formatTime,
2974
3205
  getContrastColor,
3206
+ guideToFirstInvalidFieldOnBlur,
2975
3207
  letterSpacings,
2976
3208
  lighten,
2977
3209
  lineHeights,
3210
+ measureLogoLuminance,
3211
+ pickLogoBackdrop,
3212
+ runAfterPointerGesture,
3213
+ scrollToFirstInvalidField,
2978
3214
  semanticSpacing,
2979
3215
  shadows,
2980
3216
  spacing,
@@ -2987,6 +3223,8 @@ function useHideOnScroll(options = {}) {
2987
3223
  useCountdown,
2988
3224
  useExpandToggle,
2989
3225
  useHideOnScroll,
3226
+ useLogoBackdrop,
3227
+ useMediaQuery,
2990
3228
  useStickyInvoiceCollapse,
2991
3229
  useTabsKeyboard,
2992
3230
  zIndex