@transferwise/components 46.49.0 → 46.50.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.
Files changed (185) hide show
  1. package/build/avatar/Avatar.js +3 -1
  2. package/build/avatar/Avatar.js.map +1 -1
  3. package/build/avatar/Avatar.mjs +3 -1
  4. package/build/avatar/Avatar.mjs.map +1 -1
  5. package/build/avatarWrapper/AvatarWrapper.js +16 -4
  6. package/build/avatarWrapper/AvatarWrapper.js.map +1 -1
  7. package/build/avatarWrapper/AvatarWrapper.mjs +16 -4
  8. package/build/avatarWrapper/AvatarWrapper.mjs.map +1 -1
  9. package/build/badge/Badge.js +2 -0
  10. package/build/badge/Badge.js.map +1 -1
  11. package/build/badge/Badge.mjs +2 -0
  12. package/build/badge/Badge.mjs.map +1 -1
  13. package/build/card/Card.js.map +1 -1
  14. package/build/card/Card.mjs.map +1 -1
  15. package/build/common/bottomSheet/BottomSheet.js +3 -0
  16. package/build/common/bottomSheet/BottomSheet.js.map +1 -1
  17. package/build/common/bottomSheet/BottomSheet.mjs +4 -1
  18. package/build/common/bottomSheet/BottomSheet.mjs.map +1 -1
  19. package/build/common/panel/Panel.js +3 -0
  20. package/build/common/panel/Panel.js.map +1 -1
  21. package/build/common/panel/Panel.mjs +4 -1
  22. package/build/common/panel/Panel.mjs.map +1 -1
  23. package/build/dateLookup/DateLookup.js +21 -17
  24. package/build/dateLookup/DateLookup.js.map +1 -1
  25. package/build/dateLookup/DateLookup.mjs +21 -17
  26. package/build/dateLookup/DateLookup.mjs.map +1 -1
  27. package/build/dateLookup/dateTrigger/DateTrigger.js +6 -0
  28. package/build/dateLookup/dateTrigger/DateTrigger.js.map +1 -1
  29. package/build/dateLookup/dateTrigger/DateTrigger.mjs +6 -0
  30. package/build/dateLookup/dateTrigger/DateTrigger.mjs.map +1 -1
  31. package/build/drawer/Drawer.js +3 -0
  32. package/build/drawer/Drawer.js.map +1 -1
  33. package/build/drawer/Drawer.mjs +4 -1
  34. package/build/drawer/Drawer.mjs.map +1 -1
  35. package/build/i18n/de.json +2 -0
  36. package/build/i18n/de.json.js +2 -0
  37. package/build/i18n/de.json.js.map +1 -1
  38. package/build/i18n/de.json.mjs +2 -0
  39. package/build/i18n/de.json.mjs.map +1 -1
  40. package/build/i18n/es.json +2 -0
  41. package/build/i18n/es.json.js +2 -0
  42. package/build/i18n/es.json.js.map +1 -1
  43. package/build/i18n/es.json.mjs +2 -0
  44. package/build/i18n/es.json.mjs.map +1 -1
  45. package/build/i18n/fr.json +2 -0
  46. package/build/i18n/fr.json.js +2 -0
  47. package/build/i18n/fr.json.js.map +1 -1
  48. package/build/i18n/fr.json.mjs +2 -0
  49. package/build/i18n/fr.json.mjs.map +1 -1
  50. package/build/i18n/hu.json +2 -0
  51. package/build/i18n/hu.json.js +2 -0
  52. package/build/i18n/hu.json.js.map +1 -1
  53. package/build/i18n/hu.json.mjs +2 -0
  54. package/build/i18n/hu.json.mjs.map +1 -1
  55. package/build/i18n/id.json +2 -0
  56. package/build/i18n/id.json.js +2 -0
  57. package/build/i18n/id.json.js.map +1 -1
  58. package/build/i18n/id.json.mjs +2 -0
  59. package/build/i18n/id.json.mjs.map +1 -1
  60. package/build/i18n/it.json +2 -0
  61. package/build/i18n/it.json.js +2 -0
  62. package/build/i18n/it.json.js.map +1 -1
  63. package/build/i18n/it.json.mjs +2 -0
  64. package/build/i18n/it.json.mjs.map +1 -1
  65. package/build/i18n/ja.json +2 -0
  66. package/build/i18n/ja.json.js +2 -0
  67. package/build/i18n/ja.json.js.map +1 -1
  68. package/build/i18n/ja.json.mjs +2 -0
  69. package/build/i18n/ja.json.mjs.map +1 -1
  70. package/build/i18n/pl.json +2 -0
  71. package/build/i18n/pl.json.js +2 -0
  72. package/build/i18n/pl.json.js.map +1 -1
  73. package/build/i18n/pl.json.mjs +2 -0
  74. package/build/i18n/pl.json.mjs.map +1 -1
  75. package/build/i18n/ro.json +2 -0
  76. package/build/i18n/ro.json.js +2 -0
  77. package/build/i18n/ro.json.js.map +1 -1
  78. package/build/i18n/ro.json.mjs +2 -0
  79. package/build/i18n/ro.json.mjs.map +1 -1
  80. package/build/i18n/ru.json +2 -0
  81. package/build/i18n/ru.json.js +2 -0
  82. package/build/i18n/ru.json.js.map +1 -1
  83. package/build/i18n/ru.json.mjs +2 -0
  84. package/build/i18n/ru.json.mjs.map +1 -1
  85. package/build/i18n/th.json +2 -0
  86. package/build/i18n/th.json.js +2 -0
  87. package/build/i18n/th.json.js.map +1 -1
  88. package/build/i18n/th.json.mjs +2 -0
  89. package/build/i18n/th.json.mjs.map +1 -1
  90. package/build/i18n/tr.json +2 -0
  91. package/build/i18n/tr.json.js +2 -0
  92. package/build/i18n/tr.json.js.map +1 -1
  93. package/build/i18n/tr.json.mjs +2 -0
  94. package/build/i18n/tr.json.mjs.map +1 -1
  95. package/build/main.css +28 -20
  96. package/build/modal/Modal.js +3 -0
  97. package/build/modal/Modal.js.map +1 -1
  98. package/build/modal/Modal.mjs +4 -1
  99. package/build/modal/Modal.mjs.map +1 -1
  100. package/build/provider/overlay/OverlayIdProvider.js +20 -0
  101. package/build/provider/overlay/OverlayIdProvider.js.map +1 -0
  102. package/build/provider/overlay/OverlayIdProvider.mjs +17 -0
  103. package/build/provider/overlay/OverlayIdProvider.mjs.map +1 -0
  104. package/build/stepper/Stepper.js +5 -2
  105. package/build/stepper/Stepper.js.map +1 -1
  106. package/build/stepper/Stepper.mjs +5 -2
  107. package/build/stepper/Stepper.mjs.map +1 -1
  108. package/build/styles/main.css +28 -20
  109. package/build/styles/uploadInput/uploadButton/UploadButton.css +5 -0
  110. package/build/styles/uploadInput/uploadItem/UploadItem.css +23 -20
  111. package/build/types/avatar/Avatar.d.ts +1 -0
  112. package/build/types/avatar/Avatar.d.ts.map +1 -1
  113. package/build/types/avatarWrapper/AvatarWrapper.d.ts +2 -1
  114. package/build/types/avatarWrapper/AvatarWrapper.d.ts.map +1 -1
  115. package/build/types/badge/Badge.d.ts +2 -1
  116. package/build/types/badge/Badge.d.ts.map +1 -1
  117. package/build/types/card/Card.d.ts +4 -0
  118. package/build/types/card/Card.d.ts.map +1 -1
  119. package/build/types/common/bottomSheet/BottomSheet.d.ts.map +1 -1
  120. package/build/types/common/panel/Panel.d.ts.map +1 -1
  121. package/build/types/dateLookup/DateLookup.d.ts.map +1 -1
  122. package/build/types/dateLookup/dateTrigger/DateTrigger.d.ts.map +1 -1
  123. package/build/types/drawer/Drawer.d.ts.map +1 -1
  124. package/build/types/modal/Modal.d.ts.map +1 -1
  125. package/build/types/provider/overlay/OverlayIdProvider.d.ts +7 -0
  126. package/build/types/provider/overlay/OverlayIdProvider.d.ts.map +1 -0
  127. package/build/types/stepper/Stepper.d.ts +4 -0
  128. package/build/types/stepper/Stepper.d.ts.map +1 -1
  129. package/build/types/uploadInput/uploadItem/UploadItem.d.ts.map +1 -1
  130. package/build/types/uploadInput/uploadItem/{UploadItemBody.d.ts → UploadItemLink.d.ts} +2 -2
  131. package/build/types/uploadInput/uploadItem/UploadItemLink.d.ts.map +1 -0
  132. package/build/uploadInput/uploadItem/UploadItem.js +14 -11
  133. package/build/uploadInput/uploadItem/UploadItem.js.map +1 -1
  134. package/build/uploadInput/uploadItem/UploadItem.mjs +15 -12
  135. package/build/uploadInput/uploadItem/UploadItem.mjs.map +1 -1
  136. package/build/uploadInput/uploadItem/UploadItemLink.js +32 -0
  137. package/build/uploadInput/uploadItem/UploadItemLink.js.map +1 -0
  138. package/build/uploadInput/uploadItem/{UploadItemBody.mjs → UploadItemLink.mjs} +5 -4
  139. package/build/uploadInput/uploadItem/UploadItemLink.mjs.map +1 -0
  140. package/package.json +19 -19
  141. package/src/avatar/Avatar.spec.tsx +10 -0
  142. package/src/avatar/Avatar.tsx +3 -0
  143. package/src/avatarWrapper/AvatarWrapper.spec.tsx +15 -4
  144. package/src/avatarWrapper/AvatarWrapper.story.tsx +2 -0
  145. package/src/avatarWrapper/AvatarWrapper.tsx +26 -7
  146. package/src/avatarWrapper/__snapshots__/AvatarWrapper.spec.tsx.snap +0 -64
  147. package/src/badge/Badge.spec.tsx +8 -0
  148. package/src/badge/Badge.tsx +3 -1
  149. package/src/card/Card.tsx +4 -0
  150. package/src/common/bottomSheet/BottomSheet.tsx +12 -1
  151. package/src/common/panel/Panel.tsx +5 -0
  152. package/src/dateLookup/DateLookup.tsx +22 -19
  153. package/src/dateLookup/dateTrigger/DateTrigger.spec.js +1 -0
  154. package/src/dateLookup/dateTrigger/DateTrigger.tsx +7 -0
  155. package/src/drawer/Drawer.tsx +5 -1
  156. package/src/flowNavigation/__snapshots__/FlowNavigation.spec.js.snap +4 -4
  157. package/src/i18n/de.json +2 -0
  158. package/src/i18n/es.json +2 -0
  159. package/src/i18n/fr.json +2 -0
  160. package/src/i18n/hu.json +2 -0
  161. package/src/i18n/id.json +2 -0
  162. package/src/i18n/it.json +2 -0
  163. package/src/i18n/ja.json +2 -0
  164. package/src/i18n/pl.json +2 -0
  165. package/src/i18n/ro.json +2 -0
  166. package/src/i18n/ru.json +2 -0
  167. package/src/i18n/th.json +2 -0
  168. package/src/i18n/tr.json +2 -0
  169. package/src/main.css +28 -20
  170. package/src/modal/Modal.tsx +5 -1
  171. package/src/provider/overlay/OverlayIdProvider.tsx +15 -0
  172. package/src/stepper/Stepper.less +2 -2
  173. package/src/stepper/Stepper.story.tsx +49 -0
  174. package/src/stepper/Stepper.tsx +7 -3
  175. package/src/uploadInput/uploadButton/UploadButton.css +5 -0
  176. package/src/uploadInput/uploadButton/UploadButton.less +6 -0
  177. package/src/uploadInput/uploadItem/UploadItem.css +23 -20
  178. package/src/uploadInput/uploadItem/UploadItem.less +16 -12
  179. package/src/uploadInput/uploadItem/UploadItem.tsx +12 -7
  180. package/src/uploadInput/uploadItem/{UploadItemBody.tsx → UploadItemLink.tsx} +6 -2
  181. package/build/types/uploadInput/uploadItem/UploadItemBody.d.ts.map +0 -1
  182. package/build/uploadInput/uploadItem/UploadItemBody.js +0 -27
  183. package/build/uploadInput/uploadItem/UploadItemBody.js.map +0 -1
  184. package/build/uploadInput/uploadItem/UploadItemBody.mjs.map +0 -1
  185. package/src/stepper/Stepper.story.js +0 -40
