@transferwise/components 46.41.1 → 46.42.1

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/build/main.css CHANGED
@@ -2400,67 +2400,37 @@ html:not([dir="rtl"]) .np-flow-navigation--sm .np-flow-navigation__stepper {
2400
2400
  position: relative;
2401
2401
  z-index: 1060;
2402
2402
  }
2403
- .np-bottom-sheet-v2-backdrop-container--enter,
2404
- .np-bottom-sheet-v2-backdrop-container--leave {
2405
- transition-property: opacity;
2406
- transition-timing-function: ease-out;
2407
- transition-duration: 300ms;
2408
- }
2409
- .np-bottom-sheet-v2-backdrop-container--enter-from,
2410
- .np-bottom-sheet-v2-backdrop-container--leave-to {
2411
- opacity: 0;
2412
- }
2413
2403
  .np-bottom-sheet-v2-backdrop {
2414
2404
  position: fixed;
2415
2405
  inset: 0px;
2416
2406
  background-color: #37517e;
2417
2407
  background-color: var(--color-content-primary);
2418
2408
  opacity: 0.4;
2409
+ transition-property: opacity;
2410
+ transition-timing-function: ease-out;
2411
+ transition-duration: 300ms;
2412
+ }
2413
+ .np-bottom-sheet-v2-backdrop--closed {
2414
+ opacity: 0;
2419
2415
  }
2420
2416
  .np-bottom-sheet-v2 {
2421
2417
  position: fixed;
2422
2418
  inset: 0px;
2419
+ bottom: env(keyboard-inset-height, 0px);
2420
+ margin-left: 8px;
2421
+ margin-left: var(--size-8);
2422
+ margin-right: 8px;
2423
+ margin-right: var(--size-8);
2424
+ margin-top: 64px;
2425
+ margin-top: var(--size-64);
2423
2426
  display: flex;
2424
2427
  flex-direction: column;
2425
2428
  justify-content: flex-end;
2426
- padding-left: 8px;
2427
- padding-left: var(--size-8);
2428
- padding-right: 8px;
2429
- padding-right: var(--size-8);
2430
- padding-top: 64px;
2431
- padding-top: var(--size-64);
2432
2429
  }
