@khipu/design-system 0.1.0-alpha.52 → 0.1.0-alpha.53
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 +317 -2
- package/dist/beercss/khipu-beercss.js +121 -799
- package/dist/beercss/khipu-beercss.min.css +1 -1
- package/dist/beercss/khipu-beercss.min.js +1 -1
- package/dist/beercss/metadata.json +4 -5
- package/dist/index.d.mts +205 -32
- package/dist/index.d.ts +205 -32
- package/dist/index.js +132 -20
- package/dist/index.mjs +132 -20
- package/package.json +2 -1
|
@@ -11,7 +11,7 @@
|
|
|
11
11
|
*
|
|
12
12
|
* AUTO-GENERATED FILE - DO NOT EDIT MANUALLY
|
|
13
13
|
* Source: design-system/src/tokens/tokens.json
|
|
14
|
-
* Generated: 2026-04-
|
|
14
|
+
* Generated: 2026-04-30T15:21:29.125Z
|
|
15
15
|
*
|
|
16
16
|
* To regenerate:
|
|
17
17
|
* cd design-system && npm run tokens:generate
|
|
@@ -35,6 +35,8 @@
|
|
|
35
35
|
--kds-color-primary-selected: rgba(131, 71, 173, 0.08);
|
|
36
36
|
--kds-color-primary-focus: rgba(131, 71, 173, 0.12);
|
|
37
37
|
--kds-color-primary-focus-visible: rgba(131, 71, 173, 0.30);
|
|
38
|
+
--kds-color-primary-outlined-border-light: rgba(131, 71, 173, 0.20);
|
|
39
|
+
--kds-color-primary-outlined-border: rgba(131, 71, 173, 0.50);
|
|
38
40
|
|
|
39
41
|
/* Secondary palette */
|
|
40
42
|
--kds-color-secondary-main: #3CB4E5;
|
|
@@ -640,7 +642,8 @@ body.dark {
|
|
|
640
642
|
|
|
641
643
|
/* Extended semantic colors */
|
|
642
644
|
--kds-color-info-soft: #EFF6FF; /* Alias for info backgrounds */
|
|
643
|
-
--kds-color-success-soft: #ECFDF5; /* Success
|
|
645
|
+
--kds-color-success-soft: #ECFDF5; /* Success soft background */
|
|
646
|
+
--kds-color-success-border-light: #BBE2C4; /* Subtle success border for copied/confirmed states */
|
|
644
647
|
|
|
645
648
|
/* Border colors */
|
|
646
649
|
--kds-color-border-subtle: #F3F4F6; /* Very light border for cards/rows (origin --rule) */
|
|
@@ -669,6 +672,19 @@ body.dark {
|
|
|
669
672
|
/* Status Block */
|
|
670
673
|
--kds-status-icon-size: var(--kds-spacing-8); /* 64px */
|
|
671
674
|
--kds-status-icon-size-sm: var(--kds-spacing-5); /* 40px */
|
|
675
|
+
|
|
676
|
+
/* QR Featured Button */
|
|
677
|
+
--kds-qr-bg-gradient: linear-gradient(135deg, #F7EEFF 0%, #EEF6FF 100%); /* Purple to blue gradient */
|
|
678
|
+
--kds-qr-border: rgba(131, 71, 173, 0.28); /* Primary with 28% opacity */
|
|
679
|
+
--kds-qr-border-hover: var(--kds-color-primary-main); /* Solid primary on hover */
|
|
680
|
+
--kds-qr-shadow: 0 1px 2px rgba(131, 71, 173, 0.08); /* Subtle primary shadow */
|
|
681
|
+
--kds-qr-shadow-hover: 0 2px 8px rgba(131, 71, 173, 0.14); /* Elevated primary shadow */
|
|
682
|
+
--kds-qr-focus-ring: rgba(131, 71, 173, 0.3); /* Focus outline */
|
|
683
|
+
--kds-qr-avatar-border: rgba(131, 71, 173, 0.2); /* Avatar border */
|
|
684
|
+
--kds-qr-avatar-bg: #FFFFFF; /* White avatar background */
|
|
685
|
+
--kds-qr-avatar-radius: 10px; /* Avatar border radius */
|
|
686
|
+
--kds-qr-badge-bg: var(--kds-color-primary-main); /* Badge background */
|
|
687
|
+
--kds-qr-badge-text: #FFFFFF; /* Badge text color */
|
|
672
688
|
}
|
|
673
689
|
|
|
674
690
|
/* ========================================
|
|
@@ -713,6 +729,25 @@ footer {
|
|
|
713
729
|
margin-top: auto;
|
|
714
730
|
}
|
|
715
731
|
|
|
732
|
+
/* ========================================
|
|
733
|
+
Scroll Animation Tokens
|
|
734
|
+
======================================== */
|
|
735
|
+
:root {
|
|
736
|
+
/* Scroll-linked collapse range (mobile sticky invoice) */
|
|
737
|
+
--kds-scroll-collapse-end: 150px;
|
|
738
|
+
|
|
739
|
+
/* Merchant tile: normal and collapsed sizes (from source prototype) */
|
|
740
|
+
--kds-merchant-size: 64px;
|
|
741
|
+
--kds-merchant-size-collapsed: 50px;
|
|
742
|
+
--kds-merchant-radius: var(--kds-radius-md); /* 8px */
|
|
743
|
+
--kds-merchant-radius-collapsed: 6px;
|
|
744
|
+
--kds-merchant-icon-size: 30px;
|
|
745
|
+
--kds-merchant-icon-size-collapsed: 24px;
|
|
746
|
+
|
|
747
|
+
/* Sticky header shadow (scroll collapsed state) */
|
|
748
|
+
--kds-shadow-sticky: 0 2px 10px rgba(16, 24, 40, 0.08);
|
|
749
|
+
}
|
|
750
|
+
|
|
716
751
|
|
|
717
752
|
/* Khipu Custom Components */
|
|
718
753
|
/* Khipu Custom Components for BeerCSS
|
|
@@ -6214,3 +6249,283 @@ button.kds-btn-success::after {
|
|
|
6214
6249
|
}
|
|
6215
6250
|
}
|
|
6216
6251
|
|
|
6252
|
+
/* ========================================
|
|
6253
|
+
COPYABLE TABLE (.kds-copyable-table)
|
|
6254
|
+
Compact bordered table with tap-to-copy rows.
|
|
6255
|
+
Used for bank details, receipts, etc.
|
|
6256
|
+
======================================== */
|
|
6257
|
+
|
|
6258
|
+
.kds-copyable-table {
|
|
6259
|
+
border: 1px solid var(--kds-color-divider);
|
|
6260
|
+
border-radius: var(--kds-radius-md);
|
|
6261
|
+
background: var(--kds-color-background-paper);
|
|
6262
|
+
padding: var(--kds-spacing-0-5) var(--kds-spacing-0-75);
|
|
6263
|
+
box-shadow: 0 1px 0 rgba(20, 16, 38, .02);
|
|
6264
|
+
}
|
|
6265
|
+
|
|
6266
|
+
.kds-copyable-table-row {
|
|
6267
|
+
display: flex;
|
|
6268
|
+
align-items: center;
|
|
6269
|
+
justify-content: space-between;
|
|
6270
|
+
gap: var(--kds-spacing-1-5);
|
|
6271
|
+
padding: var(--kds-spacing-1-25) var(--kds-spacing-1);
|
|
6272
|
+
border-top: 1px solid var(--kds-color-divider);
|
|
6273
|
+
border-radius: var(--kds-spacing-0-75);
|
|
6274
|
+
font-size: var(--kds-font-size-sm);
|
|
6275
|
+
cursor: pointer;
|
|
6276
|
+
transition: background 0.12s ease;
|
|
6277
|
+
position: relative;
|
|
6278
|
+
user-select: none;
|
|
6279
|
+
}
|
|
6280
|
+
|
|
6281
|
+
.kds-copyable-table-row:first-child {
|
|
6282
|
+
border-top: 0;
|
|
6283
|
+
}
|
|
6284
|
+
|
|
6285
|
+
.kds-copyable-table-row:hover {
|
|
6286
|
+
background: var(--kds-color-primary-faint);
|
|
6287
|
+
}
|
|
6288
|
+
|
|
6289
|
+
.kds-copyable-table-row:hover + .kds-copyable-table-row {
|
|
6290
|
+
border-top-color: transparent;
|
|
6291
|
+
}
|
|
6292
|
+
|
|
6293
|
+
.kds-copyable-table-row:active {
|
|
6294
|
+
background: var(--kds-color-primary-selected);
|
|
6295
|
+
}
|
|
6296
|
+
|
|
6297
|
+
.kds-copyable-table-row .k {
|
|
6298
|
+
color: var(--kds-color-text-secondary);
|
|
6299
|
+
font-size: var(--kds-font-size-caption);
|
|
6300
|
+
letter-spacing: 0.3px;
|
|
6301
|
+
text-transform: uppercase;
|
|
6302
|
+
font-weight: var(--kds-font-weight-medium);
|
|
6303
|
+
flex: 0 0 auto;
|
|
6304
|
+
}
|
|
6305
|
+
|
|
6306
|
+
.kds-copyable-table-row .v {
|
|
6307
|
+
color: var(--kds-color-text-primary);
|
|
6308
|
+
font-family: 'JetBrains Mono', 'SF Mono', ui-monospace, Menlo, Consolas, monospace;
|
|
6309
|
+
font-weight: var(--kds-font-weight-medium);
|
|
6310
|
+
text-align: right;
|
|
6311
|
+
font-size: var(--kds-font-size-sm);
|
|
6312
|
+
letter-spacing: -0.1px;
|
|
6313
|
+
word-break: break-word;
|
|
6314
|
+
min-width: 0;
|
|
6315
|
+
display: flex;
|
|
6316
|
+
align-items: center;
|
|
6317
|
+
gap: var(--kds-spacing-1);
|
|
6318
|
+
justify-content: flex-end;
|
|
6319
|
+
flex: 1 1 auto;
|
|
6320
|
+
}
|
|
6321
|
+
|
|
6322
|
+
.kds-copyable-table-row .v::after {
|
|
6323
|
+
content: 'content_copy';
|
|
6324
|
+
font-family: 'Material Symbols Outlined';
|
|
6325
|
+
font-size: var(--kds-font-size-sm);
|
|
6326
|
+
color: var(--kds-color-primary-main);
|
|
6327
|
+
opacity: 0;
|
|
6328
|
+
transition: opacity 0.12s ease;
|
|
6329
|
+
flex: 0 0 auto;
|
|
6330
|
+
}
|
|
6331
|
+
|
|
6332
|
+
.kds-copyable-table-row:hover .v::after {
|
|
6333
|
+
opacity: 0.7;
|
|
6334
|
+
}
|
|
6335
|
+
|
|
6336
|
+
.kds-copyable-table-row.copied {
|
|
6337
|
+
background: var(--kds-color-success-soft);
|
|
6338
|
+
}
|
|
6339
|
+
|
|
6340
|
+
.kds-copyable-table-row.copied .v {
|
|
6341
|
+
color: var(--kds-color-success-dark);
|
|
6342
|
+
}
|
|
6343
|
+
|
|
6344
|
+
.kds-copyable-table-row.copied .v::after {
|
|
6345
|
+
content: 'check';
|
|
6346
|
+
font-family: 'Material Symbols Outlined';
|
|
6347
|
+
color: var(--kds-color-success-dark);
|
|
6348
|
+
opacity: 1;
|
|
6349
|
+
}
|
|
6350
|
+
|
|
6351
|
+
/* Disable BeerCSS ripple on copyable table rows */
|
|
6352
|
+
.kds-copyable-table-row::after {
|
|
6353
|
+
display: none;
|
|
6354
|
+
}
|
|
6355
|
+
|
|
6356
|
+
/* ========================================
|
|
6357
|
+
COPY-ALL BUTTON (.kds-copy-all-btn)
|
|
6358
|
+
Modifier for kds-btn kds-btn-outlined that adds
|
|
6359
|
+
brand-tint background and a .copied success state.
|
|
6360
|
+
Use with: kds-btn kds-btn-outlined kds-btn-block kds-copy-all-btn
|
|
6361
|
+
======================================== */
|
|
6362
|
+
|
|
6363
|
+
button.kds-copy-all-btn,
|
|
6364
|
+
a.kds-copy-all-btn {
|
|
6365
|
+
background: var(--kds-color-primary-faint);
|
|
6366
|
+
border-color: var(--kds-color-primary-outlined-border-light);
|
|
6367
|
+
margin-top: var(--kds-spacing-1-25);
|
|
6368
|
+
text-transform: none;
|
|
6369
|
+
letter-spacing: normal;
|
|
6370
|
+
}
|
|
6371
|
+
|
|
6372
|
+
button.kds-copy-all-btn:hover:not(:disabled):not(.copied),
|
|
6373
|
+
a.kds-copy-all-btn:hover:not(:disabled):not(.copied) {
|
|
6374
|
+
background: var(--kds-color-primary-selected);
|
|
6375
|
+
border-color: var(--kds-color-primary-main);
|
|
6376
|
+
}
|
|
6377
|
+
|
|
6378
|
+
button.kds-copy-all-btn.copied,
|
|
6379
|
+
button.kds-copy-all-btn.copied:hover,
|
|
6380
|
+
a.kds-copy-all-btn.copied,
|
|
6381
|
+
a.kds-copy-all-btn.copied:hover {
|
|
6382
|
+
background: var(--kds-color-success-soft);
|
|
6383
|
+
color: var(--kds-color-success-dark);
|
|
6384
|
+
border-color: var(--kds-color-success-border-light);
|
|
6385
|
+
}
|
|
6386
|
+
|
|
6387
|
+
/* ========================================
|
|
6388
|
+
SECTION NOTE (.kds-section-note)
|
|
6389
|
+
Lightweight inline note for contextual caveats.
|
|
6390
|
+
Lighter than .kds-alert — informs without
|
|
6391
|
+
competing with the main content.
|
|
6392
|
+
======================================== */
|
|
6393
|
+
|
|
6394
|
+
.kds-section-note {
|
|
6395
|
+
display: flex;
|
|
6396
|
+
align-items: center;
|
|
6397
|
+
font-size: var(--kds-font-size-caption);
|
|
6398
|
+
color: var(--kds-color-warning-dark);
|
|
6399
|
+
margin: -2px 0 var(--kds-spacing-1-5) !important;
|
|
6400
|
+
margin-block-start: 0 !important;
|
|
6401
|
+
letter-spacing: -0.05px;
|
|
6402
|
+
}
|
|
6403
|
+
|
|
6404
|
+
.kds-section-note > i {
|
|
6405
|
+
font-size: var(--kds-font-size-base);
|
|
6406
|
+
flex: 0 0 auto;
|
|
6407
|
+
color: var(--kds-color-warning-dark);
|
|
6408
|
+
margin-top: 1px;
|
|
6409
|
+
min-width: unset;
|
|
6410
|
+
min-height: unset;
|
|
6411
|
+
}
|
|
6412
|
+
|
|
6413
|
+
/* ========================================
|
|
6414
|
+
INFO TOOLTIP (.kds-info-tip)
|
|
6415
|
+
Inline info button with hover/click tooltip bubble.
|
|
6416
|
+
Reusable in any context.
|
|
6417
|
+
======================================== */
|
|
6418
|
+
|
|
6419
|
+
.kds-info-tip {
|
|
6420
|
+
background: none;
|
|
6421
|
+
border: 0;
|
|
6422
|
+
padding: 2px;
|
|
6423
|
+
margin: 0;
|
|
6424
|
+
display: inline-flex;
|
|
6425
|
+
align-items: center;
|
|
6426
|
+
justify-content: center;
|
|
6427
|
+
color: var(--kds-color-text-secondary);
|
|
6428
|
+
cursor: pointer;
|
|
6429
|
+
border-radius: 9999px;
|
|
6430
|
+
line-height: 1;
|
|
6431
|
+
position: relative;
|
|
6432
|
+
transition: color 0.12s, background 0.12s;
|
|
6433
|
+
/* Reset BeerCSS button sizing (block-size: 2.5rem, content-box, padding: 1rem) */
|
|
6434
|
+
block-size: auto;
|
|
6435
|
+
inline-size: auto;
|
|
6436
|
+
box-sizing: border-box;
|
|
6437
|
+
}
|
|
6438
|
+
|
|
6439
|
+
.kds-info-tip:hover {
|
|
6440
|
+
color: var(--kds-color-primary-main);
|
|
6441
|
+
background: var(--kds-color-primary-faint);
|
|
6442
|
+
}
|
|
6443
|
+
|
|
6444
|
+
.kds-info-tip:focus-visible {
|
|
6445
|
+
outline: 2px solid var(--kds-color-primary-focus-visible);
|
|
6446
|
+
outline-offset: 2px;
|
|
6447
|
+
}
|
|
6448
|
+
|
|
6449
|
+
.kds-info-tip > i {
|
|
6450
|
+
font-size: var(--kds-font-size-base);
|
|
6451
|
+
}
|
|
6452
|
+
|
|
6453
|
+
.kds-tip-bubble {
|
|
6454
|
+
position: absolute;
|
|
6455
|
+
bottom: calc(100% + 8px);
|
|
6456
|
+
right: -6px;
|
|
6457
|
+
width: max-content;
|
|
6458
|
+
max-width: 240px;
|
|
6459
|
+
background: var(--kds-color-text-primary);
|
|
6460
|
+
color: var(--kds-color-background-paper);
|
|
6461
|
+
font-family: inherit;
|
|
6462
|
+
font-weight: var(--kds-font-weight-regular);
|
|
6463
|
+
font-size: var(--kds-font-size-xs);
|
|
6464
|
+
line-height: 1.45;
|
|
6465
|
+
letter-spacing: -0.05px;
|
|
6466
|
+
text-align: left;
|
|
6467
|
+
padding: var(--kds-spacing-1) var(--kds-spacing-1-25);
|
|
6468
|
+
border-radius: var(--kds-spacing-1);
|
|
6469
|
+
box-shadow: var(--kds-shadow-4);
|
|
6470
|
+
opacity: 0;
|
|
6471
|
+
pointer-events: none;
|
|
6472
|
+
transform: translateY(2px);
|
|
6473
|
+
transition: opacity 0.14s ease, transform 0.14s ease;
|
|
6474
|
+
z-index: 10;
|
|
6475
|
+
white-space: normal;
|
|
6476
|
+
}
|
|
6477
|
+
|
|
6478
|
+
.kds-tip-bubble::after {
|
|
6479
|
+
content: "";
|
|
6480
|
+
position: absolute;
|
|
6481
|
+
top: 100%;
|
|
6482
|
+
right: 10px;
|
|
6483
|
+
border: 5px solid transparent;
|
|
6484
|
+
border-top-color: var(--kds-color-text-primary);
|
|
6485
|
+
}
|
|
6486
|
+
|
|
6487
|
+
.kds-info-tip[aria-expanded="true"] .kds-tip-bubble,
|
|
6488
|
+
.kds-info-tip:hover .kds-tip-bubble,
|
|
6489
|
+
.kds-info-tip:focus-visible .kds-tip-bubble {
|
|
6490
|
+
opacity: 1;
|
|
6491
|
+
transform: none;
|
|
6492
|
+
}
|
|
6493
|
+
|
|
6494
|
+
/* Disable BeerCSS ripple */
|
|
6495
|
+
.kds-info-tip::after {
|
|
6496
|
+
display: none;
|
|
6497
|
+
}
|
|
6498
|
+
|
|
6499
|
+
/* ========================================
|
|
6500
|
+
MONTO ROW (.kds-monto-row)
|
|
6501
|
+
Summary row with title + deadline left, big amount right.
|
|
6502
|
+
Split layout separated by dashed border.
|
|
6503
|
+
======================================== */
|
|
6504
|
+
|
|
6505
|
+
.kds-monto-row {
|
|
6506
|
+
display: flex;
|
|
6507
|
+
justify-content: space-between;
|
|
6508
|
+
align-items: flex-end;
|
|
6509
|
+
padding: var(--kds-spacing-1-75) 0 var(--kds-spacing-1);
|
|
6510
|
+
border-top: 1px dashed var(--kds-color-divider);
|
|
6511
|
+
margin-top: var(--kds-spacing-1-75);
|
|
6512
|
+
}
|
|
6513
|
+
|
|
6514
|
+
.kds-monto-row-title {
|
|
6515
|
+
font-weight: var(--kds-font-weight-bold);
|
|
6516
|
+
font-size: var(--kds-font-size-base);
|
|
6517
|
+
color: var(--kds-color-text-primary);
|
|
6518
|
+
}
|
|
6519
|
+
|
|
6520
|
+
.kds-monto-row-deadline {
|
|
6521
|
+
font-size: var(--kds-font-size-xs);
|
|
6522
|
+
color: var(--kds-color-text-hint);
|
|
6523
|
+
margin-top: var(--kds-spacing-0-5);
|
|
6524
|
+
}
|
|
6525
|
+
|
|
6526
|
+
.kds-monto-row-value {
|
|
6527
|
+
font-weight: var(--kds-font-weight-bold);
|
|
6528
|
+
font-size: 24px;
|
|
6529
|
+
color: var(--kds-color-text-primary);
|
|
6530
|
+
}
|
|
6531
|
+
|