@protonradio/proton-ui 0.12.14 → 0.13.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 (619) hide show
  1. package/dist/components/ActionMenu/ActionMenu.cjs.js +1 -1
  2. package/dist/components/ActionMenu/ActionMenu.cjs.js.map +1 -1
  3. package/dist/components/ActionMenu/ActionMenu.es.js +139 -139
  4. package/dist/components/ActionMenu/ActionMenu.es.js.map +1 -1
  5. package/dist/components/Badge/Badge.cjs.js +1 -1
  6. package/dist/components/Badge/Badge.cjs.js.map +1 -1
  7. package/dist/components/Badge/Badge.es.js +6 -6
  8. package/dist/components/Badge/Badge.es.js.map +1 -1
  9. package/dist/components/Banner/Banner.cjs.js +1 -1
  10. package/dist/components/Banner/Banner.cjs.js.map +1 -1
  11. package/dist/components/Banner/Banner.es.js +34 -34
  12. package/dist/components/Banner/Banner.es.js.map +1 -1
  13. package/dist/components/Button/Button.cjs.js +1 -1
  14. package/dist/components/Button/Button.cjs.js.map +1 -1
  15. package/dist/components/Button/Button.es.js +36 -36
  16. package/dist/components/Button/Button.es.js.map +1 -1
  17. package/dist/components/ButtonGroup/ButtonGroup.cjs.js +1 -1
  18. package/dist/components/ButtonGroup/ButtonGroup.cjs.js.map +1 -1
  19. package/dist/components/ButtonGroup/ButtonGroup.es.js +15 -15
  20. package/dist/components/ButtonGroup/ButtonGroup.es.js.map +1 -1
  21. package/dist/components/ButtonWithSelect/ButtonWithSelect.cjs.js +1 -1
  22. package/dist/components/ButtonWithSelect/ButtonWithSelect.cjs.js.map +1 -1
  23. package/dist/components/ButtonWithSelect/ButtonWithSelect.es.js +26 -26
  24. package/dist/components/ButtonWithSelect/ButtonWithSelect.es.js.map +1 -1
  25. package/dist/components/Checkbox/CheckboxIndicator.cjs.js +1 -1
  26. package/dist/components/Checkbox/CheckboxIndicator.cjs.js.map +1 -1
  27. package/dist/components/Checkbox/CheckboxIndicator.es.js +5 -5
  28. package/dist/components/Checkbox/CheckboxIndicator.es.js.map +1 -1
  29. package/dist/components/Checkbox/CheckboxInput/CheckboxInput.cjs.js +1 -1
  30. package/dist/components/Checkbox/CheckboxInput/CheckboxInput.cjs.js.map +1 -1
  31. package/dist/components/Checkbox/CheckboxInput/CheckboxInput.es.js +59 -59
  32. package/dist/components/Checkbox/CheckboxInput/CheckboxInput.es.js.map +1 -1
  33. package/dist/components/Checkbox/CheckboxRadioGroup/CheckboxRadioGroup.cjs.js +1 -1
  34. package/dist/components/Checkbox/CheckboxRadioGroup/CheckboxRadioGroup.cjs.js.map +1 -1
  35. package/dist/components/Checkbox/CheckboxRadioGroup/CheckboxRadioGroup.es.js +51 -51
  36. package/dist/components/Checkbox/CheckboxRadioGroup/CheckboxRadioGroup.es.js.map +1 -1
  37. package/dist/components/Elevation/Elevation.cjs.js +1 -1
  38. package/dist/components/Elevation/Elevation.cjs.js.map +1 -1
  39. package/dist/components/Elevation/Elevation.es.js +6 -6
  40. package/dist/components/Elevation/Elevation.es.js.map +1 -1
  41. package/dist/components/Icon/IconComponents/AlertCircle.cjs.js +1 -1
  42. package/dist/components/Icon/IconComponents/AlertCircle.cjs.js.map +1 -1
  43. package/dist/components/Icon/IconComponents/AlertCircle.es.js +10 -10
  44. package/dist/components/Icon/IconComponents/AlertCircle.es.js.map +1 -1
  45. package/dist/components/Icon/IconComponents/AmazonMusicLogo.cjs.js +1 -1
  46. package/dist/components/Icon/IconComponents/AmazonMusicLogo.cjs.js.map +1 -1
  47. package/dist/components/Icon/IconComponents/AmazonMusicLogo.es.js +8 -8
  48. package/dist/components/Icon/IconComponents/AmazonMusicLogo.es.js.map +1 -1
  49. package/dist/components/Icon/IconComponents/AppleLogo.cjs.js +1 -1
  50. package/dist/components/Icon/IconComponents/AppleLogo.cjs.js.map +1 -1
  51. package/dist/components/Icon/IconComponents/AppleLogo.es.js +12 -12
  52. package/dist/components/Icon/IconComponents/AppleLogo.es.js.map +1 -1
  53. package/dist/components/Icon/IconComponents/AppleMusicLogo.cjs.js +1 -1
  54. package/dist/components/Icon/IconComponents/AppleMusicLogo.cjs.js.map +1 -1
  55. package/dist/components/Icon/IconComponents/AppleMusicLogo.es.js +17 -17
  56. package/dist/components/Icon/IconComponents/AppleMusicLogo.es.js.map +1 -1
  57. package/dist/components/Icon/IconComponents/Archive.cjs.js +1 -1
  58. package/dist/components/Icon/IconComponents/Archive.cjs.js.map +1 -1
  59. package/dist/components/Icon/IconComponents/Archive.es.js +8 -8
  60. package/dist/components/Icon/IconComponents/Archive.es.js.map +1 -1
  61. package/dist/components/Icon/IconComponents/ArrowLeft.cjs.js +1 -1
  62. package/dist/components/Icon/IconComponents/ArrowLeft.cjs.js.map +1 -1
  63. package/dist/components/Icon/IconComponents/ArrowLeft.es.js +11 -11
  64. package/dist/components/Icon/IconComponents/ArrowLeft.es.js.map +1 -1
  65. package/dist/components/Icon/IconComponents/ArrowRight.cjs.js +1 -1
  66. package/dist/components/Icon/IconComponents/ArrowRight.cjs.js.map +1 -1
  67. package/dist/components/Icon/IconComponents/ArrowRight.es.js +11 -11
  68. package/dist/components/Icon/IconComponents/ArrowRight.es.js.map +1 -1
  69. package/dist/components/Icon/IconComponents/BandcampLogo.cjs.js +1 -1
  70. package/dist/components/Icon/IconComponents/BandcampLogo.cjs.js.map +1 -1
  71. package/dist/components/Icon/IconComponents/BandcampLogo.es.js +10 -10
  72. package/dist/components/Icon/IconComponents/BandcampLogo.es.js.map +1 -1
  73. package/dist/components/Icon/IconComponents/Bank.cjs.js +1 -1
  74. package/dist/components/Icon/IconComponents/Bank.cjs.js.map +1 -1
  75. package/dist/components/Icon/IconComponents/Bank.es.js +8 -8
  76. package/dist/components/Icon/IconComponents/Bank.es.js.map +1 -1
  77. package/dist/components/Icon/IconComponents/BeatportLogo.cjs.js +1 -1
  78. package/dist/components/Icon/IconComponents/BeatportLogo.cjs.js.map +1 -1
  79. package/dist/components/Icon/IconComponents/BeatportLogo.es.js +7 -7
  80. package/dist/components/Icon/IconComponents/BeatportLogo.es.js.map +1 -1
  81. package/dist/components/Icon/IconComponents/Bell.cjs.js +1 -1
  82. package/dist/components/Icon/IconComponents/Bell.cjs.js.map +1 -1
  83. package/dist/components/Icon/IconComponents/Bell.es.js +6 -6
  84. package/dist/components/Icon/IconComponents/Bell.es.js.map +1 -1
  85. package/dist/components/Icon/IconComponents/Box.cjs.js +1 -1
  86. package/dist/components/Icon/IconComponents/Box.cjs.js.map +1 -1
  87. package/dist/components/Icon/IconComponents/Box.es.js +10 -10
  88. package/dist/components/Icon/IconComponents/Box.es.js.map +1 -1
  89. package/dist/components/Icon/IconComponents/Calendar.cjs.js +1 -1
  90. package/dist/components/Icon/IconComponents/Calendar.cjs.js.map +1 -1
  91. package/dist/components/Icon/IconComponents/Calendar.es.js +22 -22
  92. package/dist/components/Icon/IconComponents/Calendar.es.js.map +1 -1
  93. package/dist/components/Icon/IconComponents/Camera.cjs.js +1 -1
  94. package/dist/components/Icon/IconComponents/Camera.cjs.js.map +1 -1
  95. package/dist/components/Icon/IconComponents/Camera.es.js +14 -14
  96. package/dist/components/Icon/IconComponents/Camera.es.js.map +1 -1
  97. package/dist/components/Icon/IconComponents/CaretDown.cjs.js +1 -1
  98. package/dist/components/Icon/IconComponents/CaretDown.cjs.js.map +1 -1
  99. package/dist/components/Icon/IconComponents/CaretDown.es.js +9 -9
  100. package/dist/components/Icon/IconComponents/CaretDown.es.js.map +1 -1
  101. package/dist/components/Icon/IconComponents/CaretRight.cjs.js +1 -1
  102. package/dist/components/Icon/IconComponents/CaretRight.cjs.js.map +1 -1
  103. package/dist/components/Icon/IconComponents/CaretRight.es.js +14 -14
  104. package/dist/components/Icon/IconComponents/CaretRight.es.js.map +1 -1
  105. package/dist/components/Icon/IconComponents/Chart.cjs.js +1 -1
  106. package/dist/components/Icon/IconComponents/Chart.cjs.js.map +1 -1
  107. package/dist/components/Icon/IconComponents/Chart.es.js +9 -9
  108. package/dist/components/Icon/IconComponents/Chart.es.js.map +1 -1
  109. package/dist/components/Icon/IconComponents/Chatboxes.cjs.js +1 -1
  110. package/dist/components/Icon/IconComponents/Chatboxes.cjs.js.map +1 -1
  111. package/dist/components/Icon/IconComponents/Chatboxes.es.js +15 -15
  112. package/dist/components/Icon/IconComponents/Chatboxes.es.js.map +1 -1
  113. package/dist/components/Icon/IconComponents/CheckCircle.cjs.js +1 -1
  114. package/dist/components/Icon/IconComponents/CheckCircle.cjs.js.map +1 -1
  115. package/dist/components/Icon/IconComponents/CheckCircle.es.js +8 -8
  116. package/dist/components/Icon/IconComponents/CheckCircle.es.js.map +1 -1
  117. package/dist/components/Icon/IconComponents/Checkmark.cjs.js +1 -1
  118. package/dist/components/Icon/IconComponents/Checkmark.cjs.js.map +1 -1
  119. package/dist/components/Icon/IconComponents/Checkmark.es.js +9 -9
  120. package/dist/components/Icon/IconComponents/Checkmark.es.js.map +1 -1
  121. package/dist/components/Icon/IconComponents/CheckmarkThick.cjs.js +2 -0
  122. package/dist/components/Icon/IconComponents/CheckmarkThick.cjs.js.map +1 -0
  123. package/dist/components/Icon/IconComponents/CheckmarkThick.es.js +27 -0
  124. package/dist/components/Icon/IconComponents/CheckmarkThick.es.js.map +1 -0
  125. package/dist/components/Icon/IconComponents/ChevronDown.cjs.js +1 -1
  126. package/dist/components/Icon/IconComponents/ChevronDown.cjs.js.map +1 -1
  127. package/dist/components/Icon/IconComponents/ChevronDown.es.js +9 -9
  128. package/dist/components/Icon/IconComponents/ChevronDown.es.js.map +1 -1
  129. package/dist/components/Icon/IconComponents/ChevronLeft.cjs.js +1 -1
  130. package/dist/components/Icon/IconComponents/ChevronLeft.cjs.js.map +1 -1
  131. package/dist/components/Icon/IconComponents/ChevronLeft.es.js +6 -6
  132. package/dist/components/Icon/IconComponents/ChevronLeft.es.js.map +1 -1
  133. package/dist/components/Icon/IconComponents/ChevronRight.cjs.js +1 -1
  134. package/dist/components/Icon/IconComponents/ChevronRight.cjs.js.map +1 -1
  135. package/dist/components/Icon/IconComponents/ChevronRight.es.js +6 -6
  136. package/dist/components/Icon/IconComponents/ChevronRight.es.js.map +1 -1
  137. package/dist/components/Icon/IconComponents/ChevronSquareDown.cjs.js +1 -1
  138. package/dist/components/Icon/IconComponents/ChevronSquareDown.cjs.js.map +1 -1
  139. package/dist/components/Icon/IconComponents/ChevronSquareDown.es.js +11 -11
  140. package/dist/components/Icon/IconComponents/ChevronSquareDown.es.js.map +1 -1
  141. package/dist/components/Icon/IconComponents/ChevronUp.cjs.js +1 -1
  142. package/dist/components/Icon/IconComponents/ChevronUp.cjs.js.map +1 -1
  143. package/dist/components/Icon/IconComponents/ChevronUp.es.js +8 -8
  144. package/dist/components/Icon/IconComponents/ChevronUp.es.js.map +1 -1
  145. package/dist/components/Icon/IconComponents/Close.cjs.js +1 -1
  146. package/dist/components/Icon/IconComponents/Close.cjs.js.map +1 -1
  147. package/dist/components/Icon/IconComponents/Close.es.js +7 -7
  148. package/dist/components/Icon/IconComponents/Close.es.js.map +1 -1
  149. package/dist/components/Icon/IconComponents/Cog.cjs.js +1 -1
  150. package/dist/components/Icon/IconComponents/Cog.cjs.js.map +1 -1
  151. package/dist/components/Icon/IconComponents/Cog.es.js +5 -5
  152. package/dist/components/Icon/IconComponents/Cog.es.js.map +1 -1
  153. package/dist/components/Icon/IconComponents/Comment.cjs.js +1 -1
  154. package/dist/components/Icon/IconComponents/Comment.cjs.js.map +1 -1
  155. package/dist/components/Icon/IconComponents/Comment.es.js +10 -10
  156. package/dist/components/Icon/IconComponents/Comment.es.js.map +1 -1
  157. package/dist/components/Icon/IconComponents/Connections.cjs.js +1 -1
  158. package/dist/components/Icon/IconComponents/Connections.cjs.js.map +1 -1
  159. package/dist/components/Icon/IconComponents/Connections.es.js +10 -10
  160. package/dist/components/Icon/IconComponents/Connections.es.js.map +1 -1
  161. package/dist/components/Icon/IconComponents/Copy.cjs.js +1 -1
  162. package/dist/components/Icon/IconComponents/Copy.cjs.js.map +1 -1
  163. package/dist/components/Icon/IconComponents/Copy.es.js +14 -14
  164. package/dist/components/Icon/IconComponents/Copy.es.js.map +1 -1
  165. package/dist/components/Icon/IconComponents/DangerCircle.cjs.js +1 -1
  166. package/dist/components/Icon/IconComponents/DangerCircle.cjs.js.map +1 -1
  167. package/dist/components/Icon/IconComponents/DangerCircle.es.js +3 -3
  168. package/dist/components/Icon/IconComponents/DangerCircle.es.js.map +1 -1
  169. package/dist/components/Icon/IconComponents/Dashboard.cjs.js +1 -1
  170. package/dist/components/Icon/IconComponents/Dashboard.cjs.js.map +1 -1
  171. package/dist/components/Icon/IconComponents/Dashboard.es.js +10 -10
  172. package/dist/components/Icon/IconComponents/Dashboard.es.js.map +1 -1
  173. package/dist/components/Icon/IconComponents/DeezerLogo.cjs.js +1 -1
  174. package/dist/components/Icon/IconComponents/DeezerLogo.cjs.js.map +1 -1
  175. package/dist/components/Icon/IconComponents/DeezerLogo.es.js +6 -6
  176. package/dist/components/Icon/IconComponents/DeezerLogo.es.js.map +1 -1
  177. package/dist/components/Icon/IconComponents/Download.cjs.js +1 -1
  178. package/dist/components/Icon/IconComponents/Download.cjs.js.map +1 -1
  179. package/dist/components/Icon/IconComponents/Download.es.js +6 -6
  180. package/dist/components/Icon/IconComponents/Download.es.js.map +1 -1
  181. package/dist/components/Icon/IconComponents/DragHandle.cjs.js +1 -1
  182. package/dist/components/Icon/IconComponents/DragHandle.cjs.js.map +1 -1
  183. package/dist/components/Icon/IconComponents/DragHandle.es.js +7 -7
  184. package/dist/components/Icon/IconComponents/DragHandle.es.js.map +1 -1
  185. package/dist/components/Icon/IconComponents/DropboxLogo.cjs.js +1 -1
  186. package/dist/components/Icon/IconComponents/DropboxLogo.cjs.js.map +1 -1
  187. package/dist/components/Icon/IconComponents/DropboxLogo.es.js +13 -13
  188. package/dist/components/Icon/IconComponents/DropboxLogo.es.js.map +1 -1
  189. package/dist/components/Icon/IconComponents/Edit.cjs.js +1 -1
  190. package/dist/components/Icon/IconComponents/Edit.cjs.js.map +1 -1
  191. package/dist/components/Icon/IconComponents/Edit.es.js +12 -12
  192. package/dist/components/Icon/IconComponents/Edit.es.js.map +1 -1
  193. package/dist/components/Icon/IconComponents/Ellipsis.cjs.js +1 -1
  194. package/dist/components/Icon/IconComponents/Ellipsis.cjs.js.map +1 -1
  195. package/dist/components/Icon/IconComponents/Ellipsis.es.js +19 -19
  196. package/dist/components/Icon/IconComponents/Ellipsis.es.js.map +1 -1
  197. package/dist/components/Icon/IconComponents/EmailThick.cjs.js +1 -1
  198. package/dist/components/Icon/IconComponents/EmailThick.cjs.js.map +1 -1
  199. package/dist/components/Icon/IconComponents/EmailThick.es.js +11 -11
  200. package/dist/components/Icon/IconComponents/EmailThick.es.js.map +1 -1
  201. package/dist/components/Icon/IconComponents/EmailThin.cjs.js +1 -1
  202. package/dist/components/Icon/IconComponents/EmailThin.cjs.js.map +1 -1
  203. package/dist/components/Icon/IconComponents/EmailThin.es.js +12 -12
  204. package/dist/components/Icon/IconComponents/EmailThin.es.js.map +1 -1
  205. package/dist/components/Icon/IconComponents/ExternalLink.cjs.js +1 -1
  206. package/dist/components/Icon/IconComponents/ExternalLink.cjs.js.map +1 -1
  207. package/dist/components/Icon/IconComponents/ExternalLink.es.js +9 -9
  208. package/dist/components/Icon/IconComponents/ExternalLink.es.js.map +1 -1
  209. package/dist/components/Icon/IconComponents/FacebookLogo.cjs.js +1 -1
  210. package/dist/components/Icon/IconComponents/FacebookLogo.cjs.js.map +1 -1
  211. package/dist/components/Icon/IconComponents/FacebookLogo.es.js +11 -11
  212. package/dist/components/Icon/IconComponents/FacebookLogo.es.js.map +1 -1
  213. package/dist/components/Icon/IconComponents/Filter.cjs.js +1 -1
  214. package/dist/components/Icon/IconComponents/Filter.cjs.js.map +1 -1
  215. package/dist/components/Icon/IconComponents/Filter.es.js +9 -9
  216. package/dist/components/Icon/IconComponents/Filter.es.js.map +1 -1
  217. package/dist/components/Icon/IconComponents/GitHubLogo.cjs.js +1 -1
  218. package/dist/components/Icon/IconComponents/GitHubLogo.cjs.js.map +1 -1
  219. package/dist/components/Icon/IconComponents/GitHubLogo.es.js +10 -10
  220. package/dist/components/Icon/IconComponents/GitHubLogo.es.js.map +1 -1
  221. package/dist/components/Icon/IconComponents/Globe.cjs.js +1 -1
  222. package/dist/components/Icon/IconComponents/Globe.cjs.js.map +1 -1
  223. package/dist/components/Icon/IconComponents/Globe.es.js +3 -3
  224. package/dist/components/Icon/IconComponents/Globe.es.js.map +1 -1
  225. package/dist/components/Icon/IconComponents/GoogleDriveLogo.cjs.js +1 -1
  226. package/dist/components/Icon/IconComponents/GoogleDriveLogo.cjs.js.map +1 -1
  227. package/dist/components/Icon/IconComponents/GoogleDriveLogo.es.js +24 -24
  228. package/dist/components/Icon/IconComponents/GoogleDriveLogo.es.js.map +1 -1
  229. package/dist/components/Icon/IconComponents/Hamburger.cjs.js +1 -1
  230. package/dist/components/Icon/IconComponents/Hamburger.cjs.js.map +1 -1
  231. package/dist/components/Icon/IconComponents/Hamburger.es.js +10 -10
  232. package/dist/components/Icon/IconComponents/Hamburger.es.js.map +1 -1
  233. package/dist/components/Icon/IconComponents/Heartbeat.cjs.js +1 -1
  234. package/dist/components/Icon/IconComponents/Heartbeat.cjs.js.map +1 -1
  235. package/dist/components/Icon/IconComponents/Heartbeat.es.js +11 -11
  236. package/dist/components/Icon/IconComponents/Heartbeat.es.js.map +1 -1
  237. package/dist/components/Icon/IconComponents/Info.cjs.js +1 -1
  238. package/dist/components/Icon/IconComponents/Info.cjs.js.map +1 -1
  239. package/dist/components/Icon/IconComponents/Info.es.js +9 -9
  240. package/dist/components/Icon/IconComponents/Info.es.js.map +1 -1
  241. package/dist/components/Icon/IconComponents/InfoOutline.cjs.js +1 -1
  242. package/dist/components/Icon/IconComponents/InfoOutline.cjs.js.map +1 -1
  243. package/dist/components/Icon/IconComponents/InfoOutline.es.js +38 -18
  244. package/dist/components/Icon/IconComponents/InfoOutline.es.js.map +1 -1
  245. package/dist/components/Icon/IconComponents/InstagramLogo.cjs.js +1 -1
  246. package/dist/components/Icon/IconComponents/InstagramLogo.cjs.js.map +1 -1
  247. package/dist/components/Icon/IconComponents/InstagramLogo.es.js +16 -16
  248. package/dist/components/Icon/IconComponents/InstagramLogo.es.js.map +1 -1
  249. package/dist/components/Icon/IconComponents/IntercomLogo.cjs.js +1 -1
  250. package/dist/components/Icon/IconComponents/IntercomLogo.cjs.js.map +1 -1
  251. package/dist/components/Icon/IconComponents/IntercomLogo.es.js +15 -15
  252. package/dist/components/Icon/IconComponents/IntercomLogo.es.js.map +1 -1
  253. package/dist/components/Icon/IconComponents/Keyboard.cjs.js +2 -0
  254. package/dist/components/Icon/IconComponents/Keyboard.cjs.js.map +1 -0
  255. package/dist/components/Icon/IconComponents/Keyboard.es.js +27 -0
  256. package/dist/components/Icon/IconComponents/Keyboard.es.js.map +1 -0
  257. package/dist/components/Icon/IconComponents/Label.cjs.js +1 -1
  258. package/dist/components/Icon/IconComponents/Label.cjs.js.map +1 -1
  259. package/dist/components/Icon/IconComponents/Label.es.js +14 -14
  260. package/dist/components/Icon/IconComponents/Label.es.js.map +1 -1
  261. package/dist/components/Icon/IconComponents/Lightning.cjs.js +1 -1
  262. package/dist/components/Icon/IconComponents/Lightning.cjs.js.map +1 -1
  263. package/dist/components/Icon/IconComponents/Lightning.es.js +9 -9
  264. package/dist/components/Icon/IconComponents/Lightning.es.js.map +1 -1
  265. package/dist/components/Icon/IconComponents/Link.cjs.js +1 -1
  266. package/dist/components/Icon/IconComponents/Link.cjs.js.map +1 -1
  267. package/dist/components/Icon/IconComponents/Link.es.js +6 -6
  268. package/dist/components/Icon/IconComponents/Link.es.js.map +1 -1
  269. package/dist/components/Icon/IconComponents/List.cjs.js +1 -1
  270. package/dist/components/Icon/IconComponents/List.cjs.js.map +1 -1
  271. package/dist/components/Icon/IconComponents/List.es.js +13 -13
  272. package/dist/components/Icon/IconComponents/List.es.js.map +1 -1
  273. package/dist/components/Icon/IconComponents/Lock.cjs.js +1 -1
  274. package/dist/components/Icon/IconComponents/Lock.cjs.js.map +1 -1
  275. package/dist/components/Icon/IconComponents/Lock.es.js +5 -5
  276. package/dist/components/Icon/IconComponents/Lock.es.js.map +1 -1
  277. package/dist/components/Icon/IconComponents/MessengerLogo.cjs.js +1 -1
  278. package/dist/components/Icon/IconComponents/MessengerLogo.cjs.js.map +1 -1
  279. package/dist/components/Icon/IconComponents/MessengerLogo.es.js +11 -11
  280. package/dist/components/Icon/IconComponents/MessengerLogo.es.js.map +1 -1
  281. package/dist/components/Icon/IconComponents/Money.cjs.js +1 -1
  282. package/dist/components/Icon/IconComponents/Money.cjs.js.map +1 -1
  283. package/dist/components/Icon/IconComponents/Money.es.js +13 -13
  284. package/dist/components/Icon/IconComponents/Money.es.js.map +1 -1
  285. package/dist/components/Icon/IconComponents/MoneyOutline.cjs.js +1 -1
  286. package/dist/components/Icon/IconComponents/MoneyOutline.cjs.js.map +1 -1
  287. package/dist/components/Icon/IconComponents/MoneyOutline.es.js +13 -13
  288. package/dist/components/Icon/IconComponents/MoneyOutline.es.js.map +1 -1
  289. package/dist/components/Icon/IconComponents/MusicNote.cjs.js +1 -1
  290. package/dist/components/Icon/IconComponents/MusicNote.cjs.js.map +1 -1
  291. package/dist/components/Icon/IconComponents/MusicNote.es.js +12 -12
  292. package/dist/components/Icon/IconComponents/MusicNote.es.js.map +1 -1
  293. package/dist/components/Icon/IconComponents/PacmanLoader.cjs.js +1 -1
  294. package/dist/components/Icon/IconComponents/PacmanLoader.cjs.js.map +1 -1
  295. package/dist/components/Icon/IconComponents/PacmanLoader.es.js +11 -11
  296. package/dist/components/Icon/IconComponents/PacmanLoader.es.js.map +1 -1
  297. package/dist/components/Icon/IconComponents/Pause.cjs.js +1 -1
  298. package/dist/components/Icon/IconComponents/Pause.cjs.js.map +1 -1
  299. package/dist/components/Icon/IconComponents/Pause.es.js +12 -12
  300. package/dist/components/Icon/IconComponents/Pause.es.js.map +1 -1
  301. package/dist/components/Icon/IconComponents/PayPalLogo.cjs.js +1 -1
  302. package/dist/components/Icon/IconComponents/PayPalLogo.cjs.js.map +1 -1
  303. package/dist/components/Icon/IconComponents/PayPalLogo.es.js +12 -12
  304. package/dist/components/Icon/IconComponents/PayPalLogo.es.js.map +1 -1
  305. package/dist/components/Icon/IconComponents/Pencil.cjs.js +1 -1
  306. package/dist/components/Icon/IconComponents/Pencil.cjs.js.map +1 -1
  307. package/dist/components/Icon/IconComponents/Pencil.es.js +9 -9
  308. package/dist/components/Icon/IconComponents/Pencil.es.js.map +1 -1
  309. package/dist/components/Icon/IconComponents/PhoneThick.cjs.js +1 -1
  310. package/dist/components/Icon/IconComponents/PhoneThick.cjs.js.map +1 -1
  311. package/dist/components/Icon/IconComponents/PhoneThick.es.js +6 -6
  312. package/dist/components/Icon/IconComponents/PhoneThick.es.js.map +1 -1
  313. package/dist/components/Icon/IconComponents/PhoneThin.cjs.js +1 -1
  314. package/dist/components/Icon/IconComponents/PhoneThin.cjs.js.map +1 -1
  315. package/dist/components/Icon/IconComponents/PhoneThin.es.js +6 -6
  316. package/dist/components/Icon/IconComponents/PhoneThin.es.js.map +1 -1
  317. package/dist/components/Icon/IconComponents/PiggyBank.cjs.js +1 -1
  318. package/dist/components/Icon/IconComponents/PiggyBank.cjs.js.map +1 -1
  319. package/dist/components/Icon/IconComponents/PiggyBank.es.js +3 -3
  320. package/dist/components/Icon/IconComponents/PiggyBank.es.js.map +1 -1
  321. package/dist/components/Icon/IconComponents/Play.cjs.js +1 -1
  322. package/dist/components/Icon/IconComponents/Play.cjs.js.map +1 -1
  323. package/dist/components/Icon/IconComponents/Play.es.js +10 -10
  324. package/dist/components/Icon/IconComponents/Play.es.js.map +1 -1
  325. package/dist/components/Icon/IconComponents/ProtonLogo.cjs.js +1 -1
  326. package/dist/components/Icon/IconComponents/ProtonLogo.cjs.js.map +1 -1
  327. package/dist/components/Icon/IconComponents/ProtonLogo.es.js +13 -13
  328. package/dist/components/Icon/IconComponents/ProtonLogo.es.js.map +1 -1
  329. package/dist/components/Icon/IconComponents/Quote.cjs.js +1 -1
  330. package/dist/components/Icon/IconComponents/Quote.cjs.js.map +1 -1
  331. package/dist/components/Icon/IconComponents/Quote.es.js +8 -8
  332. package/dist/components/Icon/IconComponents/Quote.es.js.map +1 -1
  333. package/dist/components/Icon/IconComponents/Radio.cjs.js +1 -1
  334. package/dist/components/Icon/IconComponents/Radio.cjs.js.map +1 -1
  335. package/dist/components/Icon/IconComponents/Radio.es.js +16 -16
  336. package/dist/components/Icon/IconComponents/Radio.es.js.map +1 -1
  337. package/dist/components/Icon/IconComponents/RemoveCircle.cjs.js +1 -1
  338. package/dist/components/Icon/IconComponents/RemoveCircle.cjs.js.map +1 -1
  339. package/dist/components/Icon/IconComponents/RemoveCircle.es.js +10 -10
  340. package/dist/components/Icon/IconComponents/RemoveCircle.es.js.map +1 -1
  341. package/dist/components/Icon/IconComponents/Rocket.cjs.js +1 -1
  342. package/dist/components/Icon/IconComponents/Rocket.cjs.js.map +1 -1
  343. package/dist/components/Icon/IconComponents/Rocket.es.js +15 -15
  344. package/dist/components/Icon/IconComponents/Rocket.es.js.map +1 -1
  345. package/dist/components/Icon/IconComponents/Search.cjs.js +1 -1
  346. package/dist/components/Icon/IconComponents/Search.cjs.js.map +1 -1
  347. package/dist/components/Icon/IconComponents/Search.es.js +9 -9
  348. package/dist/components/Icon/IconComponents/Search.es.js.map +1 -1
  349. package/dist/components/Icon/IconComponents/Share.cjs.js +1 -1
  350. package/dist/components/Icon/IconComponents/Share.cjs.js.map +1 -1
  351. package/dist/components/Icon/IconComponents/Share.es.js +8 -8
  352. package/dist/components/Icon/IconComponents/Share.es.js.map +1 -1
  353. package/dist/components/Icon/IconComponents/SignOut.cjs.js +1 -1
  354. package/dist/components/Icon/IconComponents/SignOut.cjs.js.map +1 -1
  355. package/dist/components/Icon/IconComponents/SignOut.es.js +14 -14
  356. package/dist/components/Icon/IconComponents/SignOut.es.js.map +1 -1
  357. package/dist/components/Icon/IconComponents/SoundcloudLogo.cjs.js +1 -1
  358. package/dist/components/Icon/IconComponents/SoundcloudLogo.cjs.js.map +1 -1
  359. package/dist/components/Icon/IconComponents/SoundcloudLogo.es.js +3 -3
  360. package/dist/components/Icon/IconComponents/SoundcloudLogo.es.js.map +1 -1
  361. package/dist/components/Icon/IconComponents/SpotifyLogo.cjs.js +1 -1
  362. package/dist/components/Icon/IconComponents/SpotifyLogo.cjs.js.map +1 -1
  363. package/dist/components/Icon/IconComponents/SpotifyLogo.es.js +13 -13
  364. package/dist/components/Icon/IconComponents/SpotifyLogo.es.js.map +1 -1
  365. package/dist/components/Icon/IconComponents/Spy.cjs.js +1 -1
  366. package/dist/components/Icon/IconComponents/Spy.cjs.js.map +1 -1
  367. package/dist/components/Icon/IconComponents/Spy.es.js +7 -7
  368. package/dist/components/Icon/IconComponents/Spy.es.js.map +1 -1
  369. package/dist/components/Icon/IconComponents/Star.cjs.js +1 -1
  370. package/dist/components/Icon/IconComponents/Star.cjs.js.map +1 -1
  371. package/dist/components/Icon/IconComponents/Star.es.js +8 -8
  372. package/dist/components/Icon/IconComponents/Star.es.js.map +1 -1
  373. package/dist/components/Icon/IconComponents/StarCircle.cjs.js +1 -1
  374. package/dist/components/Icon/IconComponents/StarCircle.cjs.js.map +1 -1
  375. package/dist/components/Icon/IconComponents/StarCircle.es.js +10 -10
  376. package/dist/components/Icon/IconComponents/StarCircle.es.js.map +1 -1
  377. package/dist/components/Icon/IconComponents/SuccessCircle.cjs.js +1 -1
  378. package/dist/components/Icon/IconComponents/SuccessCircle.cjs.js.map +1 -1
  379. package/dist/components/Icon/IconComponents/SuccessCircle.es.js +10 -10
  380. package/dist/components/Icon/IconComponents/SuccessCircle.es.js.map +1 -1
  381. package/dist/components/Icon/IconComponents/TelegramLogo.cjs.js +1 -1
  382. package/dist/components/Icon/IconComponents/TelegramLogo.cjs.js.map +1 -1
  383. package/dist/components/Icon/IconComponents/TelegramLogo.es.js +9 -9
  384. package/dist/components/Icon/IconComponents/TelegramLogo.es.js.map +1 -1
  385. package/dist/components/Icon/IconComponents/TiktokLogo.cjs.js +1 -1
  386. package/dist/components/Icon/IconComponents/TiktokLogo.cjs.js.map +1 -1
  387. package/dist/components/Icon/IconComponents/TiktokLogo.es.js +10 -10
  388. package/dist/components/Icon/IconComponents/TiktokLogo.es.js.map +1 -1
  389. package/dist/components/Icon/IconComponents/Tracklist.cjs.js +1 -1
  390. package/dist/components/Icon/IconComponents/Tracklist.cjs.js.map +1 -1
  391. package/dist/components/Icon/IconComponents/Tracklist.es.js +6 -6
  392. package/dist/components/Icon/IconComponents/Tracklist.es.js.map +1 -1
  393. package/dist/components/Icon/IconComponents/TrashCan.cjs.js +1 -1
  394. package/dist/components/Icon/IconComponents/TrashCan.cjs.js.map +1 -1
  395. package/dist/components/Icon/IconComponents/TrashCan.es.js +8 -8
  396. package/dist/components/Icon/IconComponents/TrashCan.es.js.map +1 -1
  397. package/dist/components/Icon/IconComponents/TraxsourceLogo.cjs.js +1 -1
  398. package/dist/components/Icon/IconComponents/TraxsourceLogo.cjs.js.map +1 -1
  399. package/dist/components/Icon/IconComponents/TraxsourceLogo.es.js +15 -15
  400. package/dist/components/Icon/IconComponents/TraxsourceLogo.es.js.map +1 -1
  401. package/dist/components/Icon/IconComponents/USDCLogo.cjs.js +1 -1
  402. package/dist/components/Icon/IconComponents/USDCLogo.cjs.js.map +1 -1
  403. package/dist/components/Icon/IconComponents/USDCLogo.es.js +16 -16
  404. package/dist/components/Icon/IconComponents/USDCLogo.es.js.map +1 -1
  405. package/dist/components/Icon/IconComponents/User.cjs.js +1 -1
  406. package/dist/components/Icon/IconComponents/User.cjs.js.map +1 -1
  407. package/dist/components/Icon/IconComponents/User.es.js +12 -12
  408. package/dist/components/Icon/IconComponents/User.es.js.map +1 -1
  409. package/dist/components/Icon/IconComponents/UserAdd.cjs.js +1 -1
  410. package/dist/components/Icon/IconComponents/UserAdd.cjs.js.map +1 -1
  411. package/dist/components/Icon/IconComponents/UserAdd.es.js +10 -10
  412. package/dist/components/Icon/IconComponents/UserAdd.es.js.map +1 -1
  413. package/dist/components/Icon/IconComponents/Users.cjs.js +1 -1
  414. package/dist/components/Icon/IconComponents/Users.cjs.js.map +1 -1
  415. package/dist/components/Icon/IconComponents/Users.es.js +8 -8
  416. package/dist/components/Icon/IconComponents/Users.es.js.map +1 -1
  417. package/dist/components/Icon/IconComponents/Verified.cjs.js +1 -1
  418. package/dist/components/Icon/IconComponents/Verified.cjs.js.map +1 -1
  419. package/dist/components/Icon/IconComponents/Verified.es.js +9 -9
  420. package/dist/components/Icon/IconComponents/Verified.es.js.map +1 -1
  421. package/dist/components/Icon/IconComponents/WarningTriangle.cjs.js +1 -1
  422. package/dist/components/Icon/IconComponents/WarningTriangle.cjs.js.map +1 -1
  423. package/dist/components/Icon/IconComponents/WarningTriangle.es.js +11 -11
  424. package/dist/components/Icon/IconComponents/WarningTriangle.es.js.map +1 -1
  425. package/dist/components/Icon/IconComponents/WesternUnionLogo.cjs.js +1 -1
  426. package/dist/components/Icon/IconComponents/WesternUnionLogo.cjs.js.map +1 -1
  427. package/dist/components/Icon/IconComponents/WesternUnionLogo.es.js +13 -13
  428. package/dist/components/Icon/IconComponents/WesternUnionLogo.es.js.map +1 -1
  429. package/dist/components/Icon/IconComponents/WhatsappLogo.cjs.js +2 -0
  430. package/dist/components/Icon/IconComponents/WhatsappLogo.cjs.js.map +1 -0
  431. package/dist/components/Icon/IconComponents/WhatsappLogo.es.js +31 -0
  432. package/dist/components/Icon/IconComponents/WhatsappLogo.es.js.map +1 -0
  433. package/dist/components/Icon/IconComponents/WhatsappLogoThin.cjs.js +1 -1
  434. package/dist/components/Icon/IconComponents/WhatsappLogoThin.cjs.js.map +1 -1
  435. package/dist/components/Icon/IconComponents/WhatsappLogoThin.es.js +19 -19
  436. package/dist/components/Icon/IconComponents/WhatsappLogoThin.es.js.map +1 -1
  437. package/dist/components/Icon/IconComponents/XTwitterLogo.cjs.js +1 -1
  438. package/dist/components/Icon/IconComponents/XTwitterLogo.cjs.js.map +1 -1
  439. package/dist/components/Icon/IconComponents/XTwitterLogo.es.js +10 -10
  440. package/dist/components/Icon/IconComponents/XTwitterLogo.es.js.map +1 -1
  441. package/dist/components/Icon/IconComponents/YandexLogo.cjs.js +1 -1
  442. package/dist/components/Icon/IconComponents/YandexLogo.cjs.js.map +1 -1
  443. package/dist/components/Icon/IconComponents/YandexLogo.es.js +9 -9
  444. package/dist/components/Icon/IconComponents/YandexLogo.es.js.map +1 -1
  445. package/dist/components/Icon/IconComponents/YoutubeLogo.cjs.js +1 -1
  446. package/dist/components/Icon/IconComponents/YoutubeLogo.cjs.js.map +1 -1
  447. package/dist/components/Icon/IconComponents/YoutubeLogo.es.js +14 -14
  448. package/dist/components/Icon/IconComponents/YoutubeLogo.es.js.map +1 -1
  449. package/dist/components/Icon/IconProps.cjs.js +1 -1
  450. package/dist/components/Icon/IconProps.cjs.js.map +1 -1
  451. package/dist/components/Icon/IconProps.es.js +7 -7
  452. package/dist/components/Icon/IconProps.es.js.map +1 -1
  453. package/dist/components/ImageBackground/ImageBackground.cjs.js +1 -1
  454. package/dist/components/ImageBackground/ImageBackground.cjs.js.map +1 -1
  455. package/dist/components/ImageBackground/ImageBackground.es.js +18 -18
  456. package/dist/components/ImageBackground/ImageBackground.es.js.map +1 -1
  457. package/dist/components/Input/BaseInput/Input.cjs.js +1 -1
  458. package/dist/components/Input/BaseInput/Input.cjs.js.map +1 -1
  459. package/dist/components/Input/BaseInput/Input.es.js +73 -73
  460. package/dist/components/Input/BaseInput/Input.es.js.map +1 -1
  461. package/dist/components/Input/CopyInput/CopyInput.cjs.js +1 -1
  462. package/dist/components/Input/CopyInput/CopyInput.cjs.js.map +1 -1
  463. package/dist/components/Input/CopyInput/CopyInput.es.js +23 -23
  464. package/dist/components/Input/CopyInput/CopyInput.es.js.map +1 -1
  465. package/dist/components/Input/OTPInput/OTPInput.cjs.js +1 -1
  466. package/dist/components/Input/OTPInput/OTPInput.cjs.js.map +1 -1
  467. package/dist/components/Input/OTPInput/OTPInput.es.js +58 -58
  468. package/dist/components/Input/OTPInput/OTPInput.es.js.map +1 -1
  469. package/dist/components/Input/SearchInput/SearchInput.cjs.js +1 -1
  470. package/dist/components/Input/SearchInput/SearchInput.cjs.js.map +1 -1
  471. package/dist/components/Input/SearchInput/SearchInput.es.js +45 -45
  472. package/dist/components/Input/SearchInput/SearchInput.es.js.map +1 -1
  473. package/dist/components/Menu/MenuTrigger.cjs.js +1 -1
  474. package/dist/components/Menu/MenuTrigger.cjs.js.map +1 -1
  475. package/dist/components/Menu/MenuTrigger.es.js +31 -31
  476. package/dist/components/Menu/MenuTrigger.es.js.map +1 -1
  477. package/dist/components/Menu/PopoverMenu.cjs.js +1 -1
  478. package/dist/components/Menu/PopoverMenu.cjs.js.map +1 -1
  479. package/dist/components/Menu/PopoverMenu.es.js +53 -53
  480. package/dist/components/Menu/PopoverMenu.es.js.map +1 -1
  481. package/dist/components/Modal/Modal.cjs.js +1 -1
  482. package/dist/components/Modal/Modal.cjs.js.map +1 -1
  483. package/dist/components/Modal/Modal.es.js +49 -49
  484. package/dist/components/Modal/Modal.es.js.map +1 -1
  485. package/dist/components/Overlay/Overlay.cjs.js +1 -1
  486. package/dist/components/Overlay/Overlay.cjs.js.map +1 -1
  487. package/dist/components/Overlay/Overlay.es.js +9 -9
  488. package/dist/components/Overlay/Overlay.es.js.map +1 -1
  489. package/dist/components/Popover/Popover.cjs.js +1 -1
  490. package/dist/components/Popover/Popover.cjs.js.map +1 -1
  491. package/dist/components/Popover/Popover.es.js +29 -29
  492. package/dist/components/Popover/Popover.es.js.map +1 -1
  493. package/dist/components/ScreenOverlay/ScreenOverlay.cjs.js +1 -1
  494. package/dist/components/ScreenOverlay/ScreenOverlay.cjs.js.map +1 -1
  495. package/dist/components/ScreenOverlay/ScreenOverlay.es.js +7 -7
  496. package/dist/components/ScreenOverlay/ScreenOverlay.es.js.map +1 -1
  497. package/dist/components/Select/Select.cjs.js +1 -1
  498. package/dist/components/Select/Select.cjs.js.map +1 -1
  499. package/dist/components/Select/Select.es.js +83 -83
  500. package/dist/components/Select/Select.es.js.map +1 -1
  501. package/dist/components/Switch/Switch.cjs.js +1 -1
  502. package/dist/components/Switch/Switch.cjs.js.map +1 -1
  503. package/dist/components/Switch/Switch.es.js +26 -26
  504. package/dist/components/Switch/Switch.es.js.map +1 -1
  505. package/dist/components/Table/BaseTable/Collection/collectionParser.cjs.js +1 -1
  506. package/dist/components/Table/BaseTable/Collection/useTableCollection.cjs.js +1 -1
  507. package/dist/components/Table/BaseTable/Table.cjs.js +1 -1
  508. package/dist/components/Table/BaseTable/Table.cjs.js.map +1 -1
  509. package/dist/components/Table/BaseTable/Table.es.js +37 -37
  510. package/dist/components/Table/BaseTable/Table.es.js.map +1 -1
  511. package/dist/components/Table/BaseTable/elements/TableBody.cjs.js +1 -1
  512. package/dist/components/Table/BaseTable/elements/TableBody.cjs.js.map +1 -1
  513. package/dist/components/Table/BaseTable/elements/TableBody.es.js +2 -2
  514. package/dist/components/Table/BaseTable/elements/TableBody.es.js.map +1 -1
  515. package/dist/components/Table/BaseTable/elements/TableCell.cjs.js +1 -1
  516. package/dist/components/Table/BaseTable/elements/TableCell.cjs.js.map +1 -1
  517. package/dist/components/Table/BaseTable/elements/TableCell.es.js +7 -7
  518. package/dist/components/Table/BaseTable/elements/TableCell.es.js.map +1 -1
  519. package/dist/components/Table/BaseTable/elements/TableHeader.cjs.js +1 -1
  520. package/dist/components/Table/BaseTable/elements/TableHeader.cjs.js.map +1 -1
  521. package/dist/components/Table/BaseTable/elements/TableHeader.es.js +2 -2
  522. package/dist/components/Table/BaseTable/elements/TableHeader.es.js.map +1 -1
  523. package/dist/components/Table/BaseTable/elements/TableHeaderCell.cjs.js +1 -1
  524. package/dist/components/Table/BaseTable/elements/TableHeaderCell.cjs.js.map +1 -1
  525. package/dist/components/Table/BaseTable/elements/TableHeaderCell.es.js +4 -4
  526. package/dist/components/Table/BaseTable/elements/TableHeaderCell.es.js.map +1 -1
  527. package/dist/components/Table/BaseTable/elements/TableHeaderRow.cjs.js +1 -1
  528. package/dist/components/Table/BaseTable/elements/TableHeaderRow.cjs.js.map +1 -1
  529. package/dist/components/Table/BaseTable/elements/TableHeaderRow.es.js +2 -2
  530. package/dist/components/Table/BaseTable/elements/TableHeaderRow.es.js.map +1 -1
  531. package/dist/components/Table/BaseTable/elements/TableRoot.cjs.js +1 -1
  532. package/dist/components/Table/BaseTable/elements/TableRoot.cjs.js.map +1 -1
  533. package/dist/components/Table/BaseTable/elements/TableRoot.es.js +7 -7
  534. package/dist/components/Table/BaseTable/elements/TableRoot.es.js.map +1 -1
  535. package/dist/components/Table/BaseTable/elements/TableRow.cjs.js +1 -1
  536. package/dist/components/Table/BaseTable/elements/TableRow.cjs.js.map +1 -1
  537. package/dist/components/Table/BaseTable/elements/TableRow.es.js +2 -2
  538. package/dist/components/Table/BaseTable/elements/TableRow.es.js.map +1 -1
  539. package/dist/components/Table/DataTable/DataTable.cjs.js +1 -1
  540. package/dist/components/Table/DataTable/DataTable.cjs.js.map +1 -1
  541. package/dist/components/Table/DataTable/DataTable.es.js +70 -70
  542. package/dist/components/Table/DataTable/DataTable.es.js.map +1 -1
  543. package/dist/components/Table/DataTable/DataTableRow.cjs.js +1 -1
  544. package/dist/components/Table/DataTable/DataTableRow.cjs.js.map +1 -1
  545. package/dist/components/Table/DataTable/DataTableRow.es.js +15 -21
  546. package/dist/components/Table/DataTable/DataTableRow.es.js.map +1 -1
  547. package/dist/components/Text/TextCountdown/TextCountdown.cjs.js +1 -1
  548. package/dist/components/Text/TextCountdown/TextCountdown.cjs.js.map +1 -1
  549. package/dist/components/Text/TextCountdown/TextCountdown.es.js +12 -12
  550. package/dist/components/Text/TextCountdown/TextCountdown.es.js.map +1 -1
  551. package/dist/components/Text/TextEllipsis/TextEllipsis.cjs.js +1 -1
  552. package/dist/components/Text/TextEllipsis/TextEllipsis.cjs.js.map +1 -1
  553. package/dist/components/Text/TextEllipsis/TextEllipsis.es.js +8 -8
  554. package/dist/components/Text/TextEllipsis/TextEllipsis.es.js.map +1 -1
  555. package/dist/components/Text/TextEmphasis/TextEmphasis.cjs.js +1 -1
  556. package/dist/components/Text/TextEmphasis/TextEmphasis.cjs.js.map +1 -1
  557. package/dist/components/Text/TextEmphasis/TextEmphasis.es.js +17 -17
  558. package/dist/components/Text/TextEmphasis/TextEmphasis.es.js.map +1 -1
  559. package/dist/components/ThemeProvider.cjs.js +1 -1
  560. package/dist/components/ThemeProvider.cjs.js.map +1 -1
  561. package/dist/components/ThemeProvider.es.js +17 -17
  562. package/dist/components/ThemeProvider.es.js.map +1 -1
  563. package/dist/components/Tombstone/Tombstone.cjs.js +1 -1
  564. package/dist/components/Tombstone/Tombstone.cjs.js.map +1 -1
  565. package/dist/components/Tombstone/Tombstone.es.js +12 -12
  566. package/dist/components/Tombstone/Tombstone.es.js.map +1 -1
  567. package/dist/components/Tooltip/ResponsiveTooltip.cjs.js +1 -1
  568. package/dist/components/Tooltip/ResponsiveTooltip.cjs.js.map +1 -1
  569. package/dist/components/Tooltip/ResponsiveTooltip.es.js +34 -34
  570. package/dist/components/Tooltip/ResponsiveTooltip.es.js.map +1 -1
  571. package/dist/components/Tooltip/Tooltip.cjs.js +1 -1
  572. package/dist/components/Tooltip/Tooltip.cjs.js.map +1 -1
  573. package/dist/components/Tooltip/Tooltip.es.js +30 -30
  574. package/dist/components/Tooltip/Tooltip.es.js.map +1 -1
  575. package/dist/components/Waveform/Waveform.cjs.js +1 -1
  576. package/dist/components/Waveform/Waveform.cjs.js.map +1 -1
  577. package/dist/components/Waveform/Waveform.es.js +77 -77
  578. package/dist/components/Waveform/Waveform.es.js.map +1 -1
  579. package/dist/components/Waveform/WaveformBar.cjs.js +1 -1
  580. package/dist/components/Waveform/WaveformBar.cjs.js.map +1 -1
  581. package/dist/components/Waveform/WaveformBar.es.js +22 -22
  582. package/dist/components/Waveform/WaveformBar.es.js.map +1 -1
  583. package/dist/hooks/useBreakpoint.cjs.js +1 -1
  584. package/dist/hooks/useIsClosing.cjs.js +1 -1
  585. package/dist/hooks/useMergedRef.cjs.js +1 -1
  586. package/dist/hooks/usePalette.cjs.js +1 -1
  587. package/dist/icons.cjs.js +1 -1
  588. package/dist/icons.d.ts +17 -3
  589. package/dist/icons.es.js +174 -170
  590. package/dist/icons.es.js.map +1 -1
  591. package/package.json +1 -1
  592. package/dist/_virtual/jsx-runtime.cjs.js +0 -2
  593. package/dist/_virtual/jsx-runtime.cjs.js.map +0 -1
  594. package/dist/_virtual/jsx-runtime.es.js +0 -5
  595. package/dist/_virtual/jsx-runtime.es.js.map +0 -1
  596. package/dist/_virtual/react-jsx-runtime.development.cjs.js +0 -2
  597. package/dist/_virtual/react-jsx-runtime.development.cjs.js.map +0 -1
  598. package/dist/_virtual/react-jsx-runtime.development.es.js +0 -5
  599. package/dist/_virtual/react-jsx-runtime.development.es.js.map +0 -1
  600. package/dist/_virtual/react-jsx-runtime.production.cjs.js +0 -2
  601. package/dist/_virtual/react-jsx-runtime.production.cjs.js.map +0 -1
  602. package/dist/_virtual/react-jsx-runtime.production.es.js +0 -5
  603. package/dist/_virtual/react-jsx-runtime.production.es.js.map +0 -1
  604. package/dist/components/Icon/IconComponents/WhatsappLogoThick.cjs.js +0 -2
  605. package/dist/components/Icon/IconComponents/WhatsappLogoThick.cjs.js.map +0 -1
  606. package/dist/components/Icon/IconComponents/WhatsappLogoThick.es.js +0 -47
  607. package/dist/components/Icon/IconComponents/WhatsappLogoThick.es.js.map +0 -1
  608. package/dist/node_modules/react/cjs/react-jsx-runtime.development.cjs.js +0 -15
  609. package/dist/node_modules/react/cjs/react-jsx-runtime.development.cjs.js.map +0 -1
  610. package/dist/node_modules/react/cjs/react-jsx-runtime.development.es.js +0 -245
  611. package/dist/node_modules/react/cjs/react-jsx-runtime.development.es.js.map +0 -1
  612. package/dist/node_modules/react/cjs/react-jsx-runtime.production.cjs.js +0 -10
  613. package/dist/node_modules/react/cjs/react-jsx-runtime.production.cjs.js.map +0 -1
  614. package/dist/node_modules/react/cjs/react-jsx-runtime.production.es.js +0 -36
  615. package/dist/node_modules/react/cjs/react-jsx-runtime.production.es.js.map +0 -1
  616. package/dist/node_modules/react/jsx-runtime.cjs.js +0 -2
  617. package/dist/node_modules/react/jsx-runtime.cjs.js.map +0 -1
  618. package/dist/node_modules/react/jsx-runtime.es.js +0 -9
  619. package/dist/node_modules/react/jsx-runtime.es.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"DataTable.cjs.js","sources":["../../../../src/components/Table/DataTable/DataTable.tsx"],"sourcesContent":["\"use client\";\n\nimport { AriaAttributes, ReactNode } from \"react\";\nimport { deepEqual } from \"../../../utils/deepEqual\";\n\nimport { Table, TableRowData } from \"../BaseTable/Table\";\nimport { Elevation } from \"../../Elevation/Elevation\";\nimport { Tombstone } from \"../../Tombstone/Tombstone\";\nimport { ChevronUp } from \"../../Icon/IconComponents/ChevronUp\";\nimport { DataTableRow } from \"./DataTableRow\";\n\nimport \"../BaseTable/Table.css\";\nimport \"./DataTable.css\";\n\nexport type SortDirection = \"ASC\" | \"DESC\";\n\ntype SortingConfig =\n | {\n /** When sorting is enabled, all these props must be provided together. */\n sortableColumns: string[];\n sortedBy: string;\n sortDirection: SortDirection;\n onSort: (columnId: string, direction: SortDirection) => void;\n }\n | {\n /** When no sorting is needed, none of these props should be provided */\n sortableColumns?: never;\n sortedBy?: never;\n sortDirection?: never;\n onSort?: never;\n };\n\nexport interface DataTableColumn<T> {\n /** id for the column */\n id: string;\n /** Header text or component */\n header: ReactNode;\n /** Function to render cell content from row data */\n cell: (row: T) => ReactNode;\n /** Whether this column should be hidden */\n isHidden?: boolean;\n}\n\ninterface BaseDataTableProps<T = any> {\n /**\n * Array of column definitions\n * - {@link DataTableColumn}\n */\n columns: DataTableColumn<T>[];\n /**\n * Array of data objects to display. Can be empty array for loading/empty states\n * @default []\n * */\n data?: T[] | null;\n /**\n * Test ID for testing purposes\n * */\n \"data-testid\"?: string;\n /**\n * Error state\n * @default false\n */\n error?: boolean | string;\n /**\n * Custom empty state message\n * @default \"Data Unavailable\"\n */\n emptyMessage?: string;\n /**\n * Custom error message\n * @default \"An error occurred\"\n */\n errorMessage?: string;\n /** Callback when a row is clicked */\n onRowClick?: (row: T) => void;\n /** Loading state */\n loading?: boolean;\n /**\n * Number of skeleton rows to show in loading state\n * @default 5\n */\n loadingRows?: number;\n /**\n * Enable row-level memoization for performance optimization.\n * Uses deepEqual to compare row data. @see {@link deepEqual}\n * @default true\n */\n memoize?: boolean;\n /**\n * Table name/caption for accessibility. Provides essential context for screen readers.\n * */\n name: string;\n /** Optional tombstone component to use when loading */\n tombstoneComponent?: ReactNode;\n}\n\nexport type DataTableProps<T = any> = BaseDataTableProps<T> & SortingConfig;\n\n/**\n * DataTable is a declarative wrapper around the base Table component.\n * API:\n * - {@link DataTableProps}\n * - {@link SortingConfig}\n *\n * @note Row memoization is enabled by default. Rows only re-render when row data or index changes.\n */\nexport const DataTable = <T,>({\n columns,\n data = [],\n loading = false,\n tombstoneComponent,\n error = false,\n name,\n onRowClick,\n emptyMessage = \"Data Unavailable\",\n errorMessage = \"An error occurred\",\n loadingRows = 5,\n \"data-testid\": testId,\n memoize = true,\n sortableColumns = [],\n sortedBy,\n sortDirection,\n onSort,\n}: DataTableProps<T>) => {\n const visibleColumns = columns.filter((col) => !col.isHidden);\n\n const handleSortClick = (column: DataTableColumn<T>) => {\n if (!onSort) return;\n\n const isCurrentlySorted = sortedBy === column.id;\n const newDirection =\n isCurrentlySorted && sortDirection === \"ASC\" ? \"DESC\" : \"ASC\";\n\n onSort(column.id, newDirection);\n };\n\n const getSortState = (columnId: string): AriaAttributes[\"aria-sort\"] => {\n if (sortedBy !== columnId) return \"none\";\n return sortDirection === \"ASC\" ? \"ascending\" : \"descending\";\n };\n\n if (error) {\n return (\n <EmptyState\n columns={visibleColumns}\n message={typeof error === \"string\" ? error : errorMessage}\n name={name}\n testId={testId}\n isError\n />\n );\n }\n\n if (loading) {\n return (\n <div\n className=\"proton-DataTable\"\n data-testid={testId}\n aria-busy=\"true\"\n aria-label={`Loading ${name}...`}\n >\n <Table name={name}>\n <Table.Header>\n {visibleColumns.map((column) => (\n <Table.Column key={column.id} id={column.id}>\n {column.header}\n </Table.Column>\n ))}\n </Table.Header>\n <Table.Body>\n {Array.from({ length: loadingRows }).map((_, index) => (\n <Table.Row key={`loading-${index}`}>\n {visibleColumns.map((column) => (\n <Table.Cell key={column.id}>\n {tombstoneComponent || (\n <Tombstone\n height=\"1rem\"\n width={\n // cascading tombstone widths\n index % 3 === 0\n ? \"80%\"\n : index % 3 === 1\n ? \"60%\"\n : \"90%\"\n }\n />\n )}\n </Table.Cell>\n ))}\n </Table.Row>\n ))}\n </Table.Body>\n </Table>\n </div>\n );\n }\n\n if (!data || data.length === 0) {\n return (\n <EmptyState\n columns={visibleColumns}\n message={emptyMessage}\n name={name}\n testId={testId}\n />\n );\n }\n\n return (\n <div className=\"proton-DataTable\" data-testid={testId}>\n <Table name={name}>\n <Table.Header>\n {visibleColumns.map((column) => {\n const isSortable = sortableColumns.includes(column.id);\n const sortState = getSortState(column.id);\n\n return (\n <Table.Column\n key={column.id}\n id={column.id}\n {...(isSortable && { \"aria-sort\": sortState })}\n >\n <span className=\"proton-DataTable__header-content\">\n {column.header}\n\n {isSortable && (\n <button\n className=\"proton-DataTable__sort-button\"\n onClick={() => handleSortClick(column)}\n aria-label={`Sort by ${column.header}: ${sortState}`}\n type=\"button\"\n >\n <ChevronUp\n size={12}\n color={\n sortState === \"ascending\"\n ? \"var(--proton-color__primary)\"\n : \"currentColor\"\n }\n />\n </button>\n )}\n </span>\n </Table.Column>\n );\n })}\n </Table.Header>\n <Table.Body>\n {data.map((row, index) => {\n const tableRow = row as TableRowData;\n\n return (\n <DataTableRow\n key={tableRow.key ?? index}\n row={row}\n columns={visibleColumns}\n rowIndex={index}\n onRowClick={onRowClick}\n memoize={memoize}\n dataTestId={tableRow.dataTestId}\n />\n );\n })}\n </Table.Body>\n </Table>\n </div>\n );\n};\n\nconst EmptyState = ({\n columns,\n message,\n name,\n testId,\n isError = false,\n}: {\n columns: DataTableColumn<any>[];\n name: string;\n testId?: string;\n message: string;\n isError?: boolean;\n}) => {\n return (\n <div className=\"proton-DataTable\" data-testid={testId}>\n <Table name={name}>\n <Table.Header>\n {columns.map((column) => (\n <Table.Column key={column.id} id={column.id}>\n {column.header}\n </Table.Column>\n ))}\n </Table.Header>\n <Table.Body>\n <Table.Row>\n <Table.Cell colSpan={columns?.length || 1}>\n <div\n className=\"proton-DataTable__message-cell\"\n role={isError ? \"alert\" : \"status\"}\n aria-live=\"polite\"\n >\n <Elevation>\n <div className=\"proton-DataTable__empty-cell\">{message}</div>\n </Elevation>\n </div>\n </Table.Cell>\n </Table.Row>\n </Table.Body>\n </Table>\n </div>\n );\n};\n\nDataTable.displayName = \"ProtonUIDataTable\";\n"],"names":["DataTable","columns","data","loading","tombstoneComponent","error","name","onRowClick","emptyMessage","errorMessage","loadingRows","testId","memoize","sortableColumns","sortedBy","sortDirection","onSort","visibleColumns","col","handleSortClick","column","newDirection","getSortState","columnId","jsx","EmptyState","jsxs","Table","_","index","Tombstone","isSortable","sortState","ChevronUp","row","tableRow","DataTableRow","message","isError","Elevation"],"mappings":"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"}
