@transferwise/components 0.0.0-experimental-e41fdbd → 0.0.0-experimental-f1f1846

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 (38) hide show
  1. package/build/main.css +209 -210
  2. package/build/styles/main.css +209 -210
  3. package/build/styles/uploadInput/UploadInput.css +13 -81
  4. package/build/styles/uploadInput/uploadButton/UploadButton.css +77 -31
  5. package/build/styles/uploadInput/uploadItem/UploadItem.css +130 -109
  6. package/build/types/uploadInput/UploadInput.d.ts.map +1 -1
  7. package/build/types/uploadInput/uploadButton/UploadButton.d.ts +5 -0
  8. package/build/types/uploadInput/uploadButton/UploadButton.d.ts.map +1 -1
  9. package/build/types/uploadInput/uploadItem/UploadItem.d.ts.map +1 -1
  10. package/build/uploadInput/UploadInput.js +30 -20
  11. package/build/uploadInput/UploadInput.js.map +1 -1
  12. package/build/uploadInput/UploadInput.mjs +30 -20
  13. package/build/uploadInput/UploadInput.mjs.map +1 -1
  14. package/build/uploadInput/uploadButton/UploadButton.js +25 -32
  15. package/build/uploadInput/uploadButton/UploadButton.js.map +1 -1
  16. package/build/uploadInput/uploadButton/UploadButton.mjs +25 -32
  17. package/build/uploadInput/uploadButton/UploadButton.mjs.map +1 -1
  18. package/build/uploadInput/uploadItem/UploadItem.js +32 -38
  19. package/build/uploadInput/uploadItem/UploadItem.js.map +1 -1
  20. package/build/uploadInput/uploadItem/UploadItem.mjs +33 -39
  21. package/build/uploadInput/uploadItem/UploadItem.mjs.map +1 -1
  22. package/build/uploadInput/uploadItem/UploadItemLink.js +2 -1
  23. package/build/uploadInput/uploadItem/UploadItemLink.js.map +1 -1
  24. package/build/uploadInput/uploadItem/UploadItemLink.mjs +2 -1
  25. package/build/uploadInput/uploadItem/UploadItemLink.mjs.map +1 -1
  26. package/package.json +2 -2
  27. package/src/main.css +209 -210
  28. package/src/uploadInput/UploadInput.css +13 -81
  29. package/src/uploadInput/UploadInput.less +18 -80
  30. package/src/uploadInput/UploadInput.tests.story.tsx +5 -5
  31. package/src/uploadInput/UploadInput.tsx +43 -32
  32. package/src/uploadInput/uploadButton/UploadButton.css +77 -31
  33. package/src/uploadInput/uploadButton/UploadButton.less +77 -35
  34. package/src/uploadInput/uploadButton/UploadButton.tsx +37 -26
  35. package/src/uploadInput/uploadItem/UploadItem.css +130 -109
  36. package/src/uploadInput/uploadItem/UploadItem.less +130 -118
  37. package/src/uploadInput/uploadItem/UploadItem.tsx +26 -28
  38. package/src/uploadInput/uploadItem/UploadItemLink.tsx +3 -3