2433
2430
  .np-bottom-sheet-v2-content {
2434
- max-height: 100%;
2435
- }
2436
- .np-bottom-sheet-v2-content--enter,
2437
- .np-bottom-sheet-v2-content--leave {
2438
- transition-property: transform;
2439
- transition-timing-function: ease-out;
2440
- transition-duration: 300ms;
2441
- }
2442
- @media (prefers-reduced-motion: reduce) {
2443
- .np-bottom-sheet-v2-content--enter,
2444
- .np-bottom-sheet-v2-content--leave {
2445
- transition-property: opacity;
2446
- }
2447
- }
2448
- @media (prefers-reduced-motion: no-preference) {
2449
- .np-bottom-sheet-v2-content--enter-from,
2450
- .np-bottom-sheet-v2-content--leave-to {
2451
- transform: translateY(100%);
2452
- }
2453
- }
2454
- @media (prefers-reduced-motion: reduce) {
2455
- .np-bottom-sheet-v2-content--enter-from,
2456
- .np-bottom-sheet-v2-content--leave-to {
2457
- opacity: 0;
2458
- }
2459
- }
2460
- .np-bottom-sheet-v2-content-inner-container {
2461
2431
  display: flex;
2462
- height: 100%;
2463
2432
  flex-direction: column;
2433
+ overflow: auto;
2464
2434
  border-top-left-radius: 32px;
2465
2435
  /* TODO: Tokenize */
2466
2436
  border-top-right-radius: 32px;
@@ -2469,30 +2439,50 @@ html:not([dir="rtl"]) .np-flow-navigation--sm .np-flow-navigation__stepper {
2469
2439
  background-color: var(--color-background-elevated);
2470
2440
  box-shadow: 0 0 40px rgba(69, 71, 69, 0.2);
2471
2441
  }
2472
- .np-bottom-sheet-v2-content-inner-container:focus {
2442
+ .np-bottom-sheet-v2-content:focus {
2473
2443
  outline: none;
2474
2444
  }
2445
+ @media (prefers-reduced-motion: no-preference) {
2446
+ .np-bottom-sheet-v2-content {
2447
+ transition-property: transform;
2448
+ transition-timing-function: ease-out;
2449
+ transition-duration: 300ms;
2450
+ }
2451
+ .np-bottom-sheet-v2-content--closed {
2452
+ transform: translateY(100%);
2453
+ }
2454
+ }
2455
+ @media (prefers-reduced-motion: reduce) {
2456
+ .np-bottom-sheet-v2-content {
2457
+ transition-property: opacity;
2458
+ transition-timing-function: ease-out;
2459
+ transition-duration: 300ms;
2460
+ }
2461
+ .np-bottom-sheet-v2-content--closed {
2462
+ opacity: 0;
2463
+ }
2464
+ }
2475
2465
  .np-bottom-sheet-v2-header {
2476
2466
  align-self: flex-end;
2477
2467
  padding: 16px;
2478
2468
  padding: var(--size-16);
2479
2469
  }
2480
2470
  .np-bottom-sheet-v2-content-inner {
2481
- padding-top: 0px;
2482
2471
  display: grid;
2472
+ grid-template-rows: minmax(0, 1fr);
2483
2473
  grid-row-gap: 8px;
2484
2474
  grid-row-gap: var(--size-8);
2485
2475
  row-gap: 8px;
2486
2476
  row-gap: var(--size-8);
2487
- overflow-y: auto;
2488
- grid-template-rows: repeat(1, minmax(0, 1fr));
2477
+ overflow: auto;
2489
2478
  }
2490
2479
  .np-bottom-sheet-v2-content-inner--has-title {
2491
- grid-template-rows: auto 1fr;
2480
+ grid-template-rows: auto minmax(0, 1fr);
2492
2481
  }
2493
2482
  .np-bottom-sheet-v2-content-inner--padding-md {
2494
2483
  padding: 16px;
2495
2484
  padding: var(--size-16);
2485
+ padding-top: 0px;
2496
2486
  }
2497
2487
  .np-bottom-sheet-v2-title {
2498
2488
  color: #37517e;
@@ -2539,10 +2529,10 @@ html:not([dir="rtl"]) .np-flow-navigation--sm .np-flow-navigation__stepper {
2539
2529
  row-gap: 8px;
2540
2530
  row-gap: var(--size-8);
2541
2531
  overflow-y: auto;
2542
- grid-template-rows: repeat(1, minmax(0, 1fr));
2532
+ grid-template-rows: minmax(0, 1fr);
2543
2533
  }
2544
2534
  .np-popover-v2--has-title {
2545
- grid-template-rows: auto 1fr;
2535
+ grid-template-rows: auto minmax(0, 1fr);
2546
2536
  }
2547
2537
  .np-popover-v2--padding-md {
2548
2538
  padding: 16px;
@@ -2,67 +2,37 @@
2
2
  position: relative;
3
3
  z-index: 1060;
4
4
  }
5
- .np-bottom-sheet-v2-backdrop-container--enter,
6
- .np-bottom-sheet-v2-backdrop-container--leave {
7
- transition-property: opacity;
8
- transition-timing-function: ease-out;
9
- transition-duration: 300ms;
10
- }
11
- .np-bottom-sheet-v2-backdrop-container--enter-from,
12
- .np-bottom-sheet-v2-backdrop-container--leave-to {
13
- opacity: 0;
14
- }
15
5
  .np-bottom-sheet-v2-backdrop {
16
6
  position: fixed;
17
7
  inset: 0px;
18
8
  background-color: #37517e;
19
9
  background-color: var(--color-content-primary);
20
10
  opacity: 0.4;
11
+ transition-property: opacity;
12
+ transition-timing-function: ease-out;
13
+ transition-duration: 300ms;
14
+ }
15
+ .np-bottom-sheet-v2-backdrop--closed {
16
+ opacity: 0;
21
17
  }
22
18
  .np-bottom-sheet-v2 {
23
19
  position: fixed;
24
20
  inset: 0px;
21
+ bottom: env(keyboard-inset-height, 0px);
22
+ margin-left: 8px;
23
+ margin-left: var(--size-8);
24
+ margin-right: 8px;
25
+ margin-right: var(--size-8);
26
+ margin-top: 64px;
27
+ margin-top: var(--size-64);
25
28
  display: flex;
26
29
  flex-direction: column;
27
30
  justify-content: flex-end;
28
- padding-left: 8px;
29
- padding-left: var(--size-8);
30
- padding-right: 8px;
31
- padding-right: var(--size-8);
32
- padding-top: 64px;
33
- padding-top: var(--size-64);
34
31
  }
35
32
  .np-bottom-sheet-v2-content {
36
- max-height: 100%;
37
- }
38
- .np-bottom-sheet-v2-content--enter,
39
- .np-bottom-sheet-v2-content--leave {
40
- transition-property: transform;
41
- transition-timing-function: ease-out;
42
- transition-duration: 300ms;
43
- }
44
- @media (prefers-reduced-motion: reduce) {
45
- .np-bottom-sheet-v2-content--enter,
46
- .np-bottom-sheet-v2-content--leave {
47
- transition-property: opacity;
48
- }
49
- }
50
- @media (prefers-reduced-motion: no-preference) {
51
- .np-bottom-sheet-v2-content--enter-from,
52
- .np-bottom-sheet-v2-content--leave-to {
53
- transform: translateY(100%);
54
- }
55
- }
56
- @media (prefers-reduced-motion: reduce) {
57
- .np-bottom-sheet-v2-content--enter-from,
58
- .np-bottom-sheet-v2-content--leave-to {
59
- opacity: 0;
60
- }
61
- }
62
- .np-bottom-sheet-v2-content-inner-container {
63
33
  display: flex;
64
- height: 100%;
65
34
  flex-direction: column;
35
+ overflow: auto;
66
36
  border-top-left-radius: 32px;
67
37
  /* TODO: Tokenize */
68
38
  border-top-right-radius: 32px;
@@ -71,30 +41,50 @@
71
41
  background-color: var(--color-background-elevated);
72
42
  box-shadow: 0 0 40px rgba(69, 71, 69, 0.2);
73
43
  }
74
- .np-bottom-sheet-v2-content-inner-container:focus {
44
+ .np-bottom-sheet-v2-content:focus {
75
45
  outline: none;
76
46
  }
47
+ @media (prefers-reduced-motion: no-preference) {
48
+ .np-bottom-sheet-v2-content {
49
+ transition-property: transform;
50
+ transition-timing-function: ease-out;
51
+ transition-duration: 300ms;
52
+ }
53
+ .np-bottom-sheet-v2-content--closed {
54
+ transform: translateY(100%);
55
+ }
56
+ }
57
+ @media (prefers-reduced-motion: reduce) {
58
+ .np-bottom-sheet-v2-content {
59
+ transition-property: opacity;
60
+ transition-timing-function: ease-out;
61
+ transition-duration: 300ms;
62
+ }
63
+ .np-bottom-sheet-v2-content--closed {
64
+ opacity: 0;
65
+ }
66
+ }
77
67
  .np-bottom-sheet-v2-header {
78
68
  align-self: flex-end;
79
69
  padding: 16px;
80
70
  padding: var(--size-16);
81
71
  }
82
72
  .np-bottom-sheet-v2-content-inner {
83
- padding-top: 0px;
84
73
  display: grid;
74
+ grid-template-rows: minmax(0, 1fr);
85
75
  grid-row-gap: 8px;
86
76
  grid-row-gap: var(--size-8);
87
77
  row-gap: 8px;
88
78
  row-gap: var(--size-8);
89
- overflow-y: auto;
90
- grid-template-rows: repeat(1, minmax(0, 1fr));
79
+ overflow: auto;
91
80
  }
92
81
  .np-bottom-sheet-v2-content-inner--has-title {
93
- grid-template-rows: auto 1fr;
82
+ grid-template-rows: auto minmax(0, 1fr);
94
83
  }
95
84
  .np-bottom-sheet-v2-content-inner--padding-md {
96
85
  padding: 16px;
97
86
  padding: var(--size-16);
87
+ padding-top: 0px;
98
88
  }
99
89
  .np-bottom-sheet-v2-title {
100
90
  color: #37517e;
@@ -141,10 +131,10 @@
141
131
  row-gap: 8px;
142
132
  row-gap: var(--size-8);
143
133
  overflow-y: auto;
144
- grid-template-rows: repeat(1, minmax(0, 1fr));
134
+ grid-template-rows: minmax(0, 1fr);
145
135
  }
146
136
  .np-popover-v2--has-title {
147
- grid-template-rows: auto 1fr;
137
+ grid-template-rows: auto minmax(0, 1fr);
148
138
  }
149
139
  .np-popover-v2--padding-md {
150
140
  padding: 16px;
@@ -2400,67 +2400,37 @@ html:not([dir="rtl"]) .np-flow-navigation--sm .np-flow-navigation__stepper {
2400
2400
  position: relative;
2401
2401
  z-index: 1060;
2402
2402
  }
2403
- .np-bottom-sheet-v2-backdrop-container--enter,
2404
- .np-bottom-sheet-v2-backdrop-container--leave {
2405
- transition-property: opacity;
2406
- transition-timing-function: ease-out;
2407
- transition-duration: 300ms;
2408
- }
2409
- .np-bottom-sheet-v2-backdrop-container--enter-from,
2410
- .np-bottom-sheet-v2-backdrop-container--leave-to {
2411
- opacity: 0;
2412
- }
2413
2403
  .np-bottom-sheet-v2-backdrop {
2414
2404
  position: fixed;
2415
2405
  inset: 0px;
2416
2406
  background-color: #37517e;
2417
2407
  background-color: var(--color-content-primary);
2418
2408
  opacity: 0.4;
2409
+ transition-property: opacity;
2410
+ transition-timing-function: ease-out;
2411
+ transition-duration: 300ms;
2412
+ }
2413
+ .np-bottom-sheet-v2-backdrop--closed {
2414
+ opacity: 0;
2419
2415
  }
2420
2416
  .np-bottom-sheet-v2 {
2421
2417
  position: fixed;
2422
2418
  inset: 0px;
2419
+ bottom: env(keyboard-inset-height, 0px);
2420
+ margin-left: 8px;
2421
+ margin-left: var(--size-8);
2422
+ margin-right: 8px;
2423
+ margin-right: var(--size-8);
2424
+ margin-top: 64px;
2425
+ margin-top: var(--size-64);
2423
2426
  display: flex;
2424
2427
  flex-direction: column;
2425
2428
  justify-content: flex-end;
2426
- padding-left: 8px;
2427
- padding-left: var(--size-8);
2428
- padding-right: 8px;
2429
- padding-right: var(--size-8);
2430
- padding-top: 64px;
2431
- padding-top: var(--size-64);
2432
2429
  }
2433
2430
  .np-bottom-sheet-v2-content {
2434
- max-height: 100%;
2435
- }
2436
- .np-bottom-sheet-v2-content--enter,
2437
- .np-bottom-sheet-v2-content--leave {
2438
- transition-property: transform;
2439
- transition-timing-function: ease-out;
2440
- transition-duration: 300ms;
2441
- }
2442
- @media (prefers-reduced-motion: reduce) {
2443
- .np-bottom-sheet-v2-content--enter,
2444
- .np-bottom-sheet-v2-content--leave {
2445
- transition-property: opacity;
2446
- }
2447
- }
2448
- @media (prefers-reduced-motion: no-preference) {
2449
- .np-bottom-sheet-v2-content--enter-from,
2450
- .np-bottom-sheet-v2-content--leave-to {
2451
- transform: translateY(100%);
2452
- }
2453
- }
2454
- @media (prefers-reduced-motion: reduce) {
2455
- .np-bottom-sheet-v2-content--enter-from,
2456
- .np-bottom-sheet-v2-content--leave-to {
2457
- opacity: 0;
2458
- }
2459
- }
2460
- .np-bottom-sheet-v2-content-inner-container {
2461
2431
  display: flex;
2462
- height: 100%;
2463
2432
  flex-direction: column;
2433
+ overflow: auto;
2464
2434
  border-top-left-radius: 32px;
2465
2435
  /* TODO: Tokenize */
2466
2436
  border-top-right-radius: 32px;
@@ -2469,30 +2439,50 @@ html:not([dir="rtl"]) .np-flow-navigation--sm .np-flow-navigation__stepper {
2469
2439
  background-color: var(--color-background-elevated);
2470
2440
  box-shadow: 0 0 40px rgba(69, 71, 69, 0.2);
2471
2441
  }
2472
- .np-bottom-sheet-v2-content-inner-container:focus {
2442
+ .np-bottom-sheet-v2-content:focus {
2473
2443
  outline: none;
2474
2444
  }
2445
+ @media (prefers-reduced-motion: no-preference) {
2446
+ .np-bottom-sheet-v2-content {
2447
+ transition-property: transform;
2448
+ transition-timing-function: ease-out;
2449
+ transition-duration: 300ms;
2450
+ }
2451
+ .np-bottom-sheet-v2-content--closed {
2452
+ transform: translateY(100%);
2453
+ }
2454
+ }
2455
+ @media (prefers-reduced-motion: reduce) {
2456
+ .np-bottom-sheet-v2-content {
2457
+ transition-property: opacity;
2458
+ transition-timing-function: ease-out;
2459
+ transition-duration: 300ms;
2460
+ }
2461
+ .np-bottom-sheet-v2-content--closed {
2462
+ opacity: 0;
2463
+ }
2464
+ }
2475
2465
  .np-bottom-sheet-v2-header {
2476
2466
  align-self: flex-end;
2477
2467
  padding: 16px;
2478
2468
  padding: var(--size-16);
2479
2469
  }
2480
2470
  .np-bottom-sheet-v2-content-inner {
2481
- padding-top: 0px;
2482
2471
  display: grid;
2472
+ grid-template-rows: minmax(0, 1fr);
2483
2473
  grid-row-gap: 8px;
2484
2474
  grid-row-gap: var(--size-8);
2485
2475
  row-gap: 8px;
2486
2476
  row-gap: var(--size-8);
2487
- overflow-y: auto;
2488
- grid-template-rows: repeat(1, minmax(0, 1fr));
2477
+ overflow: auto;
2489
2478
  }
2490
2479
  .np-bottom-sheet-v2-content-inner--has-title {
2491
- grid-template-rows: auto 1fr;
2480
+ grid-template-rows: auto minmax(0, 1fr);
2492
2481
  }
2493
2482
  .np-bottom-sheet-v2-content-inner--padding-md {
2494
2483
  padding: 16px;
2495
2484
  padding: var(--size-16);
2485
+ padding-top: 0px;
2496
2486
  }
2497
2487
  .np-bottom-sheet-v2-title {
2498
2488
  color: #37517e;
@@ -2539,10 +2529,10 @@ html:not([dir="rtl"]) .np-flow-navigation--sm .np-flow-navigation__stepper {
2539
2529
  row-gap: 8px;
2540
2530
  row-gap: var(--size-8);
2541
2531
  overflow-y: auto;
2542
- grid-template-rows: repeat(1, minmax(0, 1fr));
2532
+ grid-template-rows: minmax(0, 1fr);
2543
2533
  }
2544
2534
  .np-popover-v2--has-title {
2545
- grid-template-rows: auto 1fr;
2535
+ grid-template-rows: auto minmax(0, 1fr);
2546
2536
  }
2547
2537
  .np-popover-v2--padding-md {
2548
2538
  padding: 16px;
@@ -0,0 +1,7 @@
1
+ /**
2
+ * This progressive enhancement uses an experimental API, it might change,
3
+ * and at the time of authoring is not supported on iOS or mobile Firefox.
4
+ * @see https://developer.mozilla.org/en-US/docs/Web/API/VirtualKeyboard
5
+ */
6
+ export declare function useVirtualKeyboard(): void;
7
+ //# sourceMappingURL=useVirtualKeyboard.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useVirtualKeyboard.d.ts","sourceRoot":"","sources":["../../../../src/common/hooks/useVirtualKeyboard.ts"],"names":[],"mappings":"AAEA;;;;GAIG;AACH,wBAAgB,kBAAkB,SAajC"}
@@ -1 +1 @@
1
- {"version":3,"file":"InlineAlert.d.ts","sourceRoot":"","sources":["../../../src/inlineAlert/InlineAlert.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAElC,OAAO,EAAE,SAAS,EAAQ,MAAM,WAAW,CAAC;AAG5C,MAAM,WAAW,gBAAgB;IAC/B,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,IAAI,CAAC,EAAE,GAAG,SAAS,EAAE,CAAC;IACtB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,SAAS,CAAC;CACrB;AAED,MAAM,CAAC,OAAO,UAAU,WAAW,CAAC,EAClC,EAAE,EACF,IAAgB,EAChB,SAAS,EACT,QAAQ,GACT,EAAE,gBAAgB,+BAmBlB"}
1
+ {"version":3,"file":"InlineAlert.d.ts","sourceRoot":"","sources":["../../../src/inlineAlert/InlineAlert.tsx"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAElC,OAAO,EAAE,SAAS,EAAQ,MAAM,WAAW,CAAC;AAG5C,MAAM,WAAW,gBAAgB;IAC/B,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,IAAI,CAAC,EAAE,GAAG,SAAS,EAAE,CAAC;IACtB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,SAAS,CAAC;CACrB;AAED,MAAM,CAAC,OAAO,UAAU,WAAW,CAAC,EAClC,EAAE,EACF,IAAgB,EAChB,SAAS,EACT,QAAQ,GACT,EAAE,gBAAgB,+BAiBlB"}
@@ -1 +1 @@
1
- {"version":3,"file":"_BottomSheet.d.ts","sourceRoot":"","sources":["../../../src/inputs/_BottomSheet.tsx"],"names":[],"mappings":"AAkBA,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,OAAO,CAAC;IACd,aAAa,CAAC,EAAE,CAAC,IAAI,EAAE;QACrB,GAAG,EAAE,KAAK,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;QAChC,mBAAmB,EAAE,CAAC,mBAAmB,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC,OAAO,CAAC,KAAK;YACvE,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;SACxB,CAAC;KACH,KAAK,KAAK,CAAC,SAAS,CAAC;IACtB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,eAAe,CAAC,EAAE,KAAK,CAAC,gBAAgB,CAAC,WAAW,GAAG,IAAI,CAAC,CAAC;IAC7D,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC3B,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,IAAI,CAAC;CACzB;AAED,wBAAgB,WAAW,CAAC,EAC1B,IAAI,EACJ,aAAa,EACb,KAAK,EACL,eAAe,EACf,OAAc,EACd,QAAQ,EACR,OAAO,EACP,UAAU,GACX,EAAE,gBAAgB,+BAmGlB"}
1
+ {"version":3,"file":"_BottomSheet.d.ts","sourceRoot":"","sources":["../../../src/inputs/_BottomSheet.tsx"],"names":[],"mappings":"AAmBA,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,OAAO,CAAC;IACd,aAAa,CAAC,EAAE,CAAC,IAAI,EAAE;QACrB,GAAG,EAAE,KAAK,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC;QAChC,mBAAmB,EAAE,CAAC,mBAAmB,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC,OAAO,CAAC,KAAK;YACvE,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;SACxB,CAAC;KACH,KAAK,KAAK,CAAC,SAAS,CAAC;IACtB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,eAAe,CAAC,EAAE,KAAK,CAAC,gBAAgB,CAAC,WAAW,GAAG,IAAI,CAAC,CAAC;IAC7D,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC3B,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,UAAU,CAAC,EAAE,MAAM,IAAI,CAAC;CACzB;AAED,wBAAgB,WAAW,CAAC,EAC1B,IAAI,EACJ,aAAa,EACb,KAAK,EACL,eAAe,EACf,OAAc,EACd,QAAQ,EACR,OAAO,EACP,UAAU,GACX,EAAE,gBAAgB,+BA6FlB"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@transferwise/components",
3
- "version": "46.41.1",
3
+ "version": "46.42.1",
4
4
  "description": "Neptune React components",
5
5
  "license": "Apache-2.0",
6
6
  "repository": {
@@ -93,7 +93,7 @@
93
93
  "rollup": "^4.17.2",
94
94
  "storybook": "^8.1.10",
95
95
  "@transferwise/less-config": "3.1.0",
96
- "@transferwise/neptune-css": "14.11.0",
96
+ "@transferwise/neptune-css": "14.12.0",
97
97
  "@wise/components-theming": "1.3.0"
98
98
  },
99
99
  "peerDependencies": {
@@ -1,97 +1,66 @@
1
- import { action } from '@storybook/addon-actions';
2
- import { boolean, select, text } from '@storybook/addon-knobs';
3
- import { Freeze, Plus, Whatsapp } from '@transferwise/icons';
1
+ import * as Icons from '@transferwise/icons';
4
2
 
5
- import { Priority, ControlType } from '../common';
3
+ import { ControlType, Priority } from '../common';
6
4
 
5
+ import { Meta, StoryObj } from '@storybook/react';
7
6
  import CircularButton from './CircularButton';
8
7
 
9
8
  export default {
10
9
  component: CircularButton,
11
10
  title: 'Actions/CircularButton',
12
- };
11
+ args: {
12
+ children: 'Button text',
13
+ // Needs to be cast because we're mapping icon names to components
14
+ icon: 'Freeze' as unknown as React.ReactElement,
15
+ },
16
+ argTypes: {
17
+ icon: {
18
+ options: Object.keys(Icons),
19
+ mapping: Object.fromEntries(
20
+ Object.entries(Icons).map(([name, Icon]) => [name, <Icon key={name} />]),
21
+ ),
22
+ },
23
+ },
24
+ } satisfies Meta<typeof CircularButton>;
13
25
 
14
- const icons = {
15
- plus: <Plus />,
16
- freeze: <Freeze />,
17
- whatsapp: <Whatsapp />,
18
- };
26
+ type Story = StoryObj<typeof CircularButton>;
19
27
 
20
- export const Basic = () => {
21
- const icon = select('icon', ['freeze', 'plus', 'whatsapp'], 'freeze');
22
- const priority = select('priority', [Priority.PRIMARY, Priority.SECONDARY], Priority.PRIMARY);
23
- const type = select('type', Object.values(ControlType), ControlType.ACCENT);
24
- const disabled = boolean('disabled', false);
25
- const label = text('label', 'Button text');
26
- const background = select('theme', ['light', 'blue'], 'light');
27
- return (
28
- <div className={background === 'blue' ? 'bg--dark p-a-3' : ''}>
29
- <CircularButton
30
- icon={icons[icon]}
31
- priority={priority}
32
- type={type}
33
- disabled={disabled}
34
- onClick={action('Button Clicked')}
35
- >
36
- {label}
37
- </CircularButton>
38
- </div>
39
- );
28
+ export const Basic: Story = {
29
+ args: {
30
+ priority: Priority.PRIMARY,
31
+ type: ControlType.ACCENT,
32
+ disabled: false,
33
+ },
40
34
  };
41
35
 
42
- export const deprecated = () => {
43
- const icon = select('icon', ['freeze', 'plus', 'whatsapp'], 'freeze');
44
- const disabled = boolean('disabled', false);
45
- const label = text('label', 'Button text');
46
- const background = select('theme', ['light', 'blue'], 'light');
47
-
48
- const commonProps = {
49
- label,
36
+ export const All: Story = {
37
+ args: {
50
38
  className: 'm-r-2',
51
- disabled,
52
- icon: icons[icon],
53
- onClick: action('Button Clicked'),
54
- };
55
-
56
- return (
57
- <div className={background === 'blue' ? 'bg--dark p-a-3' : ''}>
58
- <div className="m-b-2">
59
- <div className="title-4 m-b-1">Accent</div>
60
- <CircularButton priority={Priority.PRIMARY} type={ControlType.ACCENT} {...commonProps}>
61
- {label}
62
- </CircularButton>
63
- <CircularButton priority={Priority.SECONDARY} type={ControlType.ACCENT} {...commonProps}>
64
- {label}
65
- </CircularButton>
66
- </div>
67
- <div className="m-b-2">
68
- <div className="title-4 m-b-1">Positive</div>
69
- <CircularButton priority={Priority.PRIMARY} type={ControlType.POSITIVE} {...commonProps}>
70
- {label}
71
- </CircularButton>
72
-
73
- <CircularButton priority={Priority.SECONDARY} type={ControlType.POSITIVE} {...commonProps}>
74
- {label}
75
- </CircularButton>
76
- </div>
77
- <div className="m-b-2">
78
- <div className="title-4 m-b-1">Negative</div>
79
- <CircularButton priority={Priority.PRIMARY} type={ControlType.NEGATIVE} {...commonProps}>
80
- {label}
81
- </CircularButton>
82
- <CircularButton priority={Priority.SECONDARY} type={ControlType.NEGATIVE} {...commonProps}>
83
- {label}
84
- </CircularButton>
85
- </div>
86
- <div className="m-b-2">
87
- <div className="title-4 m-b-1">Disabled</div>
88
- <CircularButton {...commonProps} disabled>
89
- {label}
90
- </CircularButton>
91
- <CircularButton {...commonProps} priority={Priority.SECONDARY} disabled>
92
- {label}
93
- </CircularButton>
94
- </div>
95
- </div>
96
- );
39
+ },
40
+ render: (props) => {
41
+ return (
42
+ <>
43
+ <div className="m-b-2">
44
+ <div className="title-4 m-b-1">Accent</div>
45
+ <CircularButton {...props} priority={Priority.PRIMARY} type={ControlType.ACCENT} />
46
+ <CircularButton {...props} priority={Priority.SECONDARY} type={ControlType.ACCENT} />
47
+ </div>
48
+ <div className="m-b-2">
49
+ <div className="title-4 m-b-1">Positive</div>
50
+ <CircularButton {...props} priority={Priority.PRIMARY} type={ControlType.POSITIVE} />
51
+ <CircularButton {...props} priority={Priority.SECONDARY} type={ControlType.POSITIVE} />
52
+ </div>
53
+ <div className="m-b-2">
54
+ <div className="title-4 m-b-1">Negative</div>
55
+ <CircularButton {...props} priority={Priority.PRIMARY} type={ControlType.NEGATIVE} />
56
+ <CircularButton {...props} priority={Priority.SECONDARY} type={ControlType.NEGATIVE} />
57
+ </div>
58
+ <div className="m-b-2">
59
+ <div className="title-4 m-b-1">Disabled</div>
60
+ <CircularButton {...props} disabled />
61
+ <CircularButton {...props} priority={Priority.SECONDARY} disabled />
62
+ </div>
63
+ </>
64
+ );
65
+ },
97
66
  };
@@ -0,0 +1,21 @@
1
+ import { useEffect } from 'react';
2
+
3
+ /**
4
+ * This progressive enhancement uses an experimental API, it might change,
5
+ * and at the time of authoring is not supported on iOS or mobile Firefox.
6
+ * @see https://developer.mozilla.org/en-US/docs/Web/API/VirtualKeyboard
7
+ */
8
+ export function useVirtualKeyboard() {
9
+ useEffect(() => {
10
+ /* eslint-disable @typescript-eslint/no-unsafe-member-access, functional/immutable-data */
11
+ if ('virtualKeyboard' in navigator) {
12
+ const virtualKeyboard: any = navigator.virtualKeyboard;
13
+ const initialOverlaysContent: unknown = virtualKeyboard.overlaysContent;
14
+ virtualKeyboard.overlaysContent = true;
15
+ return () => {
16
+ virtualKeyboard.overlaysContent = initialOverlaysContent;
17
+ };
18
+ }
19
+ /* eslint-enable @typescript-eslint/no-unsafe-member-access, functional/immutable-data */
20
+ }, []);
21
+ }
@@ -27,12 +27,10 @@ export default function InlineAlert({
27
27
  className,
28
28
  )}
29
29
  >
30
- <div className="d-inline-flex">
31
- {type !== Sentiment.NEUTRAL && type !== Sentiment.PENDING && (
32
- <StatusIcon sentiment={type} size={Size.SMALL} />
33
- )}
34
- <div className="np-text-body-default">{children}</div>
35
- </div>
30
+ {type !== Sentiment.NEUTRAL && type !== Sentiment.PENDING && (
31
+ <StatusIcon sentiment={type} size={Size.SMALL} />
32
+ )}
33
+ <div className="np-text-body-default">{children}</div>
36
34
  </div>
37
35
  );
38
36
  }