1
+ {"version":3,"file":"DataTable.cjs.js","sources":["../../../../src/components/Table/DataTable/DataTable.tsx"],"sourcesContent":["\"use client\";\n\nimport { AriaAttributes, ReactNode } from \"react\";\nimport { deepEqual } from \"../../../utils/deepEqual\";\n\nimport { Table, TableRowData } from \"../BaseTable/Table\";\nimport { Elevation } from \"../../Elevation/Elevation\";\nimport { Tombstone } from \"../../Tombstone/Tombstone\";\nimport { ChevronUp } from \"../../Icon/IconComponents/ChevronUp\";\nimport { DataTableRow } from \"./DataTableRow\";\n\nimport \"../BaseTable/Table.css\";\nimport \"./DataTable.css\";\n\nexport type SortDirection = \"ASC\" | \"DESC\";\n\ntype SortingConfig =\n | {\n /** When sorting is enabled, all these props must be provided together. */\n sortableColumns: string[];\n sortedBy: string;\n sortDirection: SortDirection;\n onSort: (columnId: string, direction: SortDirection) => void;\n }\n | {\n /** When no sorting is needed, none of these props should be provided */\n sortableColumns?: never;\n sortedBy?: never;\n sortDirection?: never;\n onSort?: never;\n };\n\nexport interface DataTableColumn<T> {\n /** id for the column */\n id: string;\n /** Header text or component */\n header: ReactNode;\n /** Function to render cell content from row data */\n cell: (row: T) => ReactNode;\n /** Whether this column should be hidden */\n isHidden?: boolean;\n}\n\ninterface BaseDataTableProps<T = any> {\n /**\n * Array of column definitions\n * - {@link DataTableColumn}\n */\n columns: DataTableColumn<T>[];\n /**\n * Array of data objects to display. Can be empty array for loading/empty states\n * @default []\n * */\n data?: T[] | null;\n /**\n * Test ID for testing purposes\n * */\n \"data-testid\"?: string;\n /**\n * Error state\n * @default false\n */\n error?: boolean | string;\n /**\n * Custom empty state message\n * @default \"Data Unavailable\"\n */\n emptyMessage?: string;\n /**\n * Custom error message\n * @default \"An error occurred\"\n */\n errorMessage?: string;\n /** Callback when a row is clicked */\n onRowClick?: (row: T) => void;\n /** Loading state */\n loading?: boolean;\n /**\n * Number of skeleton rows to show in loading state\n * @default 5\n */\n loadingRows?: number;\n /**\n * Enable row-level memoization for performance optimization.\n * Uses deepEqual to compare row data. @see {@link deepEqual}\n * @default true\n */\n memoize?: boolean;\n /**\n * Table name/caption for accessibility. Provides essential context for screen readers.\n * */\n name: string;\n /** Optional tombstone component to use when loading */\n tombstoneComponent?: ReactNode;\n}\n\nexport type DataTableProps<T = any> = BaseDataTableProps<T> & SortingConfig;\n\n/**\n * DataTable is a declarative wrapper around the base Table component.\n * API:\n * - {@link DataTableProps}\n * - {@link SortingConfig}\n *\n * @note Row memoization is enabled by default. Rows only re-render when row data or index changes.\n */\nexport const DataTable = <T,>({\n columns,\n data = [],\n loading = false,\n tombstoneComponent,\n error = false,\n name,\n onRowClick,\n emptyMessage = \"Data Unavailable\",\n errorMessage = \"An error occurred\",\n loadingRows = 5,\n \"data-testid\": testId,\n memoize = true,\n sortableColumns = [],\n sortedBy,\n sortDirection,\n onSort,\n}: DataTableProps<T>) => {\n const visibleColumns = columns.filter((col) => !col.isHidden);\n\n const handleSortClick = (column: DataTableColumn<T>) => {\n if (!onSort) return;\n\n const isCurrentlySorted = sortedBy === column.id;\n const newDirection =\n isCurrentlySorted && sortDirection === \"ASC\" ? \"DESC\" : \"ASC\";\n\n onSort(column.id, newDirection);\n };\n\n const getSortState = (columnId: string): AriaAttributes[\"aria-sort\"] => {\n if (sortedBy !== columnId) return \"none\";\n return sortDirection === \"ASC\" ? \"ascending\" : \"descending\";\n };\n\n if (error) {\n return (\n <EmptyState\n columns={visibleColumns}\n message={typeof error === \"string\" ? error : errorMessage}\n name={name}\n testId={testId}\n isError\n />\n );\n }\n\n if (loading) {\n return (\n <div\n className=\"proton-DataTable\"\n data-testid={testId}\n aria-busy=\"true\"\n aria-label={`Loading ${name}...`}\n >\n <Table name={name}>\n <Table.Header>\n {visibleColumns.map((column) => (\n <Table.Column key={column.id} id={column.id}>\n {column.header}\n </Table.Column>\n ))}\n </Table.Header>\n <Table.Body>\n {Array.from({ length: loadingRows }).map((_, index) => (\n <Table.Row key={`loading-${index}`}>\n {visibleColumns.map((column) => (\n <Table.Cell key={column.id}>\n {tombstoneComponent || (\n <Tombstone\n height=\"1rem\"\n width={\n // cascading tombstone widths\n index % 3 === 0\n ? \"80%\"\n : index % 3 === 1\n ? \"60%\"\n : \"90%\"\n }\n />\n )}\n </Table.Cell>\n ))}\n </Table.Row>\n ))}\n </Table.Body>\n </Table>\n </div>\n );\n }\n\n if (!data || data.length === 0) {\n return (\n <EmptyState\n columns={visibleColumns}\n message={emptyMessage}\n name={name}\n testId={testId}\n />\n );\n }\n\n return (\n <div className=\"proton-DataTable\" data-testid={testId}>\n <Table name={name}>\n <Table.Header>\n {visibleColumns.map((column) => {\n const isSortable = sortableColumns.includes(column.id);\n const sortState = getSortState(column.id);\n\n return (\n <Table.Column\n key={column.id}\n id={column.id}\n {...(isSortable && { \"aria-sort\": sortState })}\n >\n <span className=\"proton-DataTable__header-content\">\n {column.header}\n\n {isSortable && (\n <button\n className=\"proton-DataTable__sort-button\"\n onClick={() => handleSortClick(column)}\n aria-label={`Sort by ${column.header}: ${sortState}`}\n type=\"button\"\n >\n <ChevronUp\n size={12}\n color={\n sortState === \"ascending\"\n ? \"var(--proton-color__primary)\"\n : \"currentColor\"\n }\n />\n </button>\n )}\n </span>\n </Table.Column>\n );\n })}\n </Table.Header>\n <Table.Body>\n {data.map((row, index) => {\n const tableRow = row as TableRowData;\n\n return (\n <DataTableRow\n key={tableRow.key ?? index}\n row={row}\n columns={visibleColumns}\n rowIndex={index}\n onRowClick={onRowClick}\n memoize={memoize}\n dataTestId={tableRow.dataTestId}\n />\n );\n })}\n </Table.Body>\n </Table>\n </div>\n );\n};\n\nconst EmptyState = ({\n columns,\n message,\n name,\n testId,\n isError = false,\n}: {\n columns: DataTableColumn<any>[];\n name: string;\n testId?: string;\n message: string;\n isError?: boolean;\n}) => {\n return (\n <div className=\"proton-DataTable\" data-testid={testId}>\n <Table name={name}>\n <Table.Header>\n {columns.map((column) => (\n <Table.Column key={column.id} id={column.id}>\n {column.header}\n </Table.Column>\n ))}\n </Table.Header>\n <Table.Body>\n <Table.Row>\n <Table.Cell colSpan={columns?.length || 1}>\n <div\n className=\"proton-DataTable__message-cell\"\n role={isError ? \"alert\" : \"status\"}\n aria-live=\"polite\"\n >\n <Elevation>\n <div className=\"proton-DataTable__empty-cell\">{message}</div>\n </Elevation>\n </div>\n </Table.Cell>\n </Table.Row>\n </Table.Body>\n </Table>\n </div>\n );\n};\n\nDataTable.displayName = \"ProtonUIDataTable\";\n"],"names":["DataTable","columns","data","loading","tombstoneComponent","error","name","onRowClick","emptyMessage","errorMessage","loadingRows","testId","memoize","sortableColumns","sortedBy","sortDirection","onSort","visibleColumns","col","handleSortClick","column","newDirection","getSortState","columnId","jsx","EmptyState","jsxs","Table","_","index","Tombstone","isSortable","sortState","ChevronUp","row","tableRow","DataTableRow","message","isError","Elevation"],"mappings":"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"}
@@ -1,54 +1,54 @@
1
- import { j as e } from "../../../node_modules/react/jsx-runtime.es.js";
1
+ import { jsx as e, jsxs as h } from "react/jsx-runtime";
2
2
  import { Table as a } from "../BaseTable/Table.es.js";