package/build/main.css CHANGED
@@ -5458,280 +5458,279 @@ html:not([dir="rtl"]) .np-navigation-option {
5458
5458
  .upload-error-message .alert {
5459
5459
  min-width: 100px;
5460
5460
  }
5461
- .np-upload-button-container {
5462
- border-style: solid;
5463
- }
5464
- .np-upload-button-container .droppable-card-content {
5461
+ .np-upload-input__upload-button {
5462
+ position: relative;
5463
+ padding: 16px;
5464
+ padding: var(--size-16);
5465
5465
  display: flex;
5466
+ align-items: center;
5467
+ margin: 0;
5468
+ border-bottom-left-radius: 10px;
5469
+ border-bottom-left-radius: var(--radius-small);
5470
+ border-bottom-right-radius: 10px;
5471
+ border-bottom-right-radius: var(--radius-small);
5472
+ border: var(--outerBorder);
5473
+ cursor: pointer;
5466
5474
  }
5467
- .np-upload-button-container.droppable-dropping {
5468
- border-color: #c9cbce !important;
5469
- border-color: var(--color-interactive-secondary) !important;
5475
+ .np-upload-input__upload-button .np-upload-input__title {
5476
+ color: var(--color-content-link);
5477
+ -webkit-text-decoration: underline;
5478
+ text-decoration: underline;
5479
+ text-underline-offset: 0.3em;
5470
5480
  }
5471
- .np-upload-button-container.droppable-dropping:before {
5472
- z-index: 2;
5481
+ .np-upload-input__upload-button .np-upload-input__title + .np-upload-input__text {
5482
+ margin-top: 4px;
5483
+ margin-top: var(--size-4);
5484
+ }
5485
+ .np-upload-input__upload-button .np-upload-input__icon {
5486
+ padding-right: 16px;
5487
+ padding-right: var(--size-16);
5488
+ color: var(--color-interactive-primary);
5489
+ }
5490
+ .np-upload-input__upload-button.is-dropping .np-upload-input__icon,
5491
+ .np-upload-input__upload-button.is-dropping .np-upload-input__item-content {
5492
+ display: none;
5493
+ }
5494
+ .np-upload-input__upload-button:focus-within,
5495
+ .np-upload-input__upload-button:focus-visible {
5496
+ outline: var(--ring-outline-color) solid 3px;
5497
+ outline-offset: -3px;
5473
5498
  }
5474
- .np-upload-button-container input[type="file"] {
5499
+ .np-upload-input__upload-button-input {
5500
+ position: absolute;
5475
5501
  opacity: 0;
5476
5502
  z-index: -1;
5503
+ }
5504
+ .np-upload-input__upload-button-input:focus {
5505
+ outline: none;
5506
+ }
5507
+ .np-upload-input__upload-button .np-upload-input__drop-file-overlay {
5508
+ display: flex;
5509
+ flex: 1;
5510
+ padding: 13px 0 !important;
5511
+ background-color: transparent;
5512
+ transition: transform 0.3s ease;
5513
+ position: relative;
5514
+ }
5515
+ .np-upload-input__upload-button--with-entries {
5516
+ border-top-width: 0;
5517
+ }
5518
+ .np-upload-input__upload-button--with-entries:before {
5519
+ display: block;
5477
5520
  position: absolute;
5521
+ height: 1px;
5522
+ background-color: rgba(0,0,0,0.10196);
5523
+ background-color: var(--color-border-neutral);
5524
+ content: " ";
5525
+ left: 16px;
5526
+ left: var(--size-16);
5527
+ width: calc(100% - 2 * 16px);
5528
+ width: calc(100% - 2 * var(--size-16));
5529
+ top: 0;
5478
5530
  }
5479
- .np-upload-button-container .np-upload-button {
5480
- border: none;
5531
+ .np-upload-input__upload-button--without-entries {
5532
+ border-top: var(--outerBorder);
5533
+ border-radius: 10px;
5534
+ border-radius: var(--radius-small);
5535
+ }
5536
+ .np-upload-input__upload-button--enabled.is-dropping,
5537
+ .np-upload-input__upload-button--enabled:hover,
5538
+ .np-upload-input__upload-button--enabled:active {
5539
+ background: rgba(134,167,189,0.10196);
5540
+ background: var(--color-background-neutral);
5481
5541
  }
5482
- .np-upload-button {
5542
+ .np-upload-input__upload-button--enabled.is-dropping:before,
5543
+ .np-upload-input__upload-button--enabled:hover:before,
5544
+ .np-upload-input__upload-button--enabled:active:before {
5483
5545
  width: 100%;
5484
- border-top: 1px solid transparent;
5485
- padding: 16px;
5486
- padding: var(--padding-small);
5487
- border-radius: 0;
5546
+ left: 0;
5488
5547
  }
5489
- label.np-upload-button:not(.disabled):hover,
5490
- label.np-upload-button:not(.disabled):active {
5491
- background-color: var(--color-background-screen-hover);
5548
+ .np-upload-input__upload-button--disabled {
5549
+ cursor: inherit;
5492
5550
  }
5493
- .disabled label.np-upload-button:not(.disabled):hover,
5494
- .disabled label.np-upload-button:not(.disabled):active {
5495
- background-color: transparent;
5551
+ .np-upload-input {
5552
+ --outerBorder: 1px solid var(--color-interactive-secondary);
5553
+ border-radius: 10px;
5554
+ border-radius: var(--radius-small);
5496
5555
  }
5497
- .np-upload-button .media {
5498
- align-items: flex-start;
5556
+ .np-upload-input .np-upload-input__section {
5557
+ margin: 0;
5499
5558
  }
5500
- @media (max-width: 320px) {
5501
- .np-upload-icon {
5502
- padding-left: 0;
5503
- }
5559
+ .np-upload-input .np-upload-input__section:only-child .np-upload-input__item {
5560
+ border-radius: 10px;
5561
+ border-radius: var(--radius-small);
5562
+ border-bottom: var(--outerBorder);
5504
5563
  }
5505
- .np-upload-input.form-control {
5506
- height: auto;
5507
- padding: 0;
5508
- padding: initial;
5564
+ .np-upload-input .np-upload-input__section:has(.np-upload-input__item:last-child.is-interactive:hover):not(:has(.np-upload-input__item-button:hover)) + .np-upload-input__section--uploader .np-upload-input__upload-button::before {
5565
+ left: 0;
5566
+ width: 100%;
5567
+ top: 0;
5509
5568
  }
5510
- .np-upload-input > div:first-child,
5511
- .np-upload-input > div:first-child .np-upload-item--single-file,
5512
- .np-upload-input > div:first-child .np-upload-item--link {
5569
+ .np-upload-input__item {
5570
+ position: relative;
5571
+ padding: 16px;
5572
+ padding: var(--size-16);
5573
+ display: flex;
5574
+ align-items: flex-start;
5575
+ border-left: var(--outerBorder);
5576
+ border-right: var(--outerBorder);
5577
+ }
5578
+ .np-upload-input__item:first-child {
5579
+ border-top: var(--outerBorder);
5513
5580
  border-top-left-radius: 10px;
5514
5581
  border-top-left-radius: var(--radius-small);
5515
5582
  border-top-right-radius: 10px;
5516
5583
  border-top-right-radius: var(--radius-small);
5517
5584
  }
5518
- .np-upload-input > div:last-child {
5519
- border-bottom-left-radius: 10px;
5520
- border-bottom-left-radius: var(--radius-small);
5521
- border-bottom-right-radius: 10px;
5522
- border-bottom-right-radius: var(--radius-small);
5523
- }
5524
- .np-theme-personal .np-upload-input.disabled .btn {
5525
- cursor: inherit;
5526
- }
5527
- .np-theme-personal .np-upload-input .np-upload-icon {
5528
- color: var(--color-interactive-primary);
5585
+ .np-upload-input__item + .np-upload-input__item:before {
5586
+ content: " ";
5587
+ display: block;
5588
+ position: absolute;
5589
+ height: 1px;
5590
+ left: 16px;
5591
+ left: var(--size-16);
5592
+ width: calc(100% - 2 * 16px);
5593
+ width: calc(100% - 2 * var(--size-16));
5594
+ top: 0;
5595
+ background: rgba(0,0,0,0.10196);
5596
+ background: var(--color-border-neutral);
5529
5597
  }
5530
- .np-theme-personal .np-upload-input .media-body {
5598
+ .np-upload-input__item .np-upload-input__item-content {
5531
5599
  padding-right: 32px;
5532
5600
  padding-right: var(--size-32);
5533
- color: var(--color-content-link);
5534
- white-space: break-spaces;
5601
+ flex: 1;
5535
5602
  }
5536
5603
  @media (max-width: 320px) {
5537
- .np-theme-personal .np-upload-input .media-body {
5604
+ .np-upload-input__item .np-upload-input__item-content {
5538
5605
  padding-right: 64px;
5539
5606
  padding-right: var(--size-64);
5540
5607
  }
5541
5608
  }
5542
- .np-theme-personal .np-upload-input .media-body .np-text-body-large-bold {
5543
- -webkit-text-decoration: underline;
5544
- text-decoration: underline;
5545
- text-underline-offset: 0.3em;
5546
- }
5547
- .np-theme-personal .np-upload-input .media-body .np-text-body-default,
5548
- .np-theme-personal .np-upload-input .media-body .np-upload-description,
5549
- .np-theme-personal .np-upload-input .media-body .text-positive {
5550
- color: #5d7079 !important;
5551
- color: var(--color-content-secondary) !important;
5552
- }
5553
- .np-theme-personal .np-upload-input .media-body .text-negative {
5554
- color: var(--color-sentiment-negative) !important;
5609
+ .np-upload-input__item .np-upload-input__title,
5610
+ .np-upload-input__item .np-upload-input__text {
5611
+ margin: 0;
5612
+ -moz-text-align-last: left;
5613
+ text-align-last: left;
5614
+ color: #5d7079;
5615
+ color: var(--color-content-secondary);
5555
5616
  }
5556
- .np-theme-personal .np-upload-input-errors {
5557
- list-style: none;
5558
- padding-left: 0;
5617
+ .np-upload-input__item .np-upload-input__title + .np-upload-input__text {
5618
+ margin-top: 4px;
5619
+ margin-top: var(--size-4);
5559
5620
  }
5560
- .np-theme-personal .np-upload-input-errors li {
5561
- position: relative;
5562
- padding-left: 16px;
5563
- padding-left: var(--size-16);
5621
+ .np-upload-input__item .np-upload-input__icon {
5622
+ padding-right: 16px;
5623
+ padding-right: var(--size-16);
5564
5624
  }
5565
- @media (max-width: 320px) {
5566
- .np-theme-personal .np-upload-input-errors li {
5567
- padding-left: 32px;
5568
- padding-left: var(--size-32);
5569
- }
5625
+ .np-upload-input__item .np-upload-input__item-link,
5626
+ .np-upload-input__item .np-upload-input__item-container {
5627
+ align-items: flex-start;
5628
+ display: flex;
5629
+ width: 100%;
5570
5630
  }
5571
- .np-theme-personal .np-upload-input-errors li:before {
5572
- content: '•';
5631
+ .np-upload-input__item .np-upload-input__item-action {
5632
+ --iconSize: var(--size-24);
5633
+ --clickAreaSize: 44px;
5634
+ --buttonTopRightOffset: var(--size-16);
5635
+ --clickAreaTopRightOffset: calc((var(--clickAreaSize) - var(--iconSize)) * -0.5);
5573
5636
  position: absolute;
5574
- display: block;
5575
- left: 0;
5576
- }
5577
- .np-theme-personal .np-upload-input .status-circle {
5578
- width: 24px;
5579
- width: var(--size-x-small);
5580
- height: 24px;
5581
- height: var(--size-x-small);
5637
+ right: 16px;
5638
+ right: var(--buttonTopRightOffset);
5639
+ top: 16px;
5640
+ top: var(--buttonTopRightOffset);
5582
5641
  }
5583
5642
  @media (max-width: 320px) {
5584
- .np-theme-personal .np-upload-input .status-circle {
5585
- width: 48px;
5586
- width: var(--size-large);
5587
- height: 48px;
5588
- height: var(--size-large);
5643
+ .np-upload-input__item .np-upload-input__item-action {
5644
+ --iconSize: var(--size-48);
5645
+ --clickAreaTopRightOffset: calc(-1 * var(--buttonTopRightOffset));
5589
5646
  }
5590
5647
  }
5591
- .np-upload-item {
5592
- border: 1px solid #c9cbce;
5593
- border: 1px solid var(--color-interactive-secondary);
5594
- position: relative;
5648
+ .np-upload-input__item .np-upload-input__item-action .np-upload-input__item-button {
5649
+ -webkit-appearance: none;
5650
+ -moz-appearance: none;
5651
+ appearance: none;
5652
+ height: var(--iconSize);
5653
+ width: var(--iconSize);
5654
+ padding: 0 4px;
5655
+ padding: 0 var(--size-4);
5656
+ border-radius: 50%;
5657
+ border: 0;
5658
+ background-color: rgba(134,167,189,0.10196);
5659
+ background-color: var(--color-background-neutral);
5660
+ color: var(--color-interactive-primary);
5661
+ transition: color, background-color 0.15s ease-in-out;
5662
+ outline-offset: 0;
5663
+ display: flex;
5664
+ align-items: center;
5665
+ justify-content: center;
5595
5666
  }
5596
- .np-upload-item:first-child ~ div:not(.np-upload-item--link):before,
5597
- .np-upload-item:not(:first-child).np-upload-item--link .np-upload-item__link:before,
5598
- .np-upload-item.np-upload-item--link:hover .np-upload-item__link:after {
5667
+ .np-upload-input__item .np-upload-input__item-action .np-upload-input__item-button:before {
5668
+ content: '';
5599
5669
  display: block;
5670
+ width: var(--clickAreaSize);
5671
+ height: var(--clickAreaSize);
5672
+ border-radius: 50%;
5600
5673
  position: absolute;
5601
- height: 1px;
5602
- background-color: rgba(0,0,0,0.10196);
5603
- background-color: var(--color-border-neutral);
5604
- content: " ";
5605
- left: 16px;
5606
- left: var(--size-16);
5607
- width: calc(100% - 2 * 16px);
5608
- width: calc(100% - 2 * var(--size-16));
5674
+ top: var(--clickAreaTopRightOffset);
5675
+ right: var(--clickAreaTopRightOffset);
5609
5676
  }
5610
- .np-upload-item:first-child ~ div:not(.np-upload-item--link):before,
5611
- .np-upload-item:not(:first-child).np-upload-item--link .np-upload-item__link:before {
5612
- top: 0;
5613
- }
5614
- .np-upload-item.np-upload-item--link:hover .np-upload-item__link:after {
5615
- bottom: -1px;
5616
- }
5617
- .np-upload-item:first-child ~ div {
5618
- border-top: 1px;
5619
- }
5620
- .np-upload-item:not(:first-child) .np-upload-item__link:hover {
5621
- border-top-color: rgba(0,0,0,0.10196);
5622
- border-top-color: var(--color-border-neutral);
5623
- }
5624
- .np-upload-item:not(:last-child) {
5625
- border-bottom: 0;
5626
- }
5627
- .np-upload-item.np-upload-item--link:hover + .np-upload-item:before,
5628
- .np-upload-item.np-upload-item--link:hover + .np-upload-button-container:before,
5629
- .np-upload-item.np-upload-item--link:hover + .np-upload-item .np-upload-item__link:before,
5630
- .np-upload-item.np-upload-item--link:hover + .np-upload-button-container .np-upload-item__link:before {
5631
- display: none;
5677
+ .np-upload-input__item .np-upload-input__item-action .np-upload-input__item-button:hover {
5678
+ background-color: var(--color-sentiment-negative);
5679
+ color: var(--color-contrast-overlay) !important;
5632
5680
  }
5633
- .np-upload-button-container:hover:before,
5634
- .np-upload-button-container.droppable-dropping:before {
5635
- left: 0 !important;
5636
- width: 100% !important;
5681
+ .np-upload-input__item .np-upload-input__item-action .np-upload-input__item-button:active {
5682
+ background-color: var(--color-background-neutral-active);
5637
5683
  }
5638
- .np-upload-button-container:has(:focus-visible) {
5639
- outline: var(--ring-outline-color) solid var(--ring-outline-width);
5640
- outline-offset: var(--ring-outline-offset);
5641
- border-color: transparent;
5642
- outline-offset: -3px;
5684
+ .np-upload-input__item.is-interactive {
5685
+ padding: 0;
5643
5686
  }
5644
- .np-upload-item--single-file:focus-visible,
5645
- .np-upload-item__link:focus-visible,
5646
- .np-upload-button-container:has(:focus-visible) {
5647
- outline-width: 3px;
5687
+ .np-upload-input__item.is-interactive:hover:not(:has(.np-upload-input__item-button:hover)):before,
5688
+ .np-upload-input__item.is-interactive:hover:not(:has(.np-upload-input__item-button:hover)) + .np-upload-input__item:before {
5689
+ width: 100%;
5690
+ left: 0;
5648
5691
  }
5649
- .np-upload-item--link a {
5650
- flex: 1;
5692
+ .np-upload-input__item.is-interactive .np-upload-input__item-link {
5693
+ padding: 16px;
5694
+ padding: var(--size-16);
5651
5695
  -webkit-text-decoration: none;
5652
5696
  text-decoration: none;
5653
- border-top: 1px solid transparent;
5654
5697
  border-radius: inherit;
5698
+ border-top: 1px solid transparent;
5699
+ background-clip: padding-box;
5655
5700
  }
5656
- .np-upload-item--link a:focus-visible {
5701
+ .np-upload-input__item.is-interactive .np-upload-input__item-link:focus-visible {
5657
5702
  outline-offset: -2px;
5703
+ outline-width: 3px;
5658
5704
  }
5659
- .np-upload-item--link a:hover:before {
5660
- display: none !important;
5661
- }
5662
- .np-upload-item--link a:hover:after {
5663
- left: 0 !important;
5664
- width: 100% !important;
5665
- }
5666
- .np-upload-item--link a:hover,
5667
- .np-upload-item--link a:active {
5668
- -webkit-text-decoration: none;
5669
- text-decoration: none;
5670
- }
5671
- .np-upload-item--link a:hover .np-upload-button,
5672
- .np-upload-item--link a:active .np-upload-button {
5705
+ .np-upload-input__item.is-interactive .np-upload-input__item-link:hover,
5706
+ .np-upload-input__item.is-interactive .np-upload-input__item-link:active {
5673
5707
  background-color: rgba(134,167,189,0.10196);
5674
5708
  background-color: var(--color-background-neutral);
5675
- border-radius: inherit;
5676
5709
  }
5677
- .np-upload-item--link:first-of-type a {
5678
- border-top: 0;
5710
+ .np-upload-input__item.is-interactive:first-child .np-upload-input__item-link {
5711
+ border-top-width: 0;
5679
5712
  }
5680
- .np-upload-item__body {
5681
- display: flex;
5682
- align-items: center;
5683
- justify-content: space-between;
5713
+ .np-upload-input__item .np-upload-input-errors {
5714
+ padding-left: 0;
5715
+ list-style-type: "";
5716
+ }
5717
+ .np-upload-input__item .np-upload-input-errors > li {
5684
5718
  position: relative;
5685
- border-radius: inherit;
5719
+ padding-left: 16px;
5720
+ padding-left: var(--size-16);
5686
5721
  }
5687
- .np-upload-item__remove-button {
5688
- display: flex;
5689
- align-items: center;
5690
- justify-content: center;
5691
- align-self: flex-start;
5722
+ .np-upload-input__item .np-upload-input-errors > li::before {
5723
+ content: '•';
5692
5724
  position: absolute;
5693
- height: 24px;
5694
- height: var(--size-24);
5695
- min-height: 0;
5696
- width: 24px;
5697
- width: var(--size-24);
5698
- padding: 0;
5699
- border-radius: 50% !important;
5700
- outline-offset: 0 !important;
5701
- background-color: rgba(134,167,189,0.10196);
5702
- background-color: var(--color-background-neutral);
5703
- border: none;
5704
- color: var(--color-interactive-primary);
5705
- right: 16px;
5706
- right: var(--size-16);
5707
- top: 16px;
5708
- top: var(--size-16);
5709
- transition: color, background-color 0.15s ease-in-out;
5725
+ display: block;
5726
+ left: 0;
5710
5727
  }
5711
5728
  @media (max-width: 320px) {
5712
- .np-upload-item__remove-button {
5713
- top: 16px;
5714
- top: var(--size-16);
5715
- right: 16px;
5716
- right: var(--size-16);
5717
- height: 48px;
5718
- height: var(--size-48);
5719
- width: 48px;
5720
- width: var(--size-48);
5729
+ .np-upload-input__item .np-upload-input-errors > li {
5730
+ padding-left: 32px;
5731
+ padding-left: var(--size-32);
5721
5732
  }
5722
5733
  }
5723
- .np-upload-item__remove-button:hover {
5724
- background-color: var(--color-sentiment-negative);
5725
- color: var(--color-contrast-overlay) !important;
5726
- }
5727
- .np-upload-item__remove-button:before {
5728
- display: block;
5729
- width: 44px;
5730
- height: 44px;
5731
- content: '';
5732
- border-radius: 50%;
5733
- position: absolute;
5734
- }
5735
5734
  .np-progress {
5736
5735
  border-radius: 10px;
5737
5736
  border-radius: var(--radius-small);