@@ -23,6 +23,8 @@ var ru = {
23
23
  "neptune.PhoneNumberInput.SelectInput.placeholder": "Выберите вариант...",
24
24
  "neptune.Select.searchPlaceholder": "Поиск...",
25
25
  "neptune.SelectInput.noResultsFound": "Ничего не найдено",
26
+ "neptune.SelectOption.action.label": "Выбрать",
27
+ "neptune.SelectOption.selected.action.label": "Изменить выбранный вариант",
26
28
  "neptune.Summary.statusDone": "Этап завершен",
27
29
  "neptune.Summary.statusNotDone": "Этап к выполнению",
28
30
  "neptune.Summary.statusPending": "Этап в процессе",
@@ -1 +1 @@
1
- {"version":3,"file":"ru.json.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"ru.json.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -23,6 +23,8 @@
23
23
  "neptune.PhoneNumberInput.SelectInput.placeholder": "เลือกตัวเลือก...",
24
24
  "neptune.Select.searchPlaceholder": "ค้นหา...",
25
25
  "neptune.SelectInput.noResultsFound": "ไม่พบผลลัพธ์",
26
+ "neptune.SelectOption.action.label": "เลือก",
27
+ "neptune.SelectOption.selected.action.label": "เปลี่ยนตัวเลือกที่เลือกไว้",
26
28
  "neptune.Summary.statusDone": "รายการที่ทำแล้ว",
27
29
  "neptune.Summary.statusNotDone": "รายการที่ต้องทำ",
28
30
  "neptune.Summary.statusPending": "รายการที่รอดำเนินการ",
@@ -25,6 +25,8 @@ var th = {
25
25
  "neptune.PhoneNumberInput.SelectInput.placeholder": "เลือกตัวเลือก...",
26
26
  "neptune.Select.searchPlaceholder": "ค้นหา...",
27
27
  "neptune.SelectInput.noResultsFound": "ไม่พบผลลัพธ์",
28
+ "neptune.SelectOption.action.label": "เลือก",
29
+ "neptune.SelectOption.selected.action.label": "เปลี่ยนตัวเลือกที่เลือกไว้",
28
30
  "neptune.Summary.statusDone": "รายการที่ทำแล้ว",
29
31
  "neptune.Summary.statusNotDone": "รายการที่ต้องทำ",
30
32
  "neptune.Summary.statusPending": "รายการที่รอดำเนินการ",
@@ -1 +1 @@
1
- {"version":3,"file":"th.json.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"th.json.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -23,6 +23,8 @@ var th = {
23
23
  "neptune.PhoneNumberInput.SelectInput.placeholder": "เลือกตัวเลือก...",
24
24
  "neptune.Select.searchPlaceholder": "ค้นหา...",
25
25
  "neptune.SelectInput.noResultsFound": "ไม่พบผลลัพธ์",
26
+ "neptune.SelectOption.action.label": "เลือก",
27
+ "neptune.SelectOption.selected.action.label": "เปลี่ยนตัวเลือกที่เลือกไว้",
26
28
  "neptune.Summary.statusDone": "รายการที่ทำแล้ว",
27
29
  "neptune.Summary.statusNotDone": "รายการที่ต้องทำ",
28
30
  "neptune.Summary.statusPending": "รายการที่รอดำเนินการ",
@@ -1 +1 @@
1
- {"version":3,"file":"th.json.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"th.json.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -23,6 +23,8 @@
23
23
  "neptune.PhoneNumberInput.SelectInput.placeholder": "Bir seçenek seçin...",
24
24
  "neptune.Select.searchPlaceholder": "Ara...",
25
25
  "neptune.SelectInput.noResultsFound": "Sonuç bulunamadı",
26
+ "neptune.SelectOption.action.label": "Seç",
27
+ "neptune.SelectOption.selected.action.label": "Seçilen opsiyonu değiştir",
26
28
  "neptune.Summary.statusDone": "Tamamlanan aşama",
27
29
  "neptune.Summary.statusNotDone": "Yapılacak",
28
30
  "neptune.Summary.statusPending": "Bekliyor",
@@ -25,6 +25,8 @@ var tr = {
25
25
  "neptune.PhoneNumberInput.SelectInput.placeholder": "Bir seçenek seçin...",
26
26
  "neptune.Select.searchPlaceholder": "Ara...",
27
27
  "neptune.SelectInput.noResultsFound": "Sonuç bulunamadı",
28
+ "neptune.SelectOption.action.label": "Seç",
29
+ "neptune.SelectOption.selected.action.label": "Seçilen opsiyonu değiştir",
28
30
  "neptune.Summary.statusDone": "Tamamlanan aşama",
29
31
  "neptune.Summary.statusNotDone": "Yapılacak",
30
32
  "neptune.Summary.statusPending": "Bekliyor",
@@ -1 +1 @@
1
- {"version":3,"file":"tr.json.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"tr.json.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -23,6 +23,8 @@ var tr = {
23
23
  "neptune.PhoneNumberInput.SelectInput.placeholder": "Bir seçenek seçin...",
24
24
  "neptune.Select.searchPlaceholder": "Ara...",
25
25
  "neptune.SelectInput.noResultsFound": "Sonuç bulunamadı",
26
+ "neptune.SelectOption.action.label": "Seç",
27
+ "neptune.SelectOption.selected.action.label": "Seçilen opsiyonu değiştir",
26
28
  "neptune.Summary.statusDone": "Tamamlanan aşama",
27
29
  "neptune.Summary.statusNotDone": "Yapılacak",
28
30
  "neptune.Summary.statusPending": "Bekliyor",
@@ -1 +1 @@
1
- {"version":3,"file":"tr.json.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"tr.json.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
package/build/main.css CHANGED
@@ -5472,6 +5472,11 @@ label.np-upload-button:not(.disabled):active {
5472
5472
  .np-upload-button .media {
5473
5473
  align-items: flex-start;
5474
5474
  }
5475
+ @media (max-width: 320px) {
5476
+ .np-upload-icon {
5477
+ padding-left: 0;
5478
+ }
5479
+ }
5475
5480
  .np-upload-input.form-control {
5476
5481
  height: auto;
5477
5482
  padding: 0;
@@ -5563,9 +5568,9 @@ label.np-upload-button:not(.disabled):active {
5563
5568
  border: 1px solid var(--color-interactive-secondary);
5564
5569
  position: relative;
5565
5570
  }
5566
- .np-upload-item:first-child ~ div:not(.np-upload-item__link):before,
5567
- .np-upload-item:not(:first-child).np-upload-item__link .np-upload-item--link:before,
5568
- .np-upload-item.np-upload-item__link:hover .np-upload-item--link:after {
5571
+ .np-upload-item:first-child ~ div:not(.np-upload-item--link):before,
5572
+ .np-upload-item:not(:first-child).np-upload-item--link .np-upload-item__link:before,
5573
+ .np-upload-item.np-upload-item--link:hover .np-upload-item__link:after {
5569
5574
  display: block;
5570
5575
  position: absolute;
5571
5576
  height: 1px;
@@ -5577,27 +5582,27 @@ label.np-upload-button:not(.disabled):active {
5577
5582
  width: calc(100% - 2 * 16px);
5578
5583
  width: calc(100% - 2 * var(--size-16));
5579
5584
  }
5580
- .np-upload-item:first-child ~ div:not(.np-upload-item__link):before,
5581
- .np-upload-item:not(:first-child).np-upload-item__link .np-upload-item--link:before {
5585
+ .np-upload-item:first-child ~ div:not(.np-upload-item--link):before,
5586
+ .np-upload-item:not(:first-child).np-upload-item--link .np-upload-item__link:before {
5582
5587
  top: 0;
5583
5588
  }
5584
- .np-upload-item.np-upload-item__link:hover .np-upload-item--link:after {
5589
+ .np-upload-item.np-upload-item--link:hover .np-upload-item__link:after {
5585
5590
  bottom: -1px;
5586
5591
  }
5587
5592
  .np-upload-item:first-child ~ div {
5588
5593
  border-top: 1px;
5589
5594
  }
5590
- .np-upload-item:not(:first-child) .np-upload-item--link:hover {
5595
+ .np-upload-item:not(:first-child) .np-upload-item__link:hover {
5591
5596
  border-top-color: rgba(0,0,0,0.10196);
5592
5597
  border-top-color: var(--color-border-neutral);
5593
5598
  }
5594
5599
  .np-upload-item:not(:last-child) {
5595
5600
  border-bottom: 0;
5596
5601
  }
5597
- .np-upload-item.np-upload-item__link:hover + .np-upload-item:before,
5598
- .np-upload-item.np-upload-item__link:hover + .np-upload-button-container:before,
5599
- .np-upload-item.np-upload-item__link:hover + .np-upload-item .np-upload-item--link:before,
5600
- .np-upload-item.np-upload-item__link:hover + .np-upload-button-container .np-upload-item--link:before {
5602
+ .np-upload-item.np-upload-item--link:hover + .np-upload-item:before,
5603
+ .np-upload-item.np-upload-item--link:hover + .np-upload-button-container:before,
5604
+ .np-upload-item.np-upload-item--link:hover + .np-upload-item .np-upload-item__link:before,
5605
+ .np-upload-item.np-upload-item--link:hover + .np-upload-button-container .np-upload-item__link:before {
5601
5606
  display: none;
5602
5607
  }
5603
5608
  .np-upload-button-container:hover:before,
@@ -5612,38 +5617,41 @@ label.np-upload-button:not(.disabled):active {
5612
5617
  outline-offset: -3px;
5613
5618
  }
5614
5619
  .np-upload-item--single-file:focus-visible,
5615
- .np-upload-item--link:focus-visible,
5620
+ .np-upload-item__link:focus-visible,
5616
5621
  .np-upload-button-container:has(:focus-visible) {
5617
5622
  outline-width: 3px;
5618
5623
  }
5619
- .np-upload-item__link a {
5624
+ .np-upload-item--link a {
5620
5625
  flex: 1;
5621
5626
  -webkit-text-decoration: none;
5622
5627
  text-decoration: none;
5623
5628
  border-top: 1px solid transparent;
5624
5629
  border-radius: inherit;
5625
5630
  }
5626
- .np-upload-item__link a:focus-visible {
5631
+ .np-upload-item--link a:focus-visible {
5627
5632
  outline-offset: -2px;
5628
5633
  }
5629
- .np-upload-item__link a:hover:before {
5634
+ .np-upload-item--link a:hover:before {
5630
5635
  display: none !important;
5631
5636
  }
5632
- .np-upload-item__link a:hover:after {
5637
+ .np-upload-item--link a:hover:after {
5633
5638
  left: 0 !important;
5634
5639
  width: 100% !important;
5635
5640
  }
5636
- .np-upload-item__link a:hover,
5637
- .np-upload-item__link a:active {
5641
+ .np-upload-item--link a:hover,
5642
+ .np-upload-item--link a:active {
5638
5643
  -webkit-text-decoration: none;
5639
5644
  text-decoration: none;
5640
5645
  }
5641
- .np-upload-item__link a:hover .np-upload-button,
5642
- .np-upload-item__link a:active .np-upload-button {
5646
+ .np-upload-item--link a:hover .np-upload-button,
5647
+ .np-upload-item--link a:active .np-upload-button {
5643
5648
  background-color: rgba(134,167,189,0.10196);
5644
5649
  background-color: var(--color-background-neutral);
5645
5650
  border-radius: inherit;
5646
5651
  }
5652
+ .np-upload-item--link:first-of-type a {
5653
+ border-top: 0;
5654
+ }
5647
5655
  .np-upload-item__body {
5648
5656
  display: flex;
5649
5657
  align-items: center;
@@ -6,6 +6,7 @@ var reactTransitionGroup = require('react-transition-group');
6
6
  var CloseButton = require('../common/closeButton/CloseButton.js');
7
7
  var Dimmer = require('../dimmer/Dimmer.js');
8
8
  var Drawer = require('../drawer/Drawer.js');
9
+ var OverlayIdProvider = require('../provider/overlay/OverlayIdProvider.js');
9
10
  var Title = require('../title/Title.js');
10
11
  var jsxRuntime = require('react/jsx-runtime');
11
12
  var useLayout = require('../common/hooks/useLayout/useLayout.js');
@@ -41,6 +42,7 @@ const Modal = ({
41
42
  const noDivider = checkSpecialClasses('no-divider');
42
43
  const contentReference = React.useRef(null);
43
44
  const titleId = React.useId();
45
+ const overlayId = React.useContext(OverlayIdProvider.OverlayIdContext);
44
46
  return !isMedium ? /*#__PURE__*/jsxRuntime.jsx(Drawer, {
45
47
  open: open,
46
48
  headerTitle: title,
@@ -68,6 +70,7 @@ const Modal = ({
68
70
  className: classNames__default.default('tw-modal', 'd-flex', 'fade', 'outline-none', scroll$1 === scroll.Scroll.CONTENT && 'tw-modal--scrollable', className),
69
71
  ...otherProps,
70
72
  children: /*#__PURE__*/jsxRuntime.jsx("div", {
73
+ id: overlayId,
71
74
  role: "dialog",
72
75
  "aria-modal": true,
73
76
  "aria-labelledby": titleId,
@@ -1 +1 @@
1
- {"version":3,"file":"Modal.js","sources":["../../src/modal/Modal.tsx"],"sourcesContent":["import classNames from 'classnames';\nimport { ReactNode, useId, useRef } from 'react';\nimport { CSSTransition } from 'react-transition-group';\n\nimport {\n Size,\n Position,\n PositionTop,\n PositionCenter,\n Scroll,\n CommonProps,\n SizeSmall,\n SizeMedium,\n SizeLarge,\n SizeExtraLarge,\n ScrollContent,\n ScrollViewport,\n Typography,\n} from '../common';\nimport { CloseButton } from '../common/closeButton';\nimport { useLayout } from '../common/hooks';\nimport Dimmer from '../dimmer';\nimport Drawer from '../drawer';\nimport Title from '../title/Title';\n\nconst TRANSITION_DURATION_IN_MILLISECONDS = 150;\n\nexport type ModalProps = CommonProps & {\n title?: ReactNode;\n body: ReactNode;\n footer?: ReactNode;\n size?: SizeSmall | SizeMedium | SizeLarge | SizeExtraLarge;\n onClose: () => void;\n open: boolean;\n scroll?: ScrollContent | ScrollViewport;\n position?: PositionTop | PositionCenter;\n disableDimmerClickToClose?: boolean;\n};\n\nconst Modal = ({\n title = null,\n body,\n footer = null,\n onClose,\n className,\n open,\n size = Size.MEDIUM,\n scroll = Scroll.VIEWPORT,\n position = Position.CENTER,\n disableDimmerClickToClose = false,\n ...otherProps\n}: ModalProps) => {\n const checkSpecialClasses = (classToCheck: string) =>\n className?.split(' ').includes(classToCheck);\n const { isMedium } = useLayout();\n\n // These should be replaced with props in breaking change.\n const isCompact = checkSpecialClasses('compact');\n const noDivider = checkSpecialClasses('no-divider');\n\n const contentReference = useRef<HTMLDivElement>(null);\n const titleId = useId();\n\n return !isMedium ? (\n <Drawer\n open={open}\n headerTitle={title}\n footerContent={footer}\n position={Position.BOTTOM}\n onClose={onClose}\n >\n {body}\n </Drawer>\n ) : (\n <Dimmer\n open={open}\n scrollable={scroll === Scroll.VIEWPORT}\n contentPosition={position}\n disableClickToClose={disableDimmerClickToClose}\n onClose={onClose}\n >\n <CSSTransition\n nodeRef={contentReference}\n appear\n in={open}\n classNames={{ enterDone: 'in' }}\n timeout={TRANSITION_DURATION_IN_MILLISECONDS}\n unmountOnExit\n >\n <div\n ref={contentReference}\n className={classNames(\n 'tw-modal',\n 'd-flex',\n 'fade',\n 'outline-none',\n scroll === Scroll.CONTENT && 'tw-modal--scrollable',\n className,\n )}\n {...otherProps}\n >\n <div\n role=\"dialog\"\n aria-modal\n aria-labelledby={titleId}\n className={classNames('tw-modal-dialog', 'd-flex', {\n [`tw-modal-${size}`]: size,\n })}\n >\n <div\n className={classNames(\n 'tw-modal-content',\n 'd-flex',\n 'flex-column',\n 'justify-content-between',\n {\n 'tw-modal-compact': isCompact,\n 'tw-modal-no-title': !title,\n },\n )}\n >\n <div\n className={classNames(\n 'tw-modal-header',\n 'd-flex',\n 'align-items-center',\n 'justify-content-between',\n 'flex-wrap',\n {\n 'modal--withoutborder': !title || noDivider,\n },\n )}\n >\n <Title id={titleId} type={Typography.TITLE_BODY} className=\"tw-modal-title\">\n {title}\n </Title>\n <CloseButton onClick={onClose} />\n </div>\n <div\n className={classNames('tw-modal-body', {\n 'tw-modal-body--scrollable': scroll === Scroll.CONTENT,\n })}\n >\n {body}\n </div>\n {footer && (\n <div\n className={classNames(\n 'tw-modal-footer',\n 'd-flex',\n 'align-items-center',\n 'flex-wrap',\n {\n 'modal--withoutborder': noDivider,\n },\n )}\n >\n {footer}\n </div>\n )}\n </div>\n </div>\n </div>\n </CSSTransition>\n </Dimmer>\n );\n};\n\nexport default Modal;\n"],"names":["TRANSITION_DURATION_IN_MILLISECONDS","Modal","title","body","footer","onClose","className","open","size","Size","MEDIUM","scroll","Scroll","VIEWPORT","position","Position","CENTER","disableDimmerClickToClose","otherProps","checkSpecialClasses","classToCheck","split","includes","isMedium","useLayout","isCompact","noDivider","contentReference","useRef","titleId","useId","_jsx","Drawer","headerTitle","footerContent","BOTTOM","children","Dimmer","scrollable","contentPosition","disableClickToClose","CSSTransition","nodeRef","appear","in","classNames","enterDone","timeout","unmountOnExit","ref","CONTENT","role","_jsxs","Title","id","type","Typography","TITLE_BODY","CloseButton","onClick"],"mappings":"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"}
1
+ {"version":3,"file":"Modal.js","sources":["../../src/modal/Modal.tsx"],"sourcesContent":["import classNames from 'classnames';\nimport { ReactNode, useContext, useId, useRef } from 'react';\nimport { CSSTransition } from 'react-transition-group';\n\nimport {\n Size,\n Position,\n PositionTop,\n PositionCenter,\n Scroll,\n CommonProps,\n SizeSmall,\n SizeMedium,\n SizeLarge,\n SizeExtraLarge,\n ScrollContent,\n ScrollViewport,\n Typography,\n} from '../common';\nimport { CloseButton } from '../common/closeButton';\nimport { useLayout } from '../common/hooks';\nimport Dimmer from '../dimmer';\nimport Drawer from '../drawer';\nimport { OverlayIdContext } from '../provider/overlay/OverlayIdProvider';\nimport Title from '../title/Title';\n\nconst TRANSITION_DURATION_IN_MILLISECONDS = 150;\n\nexport type ModalProps = CommonProps & {\n title?: ReactNode;\n body: ReactNode;\n footer?: ReactNode;\n size?: SizeSmall | SizeMedium | SizeLarge | SizeExtraLarge;\n onClose: () => void;\n open: boolean;\n scroll?: ScrollContent | ScrollViewport;\n position?: PositionTop | PositionCenter;\n disableDimmerClickToClose?: boolean;\n};\n\nconst Modal = ({\n title = null,\n body,\n footer = null,\n onClose,\n className,\n open,\n size = Size.MEDIUM,\n scroll = Scroll.VIEWPORT,\n position = Position.CENTER,\n disableDimmerClickToClose = false,\n ...otherProps\n}: ModalProps) => {\n const checkSpecialClasses = (classToCheck: string) =>\n className?.split(' ').includes(classToCheck);\n const { isMedium } = useLayout();\n\n // These should be replaced with props in breaking change.\n const isCompact = checkSpecialClasses('compact');\n const noDivider = checkSpecialClasses('no-divider');\n\n const contentReference = useRef<HTMLDivElement>(null);\n const titleId = useId();\n\n const overlayId = useContext(OverlayIdContext);\n\n return !isMedium ? (\n <Drawer\n open={open}\n headerTitle={title}\n footerContent={footer}\n position={Position.BOTTOM}\n onClose={onClose}\n >\n {body}\n </Drawer>\n ) : (\n <Dimmer\n open={open}\n scrollable={scroll === Scroll.VIEWPORT}\n contentPosition={position}\n disableClickToClose={disableDimmerClickToClose}\n onClose={onClose}\n >\n <CSSTransition\n nodeRef={contentReference}\n appear\n in={open}\n classNames={{ enterDone: 'in' }}\n timeout={TRANSITION_DURATION_IN_MILLISECONDS}\n unmountOnExit\n >\n <div\n ref={contentReference}\n className={classNames(\n 'tw-modal',\n 'd-flex',\n 'fade',\n 'outline-none',\n scroll === Scroll.CONTENT && 'tw-modal--scrollable',\n className,\n )}\n {...otherProps}\n >\n <div\n id={overlayId}\n role=\"dialog\"\n aria-modal\n aria-labelledby={titleId}\n className={classNames('tw-modal-dialog', 'd-flex', {\n [`tw-modal-${size}`]: size,\n })}\n >\n <div\n className={classNames(\n 'tw-modal-content',\n 'd-flex',\n 'flex-column',\n 'justify-content-between',\n {\n 'tw-modal-compact': isCompact,\n 'tw-modal-no-title': !title,\n },\n )}\n >\n <div\n className={classNames(\n 'tw-modal-header',\n 'd-flex',\n 'align-items-center',\n 'justify-content-between',\n 'flex-wrap',\n {\n 'modal--withoutborder': !title || noDivider,\n },\n )}\n >\n <Title id={titleId} type={Typography.TITLE_BODY} className=\"tw-modal-title\">\n {title}\n </Title>\n <CloseButton onClick={onClose} />\n </div>\n <div\n className={classNames('tw-modal-body', {\n 'tw-modal-body--scrollable': scroll === Scroll.CONTENT,\n })}\n >\n {body}\n </div>\n {footer && (\n <div\n className={classNames(\n 'tw-modal-footer',\n 'd-flex',\n 'align-items-center',\n 'flex-wrap',\n {\n 'modal--withoutborder': noDivider,\n },\n )}\n >\n {footer}\n </div>\n )}\n </div>\n </div>\n </div>\n </CSSTransition>\n </Dimmer>\n );\n};\n\nexport default Modal;\n"],"names":["TRANSITION_DURATION_IN_MILLISECONDS","Modal","title","body","footer","onClose","className","open","size","Size","MEDIUM","scroll","Scroll","VIEWPORT","position","Position","CENTER","disableDimmerClickToClose","otherProps","checkSpecialClasses","classToCheck","split","includes","isMedium","useLayout","isCompact","noDivider","contentReference","useRef","titleId","useId","overlayId","useContext","OverlayIdContext","_jsx","Drawer","headerTitle","footerContent","BOTTOM","children","Dimmer","scrollable","contentPosition","disableClickToClose","CSSTransition","nodeRef","appear","in","classNames","enterDone","timeout","unmountOnExit","ref","CONTENT","id","role","_jsxs","Title","type","Typography","TITLE_BODY","CloseButton","onClick"],"mappings":"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"}
@@ -1,9 +1,10 @@
1
1
  import classNames from 'classnames';
2
- import { useRef, useId } from 'react';
2
+ import { useRef, useId, useContext } from 'react';
3
3
  import { CSSTransition } from 'react-transition-group';
4
4
  import { CloseButton } from '../common/closeButton/CloseButton.mjs';
5
5
  import Dimmer from '../dimmer/Dimmer.mjs';
6
6
  import Drawer from '../drawer/Drawer.mjs';
7
+ import { OverlayIdContext } from '../provider/overlay/OverlayIdProvider.mjs';
7
8
  import Title from '../title/Title.mjs';
8
9
  import { jsx, jsxs } from 'react/jsx-runtime';
9
10
  import { useLayout } from '../common/hooks/useLayout/useLayout.mjs';
@@ -35,6 +36,7 @@ const Modal = ({
35
36
  const noDivider = checkSpecialClasses('no-divider');
36
37
  const contentReference = useRef(null);
37
38
  const titleId = useId();
39
+ const overlayId = useContext(OverlayIdContext);
38
40
  return !isMedium ? /*#__PURE__*/jsx(Drawer, {
39
41
  open: open,
40
42
  headerTitle: title,
@@ -62,6 +64,7 @@ const Modal = ({
62
64
  className: classNames('tw-modal', 'd-flex', 'fade', 'outline-none', scroll === Scroll.CONTENT && 'tw-modal--scrollable', className),
63
65
  ...otherProps,
64
66
  children: /*#__PURE__*/jsx("div", {
67
+ id: overlayId,
65
68
  role: "dialog",
66
69
  "aria-modal": true,
67
70
  "aria-labelledby": titleId,
@@ -1 +1 @@
1
- {"version":3,"file":"Modal.mjs","sources":["../../src/modal/Modal.tsx"],"sourcesContent":["import classNames from 'classnames';\nimport { ReactNode, useId, useRef } from 'react';\nimport { CSSTransition } from 'react-transition-group';\n\nimport {\n Size,\n Position,\n PositionTop,\n PositionCenter,\n Scroll,\n CommonProps,\n SizeSmall,\n SizeMedium,\n SizeLarge,\n SizeExtraLarge,\n ScrollContent,\n ScrollViewport,\n Typography,\n} from '../common';\nimport { CloseButton } from '../common/closeButton';\nimport { useLayout } from '../common/hooks';\nimport Dimmer from '../dimmer';\nimport Drawer from '../drawer';\nimport Title from '../title/Title';\n\nconst TRANSITION_DURATION_IN_MILLISECONDS = 150;\n\nexport type ModalProps = CommonProps & {\n title?: ReactNode;\n body: ReactNode;\n footer?: ReactNode;\n size?: SizeSmall | SizeMedium | SizeLarge | SizeExtraLarge;\n onClose: () => void;\n open: boolean;\n scroll?: ScrollContent | ScrollViewport;\n position?: PositionTop | PositionCenter;\n disableDimmerClickToClose?: boolean;\n};\n\nconst Modal = ({\n title = null,\n body,\n footer = null,\n onClose,\n className,\n open,\n size = Size.MEDIUM,\n scroll = Scroll.VIEWPORT,\n position = Position.CENTER,\n disableDimmerClickToClose = false,\n ...otherProps\n}: ModalProps) => {\n const checkSpecialClasses = (classToCheck: string) =>\n className?.split(' ').includes(classToCheck);\n const { isMedium } = useLayout();\n\n // These should be replaced with props in breaking change.\n const isCompact = checkSpecialClasses('compact');\n const noDivider = checkSpecialClasses('no-divider');\n\n const contentReference = useRef<HTMLDivElement>(null);\n const titleId = useId();\n\n return !isMedium ? (\n <Drawer\n open={open}\n headerTitle={title}\n footerContent={footer}\n position={Position.BOTTOM}\n onClose={onClose}\n >\n {body}\n </Drawer>\n ) : (\n <Dimmer\n open={open}\n scrollable={scroll === Scroll.VIEWPORT}\n contentPosition={position}\n disableClickToClose={disableDimmerClickToClose}\n onClose={onClose}\n >\n <CSSTransition\n nodeRef={contentReference}\n appear\n in={open}\n classNames={{ enterDone: 'in' }}\n timeout={TRANSITION_DURATION_IN_MILLISECONDS}\n unmountOnExit\n >\n <div\n ref={contentReference}\n className={classNames(\n 'tw-modal',\n 'd-flex',\n 'fade',\n 'outline-none',\n scroll === Scroll.CONTENT && 'tw-modal--scrollable',\n className,\n )}\n {...otherProps}\n >\n <div\n role=\"dialog\"\n aria-modal\n aria-labelledby={titleId}\n className={classNames('tw-modal-dialog', 'd-flex', {\n [`tw-modal-${size}`]: size,\n })}\n >\n <div\n className={classNames(\n 'tw-modal-content',\n 'd-flex',\n 'flex-column',\n 'justify-content-between',\n {\n 'tw-modal-compact': isCompact,\n 'tw-modal-no-title': !title,\n },\n )}\n >\n <div\n className={classNames(\n 'tw-modal-header',\n 'd-flex',\n 'align-items-center',\n 'justify-content-between',\n 'flex-wrap',\n {\n 'modal--withoutborder': !title || noDivider,\n },\n )}\n >\n <Title id={titleId} type={Typography.TITLE_BODY} className=\"tw-modal-title\">\n {title}\n </Title>\n <CloseButton onClick={onClose} />\n </div>\n <div\n className={classNames('tw-modal-body', {\n 'tw-modal-body--scrollable': scroll === Scroll.CONTENT,\n })}\n >\n {body}\n </div>\n {footer && (\n <div\n className={classNames(\n 'tw-modal-footer',\n 'd-flex',\n 'align-items-center',\n 'flex-wrap',\n {\n 'modal--withoutborder': noDivider,\n },\n )}\n >\n {footer}\n </div>\n )}\n </div>\n </div>\n </div>\n </CSSTransition>\n </Dimmer>\n );\n};\n\nexport default Modal;\n"],"names":["TRANSITION_DURATION_IN_MILLISECONDS","Modal","title","body","footer","onClose","className","open","size","Size","MEDIUM","scroll","Scroll","VIEWPORT","position","Position","CENTER","disableDimmerClickToClose","otherProps","checkSpecialClasses","classToCheck","split","includes","isMedium","useLayout","isCompact","noDivider","contentReference","useRef","titleId","useId","_jsx","Drawer","headerTitle","footerContent","BOTTOM","children","Dimmer","scrollable","contentPosition","disableClickToClose","CSSTransition","nodeRef","appear","in","classNames","enterDone","timeout","unmountOnExit","ref","CONTENT","role","_jsxs","Title","id","type","Typography","TITLE_BODY","CloseButton","onClick"],"mappings":"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"}
1
+ {"version":3,"file":"Modal.mjs","sources":["../../src/modal/Modal.tsx"],"sourcesContent":["import classNames from 'classnames';\nimport { ReactNode, useContext, useId, useRef } from 'react';\nimport { CSSTransition } from 'react-transition-group';\n\nimport {\n Size,\n Position,\n PositionTop,\n PositionCenter,\n Scroll,\n CommonProps,\n SizeSmall,\n SizeMedium,\n SizeLarge,\n SizeExtraLarge,\n ScrollContent,\n ScrollViewport,\n Typography,\n} from '../common';\nimport { CloseButton } from '../common/closeButton';\nimport { useLayout } from '../common/hooks';\nimport Dimmer from '../dimmer';\nimport Drawer from '../drawer';\nimport { OverlayIdContext } from '../provider/overlay/OverlayIdProvider';\nimport Title from '../title/Title';\n\nconst TRANSITION_DURATION_IN_MILLISECONDS = 150;\n\nexport type ModalProps = CommonProps & {\n title?: ReactNode;\n body: ReactNode;\n footer?: ReactNode;\n size?: SizeSmall | SizeMedium | SizeLarge | SizeExtraLarge;\n onClose: () => void;\n open: boolean;\n scroll?: ScrollContent | ScrollViewport;\n position?: PositionTop | PositionCenter;\n disableDimmerClickToClose?: boolean;\n};\n\nconst Modal = ({\n title = null,\n body,\n footer = null,\n onClose,\n className,\n open,\n size = Size.MEDIUM,\n scroll = Scroll.VIEWPORT,\n position = Position.CENTER,\n disableDimmerClickToClose = false,\n ...otherProps\n}: ModalProps) => {\n const checkSpecialClasses = (classToCheck: string) =>\n className?.split(' ').includes(classToCheck);\n const { isMedium } = useLayout();\n\n // These should be replaced with props in breaking change.\n const isCompact = checkSpecialClasses('compact');\n const noDivider = checkSpecialClasses('no-divider');\n\n const contentReference = useRef<HTMLDivElement>(null);\n const titleId = useId();\n\n const overlayId = useContext(OverlayIdContext);\n\n return !isMedium ? (\n <Drawer\n open={open}\n headerTitle={title}\n footerContent={footer}\n position={Position.BOTTOM}\n onClose={onClose}\n >\n {body}\n </Drawer>\n ) : (\n <Dimmer\n open={open}\n scrollable={scroll === Scroll.VIEWPORT}\n contentPosition={position}\n disableClickToClose={disableDimmerClickToClose}\n onClose={onClose}\n >\n <CSSTransition\n nodeRef={contentReference}\n appear\n in={open}\n classNames={{ enterDone: 'in' }}\n timeout={TRANSITION_DURATION_IN_MILLISECONDS}\n unmountOnExit\n >\n <div\n ref={contentReference}\n className={classNames(\n 'tw-modal',\n 'd-flex',\n 'fade',\n 'outline-none',\n scroll === Scroll.CONTENT && 'tw-modal--scrollable',\n className,\n )}\n {...otherProps}\n >\n <div\n id={overlayId}\n role=\"dialog\"\n aria-modal\n aria-labelledby={titleId}\n className={classNames('tw-modal-dialog', 'd-flex', {\n [`tw-modal-${size}`]: size,\n })}\n >\n <div\n className={classNames(\n 'tw-modal-content',\n 'd-flex',\n 'flex-column',\n 'justify-content-between',\n {\n 'tw-modal-compact': isCompact,\n 'tw-modal-no-title': !title,\n },\n )}\n >\n <div\n className={classNames(\n 'tw-modal-header',\n 'd-flex',\n 'align-items-center',\n 'justify-content-between',\n 'flex-wrap',\n {\n 'modal--withoutborder': !title || noDivider,\n },\n )}\n >\n <Title id={titleId} type={Typography.TITLE_BODY} className=\"tw-modal-title\">\n {title}\n </Title>\n <CloseButton onClick={onClose} />\n </div>\n <div\n className={classNames('tw-modal-body', {\n 'tw-modal-body--scrollable': scroll === Scroll.CONTENT,\n })}\n >\n {body}\n </div>\n {footer && (\n <div\n className={classNames(\n 'tw-modal-footer',\n 'd-flex',\n 'align-items-center',\n 'flex-wrap',\n {\n 'modal--withoutborder': noDivider,\n },\n )}\n >\n {footer}\n </div>\n )}\n </div>\n </div>\n </div>\n </CSSTransition>\n </Dimmer>\n );\n};\n\nexport default Modal;\n"],"names":["TRANSITION_DURATION_IN_MILLISECONDS","Modal","title","body","footer","onClose","className","open","size","Size","MEDIUM","scroll","Scroll","VIEWPORT","position","Position","CENTER","disableDimmerClickToClose","otherProps","checkSpecialClasses","classToCheck","split","includes","isMedium","useLayout","isCompact","noDivider","contentReference","useRef","titleId","useId","overlayId","useContext","OverlayIdContext","_jsx","Drawer","headerTitle","footerContent","BOTTOM","children","Dimmer","scrollable","contentPosition","disableClickToClose","CSSTransition","nodeRef","appear","in","classNames","enterDone","timeout","unmountOnExit","ref","CONTENT","id","role","_jsxs","Title","type","Typography","TITLE_BODY","CloseButton","onClick"],"mappings":";;;;;;;;;;;;;;;AA0BA,MAAMA,mCAAmC,GAAG,GAAG,CAAA;AAczCC,MAAAA,KAAK,GAAGA,CAAC;AACbC,EAAAA,KAAK,GAAG,IAAI;EACZC,IAAI;AACJC,EAAAA,MAAM,GAAG,IAAI;EACbC,OAAO;EACPC,SAAS;EACTC,IAAI;EACJC,IAAI,GAAGC,IAAI,CAACC,MAAM;EAClBC,MAAM,GAAGC,MAAM,CAACC,QAAQ;EACxBC,QAAQ,GAAGC,QAAQ,CAACC,MAAM;AAC1BC,EAAAA,yBAAyB,GAAG,KAAK;EACjC,GAAGC,UAAAA;AACQ,CAAA,KAAI;AACf,EAAA,MAAMC,mBAAmB,GAAIC,YAAoB,IAC/Cd,SAAS,EAAEe,KAAK,CAAC,GAAG,CAAC,CAACC,QAAQ,CAACF,YAAY,CAAC,CAAA;EAC9C,MAAM;AAAEG,IAAAA,QAAAA;GAAU,GAAGC,SAAS,EAAE,CAAA;AAEhC;AACA,EAAA,MAAMC,SAAS,GAAGN,mBAAmB,CAAC,SAAS,CAAC,CAAA;AAChD,EAAA,MAAMO,SAAS,GAAGP,mBAAmB,CAAC,YAAY,CAAC,CAAA;AAEnD,EAAA,MAAMQ,gBAAgB,GAAGC,MAAM,CAAiB,IAAI,CAAC,CAAA;AACrD,EAAA,MAAMC,OAAO,GAAGC,KAAK,EAAE,CAAA;AAEvB,EAAA,MAAMC,SAAS,GAAGC,UAAU,CAACC,gBAAgB,CAAC,CAAA;AAE9C,EAAA,OAAO,CAACV,QAAQ,gBACdW,GAAA,CAACC,MAAM,EAAA;AACL5B,IAAAA,IAAI,EAAEA,IAAK;AACX6B,IAAAA,WAAW,EAAElC,KAAM;AACnBmC,IAAAA,aAAa,EAAEjC,MAAO;IACtBU,QAAQ,EAAEC,QAAQ,CAACuB,MAAO;AAC1BjC,IAAAA,OAAO,EAAEA,OAAQ;AAAAkC,IAAAA,QAAA,EAEhBpC,IAAAA;AAAI,GACC,CAAC,gBAET+B,GAAA,CAACM,MAAM,EAAA;AACLjC,IAAAA,IAAI,EAAEA,IAAK;AACXkC,IAAAA,UAAU,EAAE9B,MAAM,KAAKC,MAAM,CAACC,QAAS;AACvC6B,IAAAA,eAAe,EAAE5B,QAAS;AAC1B6B,IAAAA,mBAAmB,EAAE1B,yBAA0B;AAC/CZ,IAAAA,OAAO,EAAEA,OAAQ;IAAAkC,QAAA,eAEjBL,GAAA,CAACU,aAAa,EAAA;AACZC,MAAAA,OAAO,EAAElB,gBAAiB;MAC1BmB,MAAM,EAAA,IAAA;AACNC,MAAAA,EAAE,EAAExC,IAAK;AACTyC,MAAAA,UAAU,EAAE;AAAEC,QAAAA,SAAS,EAAE,IAAA;OAAO;AAChCC,MAAAA,OAAO,EAAElD,mCAAoC;MAC7CmD,aAAa,EAAA,IAAA;AAAAZ,MAAAA,QAAA,eAEbL,GAAA,CAAA,KAAA,EAAA;AACEkB,QAAAA,GAAG,EAAEzB,gBAAiB;QACtBrB,SAAS,EAAE0C,UAAU,CACnB,UAAU,EACV,QAAQ,EACR,MAAM,EACN,cAAc,EACdrC,MAAM,KAAKC,MAAM,CAACyC,OAAO,IAAI,sBAAsB,EACnD/C,SAAS,CACT;AAAA,QAAA,GACEY,UAAU;AAAAqB,QAAAA,QAAA,eAEdL,GAAA,CAAA,KAAA,EAAA;AACEoB,UAAAA,EAAE,EAAEvB,SAAU;AACdwB,UAAAA,IAAI,EAAC,QAAQ;UACb,YAAU,EAAA,IAAA;AACV,UAAA,iBAAA,EAAiB1B,OAAQ;AACzBvB,UAAAA,SAAS,EAAE0C,UAAU,CAAC,iBAAiB,EAAE,QAAQ,EAAE;YACjD,CAAC,CAAA,SAAA,EAAYxC,IAAI,CAAA,CAAE,GAAGA,IAAAA;AACvB,WAAA,CAAE;AAAA+B,UAAAA,QAAA,eAEHiB,IAAA,CAAA,KAAA,EAAA;YACElD,SAAS,EAAE0C,UAAU,CACnB,kBAAkB,EAClB,QAAQ,EACR,aAAa,EACb,yBAAyB,EACzB;AACE,cAAA,kBAAkB,EAAEvB,SAAS;AAC7B,cAAA,mBAAmB,EAAE,CAACvB,KAAAA;AACvB,aAAA,CACD;AAAAqC,YAAAA,QAAA,gBAEFiB,IAAA,CAAA,KAAA,EAAA;AACElD,cAAAA,SAAS,EAAE0C,UAAU,CACnB,iBAAiB,EACjB,QAAQ,EACR,oBAAoB,EACpB,yBAAyB,EACzB,WAAW,EACX;gBACE,sBAAsB,EAAE,CAAC9C,KAAK,IAAIwB,SAAAA;AACnC,eAAA,CACD;cAAAa,QAAA,EAAA,cAEFL,GAAA,CAACuB,KAAK,EAAA;AAACH,gBAAAA,EAAE,EAAEzB,OAAQ;gBAAC6B,IAAI,EAAEC,UAAU,CAACC,UAAW;AAACtD,gBAAAA,SAAS,EAAC,gBAAgB;AAAAiC,gBAAAA,QAAA,EACxErC,KAAAA;AAAK,eACD,CACP,eAAAgC,GAAA,CAAC2B,WAAW,EAAA;AAACC,gBAAAA,OAAO,EAAEzD,OAAAA;AAAQ,eAChC,CAAA,CAAA;aAAK,CACL,eAAA6B,GAAA,CAAA,KAAA,EAAA;AACE5B,cAAAA,SAAS,EAAE0C,UAAU,CAAC,eAAe,EAAE;AACrC,gBAAA,2BAA2B,EAAErC,MAAM,KAAKC,MAAM,CAACyC,OAAAA;AAChD,eAAA,CAAE;AAAAd,cAAAA,QAAA,EAEFpC,IAAAA;AAAI,aACF,CACL,EAACC,MAAM,iBACL8B,GAAA,CAAA,KAAA,EAAA;cACE5B,SAAS,EAAE0C,UAAU,CACnB,iBAAiB,EACjB,QAAQ,EACR,oBAAoB,EACpB,WAAW,EACX;AACE,gBAAA,sBAAsB,EAAEtB,SAAAA;AACzB,eAAA,CACD;AAAAa,cAAAA,QAAA,EAEDnC,MAAAA;AAAM,aACJ,CACN,CAAA;WACE,CAAA;SACF,CAAA;OACF,CAAA;KACQ,CAAA;AACjB,GAAQ,CACT,CAAA;AACH;;;;"}
@@ -0,0 +1,20 @@
1
+ 'use strict';
2
+
3
+ var React = require('react');
4
+ var jsxRuntime = require('react/jsx-runtime');
5
+
6
+ const OverlayIdContext = /*#__PURE__*/React.createContext(undefined);
7
+ const OverlayIdProvider = ({
8
+ open,
9
+ children
10
+ }) => {
11
+ const id = React.useId();
12
+ return /*#__PURE__*/jsxRuntime.jsx(OverlayIdContext.Provider, {
13
+ value: open ? id : undefined,
14
+ children: children
15
+ });
16
+ };
17
+
18
+ exports.OverlayIdContext = OverlayIdContext;
19
+ exports.OverlayIdProvider = OverlayIdProvider;
20
+ //# sourceMappingURL=OverlayIdProvider.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"OverlayIdProvider.js","sources":["../../../src/provider/overlay/OverlayIdProvider.tsx"],"sourcesContent":["import { createContext, useId } from 'react';\n\nexport const OverlayIdContext = createContext<string | undefined>(undefined);\n\nexport type OverlayIdProviderProps = {\n open: boolean;\n children?: React.ReactNode;\n};\n\nexport const OverlayIdProvider = ({ open, children }: OverlayIdProviderProps) => {\n const id = useId();\n return (\n <OverlayIdContext.Provider value={open ? id : undefined}>{children}</OverlayIdContext.Provider>\n );\n};\n"],"names":["OverlayIdContext","createContext","undefined","OverlayIdProvider","open","children","id","useId","_jsx","Provider","value"],"mappings":";;;;;MAEaA,gBAAgB,gBAAGC,mBAAa,CAAqBC,SAAS,EAAC;AAOrE,MAAMC,iBAAiB,GAAGA,CAAC;EAAEC,IAAI;AAAEC,EAAAA,QAAAA;AAAkC,CAAA,KAAI;AAC9E,EAAA,MAAMC,EAAE,GAAGC,WAAK,EAAE,CAAA;AAClB,EAAA,oBACEC,cAAA,CAACR,gBAAgB,CAACS,QAAQ,EAAA;AAACC,IAAAA,KAAK,EAAEN,IAAI,GAAGE,EAAE,GAAGJ,SAAU;AAAAG,IAAAA,QAAA,EAAEA,QAAAA;AAAQ,GAA4B,CAAC,CAAA;AAEnG;;;;;"}
@@ -0,0 +1,17 @@
1
+ import { createContext, useId } from 'react';
2
+ import { jsx } from 'react/jsx-runtime';
3
+
4
+ const OverlayIdContext = /*#__PURE__*/createContext(undefined);
5
+ const OverlayIdProvider = ({
6
+ open,
7
+ children
8
+ }) => {
9
+ const id = useId();
10
+ return /*#__PURE__*/jsx(OverlayIdContext.Provider, {
11
+ value: open ? id : undefined,
12
+ children: children
13
+ });
14
+ };
15
+
16
+ export { OverlayIdContext, OverlayIdProvider };
17
+ //# sourceMappingURL=OverlayIdProvider.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"OverlayIdProvider.mjs","sources":["../../../src/provider/overlay/OverlayIdProvider.tsx"],"sourcesContent":["import { createContext, useId } from 'react';\n\nexport const OverlayIdContext = createContext<string | undefined>(undefined);\n\nexport type OverlayIdProviderProps = {\n open: boolean;\n children?: React.ReactNode;\n};\n\nexport const OverlayIdProvider = ({ open, children }: OverlayIdProviderProps) => {\n const id = useId();\n return (\n <OverlayIdContext.Provider value={open ? id : undefined}>{children}</OverlayIdContext.Provider>\n );\n};\n"],"names":["OverlayIdContext","createContext","undefined","OverlayIdProvider","open","children","id","useId","_jsx","Provider","value"],"mappings":";;;MAEaA,gBAAgB,gBAAGC,aAAa,CAAqBC,SAAS,EAAC;AAOrE,MAAMC,iBAAiB,GAAGA,CAAC;EAAEC,IAAI;AAAEC,EAAAA,QAAAA;AAAkC,CAAA,KAAI;AAC9E,EAAA,MAAMC,EAAE,GAAGC,KAAK,EAAE,CAAA;AAClB,EAAA,oBACEC,GAAA,CAACR,gBAAgB,CAACS,QAAQ,EAAA;AAACC,IAAAA,KAAK,EAAEN,IAAI,GAAGE,EAAE,GAAGJ,SAAU;AAAAG,IAAAA,QAAA,EAAEA,QAAAA;AAAQ,GAA4B,CAAC,CAAA;AAEnG;;;;"}
@@ -15,7 +15,10 @@ var classNames__default = /*#__PURE__*/_interopDefault(classNames);
15
15
  function clamp(from, to, value) {
16
16
  return Math.max(Math.min(to, value), from);
17
17
  }
18
- /* eslint-disable react/no-array-index-key */
18
+ /**
19
+ * This component is considered user-unfriendly and inaccessible on its own and will likely be made internal in the future. Please use `FlowNavigation` instead.
20
+ * @see https://storybook.wise.design/?path=/story/navigation-flownavigation--variants
21
+ */
19
22
  const Stepper = ({
20
23
  steps,
21
24
  activeStep = 0,
@@ -69,7 +72,7 @@ const Stepper = ({
69
72
  width: `${percentageCompleted * 100}%`
70
73
  }
71
74
  })
72
- }), /*#__PURE__*/jsxRuntime.jsx("ul", {
75
+ }), /*#__PURE__*/jsxRuntime.jsx("ol", {
73
76
  className: "tw-stepper-steps p-t-1 m-b-0",
74
77
  children: steps.map(renderStep)
75
78
  })]
@@ -1 +1 @@
1
- {"version":3,"file":"Stepper.js","sources":["../../src/stepper/Stepper.tsx"],"sourcesContent":["import classNames from 'classnames';\nimport * as React from 'react';\n\nimport { Position } from '../common';\nimport { useDirection } from '../common/hooks';\nimport Tooltip from '../tooltip';\n\nimport { isTouchDevice } from './deviceDetection';\n\nfunction clamp(from: number, to: number, value: number) {\n return Math.max(Math.min(to, value), from);\n}\n\nexport interface Step {\n label: React.ReactNode;\n onClick?: () => void;\n hoverLabel?: React.ReactNode;\n}\n\nexport interface StepperProps {\n steps: readonly Step[];\n activeStep?: number;\n className?: string;\n}\n\n/* eslint-disable react/no-array-index-key */\nconst Stepper = ({ steps, activeStep = 0, className }: StepperProps) => {\n const { isRTL } = useDirection();\n\n if (steps.length === 0) {\n return null;\n }\n\n const activeStepIndex = clamp(0, steps.length - 1, activeStep);\n const stepPercentage = 1 / (steps.length - 1);\n const percentageCompleted = activeStepIndex / (steps.length - 1);\n\n const renderStep = (step: Step, index: number) => {\n const active = index === activeStepIndex;\n const clickable = step.onClick && !active;\n\n const labelButton = clickable ? (\n <button\n type=\"button\"\n className=\"btn-unstyled tw-stepper__step-label\"\n onClick={() => clickable && step.onClick?.()}\n >\n <small>{step.label}</small>\n </button>\n ) : (\n <span className=\"tw-stepper__step-label\">{step.label}</span>\n );\n return (\n <li\n key={index}\n className={classNames(\n 'hidden-xs',\n 'tw-stepper__step',\n active ? 'np-text-body-default-bold tw-stepper__step--active' : 'np-text-body-default',\n clickable && 'tw-stepper__step--clickable',\n step.hoverLabel && 'tw-stepper__step--has-tooltip',\n )}\n aria-current={active ? 'step' : false}\n style={\n isRTL\n ? { right: `${index * stepPercentage * 100}%` }\n : { left: `${index * stepPercentage * 100}%` }\n }\n >\n {step.hoverLabel && !isTouchDevice() ? (\n <Tooltip position={Position.BOTTOM} label={step.hoverLabel}>\n {labelButton}\n </Tooltip>\n ) : (\n labelButton\n )}\n </li>\n );\n };\n\n return (\n <div className={classNames('tw-stepper', className)}>\n <div className=\"progress\">\n <div className=\"progress-bar\" style={{ width: `${percentageCompleted * 100}%` }} />\n </div>\n <ul className=\"tw-stepper-steps p-t-1 m-b-0\">{steps.map(renderStep)}</ul>\n </div>\n );\n};\n/* eslint-enable react/no-array-index-key */\n\nexport default Stepper;\n"],"names":["clamp","from","to","value","Math","max","min","Stepper","steps","activeStep","className","isRTL","useDirection","length","activeStepIndex","stepPercentage","percentageCompleted","renderStep","step","index","active","clickable","onClick","labelButton","_jsx","type","children","label","classNames","hoverLabel","style","right","left","isTouchDevice","Tooltip","position","Position","BOTTOM","_jsxs","width","map"],"mappings":"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"}
1
+ {"version":3,"file":"Stepper.js","sources":["../../src/stepper/Stepper.tsx"],"sourcesContent":["import classNames from 'classnames';\nimport * as React from 'react';\n\nimport { Position } from '../common';\nimport { useDirection } from '../common/hooks';\nimport Tooltip from '../tooltip';\n\nimport { isTouchDevice } from './deviceDetection';\n\nfunction clamp(from: number, to: number, value: number) {\n return Math.max(Math.min(to, value), from);\n}\n\nexport interface Step {\n label: React.ReactNode;\n onClick?: () => void;\n hoverLabel?: React.ReactNode;\n}\n\nexport interface StepperProps {\n steps: readonly Step[];\n activeStep?: number;\n className?: string;\n}\n\n/**\n * This component is considered user-unfriendly and inaccessible on its own and will likely be made internal in the future. Please use `FlowNavigation` instead.\n * @see https://storybook.wise.design/?path=/story/navigation-flownavigation--variants\n */\nconst Stepper = ({ steps, activeStep = 0, className }: StepperProps) => {\n const { isRTL } = useDirection();\n\n if (steps.length === 0) {\n return null;\n }\n\n const activeStepIndex = clamp(0, steps.length - 1, activeStep);\n const stepPercentage = 1 / (steps.length - 1);\n const percentageCompleted = activeStepIndex / (steps.length - 1);\n\n const renderStep = (step: Step, index: number) => {\n const active = index === activeStepIndex;\n const clickable = step.onClick && !active;\n\n const labelButton = clickable ? (\n <button\n type=\"button\"\n className=\"btn-unstyled tw-stepper__step-label\"\n onClick={() => clickable && step.onClick?.()}\n >\n <small>{step.label}</small>\n </button>\n ) : (\n <span className=\"tw-stepper__step-label\">{step.label}</span>\n );\n\n return (\n <li\n key={index}\n className={classNames(\n 'hidden-xs',\n 'tw-stepper__step',\n active ? 'np-text-body-default-bold tw-stepper__step--active' : 'np-text-body-default',\n clickable && 'tw-stepper__step--clickable',\n step.hoverLabel && 'tw-stepper__step--has-tooltip',\n )}\n aria-current={active ? 'step' : false}\n style={\n isRTL\n ? { right: `${index * stepPercentage * 100}%` }\n : { left: `${index * stepPercentage * 100}%` }\n }\n >\n {step.hoverLabel && !isTouchDevice() ? (\n <Tooltip position={Position.BOTTOM} label={step.hoverLabel}>\n {labelButton}\n </Tooltip>\n ) : (\n labelButton\n )}\n </li>\n );\n };\n\n return (\n <div className={classNames('tw-stepper', className)}>\n <div className=\"progress\">\n <div className=\"progress-bar\" style={{ width: `${percentageCompleted * 100}%` }} />\n </div>\n\n <ol className=\"tw-stepper-steps p-t-1 m-b-0\">{steps.map(renderStep)}</ol>\n </div>\n );\n};\n\nexport default Stepper;\n"],"names":["clamp","from","to","value","Math","max","min","Stepper","steps","activeStep","className","isRTL","useDirection","length","activeStepIndex","stepPercentage","percentageCompleted","renderStep","step","index","active","clickable","onClick","labelButton","_jsx","type","children","label","classNames","hoverLabel","style","right","left","isTouchDevice","Tooltip","position","Position","BOTTOM","_jsxs","width","map"],"mappings":"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"}
@@ -9,7 +9,10 @@ import { Position } from '../common/propsValues/position.mjs';
9
9
  function clamp(from, to, value) {
10
10
  return Math.max(Math.min(to, value), from);
11
11
  }
12
- /* eslint-disable react/no-array-index-key */
12
+ /**
13
+ * This component is considered user-unfriendly and inaccessible on its own and will likely be made internal in the future. Please use `FlowNavigation` instead.
14
+ * @see https://storybook.wise.design/?path=/story/navigation-flownavigation--variants
15
+ */
13
16
  const Stepper = ({
14
17
  steps,
15
18
  activeStep = 0,
@@ -63,7 +66,7 @@ const Stepper = ({
63
66
  width: `${percentageCompleted * 100}%`
64
67
  }
65
68
  })
66
- }), /*#__PURE__*/jsx("ul", {
69
+ }), /*#__PURE__*/jsx("ol", {
67
70
  className: "tw-stepper-steps p-t-1 m-b-0",
68
71
  children: steps.map(renderStep)
69
72
  })]
@@ -1 +1 @@
1
- {"version":3,"file":"Stepper.mjs","sources":["../../src/stepper/Stepper.tsx"],"sourcesContent":["import classNames from 'classnames';\nimport * as React from 'react';\n\nimport { Position } from '../common';\nimport { useDirection } from '../common/hooks';\nimport Tooltip from '../tooltip';\n\nimport { isTouchDevice } from './deviceDetection';\n\nfunction clamp(from: number, to: number, value: number) {\n return Math.max(Math.min(to, value), from);\n}\n\nexport interface Step {\n label: React.ReactNode;\n onClick?: () => void;\n hoverLabel?: React.ReactNode;\n}\n\nexport interface StepperProps {\n steps: readonly Step[];\n activeStep?: number;\n className?: string;\n}\n\n/* eslint-disable react/no-array-index-key */\nconst Stepper = ({ steps, activeStep = 0, className }: StepperProps) => {\n const { isRTL } = useDirection();\n\n if (steps.length === 0) {\n return null;\n }\n\n const activeStepIndex = clamp(0, steps.length - 1, activeStep);\n const stepPercentage = 1 / (steps.length - 1);\n const percentageCompleted = activeStepIndex / (steps.length - 1);\n\n const renderStep = (step: Step, index: number) => {\n const active = index === activeStepIndex;\n const clickable = step.onClick && !active;\n\n const labelButton = clickable ? (\n <button\n type=\"button\"\n className=\"btn-unstyled tw-stepper__step-label\"\n onClick={() => clickable && step.onClick?.()}\n >\n <small>{step.label}</small>\n </button>\n ) : (\n <span className=\"tw-stepper__step-label\">{step.label}</span>\n );\n return (\n <li\n key={index}\n className={classNames(\n 'hidden-xs',\n 'tw-stepper__step',\n active ? 'np-text-body-default-bold tw-stepper__step--active' : 'np-text-body-default',\n clickable && 'tw-stepper__step--clickable',\n step.hoverLabel && 'tw-stepper__step--has-tooltip',\n )}\n aria-current={active ? 'step' : false}\n style={\n isRTL\n ? { right: `${index * stepPercentage * 100}%` }\n : { left: `${index * stepPercentage * 100}%` }\n }\n >\n {step.hoverLabel && !isTouchDevice() ? (\n <Tooltip position={Position.BOTTOM} label={step.hoverLabel}>\n {labelButton}\n </Tooltip>\n ) : (\n labelButton\n )}\n </li>\n );\n };\n\n return (\n <div className={classNames('tw-stepper', className)}>\n <div className=\"progress\">\n <div className=\"progress-bar\" style={{ width: `${percentageCompleted * 100}%` }} />\n </div>\n <ul className=\"tw-stepper-steps p-t-1 m-b-0\">{steps.map(renderStep)}</ul>\n </div>\n );\n};\n/* eslint-enable react/no-array-index-key */\n\nexport default Stepper;\n"],"names":["clamp","from","to","value","Math","max","min","Stepper","steps","activeStep","className","isRTL","useDirection","length","activeStepIndex","stepPercentage","percentageCompleted","renderStep","step","index","active","clickable","onClick","labelButton","_jsx","type","children","label","classNames","hoverLabel","style","right","left","isTouchDevice","Tooltip","position","Position","BOTTOM","_jsxs","width","map"],"mappings":"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"}
1
+ {"version":3,"file":"Stepper.mjs","sources":["../../src/stepper/Stepper.tsx"],"sourcesContent":["import classNames from 'classnames';\nimport * as React from 'react';\n\nimport { Position } from '../common';\nimport { useDirection } from '../common/hooks';\nimport Tooltip from '../tooltip';\n\nimport { isTouchDevice } from './deviceDetection';\n\nfunction clamp(from: number, to: number, value: number) {\n return Math.max(Math.min(to, value), from);\n}\n\nexport interface Step {\n label: React.ReactNode;\n onClick?: () => void;\n hoverLabel?: React.ReactNode;\n}\n\nexport interface StepperProps {\n steps: readonly Step[];\n activeStep?: number;\n className?: string;\n}\n\n/**\n * This component is considered user-unfriendly and inaccessible on its own and will likely be made internal in the future. Please use `FlowNavigation` instead.\n * @see https://storybook.wise.design/?path=/story/navigation-flownavigation--variants\n */\nconst Stepper = ({ steps, activeStep = 0, className }: StepperProps) => {\n const { isRTL } = useDirection();\n\n if (steps.length === 0) {\n return null;\n }\n\n const activeStepIndex = clamp(0, steps.length - 1, activeStep);\n const stepPercentage = 1 / (steps.length - 1);\n const percentageCompleted = activeStepIndex / (steps.length - 1);\n\n const renderStep = (step: Step, index: number) => {\n const active = index === activeStepIndex;\n const clickable = step.onClick && !active;\n\n const labelButton = clickable ? (\n <button\n type=\"button\"\n className=\"btn-unstyled tw-stepper__step-label\"\n onClick={() => clickable && step.onClick?.()}\n >\n <small>{step.label}</small>\n </button>\n ) : (\n <span className=\"tw-stepper__step-label\">{step.label}</span>\n );\n\n return (\n <li\n key={index}\n className={classNames(\n 'hidden-xs',\n 'tw-stepper__step',\n active ? 'np-text-body-default-bold tw-stepper__step--active' : 'np-text-body-default',\n clickable && 'tw-stepper__step--clickable',\n step.hoverLabel && 'tw-stepper__step--has-tooltip',\n )}\n aria-current={active ? 'step' : false}\n style={\n isRTL\n ? { right: `${index * stepPercentage * 100}%` }\n : { left: `${index * stepPercentage * 100}%` }\n }\n >\n {step.hoverLabel && !isTouchDevice() ? (\n <Tooltip position={Position.BOTTOM} label={step.hoverLabel}>\n {labelButton}\n </Tooltip>\n ) : (\n labelButton\n )}\n </li>\n );\n };\n\n return (\n <div className={classNames('tw-stepper', className)}>\n <div className=\"progress\">\n <div className=\"progress-bar\" style={{ width: `${percentageCompleted * 100}%` }} />\n </div>\n\n <ol className=\"tw-stepper-steps p-t-1 m-b-0\">{steps.map(renderStep)}</ol>\n </div>\n );\n};\n\nexport default Stepper;\n"],"names":["clamp","from","to","value","Math","max","min","Stepper","steps","activeStep","className","isRTL","useDirection","length","activeStepIndex","stepPercentage","percentageCompleted","renderStep","step","index","active","clickable","onClick","labelButton","_jsx","type","children","label","classNames","hoverLabel","style","right","left","isTouchDevice","Tooltip","position","Position","BOTTOM","_jsxs","width","map"],"mappings":"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"}