3
- import { Elevation as v } from "../../Elevation/Elevation.es.js";
4
- import { Tombstone as _ } from "../../Tombstone/Tombstone.es.js";
5
- import { ChevronUp as N } from "../../Icon/IconComponents/ChevronUp.es.js";
6
- import { DataTableRow as w } from "./DataTableRow.es.js";
3
+ import { Elevation as w } from "../../Elevation/Elevation.es.js";
4
+ import { Tombstone as A } from "../../Tombstone/Tombstone.es.js";
5
+ import { ChevronUp as E } from "../../Icon/IconComponents/ChevronUp.es.js";
6
+ import { DataTableRow as H } from "./DataTableRow.es.js";
7
7
  /* empty css */
8
8
  /* empty css */
9
- const A = ({
10
- columns: l,
11
- data: n = [],
12
- loading: h = !1,
13
- tombstoneComponent: p,
14
- error: o = !1,
15
- name: s,
16
- onRowClick: f,
17
- emptyMessage: C = "Data Unavailable",
18
- errorMessage: u = "An error occurred",
19
- loadingRows: g = 5,
9
+ const R = ({
10
+ columns: d,
11
+ data: o = [],
12
+ loading: p = !1,
13
+ tombstoneComponent: m,
14
+ error: s = !1,
15
+ name: l,
16
+ onRowClick: u,
17
+ emptyMessage: y = "Data Unavailable",
18
+ errorMessage: T = "An error occurred",
19
+ loadingRows: S = 5,
20
20
  "data-testid": c,
21
- memoize: y = !0,
22
- sortableColumns: T = [],
23
- sortedBy: j,
24
- sortDirection: x,
25
- onSort: m
21
+ memoize: D = !0,
22
+ sortableColumns: v = [],
23
+ sortedBy: b,
24
+ sortDirection: f,
25
+ onSort: C
26
26
  }) => {
27
- const d = l.filter((r) => !r.isHidden), S = (r) => {
28
- if (!m) return;
29
- const i = j === r.id && x === "ASC" ? "DESC" : "ASC";
30
- m(r.id, i);
31
- }, D = (r) => j !== r ? "none" : x === "ASC" ? "ascending" : "descending";
32
- return o ? /* @__PURE__ */ e.jsx(
33
- b,
27
+ const n = d.filter((r) => !r.isHidden), _ = (r) => {
28
+ if (!C) return;
29
+ const i = b === r.id && f === "ASC" ? "DESC" : "ASC";
30
+ C(r.id, i);
31
+ }, N = (r) => b !== r ? "none" : f === "ASC" ? "ascending" : "descending";
32
+ return s ? /* @__PURE__ */ e(
33
+ g,
34
34
  {
35
- columns: d,
36
- message: typeof o == "string" ? o : u,
37
- name: s,
35
+ columns: n,
36
+ message: typeof s == "string" ? s : T,
37
+ name: l,
38
38
  testId: c,
39
39
  isError: !0
40
40
  }
41
- ) : h ? /* @__PURE__ */ e.jsx(
41
+ ) : p ? /* @__PURE__ */ e(
42
42
  "div",
43
43
  {
44
44
  className: "proton-DataTable",
45
45
  "data-testid": c,
46
46
  "aria-busy": "true",
47
- "aria-label": `Loading ${s}...`,
48
- children: /* @__PURE__ */ e.jsxs(a, { name: s, children: [
49
- /* @__PURE__ */ e.jsx(a.Header, { children: d.map((r) => /* @__PURE__ */ e.jsx(a.Column, { id: r.id, children: r.header }, r.id)) }),
50
- /* @__PURE__ */ e.jsx(a.Body, { children: Array.from({ length: g }).map((r, t) => /* @__PURE__ */ e.jsx(a.Row, { children: d.map((i) => /* @__PURE__ */ e.jsx(a.Cell, { children: p || /* @__PURE__ */ e.jsx(
51
- _,
47
+ "aria-label": `Loading ${l}...`,
48
+ children: /* @__PURE__ */ h(a, { name: l, children: [
49
+ /* @__PURE__ */ e(a.Header, { children: n.map((r) => /* @__PURE__ */ e(a.Column, { id: r.id, children: r.header }, r.id)) }),
50
+ /* @__PURE__ */ e(a.Body, { children: Array.from({ length: S }).map((r, t) => /* @__PURE__ */ e(a.Row, { children: n.map((i) => /* @__PURE__ */ e(a.Cell, { children: m || /* @__PURE__ */ e(
51
+ A,
52
52
  {
53
53
  height: "1rem",
54
54
  width: (
@@ -59,33 +59,33 @@ const A = ({
59
59
  ) }, i.id)) }, `loading-${t}`)) })
60
60
  ] })
61
61
  }
62
- ) : !n || n.length === 0 ? /* @__PURE__ */ e.jsx(
63
- b,
62
+ ) : !o || o.length === 0 ? /* @__PURE__ */ e(
63
+ g,
64
64
  {
65
- columns: d,
66
- message: C,
67
- name: s,
65
+ columns: n,
66
+ message: y,
67
+ name: l,
68
68
  testId: c
69
69
  }
70
- ) : /* @__PURE__ */ e.jsx("div", { className: "proton-DataTable", "data-testid": c, children: /* @__PURE__ */ e.jsxs(a, { name: s, children: [
71
- /* @__PURE__ */ e.jsx(a.Header, { children: d.map((r) => {
72
- const t = T.includes(r.id), i = D(r.id);
73
- return /* @__PURE__ */ e.jsx(
70
+ ) : /* @__PURE__ */ e("div", { className: "proton-DataTable", "data-testid": c, children: /* @__PURE__ */ h(a, { name: l, children: [
71
+ /* @__PURE__ */ e(a.Header, { children: n.map((r) => {
72
+ const t = v.includes(r.id), i = N(r.id);
73
+ return /* @__PURE__ */ e(
74
74
  a.Column,
75
75
  {
76
76
  id: r.id,
77
77
  ...t && { "aria-sort": i },
78
- children: /* @__PURE__ */ e.jsxs("span", { className: "proton-DataTable__header-content", children: [
78
+ children: /* @__PURE__ */ h("span", { className: "proton-DataTable__header-content", children: [
79
79
  r.header,
80
- t && /* @__PURE__ */ e.jsx(
80
+ t && /* @__PURE__ */ e(
81
81
  "button",
82
82
  {
83
83
  className: "proton-DataTable__sort-button",
84
- onClick: () => S(r),
84
+ onClick: () => _(r),
85
85
  "aria-label": `Sort by ${r.header}: ${i}`,
86
86
  type: "button",
87
- children: /* @__PURE__ */ e.jsx(
88
- N,
87
+ children: /* @__PURE__ */ e(
88
+ E,
89
89
  {
90
90
  size: 12,
91
91
  color: i === "ascending" ? "var(--proton-color__primary)" : "currentColor"
@@ -98,42 +98,42 @@ const A = ({
98
98
  r.id
99
99
  );
100
100
  }) }),
101
- /* @__PURE__ */ e.jsx(a.Body, { children: n.map((r, t) => {
101
+ /* @__PURE__ */ e(a.Body, { children: o.map((r, t) => {
102
102
  const i = r;
103
- return /* @__PURE__ */ e.jsx(
104
- w,
103
+ return /* @__PURE__ */ e(
104
+ H,
105
105
  {
106
106
  row: r,
107
- columns: d,
107
+ columns: n,
108
108
  rowIndex: t,
109
- onRowClick: f,
110
- memoize: y,
109
+ onRowClick: u,
110
+ memoize: D,
111
111
  dataTestId: i.dataTestId
112
112
  },
113
113
  i.key ?? t
114
114
  );
115
115
  }) })
116
116
  ] }) });
117
- }, b = ({
118
- columns: l,
119
- message: n,
120
- name: h,
121
- testId: p,
122
- isError: o = !1
123
- }) => /* @__PURE__ */ e.jsx("div", { className: "proton-DataTable", "data-testid": p, children: /* @__PURE__ */ e.jsxs(a, { name: h, children: [
124
- /* @__PURE__ */ e.jsx(a.Header, { children: l.map((s) => /* @__PURE__ */ e.jsx(a.Column, { id: s.id, children: s.header }, s.id)) }),
125
- /* @__PURE__ */ e.jsx(a.Body, { children: /* @__PURE__ */ e.jsx(a.Row, { children: /* @__PURE__ */ e.jsx(a.Cell, { colSpan: (l == null ? void 0 : l.length) || 1, children: /* @__PURE__ */ e.jsx(
117
+ }, g = ({
118
+ columns: d,
119
+ message: o,
120
+ name: p,
121
+ testId: m,
122
+ isError: s = !1
123
+ }) => /* @__PURE__ */ e("div", { className: "proton-DataTable", "data-testid": m, children: /* @__PURE__ */ h(a, { name: p, children: [
124
+ /* @__PURE__ */ e(a.Header, { children: d.map((l) => /* @__PURE__ */ e(a.Column, { id: l.id, children: l.header }, l.id)) }),
125
+ /* @__PURE__ */ e(a.Body, { children: /* @__PURE__ */ e(a.Row, { children: /* @__PURE__ */ e(a.Cell, { colSpan: (d == null ? void 0 : d.length) || 1, children: /* @__PURE__ */ e(
126
126
  "div",
127
127
  {
128
128
  className: "proton-DataTable__message-cell",
129
- role: o ? "alert" : "status",
129
+ role: s ? "alert" : "status",
130
130
  "aria-live": "polite",
131
- children: /* @__PURE__ */ e.jsx(v, { children: /* @__PURE__ */ e.jsx("div", { className: "proton-DataTable__empty-cell", children: n }) })
131
+ children: /* @__PURE__ */ e(w, { children: /* @__PURE__ */ e("div", { className: "proton-DataTable__empty-cell", children: o }) })
132
132
  }
133
133
  ) }) }) })
134
134
  ] }) });
135
- A.displayName = "ProtonUIDataTable";
135
+ R.displayName = "ProtonUIDataTable";
136
136
  export {
137
- A as DataTable
137
+ R as DataTable
138
138
  };
139
139
  //# sourceMappingURL=DataTable.es.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"DataTable.es.js","sources":["../../../../src/components/Table/DataTable/DataTable.tsx"],"sourcesContent":["\"use client\";\n\nimport { AriaAttributes, ReactNode } from \"react\";\nimport { deepEqual } from \"../../../utils/deepEqual\";\n\nimport { Table, TableRowData } from \"../BaseTable/Table\";\nimport { Elevation } from \"../../Elevation/Elevation\";\nimport { Tombstone } from \"../../Tombstone/Tombstone\";\nimport { ChevronUp } from \"../../Icon/IconComponents/ChevronUp\";\nimport { DataTableRow } from \"./DataTableRow\";\n\nimport \"../BaseTable/Table.css\";\nimport \"./DataTable.css\";\n\nexport type SortDirection = \"ASC\" | \"DESC\";\n\ntype SortingConfig =\n | {\n /** When sorting is enabled, all these props must be provided together. */\n sortableColumns: string[];\n sortedBy: string;\n sortDirection: SortDirection;\n onSort: (columnId: string, direction: SortDirection) => void;\n }\n | {\n /** When no sorting is needed, none of these props should be provided */\n sortableColumns?: never;\n sortedBy?: never;\n sortDirection?: never;\n onSort?: never;\n };\n\nexport interface DataTableColumn<T> {\n /** id for the column */\n id: string;\n /** Header text or component */\n header: ReactNode;\n /** Function to render cell content from row data */\n cell: (row: T) => ReactNode;\n /** Whether this column should be hidden */\n isHidden?: boolean;\n}\n\ninterface BaseDataTableProps<T = any> {\n /**\n * Array of column definitions\n * - {@link DataTableColumn}\n */\n columns: DataTableColumn<T>[];\n /**\n * Array of data objects to display. Can be empty array for loading/empty states\n * @default []\n * */\n data?: T[] | null;\n /**\n * Test ID for testing purposes\n * */\n \"data-testid\"?: string;\n /**\n * Error state\n * @default false\n */\n error?: boolean | string;\n /**\n * Custom empty state message\n * @default \"Data Unavailable\"\n */\n emptyMessage?: string;\n /**\n * Custom error message\n * @default \"An error occurred\"\n */\n errorMessage?: string;\n /** Callback when a row is clicked */\n onRowClick?: (row: T) => void;\n /** Loading state */\n loading?: boolean;\n /**\n * Number of skeleton rows to show in loading state\n * @default 5\n */\n loadingRows?: number;\n /**\n * Enable row-level memoization for performance optimization.\n * Uses deepEqual to compare row data. @see {@link deepEqual}\n * @default true\n */\n memoize?: boolean;\n /**\n * Table name/caption for accessibility. Provides essential context for screen readers.\n * */\n name: string;\n /** Optional tombstone component to use when loading */\n tombstoneComponent?: ReactNode;\n}\n\nexport type DataTableProps<T = any> = BaseDataTableProps<T> & SortingConfig;\n\n/**\n * DataTable is a declarative wrapper around the base Table component.\n * API:\n * - {@link DataTableProps}\n * - {@link SortingConfig}\n *\n * @note Row memoization is enabled by default. Rows only re-render when row data or index changes.\n */\nexport const DataTable = <T,>({\n columns,\n data = [],\n loading = false,\n tombstoneComponent,\n error = false,\n name,\n onRowClick,\n emptyMessage = \"Data Unavailable\",\n errorMessage = \"An error occurred\",\n loadingRows = 5,\n \"data-testid\": testId,\n memoize = true,\n sortableColumns = [],\n sortedBy,\n sortDirection,\n onSort,\n}: DataTableProps<T>) => {\n const visibleColumns = columns.filter((col) => !col.isHidden);\n\n const handleSortClick = (column: DataTableColumn<T>) => {\n if (!onSort) return;\n\n const isCurrentlySorted = sortedBy === column.id;\n const newDirection =\n isCurrentlySorted && sortDirection === \"ASC\" ? \"DESC\" : \"ASC\";\n\n onSort(column.id, newDirection);\n };\n\n const getSortState = (columnId: string): AriaAttributes[\"aria-sort\"] => {\n if (sortedBy !== columnId) return \"none\";\n return sortDirection === \"ASC\" ? \"ascending\" : \"descending\";\n };\n\n if (error) {\n return (\n <EmptyState\n columns={visibleColumns}\n message={typeof error === \"string\" ? error : errorMessage}\n name={name}\n testId={testId}\n isError\n />\n );\n }\n\n if (loading) {\n return (\n <div\n className=\"proton-DataTable\"\n data-testid={testId}\n aria-busy=\"true\"\n aria-label={`Loading ${name}...`}\n >\n <Table name={name}>\n <Table.Header>\n {visibleColumns.map((column) => (\n <Table.Column key={column.id} id={column.id}>\n {column.header}\n </Table.Column>\n ))}\n </Table.Header>\n <Table.Body>\n {Array.from({ length: loadingRows }).map((_, index) => (\n <Table.Row key={`loading-${index}`}>\n {visibleColumns.map((column) => (\n <Table.Cell key={column.id}>\n {tombstoneComponent || (\n <Tombstone\n height=\"1rem\"\n width={\n // cascading tombstone widths\n index % 3 === 0\n ? \"80%\"\n : index % 3 === 1\n ? \"60%\"\n : \"90%\"\n }\n />\n )}\n </Table.Cell>\n ))}\n </Table.Row>\n ))}\n </Table.Body>\n </Table>\n </div>\n );\n }\n\n if (!data || data.length === 0) {\n return (\n <EmptyState\n columns={visibleColumns}\n message={emptyMessage}\n name={name}\n testId={testId}\n />\n );\n }\n\n return (\n <div className=\"proton-DataTable\" data-testid={testId}>\n <Table name={name}>\n <Table.Header>\n {visibleColumns.map((column) => {\n const isSortable = sortableColumns.includes(column.id);\n const sortState = getSortState(column.id);\n\n return (\n <Table.Column\n key={column.id}\n id={column.id}\n {...(isSortable && { \"aria-sort\": sortState })}\n >\n <span className=\"proton-DataTable__header-content\">\n {column.header}\n\n {isSortable && (\n <button\n className=\"proton-DataTable__sort-button\"\n onClick={() => handleSortClick(column)}\n aria-label={`Sort by ${column.header}: ${sortState}`}\n type=\"button\"\n >\n <ChevronUp\n size={12}\n color={\n sortState === \"ascending\"\n ? \"var(--proton-color__primary)\"\n : \"currentColor\"\n }\n />\n </button>\n )}\n </span>\n </Table.Column>\n );\n })}\n </Table.Header>\n <Table.Body>\n {data.map((row, index) => {\n const tableRow = row as TableRowData;\n\n return (\n <DataTableRow\n key={tableRow.key ?? index}\n row={row}\n columns={visibleColumns}\n rowIndex={index}\n onRowClick={onRowClick}\n memoize={memoize}\n dataTestId={tableRow.dataTestId}\n />\n );\n })}\n </Table.Body>\n </Table>\n </div>\n );\n};\n\nconst EmptyState = ({\n columns,\n message,\n name,\n testId,\n isError = false,\n}: {\n columns: DataTableColumn<any>[];\n name: string;\n testId?: string;\n message: string;\n isError?: boolean;\n}) => {\n return (\n <div className=\"proton-DataTable\" data-testid={testId}>\n <Table name={name}>\n <Table.Header>\n {columns.map((column) => (\n <Table.Column key={column.id} id={column.id}>\n {column.header}\n </Table.Column>\n ))}\n </Table.Header>\n <Table.Body>\n <Table.Row>\n <Table.Cell colSpan={columns?.length || 1}>\n <div\n className=\"proton-DataTable__message-cell\"\n role={isError ? \"alert\" : \"status\"}\n aria-live=\"polite\"\n >\n <Elevation>\n <div className=\"proton-DataTable__empty-cell\">{message}</div>\n </Elevation>\n </div>\n </Table.Cell>\n </Table.Row>\n </Table.Body>\n </Table>\n </div>\n );\n};\n\nDataTable.displayName = \"ProtonUIDataTable\";\n"],"names":["DataTable","columns","data","loading","tombstoneComponent","error","name","onRowClick","emptyMessage","errorMessage","loadingRows","testId","memoize","sortableColumns","sortedBy","sortDirection","onSort","visibleColumns","col","handleSortClick","column","newDirection","getSortState","columnId","jsx","EmptyState","jsxs","Table","_","index","Tombstone","isSortable","sortState","ChevronUp","row","tableRow","DataTableRow","message","isError","Elevation"],"mappings":";;;;;;;;AA0GO,MAAMA,IAAY,CAAK;AAAA,EAC5B,SAAAC;AAAA,EACA,MAAAC,IAAO,CAAA;AAAA,EACP,SAAAC,IAAU;AAAA,EACV,oBAAAC;AAAA,EACA,OAAAC,IAAQ;AAAA,EACR,MAAAC;AAAA,EACA,YAAAC;AAAA,EACA,cAAAC,IAAe;AAAA,EACf,cAAAC,IAAe;AAAA,EACf,aAAAC,IAAc;AAAA,EACd,eAAeC;AAAA,EACf,SAAAC,IAAU;AAAA,EACV,iBAAAC,IAAkB,CAAA;AAAA,EAClB,UAAAC;AAAA,EACA,eAAAC;AAAA,EACA,QAAAC;AACF,MAAyB;AACvB,QAAMC,IAAiBhB,EAAQ,OAAO,CAACiB,MAAQ,CAACA,EAAI,QAAQ,GAEtDC,IAAkB,CAACC,MAA+B;AACtD,QAAI,CAACJ,EAAQ;AAGb,UAAMK,IADoBP,MAAaM,EAAO,MAEvBL,MAAkB,QAAQ,SAAS;AAE1D,IAAAC,EAAOI,EAAO,IAAIC,CAAY;AAAA,EAChC,GAEMC,IAAe,CAACC,MAChBT,MAAaS,IAAiB,SAC3BR,MAAkB,QAAQ,cAAc;AAGjD,SAAIV,IAEAmB,gBAAAA,EAAAA;AAAAA,IAACC;AAAA,IAAA;AAAA,MACC,SAASR;AAAA,MACT,SAAS,OAAOZ,KAAU,WAAWA,IAAQI;AAAA,MAC7C,MAAAH;AAAA,MACA,QAAAK;AAAA,MACA,SAAO;AAAA,IAAA;AAAA,EAAA,IAKTR,IAEAqB,gBAAAA,EAAAA;AAAAA,IAAC;AAAA,IAAA;AAAA,MACC,WAAU;AAAA,MACV,eAAab;AAAA,MACb,aAAU;AAAA,MACV,cAAY,WAAWL,CAAI;AAAA,MAE3B,UAAAoB,gBAAAA,EAAAA,KAACC,KAAM,MAAArB,GACL,UAAA;AAAA,QAAAkB,gBAAAA,MAACG,EAAM,QAAN,EACE,YAAe,IAAI,CAACP,MACnBI,gBAAAA,EAAAA,IAACG,EAAM,QAAN,EAA6B,IAAIP,EAAO,IACtC,UAAAA,EAAO,UADSA,EAAO,EAE1B,CACD,GACH;AAAA,QACAI,gBAAAA,EAAAA,IAACG,EAAM,MAAN,EACE,UAAA,MAAM,KAAK,EAAE,QAAQjB,EAAA,CAAa,EAAE,IAAI,CAACkB,GAAGC,MAC3CL,gBAAAA,MAACG,EAAM,KAAN,EACE,UAAAV,EAAe,IAAI,CAACG,MACnBI,gBAAAA,EAAAA,IAACG,EAAM,MAAN,EACE,UAAAvB,KACCoB,gBAAAA,EAAAA;AAAAA,UAACM;AAAA,UAAA;AAAA,YACC,QAAO;AAAA,YACP;AAAA;AAAA,cAEED,IAAQ,MAAM,IACV,QACAA,IAAQ,MAAM,IACZ,QACA;AAAA;AAAA,UAAA;AAAA,QAAA,KAVGT,EAAO,EAcxB,CACD,KAjBa,WAAWS,CAAK,EAkBhC,CACD,EAAA,CACH;AAAA,MAAA,EAAA,CACF;AAAA,IAAA;AAAA,EAAA,IAKF,CAAC3B,KAAQA,EAAK,WAAW,IAEzBsB,gBAAAA,EAAAA;AAAAA,IAACC;AAAA,IAAA;AAAA,MACC,SAASR;AAAA,MACT,SAAST;AAAA,MACT,MAAAF;AAAA,MACA,QAAAK;AAAA,IAAA;AAAA,EAAA,IAMJa,gBAAAA,EAAAA,IAAC,SAAI,WAAU,oBAAmB,eAAab,GAC7C,UAAAe,gBAAAA,EAAAA,KAACC,KAAM,MAAArB,GACL,UAAA;AAAA,IAAAkB,gBAAAA,EAAAA,IAACG,EAAM,QAAN,EACE,UAAAV,EAAe,IAAI,CAACG,MAAW;AAC9B,YAAMW,IAAalB,EAAgB,SAASO,EAAO,EAAE,GAC/CY,IAAYV,EAAaF,EAAO,EAAE;AAExC,aACEI,gBAAAA,EAAAA;AAAAA,QAACG,EAAM;AAAA,QAAN;AAAA,UAEC,IAAIP,EAAO;AAAA,UACV,GAAIW,KAAc,EAAE,aAAaC,EAAA;AAAA,UAElC,UAAAN,gBAAAA,EAAAA,KAAC,QAAA,EAAK,WAAU,oCACb,UAAA;AAAA,YAAAN,EAAO;AAAA,YAEPW,KACCP,gBAAAA,EAAAA;AAAAA,cAAC;AAAA,cAAA;AAAA,gBACC,WAAU;AAAA,gBACV,SAAS,MAAML,EAAgBC,CAAM;AAAA,gBACrC,cAAY,WAAWA,EAAO,MAAM,KAAKY,CAAS;AAAA,gBAClD,MAAK;AAAA,gBAEL,UAAAR,gBAAAA,EAAAA;AAAAA,kBAACS;AAAA,kBAAA;AAAA,oBACC,MAAM;AAAA,oBACN,OACED,MAAc,cACV,iCACA;AAAA,kBAAA;AAAA,gBAAA;AAAA,cAER;AAAA,YAAA;AAAA,UACF,EAAA,CAEJ;AAAA,QAAA;AAAA,QAxBKZ,EAAO;AAAA,MAAA;AAAA,IA2BlB,CAAC,EAAA,CACH;AAAA,IACAI,gBAAAA,MAACG,EAAM,MAAN,EACE,YAAK,IAAI,CAACO,GAAKL,MAAU;AACxB,YAAMM,IAAWD;AAEjB,aACEV,gBAAAA,EAAAA;AAAAA,QAACY;AAAA,QAAA;AAAA,UAEC,KAAAF;AAAA,UACA,SAASjB;AAAA,UACT,UAAUY;AAAA,UACV,YAAAtB;AAAA,UACA,SAAAK;AAAA,UACA,YAAYuB,EAAS;AAAA,QAAA;AAAA,QANhBA,EAAS,OAAON;AAAA,MAAA;AAAA,IAS3B,CAAC,EAAA,CACH;AAAA,EAAA,EAAA,CACF,EAAA,CACF;AAEJ,GAEMJ,IAAa,CAAC;AAAA,EAClB,SAAAxB;AAAA,EACA,SAAAoC;AAAA,EACA,MAAA/B;AAAA,EACA,QAAAK;AAAA,EACA,SAAA2B,IAAU;AACZ,MAQId,gBAAAA,EAAAA,IAAC,SAAI,WAAU,oBAAmB,eAAab,GAC7C,UAAAe,gBAAAA,EAAAA,KAACC,KAAM,MAAArB,GACL,UAAA;AAAA,EAAAkB,gBAAAA,MAACG,EAAM,QAAN,EACE,YAAQ,IAAI,CAACP,MACZI,gBAAAA,EAAAA,IAACG,EAAM,QAAN,EAA6B,IAAIP,EAAO,IACtC,UAAAA,EAAO,UADSA,EAAO,EAE1B,CACD,GACH;AAAA,EACAI,gBAAAA,EAAAA,IAACG,EAAM,MAAN,EACC,gCAACA,EAAM,KAAN,EACC,UAAAH,gBAAAA,EAAAA,IAACG,EAAM,MAAN,EAAW,UAAS1B,KAAA,gBAAAA,EAAS,WAAU,GACtC,UAAAuB,gBAAAA,EAAAA;AAAAA,IAAC;AAAA,IAAA;AAAA,MACC,WAAU;AAAA,MACV,MAAMc,IAAU,UAAU;AAAA,MAC1B,aAAU;AAAA,MAEV,gCAACC,GAAA,EACC,UAAAf,gBAAAA,EAAAA,IAAC,SAAI,WAAU,gCAAgC,aAAQ,EAAA,CACzD;AAAA,IAAA;AAAA,EAAA,EACF,CACF,GACF,EAAA,CACF;AAAA,EAAA,CACF,EAAA,CACF;AAIJxB,EAAU,cAAc;"}
1
+ {"version":3,"file":"DataTable.es.js","sources":["../../../../src/components/Table/DataTable/DataTable.tsx"],"sourcesContent":["\"use client\";\n\nimport { AriaAttributes, ReactNode } from \"react\";\nimport { deepEqual } from \"../../../utils/deepEqual\";\n\nimport { Table, TableRowData } from \"../BaseTable/Table\";\nimport { Elevation } from \"../../Elevation/Elevation\";\nimport { Tombstone } from \"../../Tombstone/Tombstone\";\nimport { ChevronUp } from \"../../Icon/IconComponents/ChevronUp\";\nimport { DataTableRow } from \"./DataTableRow\";\n\nimport \"../BaseTable/Table.css\";\nimport \"./DataTable.css\";\n\nexport type SortDirection = \"ASC\" | \"DESC\";\n\ntype SortingConfig =\n | {\n /** When sorting is enabled, all these props must be provided together. */\n sortableColumns: string[];\n sortedBy: string;\n sortDirection: SortDirection;\n onSort: (columnId: string, direction: SortDirection) => void;\n }\n | {\n /** When no sorting is needed, none of these props should be provided */\n sortableColumns?: never;\n sortedBy?: never;\n sortDirection?: never;\n onSort?: never;\n };\n\nexport interface DataTableColumn<T> {\n /** id for the column */\n id: string;\n /** Header text or component */\n header: ReactNode;\n /** Function to render cell content from row data */\n cell: (row: T) => ReactNode;\n /** Whether this column should be hidden */\n isHidden?: boolean;\n}\n\ninterface BaseDataTableProps<T = any> {\n /**\n * Array of column definitions\n * - {@link DataTableColumn}\n */\n columns: DataTableColumn<T>[];\n /**\n * Array of data objects to display. Can be empty array for loading/empty states\n * @default []\n * */\n data?: T[] | null;\n /**\n * Test ID for testing purposes\n * */\n \"data-testid\"?: string;\n /**\n * Error state\n * @default false\n */\n error?: boolean | string;\n /**\n * Custom empty state message\n * @default \"Data Unavailable\"\n */\n emptyMessage?: string;\n /**\n * Custom error message\n * @default \"An error occurred\"\n */\n errorMessage?: string;\n /** Callback when a row is clicked */\n onRowClick?: (row: T) => void;\n /** Loading state */\n loading?: boolean;\n /**\n * Number of skeleton rows to show in loading state\n * @default 5\n */\n loadingRows?: number;\n /**\n * Enable row-level memoization for performance optimization.\n * Uses deepEqual to compare row data. @see {@link deepEqual}\n * @default true\n */\n memoize?: boolean;\n /**\n * Table name/caption for accessibility. Provides essential context for screen readers.\n * */\n name: string;\n /** Optional tombstone component to use when loading */\n tombstoneComponent?: ReactNode;\n}\n\nexport type DataTableProps<T = any> = BaseDataTableProps<T> & SortingConfig;\n\n/**\n * DataTable is a declarative wrapper around the base Table component.\n * API:\n * - {@link DataTableProps}\n * - {@link SortingConfig}\n *\n * @note Row memoization is enabled by default. Rows only re-render when row data or index changes.\n */\nexport const DataTable = <T,>({\n columns,\n data = [],\n loading = false,\n tombstoneComponent,\n error = false,\n name,\n onRowClick,\n emptyMessage = \"Data Unavailable\",\n errorMessage = \"An error occurred\",\n loadingRows = 5,\n \"data-testid\": testId,\n memoize = true,\n sortableColumns = [],\n sortedBy,\n sortDirection,\n onSort,\n}: DataTableProps<T>) => {\n const visibleColumns = columns.filter((col) => !col.isHidden);\n\n const handleSortClick = (column: DataTableColumn<T>) => {\n if (!onSort) return;\n\n const isCurrentlySorted = sortedBy === column.id;\n const newDirection =\n isCurrentlySorted && sortDirection === \"ASC\" ? \"DESC\" : \"ASC\";\n\n onSort(column.id, newDirection);\n };\n\n const getSortState = (columnId: string): AriaAttributes[\"aria-sort\"] => {\n if (sortedBy !== columnId) return \"none\";\n return sortDirection === \"ASC\" ? \"ascending\" : \"descending\";\n };\n\n if (error) {\n return (\n <EmptyState\n columns={visibleColumns}\n message={typeof error === \"string\" ? error : errorMessage}\n name={name}\n testId={testId}\n isError\n />\n );\n }\n\n if (loading) {\n return (\n <div\n className=\"proton-DataTable\"\n data-testid={testId}\n aria-busy=\"true\"\n aria-label={`Loading ${name}...`}\n >\n <Table name={name}>\n <Table.Header>\n {visibleColumns.map((column) => (\n <Table.Column key={column.id} id={column.id}>\n {column.header}\n </Table.Column>\n ))}\n </Table.Header>\n <Table.Body>\n {Array.from({ length: loadingRows }).map((_, index) => (\n <Table.Row key={`loading-${index}`}>\n {visibleColumns.map((column) => (\n <Table.Cell key={column.id}>\n {tombstoneComponent || (\n <Tombstone\n height=\"1rem\"\n width={\n // cascading tombstone widths\n index % 3 === 0\n ? \"80%\"\n : index % 3 === 1\n ? \"60%\"\n : \"90%\"\n }\n />\n )}\n </Table.Cell>\n ))}\n </Table.Row>\n ))}\n </Table.Body>\n </Table>\n </div>\n );\n }\n\n if (!data || data.length === 0) {\n return (\n <EmptyState\n columns={visibleColumns}\n message={emptyMessage}\n name={name}\n testId={testId}\n />\n );\n }\n\n return (\n <div className=\"proton-DataTable\" data-testid={testId}>\n <Table name={name}>\n <Table.Header>\n {visibleColumns.map((column) => {\n const isSortable = sortableColumns.includes(column.id);\n const sortState = getSortState(column.id);\n\n return (\n <Table.Column\n key={column.id}\n id={column.id}\n {...(isSortable && { \"aria-sort\": sortState })}\n >\n <span className=\"proton-DataTable__header-content\">\n {column.header}\n\n {isSortable && (\n <button\n className=\"proton-DataTable__sort-button\"\n onClick={() => handleSortClick(column)}\n aria-label={`Sort by ${column.header}: ${sortState}`}\n type=\"button\"\n >\n <ChevronUp\n size={12}\n color={\n sortState === \"ascending\"\n ? \"var(--proton-color__primary)\"\n : \"currentColor\"\n }\n />\n </button>\n )}\n </span>\n </Table.Column>\n );\n })}\n </Table.Header>\n <Table.Body>\n {data.map((row, index) => {\n const tableRow = row as TableRowData;\n\n return (\n <DataTableRow\n key={tableRow.key ?? index}\n row={row}\n columns={visibleColumns}\n rowIndex={index}\n onRowClick={onRowClick}\n memoize={memoize}\n dataTestId={tableRow.dataTestId}\n />\n );\n })}\n </Table.Body>\n </Table>\n </div>\n );\n};\n\nconst EmptyState = ({\n columns,\n message,\n name,\n testId,\n isError = false,\n}: {\n columns: DataTableColumn<any>[];\n name: string;\n testId?: string;\n message: string;\n isError?: boolean;\n}) => {\n return (\n <div className=\"proton-DataTable\" data-testid={testId}>\n <Table name={name}>\n <Table.Header>\n {columns.map((column) => (\n <Table.Column key={column.id} id={column.id}>\n {column.header}\n </Table.Column>\n ))}\n </Table.Header>\n <Table.Body>\n <Table.Row>\n <Table.Cell colSpan={columns?.length || 1}>\n <div\n className=\"proton-DataTable__message-cell\"\n role={isError ? \"alert\" : \"status\"}\n aria-live=\"polite\"\n >\n <Elevation>\n <div className=\"proton-DataTable__empty-cell\">{message}</div>\n </Elevation>\n </div>\n </Table.Cell>\n </Table.Row>\n </Table.Body>\n </Table>\n </div>\n );\n};\n\nDataTable.displayName = \"ProtonUIDataTable\";\n"],"names":["DataTable","columns","data","loading","tombstoneComponent","error","name","onRowClick","emptyMessage","errorMessage","loadingRows","testId","memoize","sortableColumns","sortedBy","sortDirection","onSort","visibleColumns","col","handleSortClick","column","newDirection","getSortState","columnId","jsx","EmptyState","jsxs","Table","_","index","Tombstone","isSortable","sortState","ChevronUp","row","tableRow","DataTableRow","message","isError","Elevation"],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const o=require("../../../node_modules/react/jsx-runtime.cjs.js"),c=require("react"),x=require("../../../utils/deepEqual.cjs.js"),d=require("../BaseTable/Collection/useTableCollection.cjs.js"),R=require("../BaseTable/elements/TableRow.cjs.js"),b=require("../BaseTable/elements/TableCell.cjs.js"),l=({row:t,columns:e,rowIndex:r,onRowClick:a,dataTestId:s})=>o.jsxRuntimeExports.jsx(R.TableRow,{dataTestId:s,ariaRowIndex:d.calculateAriaRowIndex(r,e.length>0),onClick:a?()=>a(t):void 0,children:e.map((n,u)=>o.jsxRuntimeExports.jsx(b.TableCell,{columnIndex:u+1,children:n.cell(t)},n.id))}),m=c.memo(l,(t,e)=>t.rowIndex===e.rowIndex&&x.deepEqual(t.row,e.row)),i=({memoize:t,...e})=>{if(t){const r=m;return o.jsxRuntimeExports.jsx(r,{...e})}return o.jsxRuntimeExports.jsx(l,{...e})};i.displayName="ProtonUIDataTableRow";exports.DataTableRow=i;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const o=require("react/jsx-runtime"),u=require("react"),s=require("../../../utils/deepEqual.cjs.js"),b=require("../BaseTable/Collection/useTableCollection.cjs.js"),w=require("../BaseTable/elements/TableRow.cjs.js"),R=require("../BaseTable/elements/TableCell.cjs.js"),r=({row:a,columns:e,rowIndex:t,onRowClick:l,dataTestId:c})=>o.jsx(w.TableRow,{dataTestId:c,ariaRowIndex:b.calculateAriaRowIndex(t,e.length>0),onClick:l?()=>l(a):void 0,children:e.map((n,d)=>o.jsx(R.TableCell,{columnIndex:d+1,children:n.cell(a)},n.id))}),T=u.memo(r,(a,e)=>a.rowIndex===e.rowIndex&&s.deepEqual(a.row,e.row)),i=({memoize:a,...e})=>{if(a){const t=T;return o.jsx(t,{...e})}return o.jsx(r,{...e})};i.displayName="ProtonUIDataTableRow";exports.DataTableRow=i;
2
2
  //# sourceMappingURL=DataTableRow.cjs.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"DataTableRow.cjs.js","sources":["../../../../src/components/Table/DataTable/DataTableRow.tsx"],"sourcesContent":["import { memo, type ComponentType, type ReactNode } from \"react\";\nimport { DataTableColumn } from \"./DataTable\";\nimport { deepEqual } from \"../../../utils/deepEqual\";\nimport { calculateAriaRowIndex } from \"../BaseTable/Collection/useTableCollection\";\nimport { TableRow } from \"../BaseTable/elements/TableRow\";\nimport { TableCell } from \"../BaseTable/elements/TableCell\";\n\ninterface DataTableRowProps<T> {\n row: T;\n columns: DataTableColumn<T>[];\n rowIndex: number;\n onRowClick?: (row: T) => void;\n memoize?: boolean;\n dataTestId?: string;\n}\n\nconst DataTableRowComponent = <T,>({\n row,\n columns,\n rowIndex,\n onRowClick,\n dataTestId,\n}: DataTableRowProps<T>) => {\n return (\n <TableRow\n dataTestId={dataTestId}\n ariaRowIndex={calculateAriaRowIndex(rowIndex, columns.length > 0)}\n onClick={onRowClick ? () => onRowClick(row) : undefined}\n >\n {columns.map((column, colIndex) => (\n <TableCell key={column.id} columnIndex={colIndex + 1}>\n {column.cell(row)}\n </TableCell>\n ))}\n </TableRow>\n );\n};\n\nconst MemoizedDataTableRowInner = memo(\n DataTableRowComponent,\n (prevProps, nextProps) =>\n prevProps.rowIndex === nextProps.rowIndex &&\n deepEqual(prevProps.row, nextProps.row),\n) as typeof DataTableRowComponent;\n\n/**\n * Memoized wrapper for a DataTableRow.\n */\nexport const DataTableRow = <T,>({\n memoize,\n ...props\n}: DataTableRowProps<T>): ReactNode => {\n if (memoize) {\n const MemoizedRow = MemoizedDataTableRowInner as ComponentType<\n DataTableRowProps<T>\n >;\n return <MemoizedRow {...props} />;\n }\n return <DataTableRowComponent {...props} />;\n};\n\nDataTableRow.displayName = \"ProtonUIDataTableRow\";\n"],"names":["DataTableRowComponent","row","columns","rowIndex","onRowClick","dataTestId","jsx","TableRow","calculateAriaRowIndex","column","colIndex","TableCell","MemoizedDataTableRowInner","memo","prevProps","nextProps","deepEqual","DataTableRow","memoize","props","MemoizedRow"],"mappings":"wXAgBMA,EAAwB,CAAK,CACjC,IAAAC,EACA,QAAAC,EACA,SAAAC,EACA,WAAAC,EACA,WAAAC,CACF,IAEIC,EAAAA,kBAAAA,IAACC,EAAAA,SAAA,CACC,WAAAF,EACA,aAAcG,EAAAA,sBAAsBL,EAAUD,EAAQ,OAAS,CAAC,EAChE,QAASE,EAAa,IAAMA,EAAWH,CAAG,EAAI,OAE7C,WAAQ,IAAI,CAACQ,EAAQC,4BACnBC,EAAAA,UAAA,CAA0B,YAAaD,EAAW,EAChD,WAAO,KAAKT,CAAG,CAAA,EADFQ,EAAO,EAEvB,CACD,CAAA,CAAA,EAKDG,EAA4BC,EAAAA,KAChCb,EACA,CAACc,EAAWC,IACVD,EAAU,WAAaC,EAAU,UACjCC,YAAUF,EAAU,IAAKC,EAAU,GAAG,CAC1C,EAKaE,EAAe,CAAK,CAC/B,QAAAC,EACA,GAAGC,CACL,IAAuC,CACrC,GAAID,EAAS,CACX,MAAME,EAAcR,EAGpB,OAAON,wBAACc,EAAA,CAAa,GAAGD,CAAA,CAAO,CACjC,CACA,OAAOb,wBAACN,EAAA,CAAuB,GAAGmB,CAAA,CAAO,CAC3C,EAEAF,EAAa,YAAc"}
1
+ {"version":3,"file":"DataTableRow.cjs.js","sources":["../../../../src/components/Table/DataTable/DataTableRow.tsx"],"sourcesContent":["import { memo, type ComponentType, type ReactNode } from \"react\";\nimport { DataTableColumn } from \"./DataTable\";\nimport { deepEqual } from \"../../../utils/deepEqual\";\nimport { calculateAriaRowIndex } from \"../BaseTable/Collection/useTableCollection\";\nimport { TableRow } from \"../BaseTable/elements/TableRow\";\nimport { TableCell } from \"../BaseTable/elements/TableCell\";\n\ninterface DataTableRowProps<T> {\n row: T;\n columns: DataTableColumn<T>[];\n rowIndex: number;\n onRowClick?: (row: T) => void;\n memoize?: boolean;\n dataTestId?: string;\n}\n\nconst DataTableRowComponent = <T,>({\n row,\n columns,\n rowIndex,\n onRowClick,\n dataTestId,\n}: DataTableRowProps<T>) => {\n return (\n <TableRow\n dataTestId={dataTestId}\n ariaRowIndex={calculateAriaRowIndex(rowIndex, columns.length > 0)}\n onClick={onRowClick ? () => onRowClick(row) : undefined}\n >\n {columns.map((column, colIndex) => (\n <TableCell key={column.id} columnIndex={colIndex + 1}>\n {column.cell(row)}\n </TableCell>\n ))}\n </TableRow>\n );\n};\n\nconst MemoizedDataTableRowInner = memo(\n DataTableRowComponent,\n (prevProps, nextProps) =>\n prevProps.rowIndex === nextProps.rowIndex &&\n deepEqual(prevProps.row, nextProps.row),\n) as typeof DataTableRowComponent;\n\n/**\n * Memoized wrapper for a DataTableRow.\n */\nexport const DataTableRow = <T,>({\n memoize,\n ...props\n}: DataTableRowProps<T>): ReactNode => {\n if (memoize) {\n const MemoizedRow = MemoizedDataTableRowInner as ComponentType<\n DataTableRowProps<T>\n >;\n return <MemoizedRow {...props} />;\n }\n return <DataTableRowComponent {...props} />;\n};\n\nDataTableRow.displayName = \"ProtonUIDataTableRow\";\n"],"names":["DataTableRowComponent","row","columns","rowIndex","onRowClick","dataTestId","jsx","TableRow","calculateAriaRowIndex","column","colIndex","TableCell","MemoizedDataTableRowInner","memo","prevProps","nextProps","deepEqual","DataTableRow","memoize","props","MemoizedRow"],"mappings":"2VAgBMA,EAAwB,CAAK,CACjC,IAAAC,EACA,QAAAC,EACA,SAAAC,EACA,WAAAC,EACA,WAAAC,CACF,IAEIC,EAAAA,IAACC,EAAAA,SAAA,CACC,WAAAF,EACA,aAAcG,EAAAA,sBAAsBL,EAAUD,EAAQ,OAAS,CAAC,EAChE,QAASE,EAAa,IAAMA,EAAWH,CAAG,EAAI,OAE7C,WAAQ,IAAI,CAACQ,EAAQC,UACnBC,EAAAA,UAAA,CAA0B,YAAaD,EAAW,EAChD,WAAO,KAAKT,CAAG,CAAA,EADFQ,EAAO,EAEvB,CACD,CAAA,CAAA,EAKDG,EAA4BC,EAAAA,KAChCb,EACA,CAACc,EAAWC,IACVD,EAAU,WAAaC,EAAU,UACjCC,YAAUF,EAAU,IAAKC,EAAU,GAAG,CAC1C,EAKaE,EAAe,CAAK,CAC/B,QAAAC,EACA,GAAGC,CACL,IAAuC,CACrC,GAAID,EAAS,CACX,MAAME,EAAcR,EAGpB,OAAON,MAACc,EAAA,CAAa,GAAGD,CAAA,CAAO,CACjC,CACA,OAAOb,MAACN,EAAA,CAAuB,GAAGmB,CAAA,CAAO,CAC3C,EAEAF,EAAa,YAAc"}
@@ -1,38 +1,32 @@
1
- import { j as r } from "../../../node_modules/react/jsx-runtime.es.js";
1
+ import { jsx as r } from "react/jsx-runtime";
2
2
  import { memo as d } from "react";
3
- import { deepEqual as x } from "../../../utils/deepEqual.es.js";
4
- import { calculateAriaRowIndex as w } from "../BaseTable/Collection/useTableCollection.es.js";
5
- import { TableRow as c } from "../BaseTable/elements/TableRow.es.js";
6
- import { TableCell as s } from "../BaseTable/elements/TableCell.es.js";
3
+ import { deepEqual as w } from "../../../utils/deepEqual.es.js";
4
+ import { calculateAriaRowIndex as c } from "../BaseTable/Collection/useTableCollection.es.js";
5
+ import { TableRow as R } from "../BaseTable/elements/TableRow.es.js";
6
+ import { TableCell as f } from "../BaseTable/elements/TableCell.es.js";
7
7
  const n = ({
8
8
  row: e,
9
9
  columns: o,
10
10
  rowIndex: a,
11
11
  onRowClick: t,
12
12
  dataTestId: i
13
- }) => /* @__PURE__ */ r.jsx(
14
- c,
13
+ }) => /* @__PURE__ */ r(
14
+ R,
15
15
  {
16
16
  dataTestId: i,
17
- ariaRowIndex: w(a, o.length > 0),
17
+ ariaRowIndex: c(a, o.length > 0),
18
18
  onClick: t ? () => t(e) : void 0,
19
- children: o.map((m, l) => /* @__PURE__ */ r.jsx(s, { columnIndex: l + 1, children: m.cell(e) }, m.id))
19
+ children: o.map((m, l) => /* @__PURE__ */ r(f, { columnIndex: l + 1, children: m.cell(e) }, m.id))
20
20
  }
21
- ), R = d(
21
+ ), I = d(
22
22
  n,
23
- (e, o) => e.rowIndex === o.rowIndex && x(e.row, o.row)
24
- ), f = ({
23
+ (e, o) => e.rowIndex === o.rowIndex && w(e.row, o.row)
24
+ ), b = ({
25
25
  memoize: e,
26
26
  ...o
27
- }) => {
28
- if (e) {
29
- const a = R;
30
- return /* @__PURE__ */ r.jsx(a, { ...o });
31
- }
32
- return /* @__PURE__ */ r.jsx(n, { ...o });
33
- };
34
- f.displayName = "ProtonUIDataTableRow";
27
+ }) => e ? /* @__PURE__ */ r(I, { ...o }) : /* @__PURE__ */ r(n, { ...o });
28
+ b.displayName = "ProtonUIDataTableRow";
35
29
  export {
36
- f as DataTableRow
30
+ b as DataTableRow
37
31
  };
38
32
  //# sourceMappingURL=DataTableRow.es.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"DataTableRow.es.js","sources":["../../../../src/components/Table/DataTable/DataTableRow.tsx"],"sourcesContent":["import { memo, type ComponentType, type ReactNode } from \"react\";\nimport { DataTableColumn } from \"./DataTable\";\nimport { deepEqual } from \"../../../utils/deepEqual\";\nimport { calculateAriaRowIndex } from \"../BaseTable/Collection/useTableCollection\";\nimport { TableRow } from \"../BaseTable/elements/TableRow\";\nimport { TableCell } from \"../BaseTable/elements/TableCell\";\n\ninterface DataTableRowProps<T> {\n row: T;\n columns: DataTableColumn<T>[];\n rowIndex: number;\n onRowClick?: (row: T) => void;\n memoize?: boolean;\n dataTestId?: string;\n}\n\nconst DataTableRowComponent = <T,>({\n row,\n columns,\n rowIndex,\n onRowClick,\n dataTestId,\n}: DataTableRowProps<T>) => {\n return (\n <TableRow\n dataTestId={dataTestId}\n ariaRowIndex={calculateAriaRowIndex(rowIndex, columns.length > 0)}\n onClick={onRowClick ? () => onRowClick(row) : undefined}\n >\n {columns.map((column, colIndex) => (\n <TableCell key={column.id} columnIndex={colIndex + 1}>\n {column.cell(row)}\n </TableCell>\n ))}\n </TableRow>\n );\n};\n\nconst MemoizedDataTableRowInner = memo(\n DataTableRowComponent,\n (prevProps, nextProps) =>\n prevProps.rowIndex === nextProps.rowIndex &&\n deepEqual(prevProps.row, nextProps.row),\n) as typeof DataTableRowComponent;\n\n/**\n * Memoized wrapper for a DataTableRow.\n */\nexport const DataTableRow = <T,>({\n memoize,\n ...props\n}: DataTableRowProps<T>): ReactNode => {\n if (memoize) {\n const MemoizedRow = MemoizedDataTableRowInner as ComponentType<\n DataTableRowProps<T>\n >;\n return <MemoizedRow {...props} />;\n }\n return <DataTableRowComponent {...props} />;\n};\n\nDataTableRow.displayName = \"ProtonUIDataTableRow\";\n"],"names":["DataTableRowComponent","row","columns","rowIndex","onRowClick","dataTestId","jsx","TableRow","calculateAriaRowIndex","column","colIndex","TableCell","MemoizedDataTableRowInner","memo","prevProps","nextProps","deepEqual","DataTableRow","memoize","props","MemoizedRow"],"mappings":";;;;;;AAgBA,MAAMA,IAAwB,CAAK;AAAA,EACjC,KAAAC;AAAA,EACA,SAAAC;AAAA,EACA,UAAAC;AAAA,EACA,YAAAC;AAAA,EACA,YAAAC;AACF,MAEIC,gBAAAA,EAAAA;AAAAA,EAACC;AAAA,EAAA;AAAA,IACC,YAAAF;AAAA,IACA,cAAcG,EAAsBL,GAAUD,EAAQ,SAAS,CAAC;AAAA,IAChE,SAASE,IAAa,MAAMA,EAAWH,CAAG,IAAI;AAAA,IAE7C,YAAQ,IAAI,CAACQ,GAAQC,4BACnBC,GAAA,EAA0B,aAAaD,IAAW,GAChD,YAAO,KAAKT,CAAG,EAAA,GADFQ,EAAO,EAEvB,CACD;AAAA,EAAA;AAAA,GAKDG,IAA4BC;AAAA,EAChCb;AAAA,EACA,CAACc,GAAWC,MACVD,EAAU,aAAaC,EAAU,YACjCC,EAAUF,EAAU,KAAKC,EAAU,GAAG;AAC1C,GAKaE,IAAe,CAAK;AAAA,EAC/B,SAAAC;AAAA,EACA,GAAGC;AACL,MAAuC;AACrC,MAAID,GAAS;AACX,UAAME,IAAcR;AAGpB,WAAON,gBAAAA,MAACc,GAAA,EAAa,GAAGD,EAAA,CAAO;AAAA,EACjC;AACA,SAAOb,gBAAAA,MAACN,GAAA,EAAuB,GAAGmB,EAAA,CAAO;AAC3C;AAEAF,EAAa,cAAc;"}
1
+ {"version":3,"file":"DataTableRow.es.js","sources":["../../../../src/components/Table/DataTable/DataTableRow.tsx"],"sourcesContent":["import { memo, type ComponentType, type ReactNode } from \"react\";\nimport { DataTableColumn } from \"./DataTable\";\nimport { deepEqual } from \"../../../utils/deepEqual\";\nimport { calculateAriaRowIndex } from \"../BaseTable/Collection/useTableCollection\";\nimport { TableRow } from \"../BaseTable/elements/TableRow\";\nimport { TableCell } from \"../BaseTable/elements/TableCell\";\n\ninterface DataTableRowProps<T> {\n row: T;\n columns: DataTableColumn<T>[];\n rowIndex: number;\n onRowClick?: (row: T) => void;\n memoize?: boolean;\n dataTestId?: string;\n}\n\nconst DataTableRowComponent = <T,>({\n row,\n columns,\n rowIndex,\n onRowClick,\n dataTestId,\n}: DataTableRowProps<T>) => {\n return (\n <TableRow\n dataTestId={dataTestId}\n ariaRowIndex={calculateAriaRowIndex(rowIndex, columns.length > 0)}\n onClick={onRowClick ? () => onRowClick(row) : undefined}\n >\n {columns.map((column, colIndex) => (\n <TableCell key={column.id} columnIndex={colIndex + 1}>\n {column.cell(row)}\n </TableCell>\n ))}\n </TableRow>\n );\n};\n\nconst MemoizedDataTableRowInner = memo(\n DataTableRowComponent,\n (prevProps, nextProps) =>\n prevProps.rowIndex === nextProps.rowIndex &&\n deepEqual(prevProps.row, nextProps.row),\n) as typeof DataTableRowComponent;\n\n/**\n * Memoized wrapper for a DataTableRow.\n */\nexport const DataTableRow = <T,>({\n memoize,\n ...props\n}: DataTableRowProps<T>): ReactNode => {\n if (memoize) {\n const MemoizedRow = MemoizedDataTableRowInner as ComponentType<\n DataTableRowProps<T>\n >;\n return <MemoizedRow {...props} />;\n }\n return <DataTableRowComponent {...props} />;\n};\n\nDataTableRow.displayName = \"ProtonUIDataTableRow\";\n"],"names":["DataTableRowComponent","row","columns","rowIndex","onRowClick","dataTestId","jsx","TableRow","calculateAriaRowIndex","column","colIndex","TableCell","MemoizedDataTableRowInner","memo","prevProps","nextProps","deepEqual","DataTableRow","memoize","props"],"mappings":";;;;;;AAgBA,MAAMA,IAAwB,CAAK;AAAA,EACjC,KAAAC;AAAA,EACA,SAAAC;AAAA,EACA,UAAAC;AAAA,EACA,YAAAC;AAAA,EACA,YAAAC;AACF,MAEI,gBAAAC;AAAA,EAACC;AAAA,EAAA;AAAA,IACC,YAAAF;AAAA,IACA,cAAcG,EAAsBL,GAAUD,EAAQ,SAAS,CAAC;AAAA,IAChE,SAASE,IAAa,MAAMA,EAAWH,CAAG,IAAI;AAAA,IAE7C,YAAQ,IAAI,CAACQ,GAAQC,wBACnBC,GAAA,EAA0B,aAAaD,IAAW,GAChD,YAAO,KAAKT,CAAG,EAAA,GADFQ,EAAO,EAEvB,CACD;AAAA,EAAA;AAAA,GAKDG,IAA4BC;AAAA,EAChCb;AAAA,EACA,CAACc,GAAWC,MACVD,EAAU,aAAaC,EAAU,YACjCC,EAAUF,EAAU,KAAKC,EAAU,GAAG;AAC1C,GAKaE,IAAe,CAAK;AAAA,EAC/B,SAAAC;AAAA,EACA,GAAGC;AACL,MACMD,IAIK,gBAAAZ,EAHaM,GAGZ,EAAa,GAAGO,EAAA,CAAO,IAE1B,gBAAAb,EAACN,GAAA,EAAuB,GAAGmB,EAAA,CAAO;AAG3CF,EAAa,cAAc;"}
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const m=require("../../../node_modules/react/jsx-runtime.cjs.js"),n=require("react");function x({initialDurationSeconds:u=0,durationSeconds:a=20,children:i="Complete",label:e="",showTimer:s=!0,"data-testid":f}){const o=()=>u>0?Math.max(0,a-u):a,[r,l]=n.useState(()=>o()),t=n.useRef(null);return n.useEffect(()=>{if(!(r<=0))return t.current=setInterval(()=>{l(c=>c<=1?(t.current&&(clearInterval(t.current),t.current=null),0):c-1)},1e3),()=>{t.current&&(clearInterval(t.current),t.current=null)}},[r]),n.useEffect(()=>{l(o())},[a,u]),r<=0?m.jsxRuntimeExports.jsx("span",{"data-testid":f,"aria-label":typeof i=="string"?i:void 0,children:i}):m.jsxRuntimeExports.jsxs("span",{role:"timer","aria-live":"polite","aria-atomic":"true","aria-label":e,"data-testid":f,children:[e&&(s?`${e} `:e),s&&`${String(r)}s...`]})}x.displayName="ProtonUITextCountdown";exports.TextCountdown=x;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const m=require("react/jsx-runtime"),n=require("react");function x({initialDurationSeconds:u=0,durationSeconds:a=20,children:i="Complete",label:e="",showTimer:s=!0,"data-testid":f}){const c=()=>u>0?Math.max(0,a-u):a,[r,l]=n.useState(()=>c()),t=n.useRef(null);return n.useEffect(()=>{if(!(r<=0))return t.current=setInterval(()=>{l(o=>o<=1?(t.current&&(clearInterval(t.current),t.current=null),0):o-1)},1e3),()=>{t.current&&(clearInterval(t.current),t.current=null)}},[r]),n.useEffect(()=>{l(c())},[a,u]),r<=0?m.jsx("span",{"data-testid":f,"aria-label":typeof i=="string"?i:void 0,children:i}):m.jsxs("span",{role:"timer","aria-live":"polite","aria-atomic":"true","aria-label":e,"data-testid":f,children:[e&&(s?`${e} `:e),s&&`${String(r)}s...`]})}x.displayName="ProtonUITextCountdown";exports.TextCountdown=x;
2
2
  //# sourceMappingURL=TextCountdown.cjs.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"TextCountdown.cjs.js","sources":["../../../../src/components/Text/TextCountdown/TextCountdown.tsx"],"sourcesContent":["\"use client\";\n\nimport { useEffect, useRef, useState, type ReactNode } from \"react\";\n\nexport interface TextCountdownProps {\n /** Content to show when countdown has finished and the button is clickable.\n * @default \"Complete\"\n */\n children?: ReactNode;\n\n /** Test ID for the component. */\n \"data-testid\"?: string;\n\n /** Total time the timer runs for, in seconds.\n * @default 20\n */\n durationSeconds?: number;\n\n /** Whether to show the timer.\n * @default true\n */\n showTimer?: boolean;\n\n /** Label to show before the timer.\n * @default \"\"\n */\n label?: string;\n\n /**\n * When provided (and positive), subtracted from durationSeconds to get the initial time left\n * (e.g. durationSeconds=20, initialDurationSeconds=5 → starts at 15s).\n * When 0 or omitted, the countdown starts at the full durationSeconds.\n * @default 0\n */\n initialDurationSeconds?: number;\n}\n\n/**\n * A component that displays text with a countdown timer.\n *\n * API:\n * - {@link TextCountdownProps}\n */\nexport function TextCountdown({\n initialDurationSeconds = 0,\n durationSeconds = 20,\n children = \"Complete\",\n label = \"\",\n showTimer = true,\n \"data-testid\": testId,\n}: TextCountdownProps) {\n const getInitialTimeLeft = () =>\n initialDurationSeconds > 0\n ? Math.max(0, durationSeconds - initialDurationSeconds)\n : durationSeconds;\n\n const [timeLeft, setTimeLeft] = useState<number>(() => getInitialTimeLeft());\n const intervalRef = useRef<ReturnType<typeof setInterval> | null>(null);\n\n useEffect(() => {\n if (timeLeft <= 0) {\n return;\n }\n\n intervalRef.current = setInterval(() => {\n setTimeLeft((prev) => {\n if (prev <= 1) {\n if (intervalRef.current) {\n clearInterval(intervalRef.current);\n intervalRef.current = null;\n }\n return 0;\n }\n return prev - 1;\n });\n }, 1000);\n\n return () => {\n if (intervalRef.current) {\n clearInterval(intervalRef.current);\n intervalRef.current = null;\n }\n };\n }, [timeLeft]);\n\n useEffect(() => {\n setTimeLeft(getInitialTimeLeft());\n }, [durationSeconds, initialDurationSeconds]);\n\n if (timeLeft <= 0) {\n return (\n <span\n data-testid={testId}\n aria-label={typeof children === \"string\" ? children : undefined}\n >\n {children}\n </span>\n );\n }\n\n return (\n <span\n role=\"timer\"\n aria-live=\"polite\"\n aria-atomic=\"true\"\n aria-label={label}\n data-testid={testId}\n >\n {label && (showTimer ? `${label} ` : label)}\n {showTimer && `${String(timeLeft)}s...`}\n </span>\n );\n}\n\nTextCountdown.displayName = \"ProtonUITextCountdown\";\n"],"names":["TextCountdown","initialDurationSeconds","durationSeconds","children","label","showTimer","testId","getInitialTimeLeft","timeLeft","setTimeLeft","useState","intervalRef","useRef","useEffect","prev","jsx","jsxs"],"mappings":"qKA2CO,SAASA,EAAc,CAC5B,uBAAAC,EAAyB,EACzB,gBAAAC,EAAkB,GAClB,SAAAC,EAAW,WACX,MAAAC,EAAQ,GACR,UAAAC,EAAY,GACZ,cAAeC,CACjB,EAAuB,CACrB,MAAMC,EAAqB,IACzBN,EAAyB,EACrB,KAAK,IAAI,EAAGC,EAAkBD,CAAsB,EACpDC,EAEA,CAACM,EAAUC,CAAW,EAAIC,EAAAA,SAAiB,IAAMH,GAAoB,EACrEI,EAAcC,EAAAA,OAA8C,IAAI,EAgCtE,OA9BAC,EAAAA,UAAU,IAAM,CACd,GAAI,EAAAL,GAAY,GAIhB,OAAAG,EAAY,QAAU,YAAY,IAAM,CACtCF,EAAaK,GACPA,GAAQ,GACNH,EAAY,UACd,cAAcA,EAAY,OAAO,EACjCA,EAAY,QAAU,MAEjB,GAEFG,EAAO,CACf,CACH,EAAG,GAAI,EAEA,IAAM,CACPH,EAAY,UACd,cAAcA,EAAY,OAAO,EACjCA,EAAY,QAAU,KAE1B,CACF,EAAG,CAACH,CAAQ,CAAC,EAEbK,EAAAA,UAAU,IAAM,CACdJ,EAAYF,GAAoB,CAClC,EAAG,CAACL,EAAiBD,CAAsB,CAAC,EAExCO,GAAY,EAEZO,EAAAA,kBAAAA,IAAC,OAAA,CACC,cAAaT,EACb,aAAY,OAAOH,GAAa,SAAWA,EAAW,OAErD,SAAAA,CAAA,CAAA,EAMLa,EAAAA,kBAAAA,KAAC,OAAA,CACC,KAAK,QACL,YAAU,SACV,cAAY,OACZ,aAAYZ,EACZ,cAAaE,EAEZ,SAAA,CAAAF,IAAUC,EAAY,GAAGD,CAAK,IAAMA,GACpCC,GAAa,GAAG,OAAOG,CAAQ,CAAC,MAAA,CAAA,CAAA,CAGvC,CAEAR,EAAc,YAAc"}
1
+ {"version":3,"file":"TextCountdown.cjs.js","sources":["../../../../src/components/Text/TextCountdown/TextCountdown.tsx"],"sourcesContent":["\"use client\";\n\nimport { useEffect, useRef, useState, type ReactNode } from \"react\";\n\nexport interface TextCountdownProps {\n /** Content to show when countdown has finished and the button is clickable.\n * @default \"Complete\"\n */\n children?: ReactNode;\n\n /** Test ID for the component. */\n \"data-testid\"?: string;\n\n /** Total time the timer runs for, in seconds.\n * @default 20\n */\n durationSeconds?: number;\n\n /** Whether to show the timer.\n * @default true\n */\n showTimer?: boolean;\n\n /** Label to show before the timer.\n * @default \"\"\n */\n label?: string;\n\n /**\n * When provided (and positive), subtracted from durationSeconds to get the initial time left\n * (e.g. durationSeconds=20, initialDurationSeconds=5 → starts at 15s).\n * When 0 or omitted, the countdown starts at the full durationSeconds.\n * @default 0\n */\n initialDurationSeconds?: number;\n}\n\n/**\n * A component that displays text with a countdown timer.\n *\n * API:\n * - {@link TextCountdownProps}\n */\nexport function TextCountdown({\n initialDurationSeconds = 0,\n durationSeconds = 20,\n children = \"Complete\",\n label = \"\",\n showTimer = true,\n \"data-testid\": testId,\n}: TextCountdownProps) {\n const getInitialTimeLeft = () =>\n initialDurationSeconds > 0\n ? Math.max(0, durationSeconds - initialDurationSeconds)\n : durationSeconds;\n\n const [timeLeft, setTimeLeft] = useState<number>(() => getInitialTimeLeft());\n const intervalRef = useRef<ReturnType<typeof setInterval> | null>(null);\n\n useEffect(() => {\n if (timeLeft <= 0) {\n return;\n }\n\n intervalRef.current = setInterval(() => {\n setTimeLeft((prev) => {\n if (prev <= 1) {\n if (intervalRef.current) {\n clearInterval(intervalRef.current);\n intervalRef.current = null;\n }\n return 0;\n }\n return prev - 1;\n });\n }, 1000);\n\n return () => {\n if (intervalRef.current) {\n clearInterval(intervalRef.current);\n intervalRef.current = null;\n }\n };\n }, [timeLeft]);\n\n useEffect(() => {\n setTimeLeft(getInitialTimeLeft());\n }, [durationSeconds, initialDurationSeconds]);\n\n if (timeLeft <= 0) {\n return (\n <span\n data-testid={testId}\n aria-label={typeof children === \"string\" ? children : undefined}\n >\n {children}\n </span>\n );\n }\n\n return (\n <span\n role=\"timer\"\n aria-live=\"polite\"\n aria-atomic=\"true\"\n aria-label={label}\n data-testid={testId}\n >\n {label && (showTimer ? `${label} ` : label)}\n {showTimer && `${String(timeLeft)}s...`}\n </span>\n );\n}\n\nTextCountdown.displayName = \"ProtonUITextCountdown\";\n"],"names":["TextCountdown","initialDurationSeconds","durationSeconds","children","label","showTimer","testId","getInitialTimeLeft","timeLeft","setTimeLeft","useState","intervalRef","useRef","useEffect","prev","jsx","jsxs"],"mappings":"wIA2CO,SAASA,EAAc,CAC5B,uBAAAC,EAAyB,EACzB,gBAAAC,EAAkB,GAClB,SAAAC,EAAW,WACX,MAAAC,EAAQ,GACR,UAAAC,EAAY,GACZ,cAAeC,CACjB,EAAuB,CACrB,MAAMC,EAAqB,IACzBN,EAAyB,EACrB,KAAK,IAAI,EAAGC,EAAkBD,CAAsB,EACpDC,EAEA,CAACM,EAAUC,CAAW,EAAIC,EAAAA,SAAiB,IAAMH,GAAoB,EACrEI,EAAcC,EAAAA,OAA8C,IAAI,EAgCtE,OA9BAC,EAAAA,UAAU,IAAM,CACd,GAAI,EAAAL,GAAY,GAIhB,OAAAG,EAAY,QAAU,YAAY,IAAM,CACtCF,EAAaK,GACPA,GAAQ,GACNH,EAAY,UACd,cAAcA,EAAY,OAAO,EACjCA,EAAY,QAAU,MAEjB,GAEFG,EAAO,CACf,CACH,EAAG,GAAI,EAEA,IAAM,CACPH,EAAY,UACd,cAAcA,EAAY,OAAO,EACjCA,EAAY,QAAU,KAE1B,CACF,EAAG,CAACH,CAAQ,CAAC,EAEbK,EAAAA,UAAU,IAAM,CACdJ,EAAYF,GAAoB,CAClC,EAAG,CAACL,EAAiBD,CAAsB,CAAC,EAExCO,GAAY,EAEZO,EAAAA,IAAC,OAAA,CACC,cAAaT,EACb,aAAY,OAAOH,GAAa,SAAWA,EAAW,OAErD,SAAAA,CAAA,CAAA,EAMLa,EAAAA,KAAC,OAAA,CACC,KAAK,QACL,YAAU,SACV,cAAY,OACZ,aAAYZ,EACZ,cAAaE,EAEZ,SAAA,CAAAF,IAAUC,EAAY,GAAGD,CAAK,IAAMA,GACpCC,GAAa,GAAG,OAAOG,CAAQ,CAAC,MAAA,CAAA,CAAA,CAGvC,CAEAR,EAAc,YAAc"}
@@ -1,6 +1,6 @@
1
- import { j as m } from "../../../node_modules/react/jsx-runtime.es.js";
2
- import { useState as p, useRef as x, useEffect as c } from "react";
3
- function v({
1
+ import { jsx as c, jsxs as p } from "react/jsx-runtime";
2
+ import { useState as x, useRef as v, useEffect as m } from "react";
3
+ function I({
4
4
  initialDurationSeconds: n = 0,
5
5
  durationSeconds: a = 20,
6
6
  children: u = "Complete",
@@ -8,24 +8,24 @@ function v({
8
8
  showTimer: i = !0,
9
9
  "data-testid": f
10
10
  }) {
11
- const s = () => n > 0 ? Math.max(0, a - n) : a, [r, l] = p(() => s()), t = x(null);
12
- return c(() => {
11
+ const l = () => n > 0 ? Math.max(0, a - n) : a, [r, s] = x(() => l()), t = v(null);
12
+ return m(() => {
13
13
  if (!(r <= 0))
14
14
  return t.current = setInterval(() => {
15
- l((o) => o <= 1 ? (t.current && (clearInterval(t.current), t.current = null), 0) : o - 1);
15
+ s((o) => o <= 1 ? (t.current && (clearInterval(t.current), t.current = null), 0) : o - 1);
16
16
  }, 1e3), () => {
17
17
  t.current && (clearInterval(t.current), t.current = null);
18
18
  };
19
- }, [r]), c(() => {
20
- l(s());
21
- }, [a, n]), r <= 0 ? /* @__PURE__ */ m.jsx(
19
+ }, [r]), m(() => {
20
+ s(l());
21
+ }, [a, n]), r <= 0 ? /* @__PURE__ */ c(
22
22
  "span",
23
23
  {
24
24
  "data-testid": f,
25
25
  "aria-label": typeof u == "string" ? u : void 0,
26
26
  children: u
27
27
  }
28
- ) : /* @__PURE__ */ m.jsxs(
28
+ ) : /* @__PURE__ */ p(
29
29
  "span",
30
30
  {
31
31
  role: "timer",
@@ -40,8 +40,8 @@ function v({
40
40
  }
41
41
  );
42
42
  }
43
- v.displayName = "ProtonUITextCountdown";
43
+ I.displayName = "ProtonUITextCountdown";
44
44
  export {
45
- v as TextCountdown
45
+ I as TextCountdown
46
46
  };
47
47
  //# sourceMappingURL=TextCountdown.es.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"TextCountdown.es.js","sources":["../../../../src/components/Text/TextCountdown/TextCountdown.tsx"],"sourcesContent":["\"use client\";\n\nimport { useEffect, useRef, useState, type ReactNode } from \"react\";\n\nexport interface TextCountdownProps {\n /** Content to show when countdown has finished and the button is clickable.\n * @default \"Complete\"\n */\n children?: ReactNode;\n\n /** Test ID for the component. */\n \"data-testid\"?: string;\n\n /** Total time the timer runs for, in seconds.\n * @default 20\n */\n durationSeconds?: number;\n\n /** Whether to show the timer.\n * @default true\n */\n showTimer?: boolean;\n\n /** Label to show before the timer.\n * @default \"\"\n */\n label?: string;\n\n /**\n * When provided (and positive), subtracted from durationSeconds to get the initial time left\n * (e.g. durationSeconds=20, initialDurationSeconds=5 → starts at 15s).\n * When 0 or omitted, the countdown starts at the full durationSeconds.\n * @default 0\n */\n initialDurationSeconds?: number;\n}\n\n/**\n * A component that displays text with a countdown timer.\n *\n * API:\n * - {@link TextCountdownProps}\n */\nexport function TextCountdown({\n initialDurationSeconds = 0,\n durationSeconds = 20,\n children = \"Complete\",\n label = \"\",\n showTimer = true,\n \"data-testid\": testId,\n}: TextCountdownProps) {\n const getInitialTimeLeft = () =>\n initialDurationSeconds > 0\n ? Math.max(0, durationSeconds - initialDurationSeconds)\n : durationSeconds;\n\n const [timeLeft, setTimeLeft] = useState<number>(() => getInitialTimeLeft());\n const intervalRef = useRef<ReturnType<typeof setInterval> | null>(null);\n\n useEffect(() => {\n if (timeLeft <= 0) {\n return;\n }\n\n intervalRef.current = setInterval(() => {\n setTimeLeft((prev) => {\n if (prev <= 1) {\n if (intervalRef.current) {\n clearInterval(intervalRef.current);\n intervalRef.current = null;\n }\n return 0;\n }\n return prev - 1;\n });\n }, 1000);\n\n return () => {\n if (intervalRef.current) {\n clearInterval(intervalRef.current);\n intervalRef.current = null;\n }\n };\n }, [timeLeft]);\n\n useEffect(() => {\n setTimeLeft(getInitialTimeLeft());\n }, [durationSeconds, initialDurationSeconds]);\n\n if (timeLeft <= 0) {\n return (\n <span\n data-testid={testId}\n aria-label={typeof children === \"string\" ? children : undefined}\n >\n {children}\n </span>\n );\n }\n\n return (\n <span\n role=\"timer\"\n aria-live=\"polite\"\n aria-atomic=\"true\"\n aria-label={label}\n data-testid={testId}\n >\n {label && (showTimer ? `${label} ` : label)}\n {showTimer && `${String(timeLeft)}s...`}\n </span>\n );\n}\n\nTextCountdown.displayName = \"ProtonUITextCountdown\";\n"],"names":["TextCountdown","initialDurationSeconds","durationSeconds","children","label","showTimer","testId","getInitialTimeLeft","timeLeft","setTimeLeft","useState","intervalRef","useRef","useEffect","prev","jsx","jsxs"],"mappings":";;AA2CO,SAASA,EAAc;AAAA,EAC5B,wBAAAC,IAAyB;AAAA,EACzB,iBAAAC,IAAkB;AAAA,EAClB,UAAAC,IAAW;AAAA,EACX,OAAAC,IAAQ;AAAA,EACR,WAAAC,IAAY;AAAA,EACZ,eAAeC;AACjB,GAAuB;AACrB,QAAMC,IAAqB,MACzBN,IAAyB,IACrB,KAAK,IAAI,GAAGC,IAAkBD,CAAsB,IACpDC,GAEA,CAACM,GAAUC,CAAW,IAAIC,EAAiB,MAAMH,GAAoB,GACrEI,IAAcC,EAA8C,IAAI;AAgCtE,SA9BAC,EAAU,MAAM;AACd,QAAI,EAAAL,KAAY;AAIhB,aAAAG,EAAY,UAAU,YAAY,MAAM;AACtC,QAAAF,EAAY,CAACK,MACPA,KAAQ,KACNH,EAAY,YACd,cAAcA,EAAY,OAAO,GACjCA,EAAY,UAAU,OAEjB,KAEFG,IAAO,CACf;AAAA,MACH,GAAG,GAAI,GAEA,MAAM;AACX,QAAIH,EAAY,YACd,cAAcA,EAAY,OAAO,GACjCA,EAAY,UAAU;AAAA,MAE1B;AAAA,EACF,GAAG,CAACH,CAAQ,CAAC,GAEbK,EAAU,MAAM;AACd,IAAAJ,EAAYF,GAAoB;AAAA,EAClC,GAAG,CAACL,GAAiBD,CAAsB,CAAC,GAExCO,KAAY,IAEZO,gBAAAA,EAAAA;AAAAA,IAAC;AAAA,IAAA;AAAA,MACC,eAAaT;AAAA,MACb,cAAY,OAAOH,KAAa,WAAWA,IAAW;AAAA,MAErD,UAAAA;AAAA,IAAA;AAAA,EAAA,IAMLa,gBAAAA,EAAAA;AAAAA,IAAC;AAAA,IAAA;AAAA,MACC,MAAK;AAAA,MACL,aAAU;AAAA,MACV,eAAY;AAAA,MACZ,cAAYZ;AAAA,MACZ,eAAaE;AAAA,MAEZ,UAAA;AAAA,QAAAF,MAAUC,IAAY,GAAGD,CAAK,MAAMA;AAAA,QACpCC,KAAa,GAAG,OAAOG,CAAQ,CAAC;AAAA,MAAA;AAAA,IAAA;AAAA,EAAA;AAGvC;AAEAR,EAAc,cAAc;"}
1
+ {"version":3,"file":"TextCountdown.es.js","sources":["../../../../src/components/Text/TextCountdown/TextCountdown.tsx"],"sourcesContent":["\"use client\";\n\nimport { useEffect, useRef, useState, type ReactNode } from \"react\";\n\nexport interface TextCountdownProps {\n /** Content to show when countdown has finished and the button is clickable.\n * @default \"Complete\"\n */\n children?: ReactNode;\n\n /** Test ID for the component. */\n \"data-testid\"?: string;\n\n /** Total time the timer runs for, in seconds.\n * @default 20\n */\n durationSeconds?: number;\n\n /** Whether to show the timer.\n * @default true\n */\n showTimer?: boolean;\n\n /** Label to show before the timer.\n * @default \"\"\n */\n label?: string;\n\n /**\n * When provided (and positive), subtracted from durationSeconds to get the initial time left\n * (e.g. durationSeconds=20, initialDurationSeconds=5 → starts at 15s).\n * When 0 or omitted, the countdown starts at the full durationSeconds.\n * @default 0\n */\n initialDurationSeconds?: number;\n}\n\n/**\n * A component that displays text with a countdown timer.\n *\n * API:\n * - {@link TextCountdownProps}\n */\nexport function TextCountdown({\n initialDurationSeconds = 0,\n durationSeconds = 20,\n children = \"Complete\",\n label = \"\",\n showTimer = true,\n \"data-testid\": testId,\n}: TextCountdownProps) {\n const getInitialTimeLeft = () =>\n initialDurationSeconds > 0\n ? Math.max(0, durationSeconds - initialDurationSeconds)\n : durationSeconds;\n\n const [timeLeft, setTimeLeft] = useState<number>(() => getInitialTimeLeft());\n const intervalRef = useRef<ReturnType<typeof setInterval> | null>(null);\n\n useEffect(() => {\n if (timeLeft <= 0) {\n return;\n }\n\n intervalRef.current = setInterval(() => {\n setTimeLeft((prev) => {\n if (prev <= 1) {\n if (intervalRef.current) {\n clearInterval(intervalRef.current);\n intervalRef.current = null;\n }\n return 0;\n }\n return prev - 1;\n });\n }, 1000);\n\n return () => {\n if (intervalRef.current) {\n clearInterval(intervalRef.current);\n intervalRef.current = null;\n }\n };\n }, [timeLeft]);\n\n useEffect(() => {\n setTimeLeft(getInitialTimeLeft());\n }, [durationSeconds, initialDurationSeconds]);\n\n if (timeLeft <= 0) {\n return (\n <span\n data-testid={testId}\n aria-label={typeof children === \"string\" ? children : undefined}\n >\n {children}\n </span>\n );\n }\n\n return (\n <span\n role=\"timer\"\n aria-live=\"polite\"\n aria-atomic=\"true\"\n aria-label={label}\n data-testid={testId}\n >\n {label && (showTimer ? `${label} ` : label)}\n {showTimer && `${String(timeLeft)}s...`}\n </span>\n );\n}\n\nTextCountdown.displayName = \"ProtonUITextCountdown\";\n"],"names":["TextCountdown","initialDurationSeconds","durationSeconds","children","label","showTimer","testId","getInitialTimeLeft","timeLeft","setTimeLeft","useState","intervalRef","useRef","useEffect","prev","jsx","jsxs"],"mappings":";;AA2CO,SAASA,EAAc;AAAA,EAC5B,wBAAAC,IAAyB;AAAA,EACzB,iBAAAC,IAAkB;AAAA,EAClB,UAAAC,IAAW;AAAA,EACX,OAAAC,IAAQ;AAAA,EACR,WAAAC,IAAY;AAAA,EACZ,eAAeC;AACjB,GAAuB;AACrB,QAAMC,IAAqB,MACzBN,IAAyB,IACrB,KAAK,IAAI,GAAGC,IAAkBD,CAAsB,IACpDC,GAEA,CAACM,GAAUC,CAAW,IAAIC,EAAiB,MAAMH,GAAoB,GACrEI,IAAcC,EAA8C,IAAI;AAgCtE,SA9BAC,EAAU,MAAM;AACd,QAAI,EAAAL,KAAY;AAIhB,aAAAG,EAAY,UAAU,YAAY,MAAM;AACtC,QAAAF,EAAY,CAACK,MACPA,KAAQ,KACNH,EAAY,YACd,cAAcA,EAAY,OAAO,GACjCA,EAAY,UAAU,OAEjB,KAEFG,IAAO,CACf;AAAA,MACH,GAAG,GAAI,GAEA,MAAM;AACX,QAAIH,EAAY,YACd,cAAcA,EAAY,OAAO,GACjCA,EAAY,UAAU;AAAA,MAE1B;AAAA,EACF,GAAG,CAACH,CAAQ,CAAC,GAEbK,EAAU,MAAM;AACd,IAAAJ,EAAYF,GAAoB;AAAA,EAClC,GAAG,CAACL,GAAiBD,CAAsB,CAAC,GAExCO,KAAY,IAEZ,gBAAAO;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,eAAaT;AAAA,MACb,cAAY,OAAOH,KAAa,WAAWA,IAAW;AAAA,MAErD,UAAAA;AAAA,IAAA;AAAA,EAAA,IAML,gBAAAa;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,MAAK;AAAA,MACL,aAAU;AAAA,MACV,eAAY;AAAA,MACZ,cAAYZ;AAAA,MACZ,eAAaE;AAAA,MAEZ,UAAA;AAAA,QAAAF,MAAUC,IAAY,GAAGD,CAAK,MAAMA;AAAA,QACpCC,KAAa,GAAG,OAAOG,CAAQ,CAAC;AAAA,MAAA;AAAA,IAAA;AAAA,EAAA;AAGvC;AAEAR,EAAc,cAAc;"}
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const n=require("../../../node_modules/react/jsx-runtime.cjs.js");;/* empty css */const o=require("../../../utils/string.cjs.js"),p=({children:e,maxWidth:i,singleLine:s=!0,lines:t=1,title:l,"data-testid":r})=>n.jsxRuntimeExports.jsx("div",{className:o.csx("proton-TextEllipsis",s||t===1?"proton-TextEllipsis--single-line":t>1?"proton-TextEllipsis--multi-line":""),style:{maxWidth:i,WebkitLineClamp:t},title:l,"data-testid":r,children:e});exports.TextEllipsis=p;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const n=require("react/jsx-runtime");;/* empty css */const o=require("../../../utils/string.cjs.js"),p=({children:e,maxWidth:i,singleLine:s=!0,lines:t=1,title:l,"data-testid":r})=>n.jsx("div",{className:o.csx("proton-TextEllipsis",s||t===1?"proton-TextEllipsis--single-line":t>1?"proton-TextEllipsis--multi-line":""),style:{maxWidth:i,WebkitLineClamp:t},title:l,"data-testid":r,children:e});exports.TextEllipsis=p;
2
2
  //# sourceMappingURL=TextEllipsis.cjs.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"TextEllipsis.cjs.js","sources":["../../../../src/components/Text/TextEllipsis/TextEllipsis.tsx"],"sourcesContent":["\"use client\";\n\nimport { ReactNode } from \"react\";\nimport { csx } from \"../../../utils\";\nimport \"./TextEllipsis.css\";\n\ninterface TextEllipsisProps {\n /**\n * The content to display within the text ellipsis.\n */\n children: ReactNode;\n\n /**\n * The maximum width of the text container in any valid CSS unit (px, rem, em, %, etc.).\n * When the container width is less than this value, text will be truncated with an ellipsis.\n */\n maxWidth?: string | number;\n\n /**\n * Whether to truncate the text to a single line. Default is true.\n * If false, the text will wrap to multiple lines.\n */\n singleLine?: boolean;\n\n /**\n * The number of lines to show before truncating with an ellipsis.\n * Only applies when singleLine is false.\n */\n lines?: number;\n\n /**\n * The title attribute to show on hover. If not provided and singleLine is true,\n * the children will be used as the title (if children is a string).\n */\n title?: string;\n\n /**\n * Test id for the component.\n */\n \"data-testid\"?: string;\n}\n\n/**\n * A component that displays text with an ellipsis when it overflows its container.\n *\n * API:\n * - {@link TextEllipsisProps}\n */\nexport const TextEllipsis = ({\n children,\n maxWidth,\n singleLine = true,\n lines = 1,\n title,\n \"data-testid\": testId,\n}: TextEllipsisProps) => {\n return (\n <div\n className={csx(\n \"proton-TextEllipsis\",\n singleLine || lines === 1\n ? \"proton-TextEllipsis--single-line\"\n : lines > 1\n ? \"proton-TextEllipsis--multi-line\"\n : \"\"\n )}\n style={{\n maxWidth: maxWidth,\n WebkitLineClamp: lines,\n }}\n title={title}\n data-testid={testId}\n >\n {children}\n </div>\n );\n};\n"],"names":["TextEllipsis","children","maxWidth","singleLine","lines","title","testId","jsx","csx"],"mappings":"uOAgDaA,EAAe,CAAC,CAC3B,SAAAC,EACA,SAAAC,EACA,WAAAC,EAAa,GACb,MAAAC,EAAQ,EACR,MAAAC,EACA,cAAeC,CACjB,IAEIC,EAAAA,kBAAAA,IAAC,MAAA,CACC,UAAWC,EAAAA,IACT,sBACAL,GAAcC,IAAU,EACpB,mCACAA,EAAQ,EACN,kCACA,EAAA,EAER,MAAO,CACL,SAAAF,EACA,gBAAiBE,CAAA,EAEnB,MAAAC,EACA,cAAaC,EAEZ,SAAAL,CAAA,CAAA"}
1
+ {"version":3,"file":"TextEllipsis.cjs.js","sources":["../../../../src/components/Text/TextEllipsis/TextEllipsis.tsx"],"sourcesContent":["\"use client\";\n\nimport { ReactNode } from \"react\";\nimport { csx } from \"../../../utils\";\nimport \"./TextEllipsis.css\";\n\ninterface TextEllipsisProps {\n /**\n * The content to display within the text ellipsis.\n */\n children: ReactNode;\n\n /**\n * The maximum width of the text container in any valid CSS unit (px, rem, em, %, etc.).\n * When the container width is less than this value, text will be truncated with an ellipsis.\n */\n maxWidth?: string | number;\n\n /**\n * Whether to truncate the text to a single line. Default is true.\n * If false, the text will wrap to multiple lines.\n */\n singleLine?: boolean;\n\n /**\n * The number of lines to show before truncating with an ellipsis.\n * Only applies when singleLine is false.\n */\n lines?: number;\n\n /**\n * The title attribute to show on hover. If not provided and singleLine is true,\n * the children will be used as the title (if children is a string).\n */\n title?: string;\n\n /**\n * Test id for the component.\n */\n \"data-testid\"?: string;\n}\n\n/**\n * A component that displays text with an ellipsis when it overflows its container.\n *\n * API:\n * - {@link TextEllipsisProps}\n */\nexport const TextEllipsis = ({\n children,\n maxWidth,\n singleLine = true,\n lines = 1,\n title,\n \"data-testid\": testId,\n}: TextEllipsisProps) => {\n return (\n <div\n className={csx(\n \"proton-TextEllipsis\",\n singleLine || lines === 1\n ? \"proton-TextEllipsis--single-line\"\n : lines > 1\n ? \"proton-TextEllipsis--multi-line\"\n : \"\"\n )}\n style={{\n maxWidth: maxWidth,\n WebkitLineClamp: lines,\n }}\n title={title}\n data-testid={testId}\n >\n {children}\n </div>\n );\n};\n"],"names":["TextEllipsis","children","maxWidth","singleLine","lines","title","testId","jsx","csx"],"mappings":"0MAgDaA,EAAe,CAAC,CAC3B,SAAAC,EACA,SAAAC,EACA,WAAAC,EAAa,GACb,MAAAC,EAAQ,EACR,MAAAC,EACA,cAAeC,CACjB,IAEIC,EAAAA,IAAC,MAAA,CACC,UAAWC,EAAAA,IACT,sBACAL,GAAcC,IAAU,EACpB,mCACAA,EAAQ,EACN,kCACA,EAAA,EAER,MAAO,CACL,SAAAF,EACA,gBAAiBE,CAAA,EAEnB,MAAAC,EACA,cAAaC,EAEZ,SAAAL,CAAA,CAAA"}