@economic/taco 1.15.1 → 1.16.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 (379) hide show
  1. package/README.md +82 -82
  2. package/dist/components/Banner/Banner.d.ts +4 -0
  3. package/dist/components/Card/Card.d.ts +1 -1
  4. package/dist/components/Menu/Menu.d.ts +6 -1
  5. package/dist/components/Menu/Menu.stories.d.ts +2 -0
  6. package/dist/components/Menu/components/Content.d.ts +3 -1
  7. package/dist/components/Provider/Localization.d.ts +157 -0
  8. package/dist/components/Provider/Provider.d.ts +1 -148
  9. package/dist/components/SearchInput/SearchInput.d.ts +5 -1
  10. package/dist/components/Select2/Select2.d.ts +6 -4
  11. package/dist/components/Select2/Select2.stories.d.ts +1 -0
  12. package/dist/components/Table/hooks/plugins/useRowActions.d.ts +1 -1
  13. package/dist/esm/index.css +245 -245
  14. package/dist/esm/packages/taco/src/components/AlertDialog/AlertDialog.js.map +1 -1
  15. package/dist/esm/packages/taco/src/components/AlertDialog/Context.js.map +1 -1
  16. package/dist/esm/packages/taco/src/components/AlertDialog/components/Content.js.map +1 -1
  17. package/dist/esm/packages/taco/src/components/AlertDialog/components/Footer.js.map +1 -1
  18. package/dist/esm/packages/taco/src/components/AlertDialog/components/Trigger.js.map +1 -1
  19. package/dist/esm/packages/taco/src/components/Backdrop/Backdrop.js.map +1 -1
  20. package/dist/esm/packages/taco/src/components/Banner/Banner.js +5 -0
  21. package/dist/esm/packages/taco/src/components/Banner/Banner.js.map +1 -1
  22. package/dist/esm/packages/taco/src/components/Button/Button.js.map +1 -1
  23. package/dist/esm/packages/taco/src/components/Button/util.js.map +1 -1
  24. package/dist/esm/packages/taco/src/components/Calendar/Calendar.js +1 -1
  25. package/dist/esm/packages/taco/src/components/Calendar/Calendar.js.map +1 -1
  26. package/dist/esm/packages/taco/src/components/Card/Card.js +0 -54
  27. package/dist/esm/packages/taco/src/components/Card/Card.js.map +1 -1
  28. package/dist/esm/packages/taco/src/components/Checkbox/Checkbox.js +17 -5
  29. package/dist/esm/packages/taco/src/components/Checkbox/Checkbox.js.map +1 -1
  30. package/dist/esm/packages/taco/src/components/Combobox/Combobox.js +6 -2
  31. package/dist/esm/packages/taco/src/components/Combobox/Combobox.js.map +1 -1
  32. package/dist/esm/packages/taco/src/components/Combobox/useCombobox.js.map +1 -1
  33. package/dist/esm/packages/taco/src/components/Datepicker/Datepicker.js +1 -1
  34. package/dist/esm/packages/taco/src/components/Datepicker/Datepicker.js.map +1 -1
  35. package/dist/esm/packages/taco/src/components/Datepicker/useDatepicker.js +1 -1
  36. package/dist/esm/packages/taco/src/components/Datepicker/useDatepicker.js.map +1 -1
  37. package/dist/esm/packages/taco/src/components/Dialog/Dialog.js.map +1 -1
  38. package/dist/esm/packages/taco/src/components/Dialog/components/Content.js +5 -1
  39. package/dist/esm/packages/taco/src/components/Dialog/components/Content.js.map +1 -1
  40. package/dist/esm/packages/taco/src/components/Dialog/components/Drawer.js +1 -1
  41. package/dist/esm/packages/taco/src/components/Dialog/components/Drawer.js.map +1 -1
  42. package/dist/esm/packages/taco/src/components/Dialog/components/Trigger.js.map +1 -1
  43. package/dist/esm/packages/taco/src/components/Dialog/util.js.map +1 -1
  44. package/dist/esm/packages/taco/src/components/Hanger/Hanger.js +1 -1
  45. package/dist/esm/packages/taco/src/components/Hanger/Hanger.js.map +1 -1
  46. package/dist/esm/packages/taco/src/components/HoverCard/HoverCard.js.map +1 -1
  47. package/dist/esm/packages/taco/src/components/HoverCard/Primitives.js.map +1 -1
  48. package/dist/esm/packages/taco/src/components/Icon/components/AccountPreview.js.map +1 -1
  49. package/dist/esm/packages/taco/src/components/Icon/components/Accounting.js.map +1 -1
  50. package/dist/esm/packages/taco/src/components/Icon/components/AccountingYear.js.map +1 -1
  51. package/dist/esm/packages/taco/src/components/Icon/components/AccountingYearCancel.js.map +1 -1
  52. package/dist/esm/packages/taco/src/components/Icon/components/ArrowBottom.js.map +1 -1
  53. package/dist/esm/packages/taco/src/components/Icon/components/ArrowDown.js.map +1 -1
  54. package/dist/esm/packages/taco/src/components/Icon/components/ArrowEnd.js.map +1 -1
  55. package/dist/esm/packages/taco/src/components/Icon/components/ArrowLeft.js.map +1 -1
  56. package/dist/esm/packages/taco/src/components/Icon/components/ArrowRight.js.map +1 -1
  57. package/dist/esm/packages/taco/src/components/Icon/components/ArrowStart.js.map +1 -1
  58. package/dist/esm/packages/taco/src/components/Icon/components/ArrowTop.js.map +1 -1
  59. package/dist/esm/packages/taco/src/components/Icon/components/ArrowUp.js.map +1 -1
  60. package/dist/esm/packages/taco/src/components/Icon/components/Attach.js.map +1 -1
  61. package/dist/esm/packages/taco/src/components/Icon/components/AttachAuto.js.map +1 -1
  62. package/dist/esm/packages/taco/src/components/Icon/components/AttachCancel.js.map +1 -1
  63. package/dist/esm/packages/taco/src/components/Icon/components/Autotext.js.map +1 -1
  64. package/dist/esm/packages/taco/src/components/Icon/components/AutotextInsert.js.map +1 -1
  65. package/dist/esm/packages/taco/src/components/Icon/components/Basic.js.map +1 -1
  66. package/dist/esm/packages/taco/src/components/Icon/components/BasicTabs.js.map +1 -1
  67. package/dist/esm/packages/taco/src/components/Icon/components/BellSolid.js.map +1 -1
  68. package/dist/esm/packages/taco/src/components/Icon/components/Book.js.map +1 -1
  69. package/dist/esm/packages/taco/src/components/Icon/components/Booking.js.map +1 -1
  70. package/dist/esm/packages/taco/src/components/Icon/components/Budget.js.map +1 -1
  71. package/dist/esm/packages/taco/src/components/Icon/components/Calendar.js.map +1 -1
  72. package/dist/esm/packages/taco/src/components/Icon/components/CashAccount.js.map +1 -1
  73. package/dist/esm/packages/taco/src/components/Icon/components/CashReports.js.map +1 -1
  74. package/dist/esm/packages/taco/src/components/Icon/components/Chat.js.map +1 -1
  75. package/dist/esm/packages/taco/src/components/Icon/components/ChatSolid.js.map +1 -1
  76. package/dist/esm/packages/taco/src/components/Icon/components/ChevronDown.js.map +1 -1
  77. package/dist/esm/packages/taco/src/components/Icon/components/ChevronDownDouble.js.map +1 -1
  78. package/dist/esm/packages/taco/src/components/Icon/components/ChevronDownSolid.js.map +1 -1
  79. package/dist/esm/packages/taco/src/components/Icon/components/ChevronLeft.js.map +1 -1
  80. package/dist/esm/packages/taco/src/components/Icon/components/ChevronLeftDouble.js.map +1 -1
  81. package/dist/esm/packages/taco/src/components/Icon/components/ChevronLeftSolid.js.map +1 -1
  82. package/dist/esm/packages/taco/src/components/Icon/components/ChevronRight.js.map +1 -1
  83. package/dist/esm/packages/taco/src/components/Icon/components/ChevronRightDouble.js.map +1 -1
  84. package/dist/esm/packages/taco/src/components/Icon/components/ChevronRightSolid.js.map +1 -1
  85. package/dist/esm/packages/taco/src/components/Icon/components/ChevronUp.js.map +1 -1
  86. package/dist/esm/packages/taco/src/components/Icon/components/ChevronUpDouble.js.map +1 -1
  87. package/dist/esm/packages/taco/src/components/Icon/components/ChevronUpSolid.js.map +1 -1
  88. package/dist/esm/packages/taco/src/components/Icon/components/CircleClose.js.map +1 -1
  89. package/dist/esm/packages/taco/src/components/Icon/components/CircleMinus.js.map +1 -1
  90. package/dist/esm/packages/taco/src/components/Icon/components/CirclePlus.js.map +1 -1
  91. package/dist/esm/packages/taco/src/components/Icon/components/CircleTick.js.map +1 -1
  92. package/dist/esm/packages/taco/src/components/Icon/components/Clamp.js.map +1 -1
  93. package/dist/esm/packages/taco/src/components/Icon/components/ClampOpen.js.map +1 -1
  94. package/dist/esm/packages/taco/src/components/Icon/components/Close.js.map +1 -1
  95. package/dist/esm/packages/taco/src/components/Icon/components/ConnectionEnable.js.map +1 -1
  96. package/dist/esm/packages/taco/src/components/Icon/components/ConnectionRevoke.js.map +1 -1
  97. package/dist/esm/packages/taco/src/components/Icon/components/Contacts.js.map +1 -1
  98. package/dist/esm/packages/taco/src/components/Icon/components/Copy.js.map +1 -1
  99. package/dist/esm/packages/taco/src/components/Icon/components/Courses.js.map +1 -1
  100. package/dist/esm/packages/taco/src/components/Icon/components/Credit.js.map +1 -1
  101. package/dist/esm/packages/taco/src/components/Icon/components/Delete.js.map +1 -1
  102. package/dist/esm/packages/taco/src/components/Icon/components/DeletePermanently.js.map +1 -1
  103. package/dist/esm/packages/taco/src/components/Icon/components/Depecriate.js.map +1 -1
  104. package/dist/esm/packages/taco/src/components/Icon/components/Developer.js.map +1 -1
  105. package/dist/esm/packages/taco/src/components/Icon/components/DistributionTemplate.js.map +1 -1
  106. package/dist/esm/packages/taco/src/components/Icon/components/Document.js.map +1 -1
  107. package/dist/esm/packages/taco/src/components/Icon/components/DocumentApprove.js.map +1 -1
  108. package/dist/esm/packages/taco/src/components/Icon/components/DocumentCreateEntry.js.map +1 -1
  109. package/dist/esm/packages/taco/src/components/Icon/components/DocumentCut.js.map +1 -1
  110. package/dist/esm/packages/taco/src/components/Icon/components/DocumentError.js.map +1 -1
  111. package/dist/esm/packages/taco/src/components/Icon/components/DocumentIsolatePage.js.map +1 -1
  112. package/dist/esm/packages/taco/src/components/Icon/components/DocumentMerge.js.map +1 -1
  113. package/dist/esm/packages/taco/src/components/Icon/components/DocumentMove.js.map +1 -1
  114. package/dist/esm/packages/taco/src/components/Icon/components/DocumentPreview.js.map +1 -1
  115. package/dist/esm/packages/taco/src/components/Icon/components/DocumentReceived.js.map +1 -1
  116. package/dist/esm/packages/taco/src/components/Icon/components/DocumentRejectedRequest.js.map +1 -1
  117. package/dist/esm/packages/taco/src/components/Icon/components/DocumentSplit.js.map +1 -1
  118. package/dist/esm/packages/taco/src/components/Icon/components/DocumentTime.js.map +1 -1
  119. package/dist/esm/packages/taco/src/components/Icon/components/Download.js.map +1 -1
  120. package/dist/esm/packages/taco/src/components/Icon/components/Drag.js.map +1 -1
  121. package/dist/esm/packages/taco/src/components/Icon/components/ECopedia.js.map +1 -1
  122. package/dist/esm/packages/taco/src/components/Icon/components/ESignature.js.map +1 -1
  123. package/dist/esm/packages/taco/src/components/Icon/components/Edit.js.map +1 -1
  124. package/dist/esm/packages/taco/src/components/Icon/components/EllipsisHorizontal.js.map +1 -1
  125. package/dist/esm/packages/taco/src/components/Icon/components/EllipsisVertical.js.map +1 -1
  126. package/dist/esm/packages/taco/src/components/Icon/components/EntriesOnAccount.js.map +1 -1
  127. package/dist/esm/packages/taco/src/components/Icon/components/EntriesOpen.js.map +1 -1
  128. package/dist/esm/packages/taco/src/components/Icon/components/EntriesWarning.js.map +1 -1
  129. package/dist/esm/packages/taco/src/components/Icon/components/EntryTypeCustomerInvoice.js.map +1 -1
  130. package/dist/esm/packages/taco/src/components/Icon/components/EntryTypeCustomerPayment.js.map +1 -1
  131. package/dist/esm/packages/taco/src/components/Icon/components/EntryTypeJournalEntry.js.map +1 -1
  132. package/dist/esm/packages/taco/src/components/Icon/components/EntryTypeManualCustomerInvoice.js.map +1 -1
  133. package/dist/esm/packages/taco/src/components/Icon/components/EntryTypeSupplierInvoice.js.map +1 -1
  134. package/dist/esm/packages/taco/src/components/Icon/components/EntryTypeSupplierPayment.js.map +1 -1
  135. package/dist/esm/packages/taco/src/components/Icon/components/Envelope.js.map +1 -1
  136. package/dist/esm/packages/taco/src/components/Icon/components/EnvelopeApproved.js.map +1 -1
  137. package/dist/esm/packages/taco/src/components/Icon/components/ExpandView.js.map +1 -1
  138. package/dist/esm/packages/taco/src/components/Icon/components/Expenses.js.map +1 -1
  139. package/dist/esm/packages/taco/src/components/Icon/components/Export.js.map +1 -1
  140. package/dist/esm/packages/taco/src/components/Icon/components/ExportToExcel.js.map +1 -1
  141. package/dist/esm/packages/taco/src/components/Icon/components/ExportToPdf.js.map +1 -1
  142. package/dist/esm/packages/taco/src/components/Icon/components/Filter.js.map +1 -1
  143. package/dist/esm/packages/taco/src/components/Icon/components/FilterSolid.js.map +1 -1
  144. package/dist/esm/packages/taco/src/components/Icon/components/GraphSolid.js.map +1 -1
  145. package/dist/esm/packages/taco/src/components/Icon/components/Hash.js.map +1 -1
  146. package/dist/esm/packages/taco/src/components/Icon/components/Home.js.map +1 -1
  147. package/dist/esm/packages/taco/src/components/Icon/components/Images.js.map +1 -1
  148. package/dist/esm/packages/taco/src/components/Icon/components/Import.js.map +1 -1
  149. package/dist/esm/packages/taco/src/components/Icon/components/Inbox.js.map +1 -1
  150. package/dist/esm/packages/taco/src/components/Icon/components/InboxEinvoicing.js.map +1 -1
  151. package/dist/esm/packages/taco/src/components/Icon/components/InboxScanning.js.map +1 -1
  152. package/dist/esm/packages/taco/src/components/Icon/components/InboxSmart.js.map +1 -1
  153. package/dist/esm/packages/taco/src/components/Icon/components/Info.js.map +1 -1
  154. package/dist/esm/packages/taco/src/components/Icon/components/Inventory.js.map +1 -1
  155. package/dist/esm/packages/taco/src/components/Icon/components/InventoryMatrix.js.map +1 -1
  156. package/dist/esm/packages/taco/src/components/Icon/components/JournalPro.js.map +1 -1
  157. package/dist/esm/packages/taco/src/components/Icon/components/Layout.js.map +1 -1
  158. package/dist/esm/packages/taco/src/components/Icon/components/LayoutBoth.js.map +1 -1
  159. package/dist/esm/packages/taco/src/components/Icon/components/LayoutFirst.js.map +1 -1
  160. package/dist/esm/packages/taco/src/components/Icon/components/LayoutLast.js.map +1 -1
  161. package/dist/esm/packages/taco/src/components/Icon/components/LayoutNone.js.map +1 -1
  162. package/dist/esm/packages/taco/src/components/Icon/components/LedgerCard.js.map +1 -1
  163. package/dist/esm/packages/taco/src/components/Icon/components/LedgerCardCustomerReminder.js.map +1 -1
  164. package/dist/esm/packages/taco/src/components/Icon/components/LedgerCardManualCustomerInvoice.js.map +1 -1
  165. package/dist/esm/packages/taco/src/components/Icon/components/LedgerCardObsoleteStock.js.map +1 -1
  166. package/dist/esm/packages/taco/src/components/Icon/components/LedgerCardOpeningEntry.js.map +1 -1
  167. package/dist/esm/packages/taco/src/components/Icon/components/LedgerCardReservedEntry.js.map +1 -1
  168. package/dist/esm/packages/taco/src/components/Icon/components/LedgerCardShrinkagePilferage.js.map +1 -1
  169. package/dist/esm/packages/taco/src/components/Icon/components/LedgerCardStockAdjustment.js.map +1 -1
  170. package/dist/esm/packages/taco/src/components/Icon/components/LedgerCardTransferredOpeningEntry.js.map +1 -1
  171. package/dist/esm/packages/taco/src/components/Icon/components/Lightbulb.js.map +1 -1
  172. package/dist/esm/packages/taco/src/components/Icon/components/Line.js.map +1 -1
  173. package/dist/esm/packages/taco/src/components/Icon/components/List.js.map +1 -1
  174. package/dist/esm/packages/taco/src/components/Icon/components/ListBulleted.js.map +1 -1
  175. package/dist/esm/packages/taco/src/components/Icon/components/ListSearch.js.map +1 -1
  176. package/dist/esm/packages/taco/src/components/Icon/components/LockOpen.js.map +1 -1
  177. package/dist/esm/packages/taco/src/components/Icon/components/Log.js.map +1 -1
  178. package/dist/esm/packages/taco/src/components/Icon/components/LogOut.js.map +1 -1
  179. package/dist/esm/packages/taco/src/components/Icon/components/Market.js.map +1 -1
  180. package/dist/esm/packages/taco/src/components/Icon/components/MatchAmount.js.map +1 -1
  181. package/dist/esm/packages/taco/src/components/Icon/components/MatchEntries.js.map +1 -1
  182. package/dist/esm/packages/taco/src/components/Icon/components/Menu.js.map +1 -1
  183. package/dist/esm/packages/taco/src/components/Icon/components/Mileage.js.map +1 -1
  184. package/dist/esm/packages/taco/src/components/Icon/components/ModalResize.js.map +1 -1
  185. package/dist/esm/packages/taco/src/components/Icon/components/ModalShrink.js.map +1 -1
  186. package/dist/esm/packages/taco/src/components/Icon/components/More.js.map +1 -1
  187. package/dist/esm/packages/taco/src/components/Icon/components/MoreSolid.js.map +1 -1
  188. package/dist/esm/packages/taco/src/components/Icon/components/Move.js.map +1 -1
  189. package/dist/esm/packages/taco/src/components/Icon/components/NavigationList.js.map +1 -1
  190. package/dist/esm/packages/taco/src/components/Icon/components/Note.js.map +1 -1
  191. package/dist/esm/packages/taco/src/components/Icon/components/NoteFollowUp.js.map +1 -1
  192. package/dist/esm/packages/taco/src/components/Icon/components/NoteRead.js.map +1 -1
  193. package/dist/esm/packages/taco/src/components/Icon/components/Numbers.js.map +1 -1
  194. package/dist/esm/packages/taco/src/components/Icon/components/PartnerApi.js.map +1 -1
  195. package/dist/esm/packages/taco/src/components/Icon/components/Period.js.map +1 -1
  196. package/dist/esm/packages/taco/src/components/Icon/components/PersonChange.js.map +1 -1
  197. package/dist/esm/packages/taco/src/components/Icon/components/PersonMinus.js.map +1 -1
  198. package/dist/esm/packages/taco/src/components/Icon/components/PersonPlus.js.map +1 -1
  199. package/dist/esm/packages/taco/src/components/Icon/components/PersonTick.js.map +1 -1
  200. package/dist/esm/packages/taco/src/components/Icon/components/Play.js.map +1 -1
  201. package/dist/esm/packages/taco/src/components/Icon/components/PlusMinus.js.map +1 -1
  202. package/dist/esm/packages/taco/src/components/Icon/components/Print.js.map +1 -1
  203. package/dist/esm/packages/taco/src/components/Icon/components/ProcessPayment.js.map +1 -1
  204. package/dist/esm/packages/taco/src/components/Icon/components/ProductLedgerCard.js.map +1 -1
  205. package/dist/esm/packages/taco/src/components/Icon/components/Profile.js.map +1 -1
  206. package/dist/esm/packages/taco/src/components/Icon/components/ProjectCards.js.map +1 -1
  207. package/dist/esm/packages/taco/src/components/Icon/components/Projects.js.map +1 -1
  208. package/dist/esm/packages/taco/src/components/Icon/components/Quicklinks.js.map +1 -1
  209. package/dist/esm/packages/taco/src/components/Icon/components/RatingBankruptcy.js.map +1 -1
  210. package/dist/esm/packages/taco/src/components/Icon/components/RatingPaymentProblems.js.map +1 -1
  211. package/dist/esm/packages/taco/src/components/Icon/components/Reconciled.js.map +1 -1
  212. package/dist/esm/packages/taco/src/components/Icon/components/Refresh.js.map +1 -1
  213. package/dist/esm/packages/taco/src/components/Icon/components/Report.js.map +1 -1
  214. package/dist/esm/packages/taco/src/components/Icon/components/ReportSolid.js.map +1 -1
  215. package/dist/esm/packages/taco/src/components/Icon/components/Restore.js.map +1 -1
  216. package/dist/esm/packages/taco/src/components/Icon/components/RotateLeft.js.map +1 -1
  217. package/dist/esm/packages/taco/src/components/Icon/components/RotateRight.js.map +1 -1
  218. package/dist/esm/packages/taco/src/components/Icon/components/Sales.js.map +1 -1
  219. package/dist/esm/packages/taco/src/components/Icon/components/Search.js.map +1 -1
  220. package/dist/esm/packages/taco/src/components/Icon/components/SearchBold.js.map +1 -1
  221. package/dist/esm/packages/taco/src/components/Icon/components/Secure.js.map +1 -1
  222. package/dist/esm/packages/taco/src/components/Icon/components/SecureTick.js.map +1 -1
  223. package/dist/esm/packages/taco/src/components/Icon/components/Settings.js.map +1 -1
  224. package/dist/esm/packages/taco/src/components/Icon/components/SettingsSolid.js.map +1 -1
  225. package/dist/esm/packages/taco/src/components/Icon/components/Shortcuts.js.map +1 -1
  226. package/dist/esm/packages/taco/src/components/Icon/components/ShowAll.js.map +1 -1
  227. package/dist/esm/packages/taco/src/components/Icon/components/ShowLess.js.map +1 -1
  228. package/dist/esm/packages/taco/src/components/Icon/components/ShowMore.js.map +1 -1
  229. package/dist/esm/packages/taco/src/components/Icon/components/ShowTemplate.js.map +1 -1
  230. package/dist/esm/packages/taco/src/components/Icon/components/Sliders.js.map +1 -1
  231. package/dist/esm/packages/taco/src/components/Icon/components/Smartpay.js.map +1 -1
  232. package/dist/esm/packages/taco/src/components/Icon/components/SortBy.js.map +1 -1
  233. package/dist/esm/packages/taco/src/components/Icon/components/Spinner.js.map +1 -1
  234. package/dist/esm/packages/taco/src/components/Icon/components/Star.js.map +1 -1
  235. package/dist/esm/packages/taco/src/components/Icon/components/StarSolid.js.map +1 -1
  236. package/dist/esm/packages/taco/src/components/Icon/components/Subscriptions.js.map +1 -1
  237. package/dist/esm/packages/taco/src/components/Icon/components/SystemEntries.js.map +1 -1
  238. package/dist/esm/packages/taco/src/components/Icon/components/Tag.js.map +1 -1
  239. package/dist/esm/packages/taco/src/components/Icon/components/TemplateOverride.js.map +1 -1
  240. package/dist/esm/packages/taco/src/components/Icon/components/Templates.js.map +1 -1
  241. package/dist/esm/packages/taco/src/components/Icon/components/ThumbBoth.js.map +1 -1
  242. package/dist/esm/packages/taco/src/components/Icon/components/ThumbDown.js.map +1 -1
  243. package/dist/esm/packages/taco/src/components/Icon/components/ThumbDownSolid.js.map +1 -1
  244. package/dist/esm/packages/taco/src/components/Icon/components/ThumbUp.js.map +1 -1
  245. package/dist/esm/packages/taco/src/components/Icon/components/ThumbUpSolid.js.map +1 -1
  246. package/dist/esm/packages/taco/src/components/Icon/components/Tick.js.map +1 -1
  247. package/dist/esm/packages/taco/src/components/Icon/components/Time.js.map +1 -1
  248. package/dist/esm/packages/taco/src/components/Icon/components/Transfer.js.map +1 -1
  249. package/dist/esm/packages/taco/src/components/Icon/components/TransferCancel.js.map +1 -1
  250. package/dist/esm/packages/taco/src/components/Icon/components/TransferLocked.js.map +1 -1
  251. package/dist/esm/packages/taco/src/components/Icon/components/Undo.js.map +1 -1
  252. package/dist/esm/packages/taco/src/components/Icon/components/Undock.js.map +1 -1
  253. package/dist/esm/packages/taco/src/components/Icon/components/Unreconciled.js.map +1 -1
  254. package/dist/esm/packages/taco/src/components/Icon/components/Warning.js.map +1 -1
  255. package/dist/esm/packages/taco/src/components/Icon/components/Webshop.js.map +1 -1
  256. package/dist/esm/packages/taco/src/components/Icon/components/Website.js.map +1 -1
  257. package/dist/esm/packages/taco/src/components/Icon/components/Workflow.js.map +1 -1
  258. package/dist/esm/packages/taco/src/components/Icon/components/Zoom.js.map +1 -1
  259. package/dist/esm/packages/taco/src/components/Icon/components/index.js.map +1 -1
  260. package/dist/esm/packages/taco/src/components/IconButton/IconButton.js.map +1 -1
  261. package/dist/esm/packages/taco/src/components/Input/Input.js.map +1 -1
  262. package/dist/esm/packages/taco/src/components/Input/util.js.map +1 -1
  263. package/dist/esm/packages/taco/src/components/Listbox/ScrollableList.js +24 -19
  264. package/dist/esm/packages/taco/src/components/Listbox/ScrollableList.js.map +1 -1
  265. package/dist/esm/packages/taco/src/components/Listbox/useListbox.js.map +1 -1
  266. package/dist/esm/packages/taco/src/components/Listbox/useMultiListbox.js +1 -1
  267. package/dist/esm/packages/taco/src/components/Listbox/useMultiListbox.js.map +1 -1
  268. package/dist/esm/packages/taco/src/components/Listbox/useTypeahead.js +1 -1
  269. package/dist/esm/packages/taco/src/components/Listbox/util.js.map +1 -1
  270. package/dist/esm/packages/taco/src/components/Menu/Menu.js +11 -1
  271. package/dist/esm/packages/taco/src/components/Menu/Menu.js.map +1 -1
  272. package/dist/esm/packages/taco/src/components/Menu/components/Checkbox.js.map +1 -1
  273. package/dist/esm/packages/taco/src/components/Menu/components/Content.js +4 -3
  274. package/dist/esm/packages/taco/src/components/Menu/components/Content.js.map +1 -1
  275. package/dist/esm/packages/taco/src/components/Menu/components/Header.js.map +1 -1
  276. package/dist/esm/packages/taco/src/components/Menu/components/Item.js.map +1 -1
  277. package/dist/esm/packages/taco/src/components/Menu/components/RadioGroup.js.map +1 -1
  278. package/dist/esm/packages/taco/src/components/Menu/components/Trigger.js.map +1 -1
  279. package/dist/esm/packages/taco/src/components/Navigation/Navigation.js.map +1 -1
  280. package/dist/esm/packages/taco/src/components/Pagination/PageNumbers.js +1 -1
  281. package/dist/esm/packages/taco/src/components/Pagination/PageNumbers.js.map +1 -1
  282. package/dist/esm/packages/taco/src/components/Pagination/Pagination.js +1 -1
  283. package/dist/esm/packages/taco/src/components/Pagination/Pagination.js.map +1 -1
  284. package/dist/esm/packages/taco/src/components/Popover/Popover.js.map +1 -1
  285. package/dist/esm/packages/taco/src/components/Popover/Primitives.js.map +1 -1
  286. package/dist/esm/packages/taco/src/components/Popover/util.js.map +1 -1
  287. package/dist/esm/packages/taco/src/components/Provider/Localization.js +112 -0
  288. package/dist/esm/packages/taco/src/components/Provider/Localization.js.map +1 -0
  289. package/dist/esm/packages/taco/src/components/Provider/Provider.js +6 -106
  290. package/dist/esm/packages/taco/src/components/Provider/Provider.js.map +1 -1
  291. package/dist/esm/packages/taco/src/components/RadioGroup/RadioGroup.js.map +1 -1
  292. package/dist/esm/packages/taco/src/components/ScrollArea/ScrollArea.js.map +1 -1
  293. package/dist/esm/packages/taco/src/components/SearchInput/SearchInput.js +2 -53
  294. package/dist/esm/packages/taco/src/components/SearchInput/SearchInput.js.map +1 -1
  295. package/dist/esm/packages/taco/src/components/Select/Select.js.map +1 -1
  296. package/dist/esm/packages/taco/src/components/Select/useSelect.js +1 -1
  297. package/dist/esm/packages/taco/src/components/Select/useSelect.js.map +1 -1
  298. package/dist/esm/packages/taco/src/components/Select2/Select2.js +7 -5
  299. package/dist/esm/packages/taco/src/components/Select2/Select2.js.map +1 -1
  300. package/dist/esm/packages/taco/src/components/Select2/components/Collection.js +0 -6
  301. package/dist/esm/packages/taco/src/components/Select2/components/Collection.js.map +1 -1
  302. package/dist/esm/packages/taco/src/components/Select2/components/Context.js.map +1 -1
  303. package/dist/esm/packages/taco/src/components/Select2/components/Create.js +1 -1
  304. package/dist/esm/packages/taco/src/components/Select2/components/Create.js.map +1 -1
  305. package/dist/esm/packages/taco/src/components/Select2/components/Edit.js +1 -1
  306. package/dist/esm/packages/taco/src/components/Select2/components/Edit.js.map +1 -1
  307. package/dist/esm/packages/taco/src/components/Select2/components/Group.js.map +1 -1
  308. package/dist/esm/packages/taco/src/components/Select2/components/Option.js.map +1 -1
  309. package/dist/esm/packages/taco/src/components/Select2/components/Search.js.map +1 -1
  310. package/dist/esm/packages/taco/src/components/Select2/components/Title.js.map +1 -1
  311. package/dist/esm/packages/taco/src/components/Select2/components/Trigger.js +49 -23
  312. package/dist/esm/packages/taco/src/components/Select2/components/Trigger.js.map +1 -1
  313. package/dist/esm/packages/taco/src/components/Select2/hooks/useChildren.js +3 -2
  314. package/dist/esm/packages/taco/src/components/Select2/hooks/useChildren.js.map +1 -1
  315. package/dist/esm/packages/taco/src/components/Select2/utilities.js.map +1 -1
  316. package/dist/esm/packages/taco/src/components/Switch/Switch.js +18 -6
  317. package/dist/esm/packages/taco/src/components/Switch/Switch.js.map +1 -1
  318. package/dist/esm/packages/taco/src/components/Table/components/BaseTable.js.map +1 -1
  319. package/dist/esm/packages/taco/src/components/Table/components/Table.js +5 -1
  320. package/dist/esm/packages/taco/src/components/Table/components/Table.js.map +1 -1
  321. package/dist/esm/packages/taco/src/components/Table/components/WindowedTable.js +1 -1
  322. package/dist/esm/packages/taco/src/components/Table/components/WindowedTable.js.map +1 -1
  323. package/dist/esm/packages/taco/src/components/Table/hooks/plugins/useRowActions.js.map +1 -1
  324. package/dist/esm/packages/taco/src/components/Table/hooks/useTable.js +1 -1
  325. package/dist/esm/packages/taco/src/components/Table/hooks/useTable.js.map +1 -1
  326. package/dist/esm/packages/taco/src/components/Table/hooks/useTableKeyboardNavigation.js.map +1 -1
  327. package/dist/esm/packages/taco/src/components/Table/util/rowIndexPath.js.map +1 -1
  328. package/dist/esm/packages/taco/src/components/Table/util/sortTypes.js.map +1 -1
  329. package/dist/esm/packages/taco/src/components/Table/util.js.map +1 -1
  330. package/dist/esm/packages/taco/src/components/Tag/Tag.js.map +1 -1
  331. package/dist/esm/packages/taco/src/components/Toast/Toast.js +1 -1
  332. package/dist/esm/packages/taco/src/components/Toast/Toast.js.map +1 -1
  333. package/dist/esm/packages/taco/src/components/Toast/Toaster.js.map +1 -1
  334. package/dist/esm/packages/taco/src/components/Toast/util.js.map +1 -1
  335. package/dist/esm/packages/taco/src/components/Tooltip/Tooltip.js.map +1 -1
  336. package/dist/esm/packages/taco/src/components/Tour/Tour.js +1 -1
  337. package/dist/esm/packages/taco/src/components/Tour/Tour.js.map +1 -1
  338. package/dist/esm/packages/taco/src/hooks/useBoundingClientRectListener.js.map +1 -1
  339. package/dist/esm/packages/taco/src/hooks/useId.js.map +1 -1
  340. package/dist/esm/packages/taco/src/hooks/useIsFormControl.js.map +1 -1
  341. package/dist/esm/packages/taco/src/hooks/useMergedRef.js.map +1 -1
  342. package/dist/esm/packages/taco/src/hooks/usePrevious.js.map +1 -1
  343. package/dist/esm/packages/taco/src/index.js +5 -4
  344. package/dist/esm/packages/taco/src/index.js.map +1 -1
  345. package/dist/esm/packages/taco/src/primitives/BubbleSelect.js.map +1 -1
  346. package/dist/esm/packages/taco/src/primitives/Button.js.map +1 -1
  347. package/dist/esm/packages/taco/src/primitives/Collection/components/Root.js.map +1 -1
  348. package/dist/esm/packages/taco/src/primitives/Listbox2/components/Context.js.map +1 -1
  349. package/dist/esm/packages/taco/src/primitives/Listbox2/components/Group.js.map +1 -1
  350. package/dist/esm/packages/taco/src/primitives/Listbox2/components/Option.js.map +1 -1
  351. package/dist/esm/packages/taco/src/primitives/Listbox2/components/Root.js.map +1 -1
  352. package/dist/esm/packages/taco/src/primitives/Listbox2/components/Title.js.map +1 -1
  353. package/dist/esm/packages/taco/src/utils/aria.js.map +1 -1
  354. package/dist/esm/packages/taco/src/utils/colors.js.map +1 -1
  355. package/dist/esm/packages/taco/src/utils/date.js.map +1 -1
  356. package/dist/esm/packages/taco/src/utils/debounce.js.map +1 -1
  357. package/dist/esm/packages/taco/src/utils/device.js.map +1 -1
  358. package/dist/esm/packages/taco/src/utils/dom.js.map +1 -1
  359. package/dist/esm/packages/taco/src/utils/hooks/useDraggable.js +8 -0
  360. package/dist/esm/packages/taco/src/utils/hooks/useDraggable.js.map +1 -1
  361. package/dist/esm/packages/taco/src/utils/hooks/useDropTarget.js.map +1 -1
  362. package/dist/esm/packages/taco/src/utils/hooks/useListKeyboardNavigation.js.map +1 -1
  363. package/dist/esm/packages/taco/src/utils/hooks/useListScrollTo.js.map +1 -1
  364. package/dist/esm/packages/taco/src/utils/hooks/useOnClickOutside.js.map +1 -1
  365. package/dist/esm/packages/taco/src/utils/hooks/useTimer.js.map +1 -1
  366. package/dist/esm/packages/taco/src/utils/input.js.map +1 -1
  367. package/dist/esm/packages/taco/src/utils/mergeRefs.js.map +1 -1
  368. package/dist/esm/packages/taco/src/utils/taillwind.js.map +1 -1
  369. package/dist/index.css +245 -245
  370. package/dist/index.d.ts +1 -0
  371. package/dist/taco.cjs.development.js +765 -672
  372. package/dist/taco.cjs.development.js.map +1 -1
  373. package/dist/taco.cjs.production.min.js +1 -1
  374. package/dist/taco.cjs.production.min.js.map +1 -1
  375. package/dist/types.d.ts +1 -0
  376. package/package.json +3 -3
  377. package/plugins/tailwindcss-aria-attributes.js +73 -73
  378. package/tailwind.config.js +284 -284
  379. package/types.json +59 -39
@@ -1 +1 @@
1
- {"version":3,"file":"useTable.js","sources":["../../../../../../../../src/components/Table/hooks/useTable.tsx"],"sourcesContent":["import React from 'react';\r\nimport { useTable as useReactTable, useExpanded, useSortBy, usePagination, useRowState } from 'react-table';\r\nimport { getColumnsFromChildren, getInternalSortRules } from '../util';\r\nimport { sortTypes } from '../util/sortTypes';\r\nimport { useRowEditing } from './plugins/useRowEditing';\r\nimport { useRowActions } from './plugins/useRowActions';\r\nimport { useRowSelect } from './plugins/useRowSelect';\r\nimport {\r\n InternalTable,\r\n InternalTableRow,\r\n PaginationHandler,\r\n RowActiveHandler,\r\n SortHandler,\r\n TableProps,\r\n TableRef,\r\n} from '../types';\r\nimport { useTableKeyboardNavigation } from './useTableKeyboardNavigation';\r\nimport { useLocalization } from '../../Provider/Provider';\r\nimport { useRowDraggable } from './plugins/useRowDraggable';\r\nimport { sanitizeRowProps } from '../util';\r\n\r\nconst useTableRowActive = (\r\n activeIndex: number | undefined,\r\n rows: InternalTableRow[],\r\n rowExpansionRenderer: TableProps<any>['rowExpansionRenderer'],\r\n handleonRowActive: RowActiveHandler<any> | undefined\r\n) => {\r\n React.useEffect(() => {\r\n if (activeIndex !== undefined && rows.length && handleonRowActive) {\r\n const focusedRow = rows[activeIndex];\r\n if (focusedRow) {\r\n const sanitizedFocusedRow = sanitizeRowProps(focusedRow, rowExpansionRenderer);\r\n handleonRowActive(sanitizedFocusedRow);\r\n }\r\n }\r\n }, [activeIndex, rows]);\r\n};\r\n\r\nconst useTableInstance = (instance: any, ref: React.RefObject<TableRef>): object => {\r\n const sanitizedInstance = React.useMemo(\r\n () => ({\r\n toggleAllRowsExpanded: instance.toggleAllRowsExpanded,\r\n toggleHideAllColumns: instance.toggleHideAllColumns,\r\n toggleHideColumn: instance.toggleHideColumn,\r\n toggleEditing: instance.toggleEditing,\r\n toggleRowEditing: instance.toggleRowEditing,\r\n resetRowEditing: instance.resetRowEditing,\r\n toggleRowExpanded: instance.toggleRowExpanded,\r\n toggleSortBy: instance.toggleSortBy,\r\n }),\r\n []\r\n );\r\n\r\n React.useEffect(() => {\r\n if (ref?.current) {\r\n ref.current.instance = sanitizedInstance;\r\n }\r\n }, [ref]);\r\n\r\n return sanitizedInstance;\r\n};\r\n\r\nconst useTablePaginationListener = (disablePagination: boolean, onPaginate: PaginationHandler | undefined, state: any): void => {\r\n React.useEffect(() => {\r\n if (!disablePagination && onPaginate) {\r\n onPaginate(state.pageIndex, state.pageSize);\r\n }\r\n }, [state.pageIndex, state.pageSize]);\r\n};\r\n\r\nconst useTableSortingListener = (\r\n data: any[],\r\n sortedRows: any[],\r\n onSort: SortHandler<any> | undefined,\r\n manualSorting: boolean,\r\n state: any\r\n): void => {\r\n React.useEffect(() => {\r\n if (onSort) {\r\n const sortRules = state.sortBy.map((rule: any) => ({ accessor: rule.id, desc: rule.desc }));\r\n\r\n if (manualSorting) {\r\n onSort(sortRules);\r\n } else {\r\n let sortedData;\r\n\r\n if (sortRules.length && sortedRows?.length) {\r\n sortedData = sortedRows.map((row: any) => row.original);\r\n }\r\n\r\n onSort(sortRules, sortedData || data);\r\n }\r\n }\r\n }, [onSort && JSON.stringify(state.sortBy), manualSorting]);\r\n};\r\n\r\nconst DEFAULT_PAGE_SIZE = 10;\r\n\r\nexport const useTable = <T extends {}>(\r\n props: TableProps<T> & { windowed?: boolean },\r\n ref: React.RefObject<TableRef>\r\n): InternalTable => {\r\n const {\r\n children,\r\n data,\r\n dangerouslyHijackGlobalKeyboardNavigation: _,\r\n onRowClick,\r\n onRowDrag,\r\n onSelectedRows,\r\n rowClassName,\r\n rowExpansionRenderer,\r\n rowHeight,\r\n selectedRows,\r\n\r\n // sorting\r\n disableSorting,\r\n manualSorting,\r\n onSort,\r\n sortRules,\r\n\r\n //index\r\n activeIndex: _1,\r\n defaultActiveIndex: _2,\r\n onChangeActiveIndex: _3,\r\n\r\n // pagination\r\n disablePagination = true,\r\n length,\r\n onPaginate,\r\n pageSize = DEFAULT_PAGE_SIZE,\r\n pageIndex = 0,\r\n\r\n // row editing\r\n inlineEditingUniqueId = undefined,\r\n onRowCreate,\r\n\r\n // actions\r\n actions,\r\n onRowEdit,\r\n onRowCopy,\r\n onRowDelete,\r\n onRowActive,\r\n\r\n windowed = false,\r\n\r\n ...otherProps\r\n } = props;\r\n\r\n if ((onSelectedRows && !selectedRows) || (!onSelectedRows && selectedRows)) {\r\n throw new Error(\r\n 'Selected rows in a Table component are fully controlled - you must pass both the `onSelectedRows` and `selectedRows` props when using row selection'\r\n );\r\n }\r\n\r\n const { texts, locale } = useLocalization();\r\n const { columns, sortRules: defaultSortRules } = React.useMemo(\r\n () => getColumnsFromChildren(children, rowExpansionRenderer),\r\n [children, rowExpansionRenderer]\r\n );\r\n\r\n const manualPagination = !disablePagination && !!onPaginate && !!length;\r\n\r\n const {\r\n headerGroups,\r\n rows,\r\n sortedRows,\r\n prepareRow: prepareBaseRow,\r\n state,\r\n // pagination\r\n page,\r\n gotoPage,\r\n setPageSize,\r\n ...instance\r\n }: any = useReactTable(\r\n {\r\n columns,\r\n data,\r\n initialState: {\r\n // @ts-expect-error: not sure how to type this correctly right now\r\n sortBy: getInternalSortRules(sortRules) || defaultSortRules,\r\n pageSize: !disablePagination ? pageSize : undefined,\r\n pageIndex: !disablePagination ? pageIndex : undefined,\r\n },\r\n manualPagination,\r\n pageCount: manualPagination && length ? Math.ceil(length / pageSize) : -1,\r\n manualSortBy: manualSorting,\r\n disableSortBy: disableSorting,\r\n // most of these resets preventions are needed for editing mode\r\n autoResetExpanded: false,\r\n autoResetSelectedRows: false,\r\n autoResetSortBy: false,\r\n autoResetPage: false,\r\n sortTypes: React.useMemo(() => sortTypes(locale), []),\r\n useControlledState: currentState => {\r\n return React.useMemo(\r\n () => ({\r\n ...currentState,\r\n selectedRowIds: selectedRows || [],\r\n }),\r\n [currentState, selectedRows]\r\n );\r\n },\r\n },\r\n useRowState,\r\n useSortBy,\r\n useExpanded,\r\n usePagination,\r\n useRowSelect(onSelectedRows),\r\n useRowDraggable(onRowDrag),\r\n useRowEditing(inlineEditingUniqueId),\r\n useRowActions(\r\n inlineEditingUniqueId,\r\n { onRowCreate, onRowEdit, onRowCopy, onRowDelete },\r\n actions,\r\n rowExpansionRenderer,\r\n texts,\r\n windowed\r\n )\r\n );\r\n\r\n useTablePaginationListener(disablePagination, onPaginate, state);\r\n useTableSortingListener(data, sortedRows, onSort, !!manualSorting, state);\r\n\r\n const sanitizedInstance = useTableInstance(instance, ref);\r\n\r\n const visibleRows = !disablePagination && !manualPagination ? page : rows;\r\n\r\n const [activeIndex, setActiveIndex, handleKeyDown, handleFocus] = useTableKeyboardNavigation<T>(\r\n props,\r\n visibleRows,\r\n { onRowClick, onRowCreate, onRowEdit, onRowCopy, onRowDelete, rowExpansionRenderer },\r\n ref\r\n );\r\n\r\n useTableRowActive(activeIndex, rows, rowExpansionRenderer, onRowActive);\r\n\r\n const prepareRow = React.useCallback(\r\n (row: any, index: number) => {\r\n prepareBaseRow(row);\r\n row.setActive = () => setActiveIndex(index);\r\n },\r\n [prepareBaseRow, setActiveIndex]\r\n );\r\n\r\n return {\r\n rowProps: {\r\n activeIndex,\r\n setActiveIndex,\r\n onRowClick,\r\n rowClassName,\r\n rowExpansionRenderer,\r\n rowHeight,\r\n inlineEditingUniqueId,\r\n },\r\n tableProps: {\r\n ...otherProps,\r\n headerGroups,\r\n onFocus: handleFocus,\r\n onKeyDown: handleKeyDown,\r\n tabIndex: otherProps.tabIndex ?? 0,\r\n },\r\n state,\r\n pagination: !disablePagination\r\n ? {\r\n length: manualPagination && length ? length : data.length,\r\n pageIndex: state.pageIndex,\r\n pageSize: state.pageSize,\r\n setPageIndex: gotoPage,\r\n setPageSize: setPageSize,\r\n }\r\n : null,\r\n rows: visibleRows,\r\n prepareRow,\r\n instance: sanitizedInstance,\r\n };\r\n};\r\n"],"names":["useTableRowActive","activeIndex","rows","rowExpansionRenderer","handleonRowActive","React","useEffect","undefined","length","focusedRow","sanitizedFocusedRow","sanitizeRowProps","useTableInstance","instance","ref","sanitizedInstance","useMemo","toggleAllRowsExpanded","toggleHideAllColumns","toggleHideColumn","toggleEditing","toggleRowEditing","resetRowEditing","toggleRowExpanded","toggleSortBy","current","useTablePaginationListener","disablePagination","onPaginate","state","pageIndex","pageSize","useTableSortingListener","data","sortedRows","onSort","manualSorting","sortRules","sortBy","map","rule","accessor","id","desc","sortedData","row","original","JSON","stringify","DEFAULT_PAGE_SIZE","useTable","props","children","dangerouslyHijackGlobalKeyboardNavigation","_","onRowClick","onRowDrag","onSelectedRows","rowClassName","rowHeight","selectedRows","disableSorting","_1","defaultActiveIndex","_2","onChangeActiveIndex","_3","inlineEditingUniqueId","onRowCreate","actions","onRowEdit","onRowCopy","onRowDelete","onRowActive","windowed","otherProps","Error","texts","locale","useLocalization","columns","defaultSortRules","getColumnsFromChildren","manualPagination","headerGroups","prepareRow","prepareBaseRow","page","gotoPage","setPageSize","useReactTable","initialState","getInternalSortRules","pageCount","Math","ceil","manualSortBy","disableSortBy","autoResetExpanded","autoResetSelectedRows","autoResetSortBy","autoResetPage","sortTypes","useControlledState","currentState","selectedRowIds","useRowState","useSortBy","useExpanded","usePagination","useRowSelect","useRowDraggable","useRowEditing","useRowActions","visibleRows","setActiveIndex","handleKeyDown","handleFocus","useTableKeyboardNavigation","useCallback","index","setActive","rowProps","tableProps","onFocus","onKeyDown","tabIndex","pagination","setPageIndex"],"mappings":"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"}
1
+ {"version":3,"file":"useTable.js","sources":["../../../../../../../../src/components/Table/hooks/useTable.tsx"],"sourcesContent":["import React from 'react';\nimport { useTable as useReactTable, useExpanded, useSortBy, usePagination, useRowState } from 'react-table';\nimport { getColumnsFromChildren, getInternalSortRules } from '../util';\nimport { sortTypes } from '../util/sortTypes';\nimport { useRowEditing } from './plugins/useRowEditing';\nimport { useRowActions } from './plugins/useRowActions';\nimport { useRowSelect } from './plugins/useRowSelect';\nimport {\n InternalTable,\n InternalTableRow,\n PaginationHandler,\n RowActiveHandler,\n SortHandler,\n TableProps,\n TableRef,\n} from '../types';\nimport { useTableKeyboardNavigation } from './useTableKeyboardNavigation';\nimport { useLocalization } from '../../Provider/Localization';\nimport { useRowDraggable } from './plugins/useRowDraggable';\nimport { sanitizeRowProps } from '../util';\n\nconst useTableRowActive = (\n activeIndex: number | undefined,\n rows: InternalTableRow[],\n rowExpansionRenderer: TableProps<any>['rowExpansionRenderer'],\n handleonRowActive: RowActiveHandler<any> | undefined\n) => {\n React.useEffect(() => {\n if (activeIndex !== undefined && rows.length && handleonRowActive) {\n const focusedRow = rows[activeIndex];\n if (focusedRow) {\n const sanitizedFocusedRow = sanitizeRowProps(focusedRow, rowExpansionRenderer);\n handleonRowActive(sanitizedFocusedRow);\n }\n }\n }, [activeIndex, rows]);\n};\n\nconst useTableInstance = (instance: any, ref: React.RefObject<TableRef>): object => {\n const sanitizedInstance = React.useMemo(\n () => ({\n toggleAllRowsExpanded: instance.toggleAllRowsExpanded,\n toggleHideAllColumns: instance.toggleHideAllColumns,\n toggleHideColumn: instance.toggleHideColumn,\n toggleEditing: instance.toggleEditing,\n toggleRowEditing: instance.toggleRowEditing,\n resetRowEditing: instance.resetRowEditing,\n toggleRowExpanded: instance.toggleRowExpanded,\n toggleSortBy: instance.toggleSortBy,\n }),\n []\n );\n\n React.useEffect(() => {\n if (ref?.current) {\n ref.current.instance = sanitizedInstance;\n }\n }, [ref]);\n\n return sanitizedInstance;\n};\n\nconst useTablePaginationListener = (disablePagination: boolean, onPaginate: PaginationHandler | undefined, state: any): void => {\n React.useEffect(() => {\n if (!disablePagination && onPaginate) {\n onPaginate(state.pageIndex, state.pageSize);\n }\n }, [state.pageIndex, state.pageSize]);\n};\n\nconst useTableSortingListener = (\n data: any[],\n sortedRows: any[],\n onSort: SortHandler<any> | undefined,\n manualSorting: boolean,\n state: any\n): void => {\n React.useEffect(() => {\n if (onSort) {\n const sortRules = state.sortBy.map((rule: any) => ({ accessor: rule.id, desc: rule.desc }));\n\n if (manualSorting) {\n onSort(sortRules);\n } else {\n let sortedData;\n\n if (sortRules.length && sortedRows?.length) {\n sortedData = sortedRows.map((row: any) => row.original);\n }\n\n onSort(sortRules, sortedData || data);\n }\n }\n }, [onSort && JSON.stringify(state.sortBy), manualSorting]);\n};\n\nconst DEFAULT_PAGE_SIZE = 10;\n\nexport const useTable = <T extends {}>(\n props: TableProps<T> & { windowed?: boolean },\n ref: React.RefObject<TableRef>\n): InternalTable => {\n const {\n children,\n data,\n dangerouslyHijackGlobalKeyboardNavigation: _,\n onRowClick,\n onRowDrag,\n onSelectedRows,\n rowClassName,\n rowExpansionRenderer,\n rowHeight,\n selectedRows,\n\n // sorting\n disableSorting,\n manualSorting,\n onSort,\n sortRules,\n\n //index\n activeIndex: _1,\n defaultActiveIndex: _2,\n onChangeActiveIndex: _3,\n\n // pagination\n disablePagination = true,\n length,\n onPaginate,\n pageSize = DEFAULT_PAGE_SIZE,\n pageIndex = 0,\n\n // row editing\n inlineEditingUniqueId = undefined,\n onRowCreate,\n\n // actions\n actions,\n onRowEdit,\n onRowCopy,\n onRowDelete,\n onRowActive,\n\n windowed = false,\n\n ...otherProps\n } = props;\n\n if ((onSelectedRows && !selectedRows) || (!onSelectedRows && selectedRows)) {\n throw new Error(\n 'Selected rows in a Table component are fully controlled - you must pass both the `onSelectedRows` and `selectedRows` props when using row selection'\n );\n }\n\n const { texts, locale } = useLocalization();\n const { columns, sortRules: defaultSortRules } = React.useMemo(\n () => getColumnsFromChildren(children, rowExpansionRenderer),\n [children, rowExpansionRenderer]\n );\n\n const manualPagination = !disablePagination && !!onPaginate && !!length;\n\n const {\n headerGroups,\n rows,\n sortedRows,\n prepareRow: prepareBaseRow,\n state,\n // pagination\n page,\n gotoPage,\n setPageSize,\n ...instance\n }: any = useReactTable(\n {\n columns,\n data,\n initialState: {\n // @ts-expect-error: not sure how to type this correctly right now\n sortBy: getInternalSortRules(sortRules) || defaultSortRules,\n pageSize: !disablePagination ? pageSize : undefined,\n pageIndex: !disablePagination ? pageIndex : undefined,\n },\n manualPagination,\n pageCount: manualPagination && length ? Math.ceil(length / pageSize) : -1,\n manualSortBy: manualSorting,\n disableSortBy: disableSorting,\n // most of these resets preventions are needed for editing mode\n autoResetExpanded: false,\n autoResetSelectedRows: false,\n autoResetSortBy: false,\n autoResetPage: false,\n sortTypes: React.useMemo(() => sortTypes(locale), []),\n useControlledState: currentState => {\n return React.useMemo(\n () => ({\n ...currentState,\n selectedRowIds: selectedRows || [],\n }),\n [currentState, selectedRows]\n );\n },\n },\n useRowState,\n useSortBy,\n useExpanded,\n usePagination,\n useRowSelect(onSelectedRows),\n useRowDraggable(onRowDrag),\n useRowEditing(inlineEditingUniqueId),\n useRowActions(\n inlineEditingUniqueId,\n { onRowCreate, onRowEdit, onRowCopy, onRowDelete },\n actions,\n rowExpansionRenderer,\n texts,\n windowed\n )\n );\n\n useTablePaginationListener(disablePagination, onPaginate, state);\n useTableSortingListener(data, sortedRows, onSort, !!manualSorting, state);\n\n const sanitizedInstance = useTableInstance(instance, ref);\n\n const visibleRows = !disablePagination && !manualPagination ? page : rows;\n\n const [activeIndex, setActiveIndex, handleKeyDown, handleFocus] = useTableKeyboardNavigation<T>(\n props,\n visibleRows,\n { onRowClick, onRowCreate, onRowEdit, onRowCopy, onRowDelete, rowExpansionRenderer },\n ref\n );\n\n useTableRowActive(activeIndex, rows, rowExpansionRenderer, onRowActive);\n\n const prepareRow = React.useCallback(\n (row: any, index: number) => {\n prepareBaseRow(row);\n row.setActive = () => setActiveIndex(index);\n },\n [prepareBaseRow, setActiveIndex]\n );\n\n return {\n rowProps: {\n activeIndex,\n setActiveIndex,\n onRowClick,\n rowClassName,\n rowExpansionRenderer,\n rowHeight,\n inlineEditingUniqueId,\n },\n tableProps: {\n ...otherProps,\n headerGroups,\n onFocus: handleFocus,\n onKeyDown: handleKeyDown,\n tabIndex: otherProps.tabIndex ?? 0,\n },\n state,\n pagination: !disablePagination\n ? {\n length: manualPagination && length ? length : data.length,\n pageIndex: state.pageIndex,\n pageSize: state.pageSize,\n setPageIndex: gotoPage,\n setPageSize: setPageSize,\n }\n : null,\n rows: visibleRows,\n prepareRow,\n instance: sanitizedInstance,\n };\n};\n"],"names":["useTableRowActive","activeIndex","rows","rowExpansionRenderer","handleonRowActive","React","useEffect","undefined","length","focusedRow","sanitizedFocusedRow","sanitizeRowProps","useTableInstance","instance","ref","sanitizedInstance","useMemo","toggleAllRowsExpanded","toggleHideAllColumns","toggleHideColumn","toggleEditing","toggleRowEditing","resetRowEditing","toggleRowExpanded","toggleSortBy","current","useTablePaginationListener","disablePagination","onPaginate","state","pageIndex","pageSize","useTableSortingListener","data","sortedRows","onSort","manualSorting","sortRules","sortBy","map","rule","accessor","id","desc","sortedData","row","original","JSON","stringify","DEFAULT_PAGE_SIZE","useTable","props","children","dangerouslyHijackGlobalKeyboardNavigation","_","onRowClick","onRowDrag","onSelectedRows","rowClassName","rowHeight","selectedRows","disableSorting","_1","defaultActiveIndex","_2","onChangeActiveIndex","_3","inlineEditingUniqueId","onRowCreate","actions","onRowEdit","onRowCopy","onRowDelete","onRowActive","windowed","otherProps","Error","texts","locale","useLocalization","columns","defaultSortRules","getColumnsFromChildren","manualPagination","headerGroups","prepareRow","prepareBaseRow","page","gotoPage","setPageSize","useReactTable","initialState","getInternalSortRules","pageCount","Math","ceil","manualSortBy","disableSortBy","autoResetExpanded","autoResetSelectedRows","autoResetSortBy","autoResetPage","sortTypes","useControlledState","currentState","selectedRowIds","useRowState","useSortBy","useExpanded","usePagination","useRowSelect","useRowDraggable","useRowEditing","useRowActions","visibleRows","setActiveIndex","handleKeyDown","handleFocus","useTableKeyboardNavigation","useCallback","index","setActive","rowProps","tableProps","onFocus","onKeyDown","tabIndex","pagination","setPageIndex"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"useTableKeyboardNavigation.js","sources":["../../../../../../../../src/components/Table/hooks/useTableKeyboardNavigation.ts"],"sourcesContent":["import React from 'react';\r\nimport { useControllableState } from '@radix-ui/react-use-controllable-state';\r\nimport { getNextIndexFromKey } from '../../../utils/hooks/useListKeyboardNavigation';\r\nimport { sanitizeRowProps } from '../util';\r\nimport { TableProps } from '../types';\r\n\r\nexport const useTableKeyboardNavigation = <T extends {}>(\r\n props: TableProps<T>,\r\n rows: any[],\r\n rowProps: any,\r\n ref: React.RefObject<HTMLDivElement>\r\n): [\r\n number | undefined,\r\n (index: number) => void,\r\n (event: React.KeyboardEvent<HTMLElement>) => void,\r\n (event: React.FocusEvent<HTMLElement>) => void\r\n] => {\r\n const useGlobalKeyboardNavigation = props.dangerouslyHijackGlobalKeyboardNavigation;\r\n\r\n const [activeIndex, setActiveIndex] = useControllableState<number | undefined>({\r\n prop: props.activeIndex,\r\n defaultProp:\r\n props.defaultActiveIndex !== undefined ? props.defaultActiveIndex : useGlobalKeyboardNavigation ? 0 : undefined,\r\n onChange: index => {\r\n if (index !== undefined) {\r\n props.onChangeActiveIndex?.(index);\r\n }\r\n },\r\n });\r\n\r\n const onKeyDown = (event: KeyboardEvent): void => {\r\n const isModifierKeyPressed = event.metaKey || event.ctrlKey || event.altKey || event.shiftKey;\r\n\r\n if (\r\n useGlobalKeyboardNavigation &&\r\n document.activeElement !== ref.current &&\r\n document.activeElement?.getAttribute('type') !== 'search' &&\r\n document.activeElement !== document.body\r\n ) {\r\n return;\r\n }\r\n // abort key handling if other elements inside table are focused and we don't use global keyboard navigation\r\n if (!useGlobalKeyboardNavigation && document.activeElement !== ref.current) {\r\n return;\r\n }\r\n\r\n if (activeIndex !== undefined) {\r\n const currentRow = rows[activeIndex];\r\n\r\n if (currentRow) {\r\n const sanitizedRow = sanitizeRowProps(currentRow, rowProps.rowExpansionRenderer);\r\n\r\n if (rowProps.onRowClick && event.key === 'Enter') {\r\n event.preventDefault();\r\n rowProps.onRowClick(sanitizedRow);\r\n return;\r\n }\r\n\r\n if (currentRow.toggleRowSelected && event.key === ' ') {\r\n event.preventDefault();\r\n currentRow.toggleRowSelected();\r\n return;\r\n }\r\n\r\n if (currentRow.toggleRowExpanded) {\r\n if (currentRow.isExpanded && event.key === 'ArrowLeft') {\r\n event.preventDefault();\r\n currentRow.toggleRowExpanded();\r\n return;\r\n } else if (!currentRow.isExpanded && event.key === 'ArrowRight') {\r\n event.preventDefault();\r\n currentRow.toggleRowExpanded();\r\n return;\r\n }\r\n }\r\n\r\n // inline editing\r\n if (currentRow.toggleRowEditing) {\r\n if (currentRow.canEdit && !currentRow.isEditing) {\r\n if (rowProps.onRowCreate && event.shiftKey && event.key === 'n') {\r\n event.preventDefault();\r\n\r\n if (!currentRow.isExpanded) {\r\n currentRow.toggleRowExpanded();\r\n }\r\n\r\n rowProps.onRowCreate(sanitizedRow, event);\r\n return;\r\n }\r\n\r\n if (event.key === 'e') {\r\n event.preventDefault();\r\n currentRow.toggleRowEditing();\r\n return;\r\n }\r\n }\r\n }\r\n\r\n if (rowProps.onRowEdit && event.key === 'e' && !isModifierKeyPressed) {\r\n event.preventDefault();\r\n rowProps.onRowEdit(sanitizedRow, event);\r\n return;\r\n }\r\n\r\n if (rowProps.onRowCopy && event.key === 'c' && !isModifierKeyPressed) {\r\n event.preventDefault();\r\n rowProps.onRowCopy(sanitizedRow, event);\r\n return;\r\n }\r\n\r\n if (rowProps.onRowDelete && event.key === 'Delete' && !isModifierKeyPressed) {\r\n event.preventDefault();\r\n rowProps.onRowDelete(sanitizedRow, event);\r\n return;\r\n }\r\n }\r\n }\r\n\r\n const nextIndex = getNextIndexFromKey(event.key, rows.length, activeIndex);\r\n\r\n if (nextIndex !== undefined) {\r\n event.preventDefault();\r\n setActiveIndex(nextIndex);\r\n }\r\n };\r\n\r\n const handleKeyDown = (event: React.KeyboardEvent<HTMLElement>): void => {\r\n if (!useGlobalKeyboardNavigation) {\r\n onKeyDown(event.nativeEvent);\r\n }\r\n };\r\n\r\n React.useEffect(() => {\r\n if (useGlobalKeyboardNavigation) {\r\n window.addEventListener('keydown', onKeyDown);\r\n }\r\n\r\n return () => {\r\n if (useGlobalKeyboardNavigation) {\r\n window.removeEventListener('keydown', onKeyDown);\r\n }\r\n };\r\n }, [onKeyDown]);\r\n\r\n const handleFocus = (): void => {\r\n if (activeIndex === undefined && rows.length) {\r\n setActiveIndex(0);\r\n }\r\n };\r\n\r\n return [activeIndex, setActiveIndex, handleKeyDown, handleFocus];\r\n};\r\n"],"names":["useTableKeyboardNavigation","props","rows","rowProps","ref","useGlobalKeyboardNavigation","dangerouslyHijackGlobalKeyboardNavigation","activeIndex","setActiveIndex","useControllableState","prop","defaultProp","defaultActiveIndex","undefined","onChange","index","onChangeActiveIndex","onKeyDown","event","isModifierKeyPressed","metaKey","ctrlKey","altKey","shiftKey","document","activeElement","current","getAttribute","body","currentRow","sanitizedRow","sanitizeRowProps","rowExpansionRenderer","onRowClick","key","preventDefault","toggleRowSelected","toggleRowExpanded","isExpanded","toggleRowEditing","canEdit","isEditing","onRowCreate","onRowEdit","onRowCopy","onRowDelete","nextIndex","getNextIndexFromKey","length","handleKeyDown","nativeEvent","React","useEffect","window","addEventListener","removeEventListener","handleFocus"],"mappings":"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"}
1
+ {"version":3,"file":"useTableKeyboardNavigation.js","sources":["../../../../../../../../src/components/Table/hooks/useTableKeyboardNavigation.ts"],"sourcesContent":["import React from 'react';\nimport { useControllableState } from '@radix-ui/react-use-controllable-state';\nimport { getNextIndexFromKey } from '../../../utils/hooks/useListKeyboardNavigation';\nimport { sanitizeRowProps } from '../util';\nimport { TableProps } from '../types';\n\nexport const useTableKeyboardNavigation = <T extends {}>(\n props: TableProps<T>,\n rows: any[],\n rowProps: any,\n ref: React.RefObject<HTMLDivElement>\n): [\n number | undefined,\n (index: number) => void,\n (event: React.KeyboardEvent<HTMLElement>) => void,\n (event: React.FocusEvent<HTMLElement>) => void\n] => {\n const useGlobalKeyboardNavigation = props.dangerouslyHijackGlobalKeyboardNavigation;\n\n const [activeIndex, setActiveIndex] = useControllableState<number | undefined>({\n prop: props.activeIndex,\n defaultProp:\n props.defaultActiveIndex !== undefined ? props.defaultActiveIndex : useGlobalKeyboardNavigation ? 0 : undefined,\n onChange: index => {\n if (index !== undefined) {\n props.onChangeActiveIndex?.(index);\n }\n },\n });\n\n const onKeyDown = (event: KeyboardEvent): void => {\n const isModifierKeyPressed = event.metaKey || event.ctrlKey || event.altKey || event.shiftKey;\n\n if (\n useGlobalKeyboardNavigation &&\n document.activeElement !== ref.current &&\n document.activeElement?.getAttribute('type') !== 'search' &&\n document.activeElement !== document.body\n ) {\n return;\n }\n // abort key handling if other elements inside table are focused and we don't use global keyboard navigation\n if (!useGlobalKeyboardNavigation && document.activeElement !== ref.current) {\n return;\n }\n\n if (activeIndex !== undefined) {\n const currentRow = rows[activeIndex];\n\n if (currentRow) {\n const sanitizedRow = sanitizeRowProps(currentRow, rowProps.rowExpansionRenderer);\n\n if (rowProps.onRowClick && event.key === 'Enter') {\n event.preventDefault();\n rowProps.onRowClick(sanitizedRow);\n return;\n }\n\n if (currentRow.toggleRowSelected && event.key === ' ') {\n event.preventDefault();\n currentRow.toggleRowSelected();\n return;\n }\n\n if (currentRow.toggleRowExpanded) {\n if (currentRow.isExpanded && event.key === 'ArrowLeft') {\n event.preventDefault();\n currentRow.toggleRowExpanded();\n return;\n } else if (!currentRow.isExpanded && event.key === 'ArrowRight') {\n event.preventDefault();\n currentRow.toggleRowExpanded();\n return;\n }\n }\n\n // inline editing\n if (currentRow.toggleRowEditing) {\n if (currentRow.canEdit && !currentRow.isEditing) {\n if (rowProps.onRowCreate && event.shiftKey && event.key === 'n') {\n event.preventDefault();\n\n if (!currentRow.isExpanded) {\n currentRow.toggleRowExpanded();\n }\n\n rowProps.onRowCreate(sanitizedRow, event);\n return;\n }\n\n if (event.key === 'e') {\n event.preventDefault();\n currentRow.toggleRowEditing();\n return;\n }\n }\n }\n\n if (rowProps.onRowEdit && event.key === 'e' && !isModifierKeyPressed) {\n event.preventDefault();\n rowProps.onRowEdit(sanitizedRow, event);\n return;\n }\n\n if (rowProps.onRowCopy && event.key === 'c' && !isModifierKeyPressed) {\n event.preventDefault();\n rowProps.onRowCopy(sanitizedRow, event);\n return;\n }\n\n if (rowProps.onRowDelete && event.key === 'Delete' && !isModifierKeyPressed) {\n event.preventDefault();\n rowProps.onRowDelete(sanitizedRow, event);\n return;\n }\n }\n }\n\n const nextIndex = getNextIndexFromKey(event.key, rows.length, activeIndex);\n\n if (nextIndex !== undefined) {\n event.preventDefault();\n setActiveIndex(nextIndex);\n }\n };\n\n const handleKeyDown = (event: React.KeyboardEvent<HTMLElement>): void => {\n if (!useGlobalKeyboardNavigation) {\n onKeyDown(event.nativeEvent);\n }\n };\n\n React.useEffect(() => {\n if (useGlobalKeyboardNavigation) {\n window.addEventListener('keydown', onKeyDown);\n }\n\n return () => {\n if (useGlobalKeyboardNavigation) {\n window.removeEventListener('keydown', onKeyDown);\n }\n };\n }, [onKeyDown]);\n\n const handleFocus = (): void => {\n if (activeIndex === undefined && rows.length) {\n setActiveIndex(0);\n }\n };\n\n return [activeIndex, setActiveIndex, handleKeyDown, handleFocus];\n};\n"],"names":["useTableKeyboardNavigation","props","rows","rowProps","ref","useGlobalKeyboardNavigation","dangerouslyHijackGlobalKeyboardNavigation","activeIndex","setActiveIndex","useControllableState","prop","defaultProp","defaultActiveIndex","undefined","onChange","index","onChangeActiveIndex","onKeyDown","event","isModifierKeyPressed","metaKey","ctrlKey","altKey","shiftKey","document","activeElement","current","getAttribute","body","currentRow","sanitizedRow","sanitizeRowProps","rowExpansionRenderer","onRowClick","key","preventDefault","toggleRowSelected","toggleRowExpanded","isExpanded","toggleRowEditing","canEdit","isEditing","onRowCreate","onRowEdit","onRowCopy","onRowDelete","nextIndex","getNextIndexFromKey","length","handleKeyDown","nativeEvent","React","useEffect","window","addEventListener","removeEventListener","handleFocus"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"rowIndexPath.js","sources":["../../../../../../../../src/components/Table/util/rowIndexPath.ts"],"sourcesContent":["import set from 'lodash/set';\r\nimport { Row, RowIndexPath } from '../types';\r\n\r\nexport const convertRowIndexPathToNumberArray = (rowIndexPath: RowIndexPath): number[] =>\r\n rowIndexPath?.split('.').map(Number) ?? [];\r\n\r\nexport const getByRowIndexPath = <TRow extends {}>(data: Row<TRow>[], rowIndexPath: RowIndexPath): Row<TRow> | undefined => {\r\n if (!rowIndexPath) {\r\n return undefined;\r\n }\r\n\r\n const currenTRow = [...data];\r\n const indexes = convertRowIndexPathToNumberArray(String(rowIndexPath));\r\n\r\n if (indexes.length) {\r\n const startIndex = indexes.shift() as number;\r\n return indexes.reduce((value, index) => value?.subRows?.[index] as Row<TRow>, currenTRow[startIndex]);\r\n }\r\n\r\n return undefined;\r\n};\r\n\r\nexport const setByRowIndexPath = <TRow extends {}>(data: Row<TRow>[], rowIndexPath: RowIndexPath, values: any): Row<TRow>[] => {\r\n const nexTRow = [...data];\r\n\r\n const rowIndexes = convertRowIndexPathToNumberArray(rowIndexPath);\r\n const rootIndex = rowIndexes.shift() as number;\r\n\r\n if (rowIndexes.length) {\r\n const path = rowIndexes.map(index => `subRows[${index}]`).join('.');\r\n set(nexTRow[rootIndex], path, values);\r\n } else {\r\n nexTRow[rootIndex] = values;\r\n }\r\n\r\n return nexTRow;\r\n};\r\n\r\nexport const getParentRowIndexPath = (rowIndexPath: RowIndexPath): RowIndexPath => {\r\n let parentIndexPath;\r\n\r\n if (rowIndexPath) {\r\n const rowIndexes = convertRowIndexPathToNumberArray(rowIndexPath);\r\n rowIndexes.pop();\r\n\r\n if (rowIndexes.length) {\r\n parentIndexPath = rowIndexes.join('.');\r\n }\r\n }\r\n\r\n return parentIndexPath;\r\n};\r\n"],"names":["convertRowIndexPathToNumberArray","rowIndexPath","split","map","Number","getByRowIndexPath","data","undefined","currenTRow","indexes","String","length","startIndex","shift","reduce","value","index","subRows","setByRowIndexPath","values","nexTRow","rowIndexes","rootIndex","path","join","set","getParentRowIndexPath","parentIndexPath","pop"],"mappings":";;MAGaA,gCAAgC,GAAIC,YAA0B;EAAA;EAAA,gCACvEA,YAAY,aAAZA,YAAY,uBAAZA,YAAY,CAAEC,KAAK,CAAC,GAAG,CAAC,CAACC,GAAG,CAACC,MAAM,CAAC,yEAAI,EAAE;AAAA;MAEjCC,iBAAiB,GAAG,CAAkBC,IAAiB,EAAEL,YAA0B;EAC5F,IAAI,CAACA,YAAY,EAAE;IACf,OAAOM,SAAS;;EAGpB,MAAMC,UAAU,GAAG,CAAC,GAAGF,IAAI,CAAC;EAC5B,MAAMG,OAAO,GAAGT,gCAAgC,CAACU,MAAM,CAACT,YAAY,CAAC,CAAC;EAEtE,IAAIQ,OAAO,CAACE,MAAM,EAAE;IAChB,MAAMC,UAAU,GAAGH,OAAO,CAACI,KAAK,EAAY;IAC5C,OAAOJ,OAAO,CAACK,MAAM,CAAC,CAACC,KAAK,EAAEC,KAAK;MAAA;MAAA,OAAKD,KAAK,aAALA,KAAK,yCAALA,KAAK,CAAEE,OAAO,mDAAd,eAAiBD,KAAK,CAAc;OAAER,UAAU,CAACI,UAAU,CAAC,CAAC;;EAGzG,OAAOL,SAAS;AACpB;MAEaW,iBAAiB,GAAG,CAAkBZ,IAAiB,EAAEL,YAA0B,EAAEkB,MAAW;EACzG,MAAMC,OAAO,GAAG,CAAC,GAAGd,IAAI,CAAC;EAEzB,MAAMe,UAAU,GAAGrB,gCAAgC,CAACC,YAAY,CAAC;EACjE,MAAMqB,SAAS,GAAGD,UAAU,CAACR,KAAK,EAAY;EAE9C,IAAIQ,UAAU,CAACV,MAAM,EAAE;IACnB,MAAMY,IAAI,GAAGF,UAAU,CAAClB,GAAG,CAACa,KAAK,eAAeA,QAAQ,CAAC,CAACQ,IAAI,CAAC,GAAG,CAAC;IACnEC,GAAG,CAACL,OAAO,CAACE,SAAS,CAAC,EAAEC,IAAI,EAAEJ,MAAM,CAAC;GACxC,MAAM;IACHC,OAAO,CAACE,SAAS,CAAC,GAAGH,MAAM;;EAG/B,OAAOC,OAAO;AAClB;MAEaM,qBAAqB,GAAIzB,YAA0B;EAC5D,IAAI0B,eAAe;EAEnB,IAAI1B,YAAY,EAAE;IACd,MAAMoB,UAAU,GAAGrB,gCAAgC,CAACC,YAAY,CAAC;IACjEoB,UAAU,CAACO,GAAG,EAAE;IAEhB,IAAIP,UAAU,CAACV,MAAM,EAAE;MACnBgB,eAAe,GAAGN,UAAU,CAACG,IAAI,CAAC,GAAG,CAAC;;;EAI9C,OAAOG,eAAe;AAC1B;;;;"}
1
+ {"version":3,"file":"rowIndexPath.js","sources":["../../../../../../../../src/components/Table/util/rowIndexPath.ts"],"sourcesContent":["import set from 'lodash/set';\nimport { Row, RowIndexPath } from '../types';\n\nexport const convertRowIndexPathToNumberArray = (rowIndexPath: RowIndexPath): number[] =>\n rowIndexPath?.split('.').map(Number) ?? [];\n\nexport const getByRowIndexPath = <TRow extends {}>(data: Row<TRow>[], rowIndexPath: RowIndexPath): Row<TRow> | undefined => {\n if (!rowIndexPath) {\n return undefined;\n }\n\n const currenTRow = [...data];\n const indexes = convertRowIndexPathToNumberArray(String(rowIndexPath));\n\n if (indexes.length) {\n const startIndex = indexes.shift() as number;\n return indexes.reduce((value, index) => value?.subRows?.[index] as Row<TRow>, currenTRow[startIndex]);\n }\n\n return undefined;\n};\n\nexport const setByRowIndexPath = <TRow extends {}>(data: Row<TRow>[], rowIndexPath: RowIndexPath, values: any): Row<TRow>[] => {\n const nexTRow = [...data];\n\n const rowIndexes = convertRowIndexPathToNumberArray(rowIndexPath);\n const rootIndex = rowIndexes.shift() as number;\n\n if (rowIndexes.length) {\n const path = rowIndexes.map(index => `subRows[${index}]`).join('.');\n set(nexTRow[rootIndex], path, values);\n } else {\n nexTRow[rootIndex] = values;\n }\n\n return nexTRow;\n};\n\nexport const getParentRowIndexPath = (rowIndexPath: RowIndexPath): RowIndexPath => {\n let parentIndexPath;\n\n if (rowIndexPath) {\n const rowIndexes = convertRowIndexPathToNumberArray(rowIndexPath);\n rowIndexes.pop();\n\n if (rowIndexes.length) {\n parentIndexPath = rowIndexes.join('.');\n }\n }\n\n return parentIndexPath;\n};\n"],"names":["convertRowIndexPathToNumberArray","rowIndexPath","split","map","Number","getByRowIndexPath","data","undefined","currenTRow","indexes","String","length","startIndex","shift","reduce","value","index","subRows","setByRowIndexPath","values","nexTRow","rowIndexes","rootIndex","path","join","set","getParentRowIndexPath","parentIndexPath","pop"],"mappings":";;MAGaA,gCAAgC,GAAIC,YAA0B;EAAA;EAAA,gCACvEA,YAAY,aAAZA,YAAY,uBAAZA,YAAY,CAAEC,KAAK,CAAC,GAAG,CAAC,CAACC,GAAG,CAACC,MAAM,CAAC,yEAAI,EAAE;AAAA;MAEjCC,iBAAiB,GAAG,CAAkBC,IAAiB,EAAEL,YAA0B;EAC5F,IAAI,CAACA,YAAY,EAAE;IACf,OAAOM,SAAS;;EAGpB,MAAMC,UAAU,GAAG,CAAC,GAAGF,IAAI,CAAC;EAC5B,MAAMG,OAAO,GAAGT,gCAAgC,CAACU,MAAM,CAACT,YAAY,CAAC,CAAC;EAEtE,IAAIQ,OAAO,CAACE,MAAM,EAAE;IAChB,MAAMC,UAAU,GAAGH,OAAO,CAACI,KAAK,EAAY;IAC5C,OAAOJ,OAAO,CAACK,MAAM,CAAC,CAACC,KAAK,EAAEC,KAAK;MAAA;MAAA,OAAKD,KAAK,aAALA,KAAK,yCAALA,KAAK,CAAEE,OAAO,mDAAd,eAAiBD,KAAK,CAAc;OAAER,UAAU,CAACI,UAAU,CAAC,CAAC;;EAGzG,OAAOL,SAAS;AACpB;MAEaW,iBAAiB,GAAG,CAAkBZ,IAAiB,EAAEL,YAA0B,EAAEkB,MAAW;EACzG,MAAMC,OAAO,GAAG,CAAC,GAAGd,IAAI,CAAC;EAEzB,MAAMe,UAAU,GAAGrB,gCAAgC,CAACC,YAAY,CAAC;EACjE,MAAMqB,SAAS,GAAGD,UAAU,CAACR,KAAK,EAAY;EAE9C,IAAIQ,UAAU,CAACV,MAAM,EAAE;IACnB,MAAMY,IAAI,GAAGF,UAAU,CAAClB,GAAG,CAACa,KAAK,eAAeA,QAAQ,CAAC,CAACQ,IAAI,CAAC,GAAG,CAAC;IACnEC,GAAG,CAACL,OAAO,CAACE,SAAS,CAAC,EAAEC,IAAI,EAAEJ,MAAM,CAAC;GACxC,MAAM;IACHC,OAAO,CAACE,SAAS,CAAC,GAAGH,MAAM;;EAG/B,OAAOC,OAAO;AAClB;MAEaM,qBAAqB,GAAIzB,YAA0B;EAC5D,IAAI0B,eAAe;EAEnB,IAAI1B,YAAY,EAAE;IACd,MAAMoB,UAAU,GAAGrB,gCAAgC,CAACC,YAAY,CAAC;IACjEoB,UAAU,CAACO,GAAG,EAAE;IAEhB,IAAIP,UAAU,CAACV,MAAM,EAAE;MACnBgB,eAAe,GAAGN,UAAU,CAACG,IAAI,CAAC,GAAG,CAAC;;;EAI9C,OAAOG,eAAe;AAC1B;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"sortTypes.js","sources":["../../../../../../../../src/components/Table/util/sortTypes.ts"],"sourcesContent":["import { SortTypes, TableRow } from '../types';\r\n\r\nconst getTime = (value: any): number | undefined => {\r\n const parsedValue: Date = typeof value === 'string' ? new Date(value) : value;\r\n return parsedValue?.getTime ? parsedValue.getTime() : undefined;\r\n};\r\n\r\nconst getNumber = (amount = '', decimalSeparator = ','): number | undefined => {\r\n if (typeof amount === 'number') {\r\n return amount;\r\n }\r\n\r\n if (amount === null || !amount.length) {\r\n return undefined;\r\n }\r\n\r\n let value;\r\n\r\n if (decimalSeparator === ',') {\r\n // replace digit seperator then replace decimal separator\r\n value = Number(amount.replace(/\\./g, '').replace(',', '.'));\r\n } else {\r\n // replace digit seperator\r\n value = Number(amount.replace(/,/g, ''));\r\n }\r\n\r\n return Number.isNaN(value) ? undefined : value;\r\n};\r\n\r\nconst getString = (value: any): string | undefined => {\r\n if (value) {\r\n return String(value).toLowerCase();\r\n }\r\n\r\n return undefined;\r\n};\r\n\r\nconst guess = (value: any): any => {\r\n if (typeof value === 'boolean') {\r\n return !!value;\r\n }\r\n\r\n return isNaN(value) ? getString(value) : Number(value);\r\n};\r\n\r\nconst compareBasic = (a: any, b: any) => {\r\n // places undefined values first in ascending order instead of descending\r\n if (a !== undefined && b === undefined) {\r\n return 1;\r\n }\r\n\r\n return a === b ? 0 : a > b ? 1 : -1;\r\n};\r\n\r\nconst stringsLocaleCompare = (a: string, b: string, locale: string): 0 | 1 | -1 => {\r\n // In some browsers 'localCompare' may return -2 or 2 instead of -1 or 1\r\n const compareResult = a.localeCompare(b, locale);\r\n return compareResult === 0 ? 0 : compareResult > 0 ? 1 : -1;\r\n};\r\n\r\nconst compareBasicStrings = (a: string | undefined, b: string | undefined, locale: string): 0 | 1 | -1 => {\r\n if (a && b) {\r\n return stringsLocaleCompare(a, b, locale);\r\n }\r\n\r\n return compareBasic(a, b);\r\n};\r\n\r\ntype SortHandler<T> = (rowA: TableRow<T>, rowB: TableRow<T>, columnId: string) => 0 | 1 | -1;\r\n\r\nexport const sortTypes = (locale: string): Record<SortTypes, SortHandler<any>> => {\r\n return {\r\n datetime: (rowA, rowB, columnId) => {\r\n const a = getTime(rowA.values[columnId]);\r\n const b = getTime(rowB.values[columnId]);\r\n return compareBasic(a, b);\r\n },\r\n string: (rowA, rowB, columnId) => {\r\n const a = getString(rowA.values[columnId]);\r\n const b = getString(rowB.values[columnId]);\r\n return compareBasicStrings(a, b, locale);\r\n },\r\n number: (rowA, rowB, columnId) => {\r\n const a = getNumber(rowA.values[columnId]);\r\n const b = getNumber(rowB.values[columnId]);\r\n return compareBasic(a, b);\r\n },\r\n boolean: (rowA, rowB, columnId) => {\r\n const a = !!rowA.values[columnId];\r\n const b = !!rowB.values[columnId];\r\n return compareBasic(a, b);\r\n },\r\n auto: (rowA, rowB, columnId) => {\r\n const a = guess(rowA.values[columnId]);\r\n const b = guess(rowB.values[columnId]);\r\n if (typeof a === 'string' && typeof b === 'string') {\r\n return compareBasicStrings(a, b, locale);\r\n } else {\r\n return compareBasic(a, b);\r\n }\r\n },\r\n };\r\n};\r\n"],"names":["getTime","value","parsedValue","Date","undefined","getNumber","amount","decimalSeparator","length","Number","replace","isNaN","getString","String","toLowerCase","guess","compareBasic","a","b","stringsLocaleCompare","locale","compareResult","localeCompare","compareBasicStrings","sortTypes","datetime","rowA","rowB","columnId","values","string","number","boolean","auto"],"mappings":"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"}
1
+ {"version":3,"file":"sortTypes.js","sources":["../../../../../../../../src/components/Table/util/sortTypes.ts"],"sourcesContent":["import { SortTypes, TableRow } from '../types';\n\nconst getTime = (value: any): number | undefined => {\n const parsedValue: Date = typeof value === 'string' ? new Date(value) : value;\n return parsedValue?.getTime ? parsedValue.getTime() : undefined;\n};\n\nconst getNumber = (amount = '', decimalSeparator = ','): number | undefined => {\n if (typeof amount === 'number') {\n return amount;\n }\n\n if (amount === null || !amount.length) {\n return undefined;\n }\n\n let value;\n\n if (decimalSeparator === ',') {\n // replace digit seperator then replace decimal separator\n value = Number(amount.replace(/\\./g, '').replace(',', '.'));\n } else {\n // replace digit seperator\n value = Number(amount.replace(/,/g, ''));\n }\n\n return Number.isNaN(value) ? undefined : value;\n};\n\nconst getString = (value: any): string | undefined => {\n if (value) {\n return String(value).toLowerCase();\n }\n\n return undefined;\n};\n\nconst guess = (value: any): any => {\n if (typeof value === 'boolean') {\n return !!value;\n }\n\n return isNaN(value) ? getString(value) : Number(value);\n};\n\nconst compareBasic = (a: any, b: any) => {\n // places undefined values first in ascending order instead of descending\n if (a !== undefined && b === undefined) {\n return 1;\n }\n\n return a === b ? 0 : a > b ? 1 : -1;\n};\n\nconst stringsLocaleCompare = (a: string, b: string, locale: string): 0 | 1 | -1 => {\n // In some browsers 'localCompare' may return -2 or 2 instead of -1 or 1\n const compareResult = a.localeCompare(b, locale);\n return compareResult === 0 ? 0 : compareResult > 0 ? 1 : -1;\n};\n\nconst compareBasicStrings = (a: string | undefined, b: string | undefined, locale: string): 0 | 1 | -1 => {\n if (a && b) {\n return stringsLocaleCompare(a, b, locale);\n }\n\n return compareBasic(a, b);\n};\n\ntype SortHandler<T> = (rowA: TableRow<T>, rowB: TableRow<T>, columnId: string) => 0 | 1 | -1;\n\nexport const sortTypes = (locale: string): Record<SortTypes, SortHandler<any>> => {\n return {\n datetime: (rowA, rowB, columnId) => {\n const a = getTime(rowA.values[columnId]);\n const b = getTime(rowB.values[columnId]);\n return compareBasic(a, b);\n },\n string: (rowA, rowB, columnId) => {\n const a = getString(rowA.values[columnId]);\n const b = getString(rowB.values[columnId]);\n return compareBasicStrings(a, b, locale);\n },\n number: (rowA, rowB, columnId) => {\n const a = getNumber(rowA.values[columnId]);\n const b = getNumber(rowB.values[columnId]);\n return compareBasic(a, b);\n },\n boolean: (rowA, rowB, columnId) => {\n const a = !!rowA.values[columnId];\n const b = !!rowB.values[columnId];\n return compareBasic(a, b);\n },\n auto: (rowA, rowB, columnId) => {\n const a = guess(rowA.values[columnId]);\n const b = guess(rowB.values[columnId]);\n if (typeof a === 'string' && typeof b === 'string') {\n return compareBasicStrings(a, b, locale);\n } else {\n return compareBasic(a, b);\n }\n },\n };\n};\n"],"names":["getTime","value","parsedValue","Date","undefined","getNumber","amount","decimalSeparator","length","Number","replace","isNaN","getString","String","toLowerCase","guess","compareBasic","a","b","stringsLocaleCompare","locale","compareResult","localeCompare","compareBasicStrings","sortTypes","datetime","rowA","rowB","columnId","values","string","number","boolean","auto"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"util.js","sources":["../../../../../../../src/components/Table/util.ts"],"sourcesContent":["import React from 'react';\r\nimport { TableRow, TableCell, TableChildren, InternalTableRow, InternalTableColumn, SortRule } from './types';\r\nimport { SortingRule } from 'react-table';\r\n\r\nexport const sanitizeRowProps = (row: InternalTableRow, rowExpansionRenderer: any): TableRow<any> => {\r\n const props: TableRow<any> = {\r\n index: row.index,\r\n indexPath: row.id,\r\n values: row.original,\r\n };\r\n\r\n if (row.subRows?.length > 0) {\r\n props.isExpanded = !!row.isExpanded;\r\n props.depth = row.depth;\r\n props.toggleRowExpanded = () => row.toggleRowExpanded(!props.isExpanded);\r\n } else if (rowExpansionRenderer) {\r\n props.isExpanded = !!row.isExpanded;\r\n props.toggleRowExpanded = () => row.toggleRowExpanded(!props.isExpanded);\r\n }\r\n\r\n if (row.toggleRowEditing) {\r\n props.isEditing = !!row.isEditing;\r\n props.toggleRowEditing = row.toggleRowEditing;\r\n }\r\n\r\n return props;\r\n};\r\n\r\nexport const getColumnsFromChildren = (children: TableChildren<any>, rowExpansionRenderer: any) => {\r\n const sortRules: SortingRule<any>[] = [];\r\n\r\n const columns = React.Children.toArray(children)\r\n .filter((child: any) => !!child && !child.props.hidden) // skip falsey or hidden columns\r\n .map(({ props: { children: groupChildren, ...props } }: any) => {\r\n const column: InternalTableColumn & { disableSortBy: boolean | undefined } = { ...props };\r\n\r\n column.sortType = column.sortType || 'auto';\r\n column.disableSortBy = column.disableSorting;\r\n\r\n // this is a Table.Group - TODO: Find a better way to determine the child type\r\n if (props.title && groupChildren) {\r\n column.Header = props.title;\r\n\r\n const { columns: groupColumns, sortRules: groupSortRules } = getColumnsFromChildren(\r\n groupChildren,\r\n rowExpansionRenderer\r\n );\r\n column.columns = groupColumns;\r\n groupSortRules.forEach(sort => sortRules.push(sort));\r\n } else {\r\n column.accessor = props.accessor;\r\n column.Header = props.headRenderer || '';\r\n column.Cell = (columnProps: any) => {\r\n const cell: TableCell<any> = {\r\n accessor: columnProps.cell.column.id,\r\n row: sanitizeRowProps(columnProps.cell.row, rowExpansionRenderer),\r\n value: columnProps.cell.value,\r\n };\r\n\r\n if (cell.row.isEditing && typeof props.editRenderer === 'function') {\r\n return props.editRenderer(cell);\r\n }\r\n\r\n return typeof props.cellRenderer === 'function' ? props.cellRenderer(cell) ?? null : cell.value ?? null;\r\n };\r\n\r\n // custom props\r\n column.align = props.align;\r\n column.flex = props.flex;\r\n\r\n if (props.sort && !props.disableSorting) {\r\n sortRules.push({\r\n id: props.accessor,\r\n desc: props.sort === 'desc',\r\n });\r\n }\r\n }\r\n\r\n return column;\r\n });\r\n\r\n return { columns, sortRules };\r\n};\r\n\r\nexport const getInternalSortRules = <T>(sortRules: SortRule<T>[] | undefined): SortingRule<T>[] | undefined => {\r\n return sortRules?.map<SortingRule<T>>(rule => ({ id: rule.accessor, desc: rule.desc }));\r\n};\r\n"],"names":["sanitizeRowProps","row","rowExpansionRenderer","props","index","indexPath","id","values","original","subRows","length","isExpanded","depth","toggleRowExpanded","toggleRowEditing","isEditing","getColumnsFromChildren","children","sortRules","columns","React","Children","toArray","filter","child","hidden","map","groupChildren","column","sortType","disableSortBy","disableSorting","title","Header","groupColumns","groupSortRules","forEach","sort","push","accessor","headRenderer","Cell","columnProps","cell","value","editRenderer","cellRenderer","align","flex","desc","getInternalSortRules","rule"],"mappings":"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"}
1
+ {"version":3,"file":"util.js","sources":["../../../../../../../src/components/Table/util.ts"],"sourcesContent":["import React from 'react';\nimport { TableRow, TableCell, TableChildren, InternalTableRow, InternalTableColumn, SortRule } from './types';\nimport { SortingRule } from 'react-table';\n\nexport const sanitizeRowProps = (row: InternalTableRow, rowExpansionRenderer: any): TableRow<any> => {\n const props: TableRow<any> = {\n index: row.index,\n indexPath: row.id,\n values: row.original,\n };\n\n if (row.subRows?.length > 0) {\n props.isExpanded = !!row.isExpanded;\n props.depth = row.depth;\n props.toggleRowExpanded = () => row.toggleRowExpanded(!props.isExpanded);\n } else if (rowExpansionRenderer) {\n props.isExpanded = !!row.isExpanded;\n props.toggleRowExpanded = () => row.toggleRowExpanded(!props.isExpanded);\n }\n\n if (row.toggleRowEditing) {\n props.isEditing = !!row.isEditing;\n props.toggleRowEditing = row.toggleRowEditing;\n }\n\n return props;\n};\n\nexport const getColumnsFromChildren = (children: TableChildren<any>, rowExpansionRenderer: any) => {\n const sortRules: SortingRule<any>[] = [];\n\n const columns = React.Children.toArray(children)\n .filter((child: any) => !!child && !child.props.hidden) // skip falsey or hidden columns\n .map(({ props: { children: groupChildren, ...props } }: any) => {\n const column: InternalTableColumn & { disableSortBy: boolean | undefined } = { ...props };\n\n column.sortType = column.sortType || 'auto';\n column.disableSortBy = column.disableSorting;\n\n // this is a Table.Group - TODO: Find a better way to determine the child type\n if (props.title && groupChildren) {\n column.Header = props.title;\n\n const { columns: groupColumns, sortRules: groupSortRules } = getColumnsFromChildren(\n groupChildren,\n rowExpansionRenderer\n );\n column.columns = groupColumns;\n groupSortRules.forEach(sort => sortRules.push(sort));\n } else {\n column.accessor = props.accessor;\n column.Header = props.headRenderer || '';\n column.Cell = (columnProps: any) => {\n const cell: TableCell<any> = {\n accessor: columnProps.cell.column.id,\n row: sanitizeRowProps(columnProps.cell.row, rowExpansionRenderer),\n value: columnProps.cell.value,\n };\n\n if (cell.row.isEditing && typeof props.editRenderer === 'function') {\n return props.editRenderer(cell);\n }\n\n return typeof props.cellRenderer === 'function' ? props.cellRenderer(cell) ?? null : cell.value ?? null;\n };\n\n // custom props\n column.align = props.align;\n column.flex = props.flex;\n\n if (props.sort && !props.disableSorting) {\n sortRules.push({\n id: props.accessor,\n desc: props.sort === 'desc',\n });\n }\n }\n\n return column;\n });\n\n return { columns, sortRules };\n};\n\nexport const getInternalSortRules = <T>(sortRules: SortRule<T>[] | undefined): SortingRule<T>[] | undefined => {\n return sortRules?.map<SortingRule<T>>(rule => ({ id: rule.accessor, desc: rule.desc }));\n};\n"],"names":["sanitizeRowProps","row","rowExpansionRenderer","props","index","indexPath","id","values","original","subRows","length","isExpanded","depth","toggleRowExpanded","toggleRowEditing","isEditing","getColumnsFromChildren","children","sortRules","columns","React","Children","toArray","filter","child","hidden","map","groupChildren","column","sortType","disableSortBy","disableSorting","title","Header","groupColumns","groupSortRules","forEach","sort","push","accessor","headRenderer","Cell","columnProps","cell","value","editRenderer","cellRenderer","align","flex","desc","getInternalSortRules","rule"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"Tag.js","sources":["../../../../../../../src/components/Tag/Tag.tsx"],"sourcesContent":["import React from 'react';\r\nimport cn from 'classnames';\r\nimport { Color, colors } from '../../utils/colors';\r\nimport { Icon, IconName, IconProps } from '../Icon/Icon';\r\n\r\nexport type TagProps = Omit<React.HTMLAttributes<HTMLSpanElement>, 'children'> & {\r\n children: string;\r\n color?: Color;\r\n disabled?: boolean;\r\n icon?: React.ReactElement<IconProps> | IconName;\r\n readOnly?: boolean;\r\n onDelete?: (event: React.MouseEvent<SVGSVGElement>) => void;\r\n};\r\n\r\nexport const Tag = React.forwardRef<HTMLSpanElement, TagProps>((props, ref) => {\r\n const { children, color, disabled, icon, readOnly, onDelete, ...otherProps } = props;\r\n const textRef = React.useRef<HTMLDivElement>(null);\r\n\r\n const className = cn(\r\n 'inline-flex items-center rounded h-6 cursor-default',\r\n {\r\n 'opacity-50': disabled,\r\n 'hover:bg-opacity-75': !disabled,\r\n 'cursor-pointer': !!otherProps.onClick,\r\n 'pointer-events-none': disabled || readOnly,\r\n },\r\n color ? colors[color] : colors.grey,\r\n props.className\r\n );\r\n\r\n return (\r\n <span {...otherProps} className={className} ref={ref}>\r\n <span className=\"truncate px-2\" ref={textRef}>\r\n {icon ? (\r\n typeof icon === 'string' ? (\r\n <Icon name={icon} className=\"mr-1 -ml-1 -mt-0.5 !h-5 !w-5\" />\r\n ) : (\r\n React.cloneElement(icon, { className: 'mr-1 -ml-1 -mt-0.5 !h-5 !w-5' })\r\n )\r\n ) : null}\r\n {children}\r\n </span>\r\n {onDelete ? (\r\n <Icon\r\n name=\"close\"\r\n onClick={onDelete}\r\n className=\"-ml-1.5 !h-6 !w-5 flex-shrink-0 cursor-pointer rounded-r p-0.5 hover:bg-black/5\"\r\n />\r\n ) : null}\r\n </span>\r\n );\r\n});\r\n"],"names":["Tag","React","forwardRef","props","ref","children","color","disabled","icon","readOnly","onDelete","otherProps","textRef","useRef","className","cn","onClick","colors","grey","Icon","name","cloneElement"],"mappings":";;;;;MAcaA,GAAG,gBAAGC,cAAK,CAACC,UAAU,CAA4B,CAACC,KAAK,EAAEC,GAAG;EACtE,MAAM;IAAEC,QAAQ;IAAEC,KAAK;IAAEC,QAAQ;IAAEC,IAAI;IAAEC,QAAQ;IAAEC,QAAQ;IAAE,GAAGC;GAAY,GAAGR,KAAK;EACpF,MAAMS,OAAO,GAAGX,cAAK,CAACY,MAAM,CAAiB,IAAI,CAAC;EAElD,MAAMC,SAAS,GAAGC,EAAE,CAChB,qDAAqD,EACrD;IACI,YAAY,EAAER,QAAQ;IACtB,qBAAqB,EAAE,CAACA,QAAQ;IAChC,gBAAgB,EAAE,CAAC,CAACI,UAAU,CAACK,OAAO;IACtC,qBAAqB,EAAET,QAAQ,IAAIE;GACtC,EACDH,KAAK,GAAGW,MAAM,CAACX,KAAK,CAAC,GAAGW,MAAM,CAACC,IAAI,EACnCf,KAAK,CAACW,SAAS,CAClB;EAED,oBACIb,uDAAUU,UAAU;IAAEG,SAAS,EAAEA,SAAS;IAAEV,GAAG,EAAEA;mBAC7CH;IAAMa,SAAS,EAAC,eAAe;IAACV,GAAG,EAAEQ;KAChCJ,IAAI,GACD,OAAOA,IAAI,KAAK,QAAQ,gBACpBP,6BAACkB,IAAI;IAACC,IAAI,EAAEZ,IAAI;IAAEM,SAAS,EAAC;IAAiC,gBAE7Db,cAAK,CAACoB,YAAY,CAACb,IAAI,EAAE;IAAEM,SAAS,EAAE;GAAgC,CACzE,GACD,IAAI,EACPT,QAAQ,CACN,EACNK,QAAQ,gBACLT,6BAACkB,IAAI;IACDC,IAAI,EAAC,OAAO;IACZJ,OAAO,EAAEN,QAAQ;IACjBI,SAAS,EAAC;IACZ,GACF,IAAI,CACL;AAEf,CAAC;;;;"}
1
+ {"version":3,"file":"Tag.js","sources":["../../../../../../../src/components/Tag/Tag.tsx"],"sourcesContent":["import React from 'react';\nimport cn from 'classnames';\nimport { Color, colors } from '../../utils/colors';\nimport { Icon, IconName, IconProps } from '../Icon/Icon';\n\nexport type TagProps = Omit<React.HTMLAttributes<HTMLSpanElement>, 'children'> & {\n children: string;\n color?: Color;\n disabled?: boolean;\n icon?: React.ReactElement<IconProps> | IconName;\n readOnly?: boolean;\n onDelete?: (event: React.MouseEvent<SVGSVGElement>) => void;\n};\n\nexport const Tag = React.forwardRef<HTMLSpanElement, TagProps>((props, ref) => {\n const { children, color, disabled, icon, readOnly, onDelete, ...otherProps } = props;\n const textRef = React.useRef<HTMLDivElement>(null);\n\n const className = cn(\n 'inline-flex items-center rounded h-6 cursor-default',\n {\n 'opacity-50': disabled,\n 'hover:bg-opacity-75': !disabled,\n 'cursor-pointer': !!otherProps.onClick,\n 'pointer-events-none': disabled || readOnly,\n },\n color ? colors[color] : colors.grey,\n props.className\n );\n\n return (\n <span {...otherProps} className={className} ref={ref}>\n <span className=\"truncate px-2\" ref={textRef}>\n {icon ? (\n typeof icon === 'string' ? (\n <Icon name={icon} className=\"mr-1 -ml-1 -mt-0.5 !h-5 !w-5\" />\n ) : (\n React.cloneElement(icon, { className: 'mr-1 -ml-1 -mt-0.5 !h-5 !w-5' })\n )\n ) : null}\n {children}\n </span>\n {onDelete ? (\n <Icon\n name=\"close\"\n onClick={onDelete}\n className=\"-ml-1.5 !h-6 !w-5 flex-shrink-0 cursor-pointer rounded-r p-0.5 hover:bg-black/5\"\n />\n ) : null}\n </span>\n );\n});\n"],"names":["Tag","React","forwardRef","props","ref","children","color","disabled","icon","readOnly","onDelete","otherProps","textRef","useRef","className","cn","onClick","colors","grey","Icon","name","cloneElement"],"mappings":";;;;;MAcaA,GAAG,gBAAGC,cAAK,CAACC,UAAU,CAA4B,CAACC,KAAK,EAAEC,GAAG;EACtE,MAAM;IAAEC,QAAQ;IAAEC,KAAK;IAAEC,QAAQ;IAAEC,IAAI;IAAEC,QAAQ;IAAEC,QAAQ;IAAE,GAAGC;GAAY,GAAGR,KAAK;EACpF,MAAMS,OAAO,GAAGX,cAAK,CAACY,MAAM,CAAiB,IAAI,CAAC;EAElD,MAAMC,SAAS,GAAGC,EAAE,CAChB,qDAAqD,EACrD;IACI,YAAY,EAAER,QAAQ;IACtB,qBAAqB,EAAE,CAACA,QAAQ;IAChC,gBAAgB,EAAE,CAAC,CAACI,UAAU,CAACK,OAAO;IACtC,qBAAqB,EAAET,QAAQ,IAAIE;GACtC,EACDH,KAAK,GAAGW,MAAM,CAACX,KAAK,CAAC,GAAGW,MAAM,CAACC,IAAI,EACnCf,KAAK,CAACW,SAAS,CAClB;EAED,oBACIb,uDAAUU,UAAU;IAAEG,SAAS,EAAEA,SAAS;IAAEV,GAAG,EAAEA;mBAC7CH;IAAMa,SAAS,EAAC,eAAe;IAACV,GAAG,EAAEQ;KAChCJ,IAAI,GACD,OAAOA,IAAI,KAAK,QAAQ,gBACpBP,6BAACkB,IAAI;IAACC,IAAI,EAAEZ,IAAI;IAAEM,SAAS,EAAC;IAAiC,gBAE7Db,cAAK,CAACoB,YAAY,CAACb,IAAI,EAAE;IAAEM,SAAS,EAAE;GAAgC,CACzE,GACD,IAAI,EACPT,QAAQ,CACN,EACNK,QAAQ,gBACLT,6BAACkB,IAAI;IACDC,IAAI,EAAC,OAAO;IACZJ,OAAO,EAAEN,QAAQ;IACjBI,SAAS,EAAC;IACZ,GACF,IAAI,CACL;AAEf,CAAC;;;;"}
@@ -1,10 +1,10 @@
1
1
  import React__default from 'react';
2
2
  import cn from 'classnames';
3
3
  import { IconButton } from '../IconButton/IconButton.js';
4
+ import { useLocalization } from '../Provider/Localization.js';
4
5
  import { useAnimation, motion } from 'framer-motion';
5
6
  import useTimer from '../../utils/hooks/useTimer.js';
6
7
  import { getBadgeIcon } from './util.js';
7
- import { useLocalization } from '../Provider/Provider.js';
8
8
 
9
9
  const Toast = ({
10
10
  content,
@@ -1 +1 @@
1
- {"version":3,"file":"Toast.js","sources":["../../../../../../../src/components/Toast/Toast.tsx"],"sourcesContent":["import React from 'react';\r\nimport cn from 'classnames';\r\nimport { motion, useAnimation } from 'framer-motion';\r\nimport useTimer from '../../utils/hooks/useTimer';\r\nimport { getBadgeIcon } from './util';\r\nimport { State } from '../../types';\r\nimport { useLocalization } from '../Provider/Provider';\r\nimport { IconButton } from '../IconButton/IconButton';\r\n\r\nexport type ToastsTexts = {\r\n /** Aria-label for the close icon button of toast */\r\n dismiss: string;\r\n};\r\n\r\nexport type ToastType = Omit<State, 'default'> | 'loading';\r\nexport type ToastOptions = {\r\n /** Provide time in milliseconds after which the toast should autoclose */\r\n autoClose?: number;\r\n /**\r\n * State will change the icon displayed in toast and other characteristics,\r\n * for e.g. `loading` state will display a progress animation.\r\n * Default value is `default`\r\n */\r\n type?: ToastType;\r\n};\r\nexport type ToastContent = Omit<React.ReactNode, 'null' | 'undefined'>;\r\nexport type ToastProps = {\r\n /** Provide a unique id for toast */\r\n id: string;\r\n /**\r\n * Content can be any valid react node, for e.g. a `div`, or a simple text.\r\n */\r\n content: ToastContent;\r\n /** Additional options to define your toast */\r\n options: ToastOptions;\r\n /**\r\n * Handler called when toast closes.\r\n * To read more about how to provide the text, see [Provider](component:provider) component\r\n */\r\n onClose: () => void;\r\n lastUpdated?: number;\r\n lastDuplicateId?: string;\r\n};\r\n\r\nexport const Toast = ({ content, lastUpdated, onClose: handleClose, options, ...props }: ToastProps): JSX.Element => {\r\n const { texts } = useLocalization();\r\n const { autoClose, type = 'default' } = options;\r\n const className = cn('bg-white relative flex items-center py-1 px-2 mt-3 w-full rounded yt-shadow', {\r\n 'border border-grey': type === 'default' || type === 'loading' || !type,\r\n 'border border-grey-darker': type === 'success',\r\n 'border border-blue': type === 'information',\r\n 'border border-yellow-dark': type === 'warning',\r\n 'border border-red': type === 'error',\r\n });\r\n const timer = useTimer(autoClose, handleClose);\r\n const controls = useAnimation();\r\n\r\n if (!content) {\r\n console.warn(\r\n `Toast requires 'content' property, which can't be empty string, null or undefined. Current content value is set to ${\r\n content === '' ? 'empty string' : content\r\n }.`\r\n );\r\n }\r\n\r\n React.useEffect(() => {\r\n if (autoClose) {\r\n timer.start();\r\n }\r\n }, [autoClose]);\r\n\r\n const triggerUpdateAnimation = async () => {\r\n await controls.start({ scale: 1.05 });\r\n await controls.start({ scale: 1 });\r\n };\r\n\r\n React.useEffect(() => {\r\n if (lastUpdated) {\r\n triggerUpdateAnimation();\r\n\r\n if (timer.running) {\r\n timer.start();\r\n }\r\n }\r\n }, [lastUpdated]);\r\n\r\n return (\r\n <motion.div\r\n {...props}\r\n animate={controls}\r\n className={className}\r\n data-taco=\"toast\"\r\n onMouseEnter={timer.pause}\r\n onMouseLeave={timer.resume}>\r\n {getBadgeIcon(type)}\r\n <div className=\"flex-grow\">{content}</div>\r\n <IconButton\r\n appearance=\"discrete\"\r\n className=\"text-grey-darkest -mr-2 cursor-pointer self-start !px-0\"\r\n icon=\"close\"\r\n aria-label={texts.toasts.dismiss}\r\n onClick={handleClose}\r\n />\r\n </motion.div>\r\n );\r\n};\r\n"],"names":["Toast","content","lastUpdated","onClose","handleClose","options","props","texts","useLocalization","autoClose","type","className","cn","timer","useTimer","controls","useAnimation","console","warn","React","useEffect","start","triggerUpdateAnimation","scale","running","motion","div","animate","onMouseEnter","pause","onMouseLeave","resume","getBadgeIcon","IconButton","appearance","icon","toasts","dismiss","onClick"],"mappings":";;;;;;;;MA4CaA,KAAK,GAAG,CAAC;EAAEC,OAAO;EAAEC,WAAW;EAAEC,OAAO,EAAEC,WAAW;EAAEC,OAAO;EAAE,GAAGC;CAAmB;EAC/F,MAAM;IAAEC;GAAO,GAAGC,eAAe,EAAE;EACnC,MAAM;IAAEC,SAAS;IAAEC,IAAI,GAAG;GAAW,GAAGL,OAAO;EAC/C,MAAMM,SAAS,GAAGC,EAAE,CAAC,6EAA6E,EAAE;IAChG,oBAAoB,EAAEF,IAAI,KAAK,SAAS,IAAIA,IAAI,KAAK,SAAS,IAAI,CAACA,IAAI;IACvE,2BAA2B,EAAEA,IAAI,KAAK,SAAS;IAC/C,oBAAoB,EAAEA,IAAI,KAAK,aAAa;IAC5C,2BAA2B,EAAEA,IAAI,KAAK,SAAS;IAC/C,mBAAmB,EAAEA,IAAI,KAAK;GACjC,CAAC;EACF,MAAMG,KAAK,GAAGC,QAAQ,CAACL,SAAS,EAAEL,WAAW,CAAC;EAC9C,MAAMW,QAAQ,GAAGC,YAAY,EAAE;EAE/B,IAAI,CAACf,OAAO,EAAE;IACVgB,OAAO,CAACC,IAAI,uHAEJjB,OAAO,KAAK,EAAE,GAAG,cAAc,GAAGA,UACnC,CACN;;EAGLkB,cAAK,CAACC,SAAS,CAAC;IACZ,IAAIX,SAAS,EAAE;MACXI,KAAK,CAACQ,KAAK,EAAE;;GAEpB,EAAE,CAACZ,SAAS,CAAC,CAAC;EAEf,MAAMa,sBAAsB;IAAA;6BAClBP,QAAQ,CAACM,KAAK,CAAC;QAAEE,KAAK,EAAE;OAAM,CAAC;QAAA,uBAC/BR,QAAQ,CAACM,KAAK,CAAC;UAAEE,KAAK,EAAE;SAAG,CAAC;;KACrC;MAAA;;;EAEDJ,cAAK,CAACC,SAAS,CAAC;IACZ,IAAIlB,WAAW,EAAE;MACboB,sBAAsB,EAAE;MAExB,IAAIT,KAAK,CAACW,OAAO,EAAE;QACfX,KAAK,CAACQ,KAAK,EAAE;;;GAGxB,EAAE,CAACnB,WAAW,CAAC,CAAC;EAEjB,oBACIiB,6BAACM,MAAM,CAACC,GAAG,oBACHpB,KAAK;IACTqB,OAAO,EAAEZ,QAAQ;IACjBJ,SAAS,EAAEA,SAAS;iBACV,OAAO;IACjBiB,YAAY,EAAEf,KAAK,CAACgB,KAAK;IACzBC,YAAY,EAAEjB,KAAK,CAACkB;MACnBC,YAAY,CAACtB,IAAI,CAAC,eACnBS;IAAKR,SAAS,EAAC;KAAaV,OAAO,CAAO,eAC1CkB,6BAACc,UAAU;IACPC,UAAU,EAAC,UAAU;IACrBvB,SAAS,EAAC,yDAAyD;IACnEwB,IAAI,EAAC,OAAO;kBACA5B,KAAK,CAAC6B,MAAM,CAACC,OAAO;IAChCC,OAAO,EAAElC;IACX,CACO;AAErB;;;;"}
1
+ {"version":3,"file":"Toast.js","sources":["../../../../../../../src/components/Toast/Toast.tsx"],"sourcesContent":["import React from 'react';\nimport cn from 'classnames';\nimport { motion, useAnimation } from 'framer-motion';\nimport useTimer from '../../utils/hooks/useTimer';\nimport { getBadgeIcon } from './util';\nimport { State } from '../../types';\nimport { useLocalization } from '../Provider/Localization';\nimport { IconButton } from '../IconButton/IconButton';\n\nexport type ToastsTexts = {\n /** Aria-label for the close icon button of toast */\n dismiss: string;\n};\n\nexport type ToastType = Omit<State, 'default'> | 'loading';\nexport type ToastOptions = {\n /** Provide time in milliseconds after which the toast should autoclose */\n autoClose?: number;\n /**\n * State will change the icon displayed in toast and other characteristics,\n * for e.g. `loading` state will display a progress animation.\n * Default value is `default`\n */\n type?: ToastType;\n};\nexport type ToastContent = Omit<React.ReactNode, 'null' | 'undefined'>;\nexport type ToastProps = {\n /** Provide a unique id for toast */\n id: string;\n /**\n * Content can be any valid react node, for e.g. a `div`, or a simple text.\n */\n content: ToastContent;\n /** Additional options to define your toast */\n options: ToastOptions;\n /**\n * Handler called when toast closes.\n * To read more about how to provide the text, see [Provider](component:provider) component\n */\n onClose: () => void;\n lastUpdated?: number;\n lastDuplicateId?: string;\n};\n\nexport const Toast = ({ content, lastUpdated, onClose: handleClose, options, ...props }: ToastProps): JSX.Element => {\n const { texts } = useLocalization();\n const { autoClose, type = 'default' } = options;\n const className = cn('bg-white relative flex items-center py-1 px-2 mt-3 w-full rounded yt-shadow', {\n 'border border-grey': type === 'default' || type === 'loading' || !type,\n 'border border-grey-darker': type === 'success',\n 'border border-blue': type === 'information',\n 'border border-yellow-dark': type === 'warning',\n 'border border-red': type === 'error',\n });\n const timer = useTimer(autoClose, handleClose);\n const controls = useAnimation();\n\n if (!content) {\n console.warn(\n `Toast requires 'content' property, which can't be empty string, null or undefined. Current content value is set to ${\n content === '' ? 'empty string' : content\n }.`\n );\n }\n\n React.useEffect(() => {\n if (autoClose) {\n timer.start();\n }\n }, [autoClose]);\n\n const triggerUpdateAnimation = async () => {\n await controls.start({ scale: 1.05 });\n await controls.start({ scale: 1 });\n };\n\n React.useEffect(() => {\n if (lastUpdated) {\n triggerUpdateAnimation();\n\n if (timer.running) {\n timer.start();\n }\n }\n }, [lastUpdated]);\n\n return (\n <motion.div\n {...props}\n animate={controls}\n className={className}\n data-taco=\"toast\"\n onMouseEnter={timer.pause}\n onMouseLeave={timer.resume}>\n {getBadgeIcon(type)}\n <div className=\"flex-grow\">{content}</div>\n <IconButton\n appearance=\"discrete\"\n className=\"text-grey-darkest -mr-2 cursor-pointer self-start !px-0\"\n icon=\"close\"\n aria-label={texts.toasts.dismiss}\n onClick={handleClose}\n />\n </motion.div>\n );\n};\n"],"names":["Toast","content","lastUpdated","onClose","handleClose","options","props","texts","useLocalization","autoClose","type","className","cn","timer","useTimer","controls","useAnimation","console","warn","React","useEffect","start","triggerUpdateAnimation","scale","running","motion","div","animate","onMouseEnter","pause","onMouseLeave","resume","getBadgeIcon","IconButton","appearance","icon","toasts","dismiss","onClick"],"mappings":";;;;;;;;MA4CaA,KAAK,GAAG,CAAC;EAAEC,OAAO;EAAEC,WAAW;EAAEC,OAAO,EAAEC,WAAW;EAAEC,OAAO;EAAE,GAAGC;CAAmB;EAC/F,MAAM;IAAEC;GAAO,GAAGC,eAAe,EAAE;EACnC,MAAM;IAAEC,SAAS;IAAEC,IAAI,GAAG;GAAW,GAAGL,OAAO;EAC/C,MAAMM,SAAS,GAAGC,EAAE,CAAC,6EAA6E,EAAE;IAChG,oBAAoB,EAAEF,IAAI,KAAK,SAAS,IAAIA,IAAI,KAAK,SAAS,IAAI,CAACA,IAAI;IACvE,2BAA2B,EAAEA,IAAI,KAAK,SAAS;IAC/C,oBAAoB,EAAEA,IAAI,KAAK,aAAa;IAC5C,2BAA2B,EAAEA,IAAI,KAAK,SAAS;IAC/C,mBAAmB,EAAEA,IAAI,KAAK;GACjC,CAAC;EACF,MAAMG,KAAK,GAAGC,QAAQ,CAACL,SAAS,EAAEL,WAAW,CAAC;EAC9C,MAAMW,QAAQ,GAAGC,YAAY,EAAE;EAE/B,IAAI,CAACf,OAAO,EAAE;IACVgB,OAAO,CAACC,IAAI,uHAEJjB,OAAO,KAAK,EAAE,GAAG,cAAc,GAAGA,UACnC,CACN;;EAGLkB,cAAK,CAACC,SAAS,CAAC;IACZ,IAAIX,SAAS,EAAE;MACXI,KAAK,CAACQ,KAAK,EAAE;;GAEpB,EAAE,CAACZ,SAAS,CAAC,CAAC;EAEf,MAAMa,sBAAsB;IAAA;6BAClBP,QAAQ,CAACM,KAAK,CAAC;QAAEE,KAAK,EAAE;OAAM,CAAC;QAAA,uBAC/BR,QAAQ,CAACM,KAAK,CAAC;UAAEE,KAAK,EAAE;SAAG,CAAC;;KACrC;MAAA;;;EAEDJ,cAAK,CAACC,SAAS,CAAC;IACZ,IAAIlB,WAAW,EAAE;MACboB,sBAAsB,EAAE;MAExB,IAAIT,KAAK,CAACW,OAAO,EAAE;QACfX,KAAK,CAACQ,KAAK,EAAE;;;GAGxB,EAAE,CAACnB,WAAW,CAAC,CAAC;EAEjB,oBACIiB,6BAACM,MAAM,CAACC,GAAG,oBACHpB,KAAK;IACTqB,OAAO,EAAEZ,QAAQ;IACjBJ,SAAS,EAAEA,SAAS;iBACV,OAAO;IACjBiB,YAAY,EAAEf,KAAK,CAACgB,KAAK;IACzBC,YAAY,EAAEjB,KAAK,CAACkB;MACnBC,YAAY,CAACtB,IAAI,CAAC,eACnBS;IAAKR,SAAS,EAAC;KAAaV,OAAO,CAAO,eAC1CkB,6BAACc,UAAU;IACPC,UAAU,EAAC,UAAU;IACrBvB,SAAS,EAAC,yDAAyD;IACnEwB,IAAI,EAAC,OAAO;kBACA5B,KAAK,CAAC6B,MAAM,CAACC,OAAO;IAChCC,OAAO,EAAElC;IACX,CACO;AAErB;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"Toaster.js","sources":["../../../../../../../src/components/Toast/Toaster.tsx"],"sourcesContent":["import * as React from 'react';\r\nimport { v4 as uuid } from 'uuid';\r\nimport { AnimatePresence, motion } from 'framer-motion';\r\nimport { ToastOptions, Toast, ToastProps, ToastContent } from './Toast';\r\nimport './Toast.css';\r\n\r\nconst DEFAULT_AUTO_CLOSE_TIMEOUT = 7500;\r\n\r\ntype ToastCreator<T> = (content: ToastContent | ((close: () => void) => ToastContent), options?: ToastOptions) => T;\r\n\r\nexport interface Toaster<T> extends ToastCreator<T> {\r\n success: ToastCreator<T>;\r\n error: ToastCreator<T>;\r\n warning: ToastCreator<T>;\r\n information: ToastCreator<T>;\r\n loading: ToastCreator<T>;\r\n}\r\n\r\nexport interface ToastReference {\r\n /** Show a success toast */\r\n success: ToastCreator<void>;\r\n /** Show an error toast */\r\n error: ToastCreator<void>;\r\n /** Show a warning toast */\r\n warning: ToastCreator<void>;\r\n /** Show an information toast */\r\n information: ToastCreator<void>;\r\n /** Show a loading toast */\r\n loading: ToastCreator<void>;\r\n /**\r\n * Close an existing toast.\r\n * The toast function returns a reference to the active toast,\r\n * allowing you to programmatically close it when needed\r\n */\r\n close: () => void;\r\n}\r\n\r\nconst ToastContext = React.createContext<Toaster<ToastReference>>({} as Toaster<ToastReference>);\r\n\r\nexport interface ToastProviderProps {\r\n children: React.ReactNode;\r\n}\r\n\r\ntype InternalToast = Omit<ToastProps, 'onClose'>;\r\n\r\nconst insertToastWithoutDuplicates = (\r\n currentToasts: InternalToast[],\r\n id: string,\r\n content: ToastContent,\r\n options: ToastOptions,\r\n close: () => void\r\n): InternalToast[] => {\r\n const nextToasts = [...currentToasts];\r\n const existingToastIndex = currentToasts.findIndex(toast => JSON.stringify(toast.content) === JSON.stringify(content));\r\n\r\n if (existingToastIndex > -1) {\r\n nextToasts[existingToastIndex].lastDuplicateId = id;\r\n nextToasts[existingToastIndex].lastUpdated = Date.now();\r\n } else {\r\n nextToasts.push({\r\n id,\r\n content: typeof content === 'function' ? content(close) : content,\r\n options,\r\n });\r\n }\r\n\r\n return nextToasts;\r\n};\r\n\r\nexport const ToastProvider = ({ children, ...props }: ToastProviderProps): JSX.Element => {\r\n const [toasts, setToasts] = React.useState<InternalToast[]>([]);\r\n\r\n const handleClose = (id: string): void => {\r\n setToasts(currentToasts => currentToasts.filter(toast => toast.id !== id));\r\n };\r\n\r\n // memoize (useCallback) this function,\r\n // it is the value of the context provider and we don't want it to trigger state tree re-renders on provider children\r\n const toaster = React.useCallback((content: ToastContent, options: ToastOptions): ToastReference => {\r\n const id = uuid();\r\n const close = (): void => handleClose(id);\r\n\r\n setToasts(currentToasts => insertToastWithoutDuplicates(currentToasts, id, content, options, close));\r\n\r\n const update = (content: ToastContent, options: ToastOptions): void => {\r\n setToasts(currentToasts => {\r\n const nextToasts = currentToasts.filter(toast => {\r\n if (toast.lastDuplicateId) {\r\n return toast.lastDuplicateId !== id;\r\n }\r\n\r\n return toast.id !== id;\r\n });\r\n return insertToastWithoutDuplicates(nextToasts, uuid(), content, options, close);\r\n });\r\n };\r\n\r\n const success = (content: ToastContent, options?: Omit<ToastOptions, 'type'>): void => {\r\n update(content, { autoClose: DEFAULT_AUTO_CLOSE_TIMEOUT, ...options, type: 'success' });\r\n };\r\n const error = (content: ToastContent, options?: Omit<ToastOptions, 'type'>): void => {\r\n update(content, { ...options, type: 'error' });\r\n };\r\n const warning = (content: ToastContent, options?: Omit<ToastOptions, 'type'>): void => {\r\n update(content, { ...options, type: 'warning' });\r\n };\r\n const information = (content: ToastContent, options?: Omit<ToastOptions, 'type'>): void => {\r\n update(content, { ...options, type: 'information' });\r\n };\r\n const loading = (content: ToastContent, options?: Omit<ToastOptions, 'type'>): void => {\r\n update(content, { ...options, type: 'loading' });\r\n };\r\n\r\n return {\r\n success,\r\n error,\r\n warning,\r\n information,\r\n loading,\r\n close,\r\n };\r\n }, []) as Toaster<ToastReference>;\r\n\r\n // no need to rebind these every render, do them once in an effect\r\n React.useEffect(() => {\r\n toaster.success = (content: ToastContent, options?: Omit<ToastOptions, 'type'>): ToastReference =>\r\n toaster(content, { autoClose: DEFAULT_AUTO_CLOSE_TIMEOUT, ...options, type: 'success' });\r\n toaster.error = (content: ToastContent, options?: Omit<ToastOptions, 'type'>): ToastReference =>\r\n toaster(content, { ...options, type: 'error' });\r\n toaster.warning = (content: ToastContent, options?: Omit<ToastOptions, 'type'>): ToastReference =>\r\n toaster(content, { ...options, type: 'warning' });\r\n toaster.information = (content: ToastContent, options?: Omit<ToastOptions, 'type'>): ToastReference =>\r\n toaster(content, { ...options, type: 'information' });\r\n toaster.loading = (content: ToastContent, options?: Omit<ToastOptions, 'type'>): ToastReference =>\r\n toaster(content, { ...options, type: 'loading' });\r\n }, []);\r\n\r\n return (\r\n <ToastContext.Provider {...props} value={toaster}>\r\n {children}\r\n <div\r\n id=\"yt-toast__container\"\r\n className=\"pointer-events-all absolute bottom-0 right-0 !left-auto z-[1000] mb-4 mr-4 flex max-w-md flex-col items-end justify-end\"\r\n role=\"log\">\r\n <AnimatePresence initial={false}>\r\n {toasts.map((toast: InternalToast) => (\r\n <motion.div\r\n key={toast.id}\r\n transition={{\r\n type: 'spring',\r\n damping: 20,\r\n stiffness: 300,\r\n }}\r\n initial={{ opacity: 0, y: 10, scale: 0.5 }}\r\n animate={{ opacity: 1, y: 0, scale: 1 }}\r\n exit={{ opacity: 0, scale: 0.5, transition: { duration: 0.2 } }}>\r\n <Toast {...toast} onClose={() => handleClose(toast.id)} />\r\n </motion.div>\r\n ))}\r\n </AnimatePresence>\r\n </div>\r\n </ToastContext.Provider>\r\n );\r\n};\r\n\r\nexport const useToast = (): Toaster<ToastReference> => React.useContext(ToastContext);\r\n"],"names":["DEFAULT_AUTO_CLOSE_TIMEOUT","ToastContext","React","insertToastWithoutDuplicates","currentToasts","id","content","options","close","nextToasts","existingToastIndex","findIndex","toast","JSON","stringify","lastDuplicateId","lastUpdated","Date","now","push","ToastProvider","children","props","toasts","setToasts","handleClose","filter","toaster","uuid","update","success","autoClose","type","error","warning","information","loading","Provider","value","className","role","AnimatePresence","initial","map","motion","div","key","transition","damping","stiffness","opacity","y","scale","animate","exit","duration","Toast","onClose","useToast"],"mappings":";;;;;AAMA,MAAMA,0BAA0B,GAAG,IAAI;AA+BvC,MAAMC,YAAY,gBAAGC,aAAmB,CAA0B,EAA6B,CAAC;AAQhG,MAAMC,4BAA4B,GAAG,CACjCC,aAA8B,EAC9BC,EAAU,EACVC,OAAqB,EACrBC,OAAqB,EACrBC,KAAiB;EAEjB,MAAMC,UAAU,GAAG,CAAC,GAAGL,aAAa,CAAC;EACrC,MAAMM,kBAAkB,GAAGN,aAAa,CAACO,SAAS,CAACC,KAAK,IAAIC,IAAI,CAACC,SAAS,CAACF,KAAK,CAACN,OAAO,CAAC,KAAKO,IAAI,CAACC,SAAS,CAACR,OAAO,CAAC,CAAC;EAEtH,IAAII,kBAAkB,GAAG,CAAC,CAAC,EAAE;IACzBD,UAAU,CAACC,kBAAkB,CAAC,CAACK,eAAe,GAAGV,EAAE;IACnDI,UAAU,CAACC,kBAAkB,CAAC,CAACM,WAAW,GAAGC,IAAI,CAACC,GAAG,EAAE;GAC1D,MAAM;IACHT,UAAU,CAACU,IAAI,CAAC;MACZd,EAAE;MACFC,OAAO,EAAE,OAAOA,OAAO,KAAK,UAAU,GAAGA,OAAO,CAACE,KAAK,CAAC,GAAGF,OAAO;MACjEC;KACH,CAAC;;EAGN,OAAOE,UAAU;AACrB,CAAC;MAEYW,aAAa,GAAG,CAAC;EAAEC,QAAQ;EAAE,GAAGC;CAA2B;EACpE,MAAM,CAACC,MAAM,EAAEC,SAAS,CAAC,GAAGtB,QAAc,CAAkB,EAAE,CAAC;EAE/D,MAAMuB,WAAW,GAAIpB,EAAU;IAC3BmB,SAAS,CAACpB,aAAa,IAAIA,aAAa,CAACsB,MAAM,CAACd,KAAK,IAAIA,KAAK,CAACP,EAAE,KAAKA,EAAE,CAAC,CAAC;GAC7E;;;EAID,MAAMsB,OAAO,GAAGzB,WAAiB,CAAC,CAACI,OAAqB,EAAEC,OAAqB;IAC3E,MAAMF,EAAE,GAAGuB,EAAI,EAAE;IACjB,MAAMpB,KAAK,GAAG,MAAYiB,WAAW,CAACpB,EAAE,CAAC;IAEzCmB,SAAS,CAACpB,aAAa,IAAID,4BAA4B,CAACC,aAAa,EAAEC,EAAE,EAAEC,OAAO,EAAEC,OAAO,EAAEC,KAAK,CAAC,CAAC;IAEpG,MAAMqB,MAAM,GAAG,CAACvB,OAAqB,EAAEC,OAAqB;MACxDiB,SAAS,CAACpB,aAAa;QACnB,MAAMK,UAAU,GAAGL,aAAa,CAACsB,MAAM,CAACd,KAAK;UACzC,IAAIA,KAAK,CAACG,eAAe,EAAE;YACvB,OAAOH,KAAK,CAACG,eAAe,KAAKV,EAAE;;UAGvC,OAAOO,KAAK,CAACP,EAAE,KAAKA,EAAE;SACzB,CAAC;QACF,OAAOF,4BAA4B,CAACM,UAAU,EAAEmB,EAAI,EAAE,EAAEtB,OAAO,EAAEC,OAAO,EAAEC,KAAK,CAAC;OACnF,CAAC;KACL;IAED,MAAMsB,OAAO,GAAG,CAACxB,OAAqB,EAAEC,OAAoC;MACxEsB,MAAM,CAACvB,OAAO,EAAE;QAAEyB,SAAS,EAAE/B,0BAA0B;QAAE,GAAGO,OAAO;QAAEyB,IAAI,EAAE;OAAW,CAAC;KAC1F;IACD,MAAMC,KAAK,GAAG,CAAC3B,OAAqB,EAAEC,OAAoC;MACtEsB,MAAM,CAACvB,OAAO,EAAE;QAAE,GAAGC,OAAO;QAAEyB,IAAI,EAAE;OAAS,CAAC;KACjD;IACD,MAAME,OAAO,GAAG,CAAC5B,OAAqB,EAAEC,OAAoC;MACxEsB,MAAM,CAACvB,OAAO,EAAE;QAAE,GAAGC,OAAO;QAAEyB,IAAI,EAAE;OAAW,CAAC;KACnD;IACD,MAAMG,WAAW,GAAG,CAAC7B,OAAqB,EAAEC,OAAoC;MAC5EsB,MAAM,CAACvB,OAAO,EAAE;QAAE,GAAGC,OAAO;QAAEyB,IAAI,EAAE;OAAe,CAAC;KACvD;IACD,MAAMI,OAAO,GAAG,CAAC9B,OAAqB,EAAEC,OAAoC;MACxEsB,MAAM,CAACvB,OAAO,EAAE;QAAE,GAAGC,OAAO;QAAEyB,IAAI,EAAE;OAAW,CAAC;KACnD;IAED,OAAO;MACHF,OAAO;MACPG,KAAK;MACLC,OAAO;MACPC,WAAW;MACXC,OAAO;MACP5B;KACH;GACJ,EAAE,EAAE,CAA4B;;EAGjCN,SAAe,CAAC;IACZyB,OAAO,CAACG,OAAO,GAAG,CAACxB,OAAqB,EAAEC,OAAoC,KAC1EoB,OAAO,CAACrB,OAAO,EAAE;MAAEyB,SAAS,EAAE/B,0BAA0B;MAAE,GAAGO,OAAO;MAAEyB,IAAI,EAAE;KAAW,CAAC;IAC5FL,OAAO,CAACM,KAAK,GAAG,CAAC3B,OAAqB,EAAEC,OAAoC,KACxEoB,OAAO,CAACrB,OAAO,EAAE;MAAE,GAAGC,OAAO;MAAEyB,IAAI,EAAE;KAAS,CAAC;IACnDL,OAAO,CAACO,OAAO,GAAG,CAAC5B,OAAqB,EAAEC,OAAoC,KAC1EoB,OAAO,CAACrB,OAAO,EAAE;MAAE,GAAGC,OAAO;MAAEyB,IAAI,EAAE;KAAW,CAAC;IACrDL,OAAO,CAACQ,WAAW,GAAG,CAAC7B,OAAqB,EAAEC,OAAoC,KAC9EoB,OAAO,CAACrB,OAAO,EAAE;MAAE,GAAGC,OAAO;MAAEyB,IAAI,EAAE;KAAe,CAAC;IACzDL,OAAO,CAACS,OAAO,GAAG,CAAC9B,OAAqB,EAAEC,OAAoC,KAC1EoB,OAAO,CAACrB,OAAO,EAAE;MAAE,GAAGC,OAAO;MAAEyB,IAAI,EAAE;KAAW,CAAC;GACxD,EAAE,EAAE,CAAC;EAEN,oBACI9B,cAACD,YAAY,CAACoC,QAAQ,oBAAKf,KAAK;IAAEgB,KAAK,EAAEX;MACpCN,QAAQ,eACTnB;IACIG,EAAE,EAAC,qBAAqB;IACxBkC,SAAS,EAAC,yHAAyH;IACnIC,IAAI,EAAC;kBACLtC,cAACuC,eAAe;IAACC,OAAO,EAAE;KACrBnB,MAAM,CAACoB,GAAG,CAAE/B,KAAoB,iBAC7BV,cAAC0C,MAAM,CAACC,GAAG;IACPC,GAAG,EAAElC,KAAK,CAACP,EAAE;IACb0C,UAAU,EAAE;MACRf,IAAI,EAAE,QAAQ;MACdgB,OAAO,EAAE,EAAE;MACXC,SAAS,EAAE;KACd;IACDP,OAAO,EAAE;MAAEQ,OAAO,EAAE,CAAC;MAAEC,CAAC,EAAE,EAAE;MAAEC,KAAK,EAAE;KAAK;IAC1CC,OAAO,EAAE;MAAEH,OAAO,EAAE,CAAC;MAAEC,CAAC,EAAE,CAAC;MAAEC,KAAK,EAAE;KAAG;IACvCE,IAAI,EAAE;MAAEJ,OAAO,EAAE,CAAC;MAAEE,KAAK,EAAE,GAAG;MAAEL,UAAU,EAAE;QAAEQ,QAAQ,EAAE;;;kBACxDrD,cAACsD,KAAK,oBAAK5C,KAAK;IAAE6C,OAAO,EAAE,MAAMhC,WAAW,CAACb,KAAK,CAACP,EAAE;KAAK,CAEjE,CAAC,CACY,CAChB,CACc;AAEhC;MAEaqD,QAAQ,GAAG,MAA+BxD,UAAgB,CAACD,YAAY;;;;"}
1
+ {"version":3,"file":"Toaster.js","sources":["../../../../../../../src/components/Toast/Toaster.tsx"],"sourcesContent":["import * as React from 'react';\nimport { v4 as uuid } from 'uuid';\nimport { AnimatePresence, motion } from 'framer-motion';\nimport { ToastOptions, Toast, ToastProps, ToastContent } from './Toast';\nimport './Toast.css';\n\nconst DEFAULT_AUTO_CLOSE_TIMEOUT = 7500;\n\ntype ToastCreator<T> = (content: ToastContent | ((close: () => void) => ToastContent), options?: ToastOptions) => T;\n\nexport interface Toaster<T> extends ToastCreator<T> {\n success: ToastCreator<T>;\n error: ToastCreator<T>;\n warning: ToastCreator<T>;\n information: ToastCreator<T>;\n loading: ToastCreator<T>;\n}\n\nexport interface ToastReference {\n /** Show a success toast */\n success: ToastCreator<void>;\n /** Show an error toast */\n error: ToastCreator<void>;\n /** Show a warning toast */\n warning: ToastCreator<void>;\n /** Show an information toast */\n information: ToastCreator<void>;\n /** Show a loading toast */\n loading: ToastCreator<void>;\n /**\n * Close an existing toast.\n * The toast function returns a reference to the active toast,\n * allowing you to programmatically close it when needed\n */\n close: () => void;\n}\n\nconst ToastContext = React.createContext<Toaster<ToastReference>>({} as Toaster<ToastReference>);\n\nexport interface ToastProviderProps {\n children: React.ReactNode;\n}\n\ntype InternalToast = Omit<ToastProps, 'onClose'>;\n\nconst insertToastWithoutDuplicates = (\n currentToasts: InternalToast[],\n id: string,\n content: ToastContent,\n options: ToastOptions,\n close: () => void\n): InternalToast[] => {\n const nextToasts = [...currentToasts];\n const existingToastIndex = currentToasts.findIndex(toast => JSON.stringify(toast.content) === JSON.stringify(content));\n\n if (existingToastIndex > -1) {\n nextToasts[existingToastIndex].lastDuplicateId = id;\n nextToasts[existingToastIndex].lastUpdated = Date.now();\n } else {\n nextToasts.push({\n id,\n content: typeof content === 'function' ? content(close) : content,\n options,\n });\n }\n\n return nextToasts;\n};\n\nexport const ToastProvider = ({ children, ...props }: ToastProviderProps): JSX.Element => {\n const [toasts, setToasts] = React.useState<InternalToast[]>([]);\n\n const handleClose = (id: string): void => {\n setToasts(currentToasts => currentToasts.filter(toast => toast.id !== id));\n };\n\n // memoize (useCallback) this function,\n // it is the value of the context provider and we don't want it to trigger state tree re-renders on provider children\n const toaster = React.useCallback((content: ToastContent, options: ToastOptions): ToastReference => {\n const id = uuid();\n const close = (): void => handleClose(id);\n\n setToasts(currentToasts => insertToastWithoutDuplicates(currentToasts, id, content, options, close));\n\n const update = (content: ToastContent, options: ToastOptions): void => {\n setToasts(currentToasts => {\n const nextToasts = currentToasts.filter(toast => {\n if (toast.lastDuplicateId) {\n return toast.lastDuplicateId !== id;\n }\n\n return toast.id !== id;\n });\n return insertToastWithoutDuplicates(nextToasts, uuid(), content, options, close);\n });\n };\n\n const success = (content: ToastContent, options?: Omit<ToastOptions, 'type'>): void => {\n update(content, { autoClose: DEFAULT_AUTO_CLOSE_TIMEOUT, ...options, type: 'success' });\n };\n const error = (content: ToastContent, options?: Omit<ToastOptions, 'type'>): void => {\n update(content, { ...options, type: 'error' });\n };\n const warning = (content: ToastContent, options?: Omit<ToastOptions, 'type'>): void => {\n update(content, { ...options, type: 'warning' });\n };\n const information = (content: ToastContent, options?: Omit<ToastOptions, 'type'>): void => {\n update(content, { ...options, type: 'information' });\n };\n const loading = (content: ToastContent, options?: Omit<ToastOptions, 'type'>): void => {\n update(content, { ...options, type: 'loading' });\n };\n\n return {\n success,\n error,\n warning,\n information,\n loading,\n close,\n };\n }, []) as Toaster<ToastReference>;\n\n // no need to rebind these every render, do them once in an effect\n React.useEffect(() => {\n toaster.success = (content: ToastContent, options?: Omit<ToastOptions, 'type'>): ToastReference =>\n toaster(content, { autoClose: DEFAULT_AUTO_CLOSE_TIMEOUT, ...options, type: 'success' });\n toaster.error = (content: ToastContent, options?: Omit<ToastOptions, 'type'>): ToastReference =>\n toaster(content, { ...options, type: 'error' });\n toaster.warning = (content: ToastContent, options?: Omit<ToastOptions, 'type'>): ToastReference =>\n toaster(content, { ...options, type: 'warning' });\n toaster.information = (content: ToastContent, options?: Omit<ToastOptions, 'type'>): ToastReference =>\n toaster(content, { ...options, type: 'information' });\n toaster.loading = (content: ToastContent, options?: Omit<ToastOptions, 'type'>): ToastReference =>\n toaster(content, { ...options, type: 'loading' });\n }, []);\n\n return (\n <ToastContext.Provider {...props} value={toaster}>\n {children}\n <div\n id=\"yt-toast__container\"\n className=\"pointer-events-all absolute bottom-0 right-0 !left-auto z-[1000] mb-4 mr-4 flex max-w-md flex-col items-end justify-end\"\n role=\"log\">\n <AnimatePresence initial={false}>\n {toasts.map((toast: InternalToast) => (\n <motion.div\n key={toast.id}\n transition={{\n type: 'spring',\n damping: 20,\n stiffness: 300,\n }}\n initial={{ opacity: 0, y: 10, scale: 0.5 }}\n animate={{ opacity: 1, y: 0, scale: 1 }}\n exit={{ opacity: 0, scale: 0.5, transition: { duration: 0.2 } }}>\n <Toast {...toast} onClose={() => handleClose(toast.id)} />\n </motion.div>\n ))}\n </AnimatePresence>\n </div>\n </ToastContext.Provider>\n );\n};\n\nexport const useToast = (): Toaster<ToastReference> => React.useContext(ToastContext);\n"],"names":["DEFAULT_AUTO_CLOSE_TIMEOUT","ToastContext","React","insertToastWithoutDuplicates","currentToasts","id","content","options","close","nextToasts","existingToastIndex","findIndex","toast","JSON","stringify","lastDuplicateId","lastUpdated","Date","now","push","ToastProvider","children","props","toasts","setToasts","handleClose","filter","toaster","uuid","update","success","autoClose","type","error","warning","information","loading","Provider","value","className","role","AnimatePresence","initial","map","motion","div","key","transition","damping","stiffness","opacity","y","scale","animate","exit","duration","Toast","onClose","useToast"],"mappings":";;;;;AAMA,MAAMA,0BAA0B,GAAG,IAAI;AA+BvC,MAAMC,YAAY,gBAAGC,aAAmB,CAA0B,EAA6B,CAAC;AAQhG,MAAMC,4BAA4B,GAAG,CACjCC,aAA8B,EAC9BC,EAAU,EACVC,OAAqB,EACrBC,OAAqB,EACrBC,KAAiB;EAEjB,MAAMC,UAAU,GAAG,CAAC,GAAGL,aAAa,CAAC;EACrC,MAAMM,kBAAkB,GAAGN,aAAa,CAACO,SAAS,CAACC,KAAK,IAAIC,IAAI,CAACC,SAAS,CAACF,KAAK,CAACN,OAAO,CAAC,KAAKO,IAAI,CAACC,SAAS,CAACR,OAAO,CAAC,CAAC;EAEtH,IAAII,kBAAkB,GAAG,CAAC,CAAC,EAAE;IACzBD,UAAU,CAACC,kBAAkB,CAAC,CAACK,eAAe,GAAGV,EAAE;IACnDI,UAAU,CAACC,kBAAkB,CAAC,CAACM,WAAW,GAAGC,IAAI,CAACC,GAAG,EAAE;GAC1D,MAAM;IACHT,UAAU,CAACU,IAAI,CAAC;MACZd,EAAE;MACFC,OAAO,EAAE,OAAOA,OAAO,KAAK,UAAU,GAAGA,OAAO,CAACE,KAAK,CAAC,GAAGF,OAAO;MACjEC;KACH,CAAC;;EAGN,OAAOE,UAAU;AACrB,CAAC;MAEYW,aAAa,GAAG,CAAC;EAAEC,QAAQ;EAAE,GAAGC;CAA2B;EACpE,MAAM,CAACC,MAAM,EAAEC,SAAS,CAAC,GAAGtB,QAAc,CAAkB,EAAE,CAAC;EAE/D,MAAMuB,WAAW,GAAIpB,EAAU;IAC3BmB,SAAS,CAACpB,aAAa,IAAIA,aAAa,CAACsB,MAAM,CAACd,KAAK,IAAIA,KAAK,CAACP,EAAE,KAAKA,EAAE,CAAC,CAAC;GAC7E;;;EAID,MAAMsB,OAAO,GAAGzB,WAAiB,CAAC,CAACI,OAAqB,EAAEC,OAAqB;IAC3E,MAAMF,EAAE,GAAGuB,EAAI,EAAE;IACjB,MAAMpB,KAAK,GAAG,MAAYiB,WAAW,CAACpB,EAAE,CAAC;IAEzCmB,SAAS,CAACpB,aAAa,IAAID,4BAA4B,CAACC,aAAa,EAAEC,EAAE,EAAEC,OAAO,EAAEC,OAAO,EAAEC,KAAK,CAAC,CAAC;IAEpG,MAAMqB,MAAM,GAAG,CAACvB,OAAqB,EAAEC,OAAqB;MACxDiB,SAAS,CAACpB,aAAa;QACnB,MAAMK,UAAU,GAAGL,aAAa,CAACsB,MAAM,CAACd,KAAK;UACzC,IAAIA,KAAK,CAACG,eAAe,EAAE;YACvB,OAAOH,KAAK,CAACG,eAAe,KAAKV,EAAE;;UAGvC,OAAOO,KAAK,CAACP,EAAE,KAAKA,EAAE;SACzB,CAAC;QACF,OAAOF,4BAA4B,CAACM,UAAU,EAAEmB,EAAI,EAAE,EAAEtB,OAAO,EAAEC,OAAO,EAAEC,KAAK,CAAC;OACnF,CAAC;KACL;IAED,MAAMsB,OAAO,GAAG,CAACxB,OAAqB,EAAEC,OAAoC;MACxEsB,MAAM,CAACvB,OAAO,EAAE;QAAEyB,SAAS,EAAE/B,0BAA0B;QAAE,GAAGO,OAAO;QAAEyB,IAAI,EAAE;OAAW,CAAC;KAC1F;IACD,MAAMC,KAAK,GAAG,CAAC3B,OAAqB,EAAEC,OAAoC;MACtEsB,MAAM,CAACvB,OAAO,EAAE;QAAE,GAAGC,OAAO;QAAEyB,IAAI,EAAE;OAAS,CAAC;KACjD;IACD,MAAME,OAAO,GAAG,CAAC5B,OAAqB,EAAEC,OAAoC;MACxEsB,MAAM,CAACvB,OAAO,EAAE;QAAE,GAAGC,OAAO;QAAEyB,IAAI,EAAE;OAAW,CAAC;KACnD;IACD,MAAMG,WAAW,GAAG,CAAC7B,OAAqB,EAAEC,OAAoC;MAC5EsB,MAAM,CAACvB,OAAO,EAAE;QAAE,GAAGC,OAAO;QAAEyB,IAAI,EAAE;OAAe,CAAC;KACvD;IACD,MAAMI,OAAO,GAAG,CAAC9B,OAAqB,EAAEC,OAAoC;MACxEsB,MAAM,CAACvB,OAAO,EAAE;QAAE,GAAGC,OAAO;QAAEyB,IAAI,EAAE;OAAW,CAAC;KACnD;IAED,OAAO;MACHF,OAAO;MACPG,KAAK;MACLC,OAAO;MACPC,WAAW;MACXC,OAAO;MACP5B;KACH;GACJ,EAAE,EAAE,CAA4B;;EAGjCN,SAAe,CAAC;IACZyB,OAAO,CAACG,OAAO,GAAG,CAACxB,OAAqB,EAAEC,OAAoC,KAC1EoB,OAAO,CAACrB,OAAO,EAAE;MAAEyB,SAAS,EAAE/B,0BAA0B;MAAE,GAAGO,OAAO;MAAEyB,IAAI,EAAE;KAAW,CAAC;IAC5FL,OAAO,CAACM,KAAK,GAAG,CAAC3B,OAAqB,EAAEC,OAAoC,KACxEoB,OAAO,CAACrB,OAAO,EAAE;MAAE,GAAGC,OAAO;MAAEyB,IAAI,EAAE;KAAS,CAAC;IACnDL,OAAO,CAACO,OAAO,GAAG,CAAC5B,OAAqB,EAAEC,OAAoC,KAC1EoB,OAAO,CAACrB,OAAO,EAAE;MAAE,GAAGC,OAAO;MAAEyB,IAAI,EAAE;KAAW,CAAC;IACrDL,OAAO,CAACQ,WAAW,GAAG,CAAC7B,OAAqB,EAAEC,OAAoC,KAC9EoB,OAAO,CAACrB,OAAO,EAAE;MAAE,GAAGC,OAAO;MAAEyB,IAAI,EAAE;KAAe,CAAC;IACzDL,OAAO,CAACS,OAAO,GAAG,CAAC9B,OAAqB,EAAEC,OAAoC,KAC1EoB,OAAO,CAACrB,OAAO,EAAE;MAAE,GAAGC,OAAO;MAAEyB,IAAI,EAAE;KAAW,CAAC;GACxD,EAAE,EAAE,CAAC;EAEN,oBACI9B,cAACD,YAAY,CAACoC,QAAQ,oBAAKf,KAAK;IAAEgB,KAAK,EAAEX;MACpCN,QAAQ,eACTnB;IACIG,EAAE,EAAC,qBAAqB;IACxBkC,SAAS,EAAC,yHAAyH;IACnIC,IAAI,EAAC;kBACLtC,cAACuC,eAAe;IAACC,OAAO,EAAE;KACrBnB,MAAM,CAACoB,GAAG,CAAE/B,KAAoB,iBAC7BV,cAAC0C,MAAM,CAACC,GAAG;IACPC,GAAG,EAAElC,KAAK,CAACP,EAAE;IACb0C,UAAU,EAAE;MACRf,IAAI,EAAE,QAAQ;MACdgB,OAAO,EAAE,EAAE;MACXC,SAAS,EAAE;KACd;IACDP,OAAO,EAAE;MAAEQ,OAAO,EAAE,CAAC;MAAEC,CAAC,EAAE,EAAE;MAAEC,KAAK,EAAE;KAAK;IAC1CC,OAAO,EAAE;MAAEH,OAAO,EAAE,CAAC;MAAEC,CAAC,EAAE,CAAC;MAAEC,KAAK,EAAE;KAAG;IACvCE,IAAI,EAAE;MAAEJ,OAAO,EAAE,CAAC;MAAEE,KAAK,EAAE,GAAG;MAAEL,UAAU,EAAE;QAAEQ,QAAQ,EAAE;;;kBACxDrD,cAACsD,KAAK,oBAAK5C,KAAK;IAAE6C,OAAO,EAAE,MAAMhC,WAAW,CAACb,KAAK,CAACP,EAAE;KAAK,CAEjE,CAAC,CACY,CAChB,CACc;AAEhC;MAEaqD,QAAQ,GAAG,MAA+BxD,UAAgB,CAACD,YAAY;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"util.js","sources":["../../../../../../../src/components/Toast/util.tsx"],"sourcesContent":["import React from 'react';\r\nimport cn from 'classnames';\r\nimport { Icon } from '../Icon/Icon';\r\nimport { Spinner } from '../Spinner/Spinner';\r\nimport { ToastType } from './Toast';\r\n\r\nexport const getBadgeIcon = (type: ToastType): JSX.Element | null => {\r\n const css = 'rounded-full flex-shrink-0 mr-2 mt-1 self-start';\r\n\r\n switch (type) {\r\n case 'success':\r\n return <Icon name=\"tick\" className={cn(css, 'yt-green-solid ')} />;\r\n\r\n case 'warning':\r\n return <Icon name=\"warning\" className={cn(css, 'yt-yellow-solid')} />;\r\n\r\n case 'error':\r\n return <Icon name=\"warning\" className={cn(css, 'yt-red-solid')} />;\r\n\r\n case 'information':\r\n return <Icon name=\"info\" className={cn(css, 'yt-blue-solid')} />;\r\n\r\n case 'loading':\r\n return <Spinner delay={0} className={cn(css, 'h-6 w-6')} />;\r\n\r\n default:\r\n return null;\r\n }\r\n};\r\n"],"names":["getBadgeIcon","type","css","React","Icon","name","className","cn","Spinner","delay"],"mappings":";;;;;MAMaA,YAAY,GAAIC,IAAe;EACxC,MAAMC,GAAG,GAAG,iDAAiD;EAE7D,QAAQD,IAAI;IACR,KAAK,SAAS;MACV,oBAAOE,6BAACC,IAAI;QAACC,IAAI,EAAC,MAAM;QAACC,SAAS,EAAEC,EAAE,CAACL,GAAG,EAAE,iBAAiB;QAAK;IAEtE,KAAK,SAAS;MACV,oBAAOC,6BAACC,IAAI;QAACC,IAAI,EAAC,SAAS;QAACC,SAAS,EAAEC,EAAE,CAACL,GAAG,EAAE,iBAAiB;QAAK;IAEzE,KAAK,OAAO;MACR,oBAAOC,6BAACC,IAAI;QAACC,IAAI,EAAC,SAAS;QAACC,SAAS,EAAEC,EAAE,CAACL,GAAG,EAAE,cAAc;QAAK;IAEtE,KAAK,aAAa;MACd,oBAAOC,6BAACC,IAAI;QAACC,IAAI,EAAC,MAAM;QAACC,SAAS,EAAEC,EAAE,CAACL,GAAG,EAAE,eAAe;QAAK;IAEpE,KAAK,SAAS;MACV,oBAAOC,6BAACK,OAAO;QAACC,KAAK,EAAE,CAAC;QAAEH,SAAS,EAAEC,EAAE,CAACL,GAAG,EAAE,SAAS;QAAK;IAE/D;MACI,OAAO,IAAI;;AAEvB;;;;"}
1
+ {"version":3,"file":"util.js","sources":["../../../../../../../src/components/Toast/util.tsx"],"sourcesContent":["import React from 'react';\nimport cn from 'classnames';\nimport { Icon } from '../Icon/Icon';\nimport { Spinner } from '../Spinner/Spinner';\nimport { ToastType } from './Toast';\n\nexport const getBadgeIcon = (type: ToastType): JSX.Element | null => {\n const css = 'rounded-full flex-shrink-0 mr-2 mt-1 self-start';\n\n switch (type) {\n case 'success':\n return <Icon name=\"tick\" className={cn(css, 'yt-green-solid ')} />;\n\n case 'warning':\n return <Icon name=\"warning\" className={cn(css, 'yt-yellow-solid')} />;\n\n case 'error':\n return <Icon name=\"warning\" className={cn(css, 'yt-red-solid')} />;\n\n case 'information':\n return <Icon name=\"info\" className={cn(css, 'yt-blue-solid')} />;\n\n case 'loading':\n return <Spinner delay={0} className={cn(css, 'h-6 w-6')} />;\n\n default:\n return null;\n }\n};\n"],"names":["getBadgeIcon","type","css","React","Icon","name","className","cn","Spinner","delay"],"mappings":";;;;;MAMaA,YAAY,GAAIC,IAAe;EACxC,MAAMC,GAAG,GAAG,iDAAiD;EAE7D,QAAQD,IAAI;IACR,KAAK,SAAS;MACV,oBAAOE,6BAACC,IAAI;QAACC,IAAI,EAAC,MAAM;QAACC,SAAS,EAAEC,EAAE,CAACL,GAAG,EAAE,iBAAiB;QAAK;IAEtE,KAAK,SAAS;MACV,oBAAOC,6BAACC,IAAI;QAACC,IAAI,EAAC,SAAS;QAACC,SAAS,EAAEC,EAAE,CAACL,GAAG,EAAE,iBAAiB;QAAK;IAEzE,KAAK,OAAO;MACR,oBAAOC,6BAACC,IAAI;QAACC,IAAI,EAAC,SAAS;QAACC,SAAS,EAAEC,EAAE,CAACL,GAAG,EAAE,cAAc;QAAK;IAEtE,KAAK,aAAa;MACd,oBAAOC,6BAACC,IAAI;QAACC,IAAI,EAAC,MAAM;QAACC,SAAS,EAAEC,EAAE,CAACL,GAAG,EAAE,eAAe;QAAK;IAEpE,KAAK,SAAS;MACV,oBAAOC,6BAACK,OAAO;QAACC,KAAK,EAAE,CAAC;QAAEH,SAAS,EAAEC,EAAE,CAACL,GAAG,EAAE,SAAS;QAAK;IAE/D;MACI,OAAO,IAAI;;AAEvB;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"Tooltip.js","sources":["../../../../../../../src/components/Tooltip/Tooltip.tsx"],"sourcesContent":["import * as React from 'react';\r\nimport * as TooltipPrimitive from '@radix-ui/react-tooltip';\r\nimport cn from 'classnames';\r\n\r\nexport type TooltipProps = React.HTMLAttributes<HTMLDivElement> & {\r\n /** The element which activates the tooltip when hovered. Should be a single React/HTML element */\r\n children: React.ReactElement | any;\r\n /** Text displayed in the tooltip */\r\n title: string;\r\n /**\r\n * Placement of the tooltip relative to the reference element. Placement will be reversed if a collision occurs\r\n * @defaultValue bottom\r\n */\r\n placement?: 'top' | 'right' | 'bottom' | 'left';\r\n};\r\n\r\nexport const Tooltip = React.forwardRef(function Tooltip(props: TooltipProps, ref: React.Ref<HTMLElement>) {\r\n const { title, children, placement, ...otherProps } = props;\r\n const className = cn(otherProps.className);\r\n\r\n return (\r\n <TooltipPrimitive.Root delayDuration={50}>\r\n <TooltipPrimitive.Trigger asChild ref={ref as any}>\r\n {children}\r\n </TooltipPrimitive.Trigger>\r\n <TooltipPrimitive.Portal>\r\n <TooltipPrimitive.Content {...otherProps} asChild className={className} side={placement} sideOffset={3}>\r\n <div\r\n className=\"wcag-purple xs:max-w-[theme(spacing.56)] max-w-[theme(spacing.32)] animate-[fade-in_150ms] rounded-sm px-2 py-1 text-xs font-bold opacity-90\"\r\n data-taco=\"tooltip\"\r\n style={{\r\n transformOrigin: 'var(--radix-tooltip-content-transform-origin)',\r\n }}>\r\n <TooltipPrimitive.Arrow className=\"fill-purple stroke-purple -mt-px\" />\r\n {title}\r\n </div>\r\n </TooltipPrimitive.Content>\r\n </TooltipPrimitive.Portal>\r\n </TooltipPrimitive.Root>\r\n );\r\n});\r\n"],"names":["Tooltip","React","props","ref","title","children","placement","otherProps","className","cn","TooltipPrimitive","delayDuration","asChild","side","sideOffset","style","transformOrigin"],"mappings":";;;;MAgBaA,OAAO,gBAAGC,UAAgB,CAAC,SAASD,OAAO,CAACE,KAAmB,EAAEC,GAA2B;EACrG,MAAM;IAAEC,KAAK;IAAEC,QAAQ;IAAEC,SAAS;IAAE,GAAGC;GAAY,GAAGL,KAAK;EAC3D,MAAMM,SAAS,GAAGC,EAAE,CAACF,UAAU,CAACC,SAAS,CAAC;EAE1C,oBACIP,cAACS,IAAqB;IAACC,aAAa,EAAE;kBAClCV,cAACS,OAAwB;IAACE,OAAO;IAACT,GAAG,EAAEA;KAClCE,QAAQ,CACc,eAC3BJ,cAACS,MAAuB,qBACpBT,cAACS,OAAwB,oBAAKH,UAAU;IAAEK,OAAO;IAACJ,SAAS,EAAEA,SAAS;IAAEK,IAAI,EAAEP,SAAS;IAAEQ,UAAU,EAAE;mBACjGb;IACIO,SAAS,EAAC,8IAA8I;iBAC9I,SAAS;IACnBO,KAAK,EAAE;MACHC,eAAe,EAAE;;kBAErBf,cAACS,KAAsB;IAACF,SAAS,EAAC;IAAqC,EACtEJ,KAAK,CACJ,CACiB,CACL,CACN;AAEhC,CAAC;;;;"}
1
+ {"version":3,"file":"Tooltip.js","sources":["../../../../../../../src/components/Tooltip/Tooltip.tsx"],"sourcesContent":["import * as React from 'react';\nimport * as TooltipPrimitive from '@radix-ui/react-tooltip';\nimport cn from 'classnames';\n\nexport type TooltipProps = React.HTMLAttributes<HTMLDivElement> & {\n /** The element which activates the tooltip when hovered. Should be a single React/HTML element */\n children: React.ReactElement | any;\n /** Text displayed in the tooltip */\n title: string;\n /**\n * Placement of the tooltip relative to the reference element. Placement will be reversed if a collision occurs\n * @defaultValue bottom\n */\n placement?: 'top' | 'right' | 'bottom' | 'left';\n};\n\nexport const Tooltip = React.forwardRef(function Tooltip(props: TooltipProps, ref: React.Ref<HTMLElement>) {\n const { title, children, placement, ...otherProps } = props;\n const className = cn(otherProps.className);\n\n return (\n <TooltipPrimitive.Root delayDuration={50}>\n <TooltipPrimitive.Trigger asChild ref={ref as any}>\n {children}\n </TooltipPrimitive.Trigger>\n <TooltipPrimitive.Portal>\n <TooltipPrimitive.Content {...otherProps} asChild className={className} side={placement} sideOffset={3}>\n <div\n className=\"wcag-purple xs:max-w-[theme(spacing.56)] max-w-[theme(spacing.32)] animate-[fade-in_150ms] rounded-sm px-2 py-1 text-xs font-bold opacity-90\"\n data-taco=\"tooltip\"\n style={{\n transformOrigin: 'var(--radix-tooltip-content-transform-origin)',\n }}>\n <TooltipPrimitive.Arrow className=\"fill-purple stroke-purple -mt-px\" />\n {title}\n </div>\n </TooltipPrimitive.Content>\n </TooltipPrimitive.Portal>\n </TooltipPrimitive.Root>\n );\n});\n"],"names":["Tooltip","React","props","ref","title","children","placement","otherProps","className","cn","TooltipPrimitive","delayDuration","asChild","side","sideOffset","style","transformOrigin"],"mappings":";;;;MAgBaA,OAAO,gBAAGC,UAAgB,CAAC,SAASD,OAAO,CAACE,KAAmB,EAAEC,GAA2B;EACrG,MAAM;IAAEC,KAAK;IAAEC,QAAQ;IAAEC,SAAS;IAAE,GAAGC;GAAY,GAAGL,KAAK;EAC3D,MAAMM,SAAS,GAAGC,EAAE,CAACF,UAAU,CAACC,SAAS,CAAC;EAE1C,oBACIP,cAACS,IAAqB;IAACC,aAAa,EAAE;kBAClCV,cAACS,OAAwB;IAACE,OAAO;IAACT,GAAG,EAAEA;KAClCE,QAAQ,CACc,eAC3BJ,cAACS,MAAuB,qBACpBT,cAACS,OAAwB,oBAAKH,UAAU;IAAEK,OAAO;IAACJ,SAAS,EAAEA,SAAS;IAAEK,IAAI,EAAEP,SAAS;IAAEQ,UAAU,EAAE;mBACjGb;IACIO,SAAS,EAAC,8IAA8I;iBAC9I,SAAS;IACnBO,KAAK,EAAE;MACHC,eAAe,EAAE;;kBAErBf,cAACS,KAAsB;IAACF,SAAS,EAAC;IAAqC,EACtEJ,KAAK,CACJ,CACiB,CACL,CACN;AAEhC,CAAC;;;;"}
@@ -1,7 +1,7 @@
1
1
  import { useMemo, Children, useCallback, createElement, useRef, useEffect } from 'react';
2
2
  import { IconButton } from '../IconButton/IconButton.js';
3
+ import { useLocalization } from '../Provider/Localization.js';
3
4
  import { Button } from '../Button/Button.js';
4
- import { useLocalization } from '../Provider/Provider.js';
5
5
  import { Group } from '../Group/Group.js';
6
6
  import Joyride, { ACTIONS, LIFECYCLE, EVENTS } from 'react-joyride';
7
7
 
@@ -1 +1 @@
1
- {"version":3,"file":"Tour.js","sources":["../../../../../../../src/components/Tour/Tour.tsx"],"sourcesContent":["import * as React from 'react';\r\nimport Joyride, { Step, CallBackProps, ACTIONS, LIFECYCLE, Placement, EVENTS, TooltipRenderProps } from 'react-joyride';\r\n\r\nimport { Button } from '../Button/Button';\r\nimport { Group } from '../Group/Group';\r\nimport { IconButton } from '../IconButton/IconButton';\r\nimport { useLocalization } from '../Provider/Provider';\r\n\r\nexport type TourTexts = {\r\n /** Text for back action button */\r\n back: string;\r\n /**\r\n * Text for close button.\r\n * This button is displayed if tour is not continuous - replacing the `Next` button.\r\n * It will pause the flow of the tour and close the tooltip\r\n */\r\n close: string;\r\n /**\r\n * Aria-label and title for close icon button in each step.\r\n * This button skips and completes the flow entirely\r\n */\r\n skip: string;\r\n /**\r\n * Text for last action button.\r\n * This button is displayed when user is on the last step of the tour\r\n */\r\n last: string;\r\n /**\r\n * Text for next action button.\r\n * This button is displayed if tour has more than one steps and is continuous\r\n */\r\n next: string;\r\n /** Aria label and title for beacon that will open the tour step */\r\n open: string;\r\n};\r\n\r\nexport type TourStepProps = {\r\n /** Content can be any valid react node, for e.g. a `div` */\r\n children: React.ReactNode;\r\n /** Define the position of the tour's popup relative to the element is presenting */\r\n position?: Placement;\r\n /** The css selector of the html element you want to include in a tour */\r\n selector: string;\r\n /**\r\n * Show beacon for step.\r\n * A beacon is a styled component which indicates the current element to be presented.\r\n * For more informations about how to create a beacon, read [Joyride](https://docs.react-joyride.com) docs\r\n */\r\n showBeacon?: boolean;\r\n /** Text displayed above the children/content of the popup */\r\n title: string;\r\n};\r\n\r\nconst Tooltip = ({\r\n continuous,\r\n index,\r\n isLastStep,\r\n step,\r\n backProps,\r\n primaryProps,\r\n skipProps,\r\n tooltipProps,\r\n size,\r\n locale,\r\n disableTourSkipOnEsc,\r\n}: TooltipRenderProps & { locale: TourTexts; disableTourSkipOnEsc?: boolean }) => {\r\n const skipButtonRef = React.useRef<HTMLButtonElement>(null);\r\n\r\n React.useEffect(() => {\r\n const onWindowKeyDown = (event: KeyboardEvent): void => {\r\n if (!disableTourSkipOnEsc) {\r\n if (event.key === 'Escape' && skipButtonRef.current !== null) {\r\n event.preventDefault();\r\n skipButtonRef.current.click();\r\n return;\r\n }\r\n }\r\n };\r\n\r\n window.addEventListener('keydown', onWindowKeyDown);\r\n\r\n return () => {\r\n window.removeEventListener('keydown', onWindowKeyDown);\r\n };\r\n }, []);\r\n\r\n return (\r\n <div {...tooltipProps} className=\"yt-tour__step w-88 relative rounded bg-white p-4\">\r\n <IconButton\r\n {...skipProps}\r\n ref={skipButtonRef}\r\n appearance=\"discrete\"\r\n icon=\"close\"\r\n title={locale.skip}\r\n aria-label={locale.skip}\r\n className=\"absolute top-0 right-0 mt-1 mr-1\"\r\n />\r\n {step.title && <h5>{step.title}</h5>}\r\n {step.content}\r\n <Group className=\"mt-4 justify-end\">\r\n {index > 0 && (\r\n <Button {...backProps} appearance=\"discrete\">\r\n {locale.back}\r\n </Button>\r\n )}\r\n <Button {...primaryProps} appearance=\"primary\">\r\n {continuous\r\n ? isLastStep\r\n ? `${locale.last} (${index + 1}/${size})`\r\n : `${locale.next} (${index + 1}/${size})`\r\n : locale.close}\r\n </Button>\r\n </Group>\r\n </div>\r\n );\r\n};\r\n\r\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\r\nexport const TourStep = (_props: TourStepProps): null => null;\r\n\r\nexport type TourProps = {\r\n /** Controls if [Joyride](https://docs.react-joyride.com) is active */\r\n autoStart?: boolean;\r\n /** Children should be one or more `Tour.Step` components */\r\n children: any;\r\n /** Are there more than one steps and should you be able to navigate between them using `Next` and `Previous` buttons */\r\n continuous?: boolean;\r\n /** Disable closing of tour when click on `Escape` */\r\n disableCloseOnEsc?: boolean;\r\n /** Don't close the presenting popup of the tour step when clicking outside it */\r\n disableOverlayClose?: boolean;\r\n /** Allows user to interact with the presented components (mouse and touch events) when the popup is visible */\r\n disableScrolling?: boolean;\r\n /* When user clicks on the close icon button, which will close the tour and complete the flow */\r\n onClose?: (step: TourStepProps) => void;\r\n /* When user completes the entire flow */\r\n onComplete?: Function;\r\n /** When step is ready */\r\n onReady?: (step: TourStepProps) => void;\r\n /* Allow mouse and touch events through the spotlight */\r\n spotlightClicks?: boolean;\r\n /* Stops the injection of custom overflow styles on parent container. Can be used to prevent remaining overflow styles after tour is done. */\r\n disableScrollParentFix?: boolean;\r\n /** The scroll distance from the element scrollTop value. */\r\n scrollOffset?: number;\r\n};\r\n\r\nexport const Tour = (props: TourProps) => {\r\n const {\r\n texts: { tour },\r\n } = useLocalization();\r\n\r\n const {\r\n autoStart: run,\r\n onComplete,\r\n onClose,\r\n onReady,\r\n spotlightClicks,\r\n disableCloseOnEsc: disableTourSkipOnEsc,\r\n disableScrollParentFix = false,\r\n scrollOffset,\r\n ...rest\r\n } = props;\r\n\r\n const steps = React.useMemo(() => {\r\n return React.Children.map(props.children, child => {\r\n const step: Step = {\r\n disableBeacon: !child.props.showBeacon,\r\n target: child.props.selector,\r\n placement: child.props.position,\r\n title: child.props.title,\r\n content: child.props.children,\r\n };\r\n return step;\r\n });\r\n }, [props.children]);\r\n\r\n const getStep = React.useCallback(\r\n (selector: string | HTMLElement) => props.children.find((child: any) => child.props.selector === selector)?.props,\r\n [props.children]\r\n );\r\n\r\n function callback(state: CallBackProps) {\r\n if (state.action === ACTIONS.SKIP && state.lifecycle === LIFECYCLE.COMPLETE) {\r\n if (onClose) {\r\n onClose(getStep(state.step.target));\r\n }\r\n }\r\n\r\n if (state.type === EVENTS.TOUR_END) {\r\n if (onComplete) {\r\n onComplete();\r\n }\r\n }\r\n\r\n if (state.lifecycle === LIFECYCLE.READY) {\r\n if (onReady) {\r\n onReady(getStep(state.step.target));\r\n }\r\n }\r\n }\r\n\r\n return (\r\n <Joyride\r\n {...rest}\r\n run={run}\r\n steps={steps}\r\n showProgress\r\n floaterProps={{\r\n disableAnimation: true,\r\n }}\r\n tooltipComponent={tooltipProps => (\r\n <Tooltip {...tooltipProps} locale={tour} disableTourSkipOnEsc={disableTourSkipOnEsc} />\r\n )}\r\n locale={tour}\r\n spotlightPadding={8}\r\n spotlightClicks={spotlightClicks}\r\n disableScrollParentFix={disableScrollParentFix}\r\n callback={callback}\r\n scrollOffset={scrollOffset}\r\n styles={{\r\n /** style beacon */\r\n options: {\r\n // tailwind.theme.colors.blue.light\r\n primaryColor: '#6ba4ff',\r\n },\r\n }}\r\n disableCloseOnEsc\r\n />\r\n );\r\n};\r\n\r\nTour.Step = TourStep;\r\n"],"names":["Tooltip","continuous","index","isLastStep","step","backProps","primaryProps","skipProps","tooltipProps","size","locale","disableTourSkipOnEsc","skipButtonRef","React","onWindowKeyDown","event","key","current","preventDefault","click","window","addEventListener","removeEventListener","className","IconButton","ref","appearance","icon","title","skip","content","Group","Button","back","last","next","close","TourStep","_props","Tour","props","texts","tour","useLocalization","autoStart","run","onComplete","onClose","onReady","spotlightClicks","disableCloseOnEsc","disableScrollParentFix","scrollOffset","rest","steps","map","children","child","disableBeacon","showBeacon","target","selector","placement","position","getStep","find","callback","state","action","ACTIONS","SKIP","lifecycle","LIFECYCLE","COMPLETE","type","EVENTS","TOUR_END","READY","Joyride","showProgress","floaterProps","disableAnimation","tooltipComponent","spotlightPadding","styles","options","primaryColor","Step"],"mappings":";;;;;;;AAqDA,MAAMA,OAAO,GAAG,CAAC;EACbC,UAAU;EACVC,KAAK;EACLC,UAAU;EACVC,IAAI;EACJC,SAAS;EACTC,YAAY;EACZC,SAAS;EACTC,YAAY;EACZC,IAAI;EACJC,MAAM;EACNC;CACyE;EACzE,MAAMC,aAAa,GAAGC,MAAY,CAAoB,IAAI,CAAC;EAE3DA,SAAe,CAAC;IACZ,MAAMC,eAAe,GAAIC,KAAoB;MACzC,IAAI,CAACJ,oBAAoB,EAAE;QACvB,IAAII,KAAK,CAACC,GAAG,KAAK,QAAQ,IAAIJ,aAAa,CAACK,OAAO,KAAK,IAAI,EAAE;UAC1DF,KAAK,CAACG,cAAc,EAAE;UACtBN,aAAa,CAACK,OAAO,CAACE,KAAK,EAAE;UAC7B;;;KAGX;IAEDC,MAAM,CAACC,gBAAgB,CAAC,SAAS,EAAEP,eAAe,CAAC;IAEnD,OAAO;MACHM,MAAM,CAACE,mBAAmB,CAAC,SAAS,EAAER,eAAe,CAAC;KACzD;GACJ,EAAE,EAAE,CAAC;EAEN,oBACID,uCAASL,YAAY;IAAEe,SAAS,EAAC;mBAC7BV,cAACW,UAAU,oBACHjB,SAAS;IACbkB,GAAG,EAAEb,aAAa;IAClBc,UAAU,EAAC,UAAU;IACrBC,IAAI,EAAC,OAAO;IACZC,KAAK,EAAElB,MAAM,CAACmB,IAAI;kBACNnB,MAAM,CAACmB,IAAI;IACvBN,SAAS,EAAC;KACZ,EACDnB,IAAI,CAACwB,KAAK,iBAAIf,0BAAKT,IAAI,CAACwB,KAAK,CAAM,EACnCxB,IAAI,CAAC0B,OAAO,eACbjB,cAACkB,KAAK;IAACR,SAAS,EAAC;KACZrB,KAAK,GAAG,CAAC,iBACNW,cAACmB,MAAM,oBAAK3B,SAAS;IAAEqB,UAAU,EAAC;MAC7BhB,MAAM,CAACuB,IAAI,CAEnB,eACDpB,cAACmB,MAAM,oBAAK1B,YAAY;IAAEoB,UAAU,EAAC;MAChCzB,UAAU,GACLE,UAAU,MACHO,MAAM,CAACwB,SAAShC,KAAK,GAAG,KAAKO,OAAO,MACpCC,MAAM,CAACyB,SAASjC,KAAK,GAAG,KAAKO,OAAO,GAC3CC,MAAM,CAAC0B,KAAK,CACb,CACL,CACN;AAEd,CAAC;AAED;MACaC,QAAQ,GAAIC,MAAqB,IAAW;MA6B5CC,IAAI,GAAIC,KAAgB;EACjC,MAAM;IACFC,KAAK,EAAE;MAAEC;;GACZ,GAAGC,eAAe,EAAE;EAErB,MAAM;IACFC,SAAS,EAAEC,GAAG;IACdC,UAAU;IACVC,OAAO;IACPC,OAAO;IACPC,eAAe;IACfC,iBAAiB,EAAEvC,oBAAoB;IACvCwC,sBAAsB,GAAG,KAAK;IAC9BC,YAAY;IACZ,GAAGC;GACN,GAAGb,KAAK;EAET,MAAMc,KAAK,GAAGzC,OAAa,CAAC;IACxB,OAAOA,QAAc,CAAC0C,GAAG,CAACf,KAAK,CAACgB,QAAQ,EAAEC,KAAK;MAC3C,MAAMrD,IAAI,GAAS;QACfsD,aAAa,EAAE,CAACD,KAAK,CAACjB,KAAK,CAACmB,UAAU;QACtCC,MAAM,EAAEH,KAAK,CAACjB,KAAK,CAACqB,QAAQ;QAC5BC,SAAS,EAAEL,KAAK,CAACjB,KAAK,CAACuB,QAAQ;QAC/BnC,KAAK,EAAE6B,KAAK,CAACjB,KAAK,CAACZ,KAAK;QACxBE,OAAO,EAAE2B,KAAK,CAACjB,KAAK,CAACgB;OACxB;MACD,OAAOpD,IAAI;KACd,CAAC;GACL,EAAE,CAACoC,KAAK,CAACgB,QAAQ,CAAC,CAAC;EAEpB,MAAMQ,OAAO,GAAGnD,WAAiB,CAC5BgD,QAA8B;IAAA;IAAA,+BAAKrB,KAAK,CAACgB,QAAQ,CAACS,IAAI,CAAER,KAAU,IAAKA,KAAK,CAACjB,KAAK,CAACqB,QAAQ,KAAKA,QAAQ,CAAC,yDAAtE,qBAAwErB,KAAK;KACjH,CAACA,KAAK,CAACgB,QAAQ,CAAC,CACnB;EAED,SAASU,QAAQ,CAACC,KAAoB;IAClC,IAAIA,KAAK,CAACC,MAAM,KAAKC,OAAO,CAACC,IAAI,IAAIH,KAAK,CAACI,SAAS,KAAKC,SAAS,CAACC,QAAQ,EAAE;MACzE,IAAI1B,OAAO,EAAE;QACTA,OAAO,CAACiB,OAAO,CAACG,KAAK,CAAC/D,IAAI,CAACwD,MAAM,CAAC,CAAC;;;IAI3C,IAAIO,KAAK,CAACO,IAAI,KAAKC,MAAM,CAACC,QAAQ,EAAE;MAChC,IAAI9B,UAAU,EAAE;QACZA,UAAU,EAAE;;;IAIpB,IAAIqB,KAAK,CAACI,SAAS,KAAKC,SAAS,CAACK,KAAK,EAAE;MACrC,IAAI7B,OAAO,EAAE;QACTA,OAAO,CAACgB,OAAO,CAACG,KAAK,CAAC/D,IAAI,CAACwD,MAAM,CAAC,CAAC;;;;EAK/C,oBACI/C,cAACiE,OAAO,oBACAzB,IAAI;IACRR,GAAG,EAAEA,GAAG;IACRS,KAAK,EAAEA,KAAK;IACZyB,YAAY;IACZC,YAAY,EAAE;MACVC,gBAAgB,EAAE;KACrB;IACDC,gBAAgB,EAAE1E,YAAY,iBAC1BK,cAACb,OAAO,oBAAKQ,YAAY;MAAEE,MAAM,EAAEgC,IAAI;MAAE/B,oBAAoB,EAAEA;OAClE;IACDD,MAAM,EAAEgC,IAAI;IACZyC,gBAAgB,EAAE,CAAC;IACnBlC,eAAe,EAAEA,eAAe;IAChCE,sBAAsB,EAAEA,sBAAsB;IAC9Ce,QAAQ,EAAEA,QAAQ;IAClBd,YAAY,EAAEA,YAAY;IAC1BgC,MAAM,EAAE;;MAEJC,OAAO,EAAE;;QAELC,YAAY,EAAE;;KAErB;IACDpC,iBAAiB;KACnB;AAEV;AAEAX,IAAI,CAACgD,IAAI,GAAGlD,QAAQ;;;;"}
1
+ {"version":3,"file":"Tour.js","sources":["../../../../../../../src/components/Tour/Tour.tsx"],"sourcesContent":["import * as React from 'react';\nimport Joyride, { Step, CallBackProps, ACTIONS, LIFECYCLE, Placement, EVENTS, TooltipRenderProps } from 'react-joyride';\n\nimport { Button } from '../Button/Button';\nimport { Group } from '../Group/Group';\nimport { IconButton } from '../IconButton/IconButton';\nimport { useLocalization } from '../Provider/Localization';\n\nexport type TourTexts = {\n /** Text for back action button */\n back: string;\n /**\n * Text for close button.\n * This button is displayed if tour is not continuous - replacing the `Next` button.\n * It will pause the flow of the tour and close the tooltip\n */\n close: string;\n /**\n * Aria-label and title for close icon button in each step.\n * This button skips and completes the flow entirely\n */\n skip: string;\n /**\n * Text for last action button.\n * This button is displayed when user is on the last step of the tour\n */\n last: string;\n /**\n * Text for next action button.\n * This button is displayed if tour has more than one steps and is continuous\n */\n next: string;\n /** Aria label and title for beacon that will open the tour step */\n open: string;\n};\n\nexport type TourStepProps = {\n /** Content can be any valid react node, for e.g. a `div` */\n children: React.ReactNode;\n /** Define the position of the tour's popup relative to the element is presenting */\n position?: Placement;\n /** The css selector of the html element you want to include in a tour */\n selector: string;\n /**\n * Show beacon for step.\n * A beacon is a styled component which indicates the current element to be presented.\n * For more informations about how to create a beacon, read [Joyride](https://docs.react-joyride.com) docs\n */\n showBeacon?: boolean;\n /** Text displayed above the children/content of the popup */\n title: string;\n};\n\nconst Tooltip = ({\n continuous,\n index,\n isLastStep,\n step,\n backProps,\n primaryProps,\n skipProps,\n tooltipProps,\n size,\n locale,\n disableTourSkipOnEsc,\n}: TooltipRenderProps & { locale: TourTexts; disableTourSkipOnEsc?: boolean }) => {\n const skipButtonRef = React.useRef<HTMLButtonElement>(null);\n\n React.useEffect(() => {\n const onWindowKeyDown = (event: KeyboardEvent): void => {\n if (!disableTourSkipOnEsc) {\n if (event.key === 'Escape' && skipButtonRef.current !== null) {\n event.preventDefault();\n skipButtonRef.current.click();\n return;\n }\n }\n };\n\n window.addEventListener('keydown', onWindowKeyDown);\n\n return () => {\n window.removeEventListener('keydown', onWindowKeyDown);\n };\n }, []);\n\n return (\n <div {...tooltipProps} className=\"yt-tour__step w-88 relative rounded bg-white p-4\">\n <IconButton\n {...skipProps}\n ref={skipButtonRef}\n appearance=\"discrete\"\n icon=\"close\"\n title={locale.skip}\n aria-label={locale.skip}\n className=\"absolute top-0 right-0 mt-1 mr-1\"\n />\n {step.title && <h5>{step.title}</h5>}\n {step.content}\n <Group className=\"mt-4 justify-end\">\n {index > 0 && (\n <Button {...backProps} appearance=\"discrete\">\n {locale.back}\n </Button>\n )}\n <Button {...primaryProps} appearance=\"primary\">\n {continuous\n ? isLastStep\n ? `${locale.last} (${index + 1}/${size})`\n : `${locale.next} (${index + 1}/${size})`\n : locale.close}\n </Button>\n </Group>\n </div>\n );\n};\n\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nexport const TourStep = (_props: TourStepProps): null => null;\n\nexport type TourProps = {\n /** Controls if [Joyride](https://docs.react-joyride.com) is active */\n autoStart?: boolean;\n /** Children should be one or more `Tour.Step` components */\n children: any;\n /** Are there more than one steps and should you be able to navigate between them using `Next` and `Previous` buttons */\n continuous?: boolean;\n /** Disable closing of tour when click on `Escape` */\n disableCloseOnEsc?: boolean;\n /** Don't close the presenting popup of the tour step when clicking outside it */\n disableOverlayClose?: boolean;\n /** Allows user to interact with the presented components (mouse and touch events) when the popup is visible */\n disableScrolling?: boolean;\n /* When user clicks on the close icon button, which will close the tour and complete the flow */\n onClose?: (step: TourStepProps) => void;\n /* When user completes the entire flow */\n onComplete?: Function;\n /** When step is ready */\n onReady?: (step: TourStepProps) => void;\n /* Allow mouse and touch events through the spotlight */\n spotlightClicks?: boolean;\n /* Stops the injection of custom overflow styles on parent container. Can be used to prevent remaining overflow styles after tour is done. */\n disableScrollParentFix?: boolean;\n /** The scroll distance from the element scrollTop value. */\n scrollOffset?: number;\n};\n\nexport const Tour = (props: TourProps) => {\n const {\n texts: { tour },\n } = useLocalization();\n\n const {\n autoStart: run,\n onComplete,\n onClose,\n onReady,\n spotlightClicks,\n disableCloseOnEsc: disableTourSkipOnEsc,\n disableScrollParentFix = false,\n scrollOffset,\n ...rest\n } = props;\n\n const steps = React.useMemo(() => {\n return React.Children.map(props.children, child => {\n const step: Step = {\n disableBeacon: !child.props.showBeacon,\n target: child.props.selector,\n placement: child.props.position,\n title: child.props.title,\n content: child.props.children,\n };\n return step;\n });\n }, [props.children]);\n\n const getStep = React.useCallback(\n (selector: string | HTMLElement) => props.children.find((child: any) => child.props.selector === selector)?.props,\n [props.children]\n );\n\n function callback(state: CallBackProps) {\n if (state.action === ACTIONS.SKIP && state.lifecycle === LIFECYCLE.COMPLETE) {\n if (onClose) {\n onClose(getStep(state.step.target));\n }\n }\n\n if (state.type === EVENTS.TOUR_END) {\n if (onComplete) {\n onComplete();\n }\n }\n\n if (state.lifecycle === LIFECYCLE.READY) {\n if (onReady) {\n onReady(getStep(state.step.target));\n }\n }\n }\n\n return (\n <Joyride\n {...rest}\n run={run}\n steps={steps}\n showProgress\n floaterProps={{\n disableAnimation: true,\n }}\n tooltipComponent={tooltipProps => (\n <Tooltip {...tooltipProps} locale={tour} disableTourSkipOnEsc={disableTourSkipOnEsc} />\n )}\n locale={tour}\n spotlightPadding={8}\n spotlightClicks={spotlightClicks}\n disableScrollParentFix={disableScrollParentFix}\n callback={callback}\n scrollOffset={scrollOffset}\n styles={{\n /** style beacon */\n options: {\n // tailwind.theme.colors.blue.light\n primaryColor: '#6ba4ff',\n },\n }}\n disableCloseOnEsc\n />\n );\n};\n\nTour.Step = TourStep;\n"],"names":["Tooltip","continuous","index","isLastStep","step","backProps","primaryProps","skipProps","tooltipProps","size","locale","disableTourSkipOnEsc","skipButtonRef","React","onWindowKeyDown","event","key","current","preventDefault","click","window","addEventListener","removeEventListener","className","IconButton","ref","appearance","icon","title","skip","content","Group","Button","back","last","next","close","TourStep","_props","Tour","props","texts","tour","useLocalization","autoStart","run","onComplete","onClose","onReady","spotlightClicks","disableCloseOnEsc","disableScrollParentFix","scrollOffset","rest","steps","map","children","child","disableBeacon","showBeacon","target","selector","placement","position","getStep","find","callback","state","action","ACTIONS","SKIP","lifecycle","LIFECYCLE","COMPLETE","type","EVENTS","TOUR_END","READY","Joyride","showProgress","floaterProps","disableAnimation","tooltipComponent","spotlightPadding","styles","options","primaryColor","Step"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"useBoundingClientRectListener.js","sources":["../../../../../../src/hooks/useBoundingClientRectListener.ts"],"sourcesContent":["import * as React from 'react';\r\nimport { debounce } from '../utils/debounce';\r\n\r\nconst getVisibility = (element: HTMLElement | null): boolean =>\r\n Boolean(element && (element.offsetWidth || element.offsetHeight || element.getClientRects().length));\r\n\r\nexport const useBoundingClientRectListener = (\r\n ref: React.RefObject<HTMLElement>,\r\n dependencies?: Array<any>\r\n): DOMRectReadOnly | undefined => {\r\n const [dimensions, setDimensions] = React.useState<DOMRectReadOnly | undefined>(undefined);\r\n const isRefElementVisible = getVisibility(ref.current);\r\n const [visibility, setVisibility] = React.useState(isRefElementVisible);\r\n\r\n const resize = () => {\r\n if (visibility) {\r\n setDimensions(ref.current?.getBoundingClientRect());\r\n }\r\n };\r\n\r\n React.useEffect(() => {\r\n const timeout = setTimeout(resize, 0);\r\n const debouncedResize = debounce(resize, 250);\r\n\r\n window.addEventListener('resize', debouncedResize);\r\n\r\n return () => {\r\n clearTimeout(timeout);\r\n window.removeEventListener('resize', debouncedResize);\r\n };\r\n }, [ref.current, visibility]);\r\n\r\n React.useEffect(() => {\r\n const newRefElementVisibility = getVisibility(ref.current);\r\n\r\n if (visibility !== newRefElementVisibility) {\r\n // When visibility of an element changes, then the new visibility of the element can only be checked after the\r\n // component has rendered. That's why the visibility check is inside the useEffect. This useEffect will cause\r\n // the consumer to rerender and that will cause the above hook to recalculate the dimensions\r\n setVisibility(newRefElementVisibility);\r\n }\r\n });\r\n\r\n React.useEffect(() => {\r\n if (dependencies) {\r\n setDimensions(ref.current?.getBoundingClientRect());\r\n }\r\n }, dependencies);\r\n\r\n return dimensions;\r\n};\r\n"],"names":["getVisibility","element","Boolean","offsetWidth","offsetHeight","getClientRects","length","useBoundingClientRectListener","ref","dependencies","dimensions","setDimensions","React","undefined","isRefElementVisible","current","visibility","setVisibility","resize","getBoundingClientRect","timeout","setTimeout","debouncedResize","debounce","window","addEventListener","clearTimeout","removeEventListener","newRefElementVisibility"],"mappings":";;;AAGA,MAAMA,aAAa,GAAIC,OAA2B,IAC9CC,OAAO,CAACD,OAAO,KAAKA,OAAO,CAACE,WAAW,IAAIF,OAAO,CAACG,YAAY,IAAIH,OAAO,CAACI,cAAc,EAAE,CAACC,MAAM,CAAC,CAAC;MAE3FC,6BAA6B,GAAG,CACzCC,GAAiC,EACjCC,YAAyB;EAEzB,MAAM,CAACC,UAAU,EAAEC,aAAa,CAAC,GAAGC,QAAc,CAA8BC,SAAS,CAAC;EAC1F,MAAMC,mBAAmB,GAAGd,aAAa,CAACQ,GAAG,CAACO,OAAO,CAAC;EACtD,MAAM,CAACC,UAAU,EAAEC,aAAa,CAAC,GAAGL,QAAc,CAACE,mBAAmB,CAAC;EAEvE,MAAMI,MAAM,GAAG;IACX,IAAIF,UAAU,EAAE;MAAA;MACZL,aAAa,iBAACH,GAAG,CAACO,OAAO,iDAAX,aAAaI,qBAAqB,EAAE,CAAC;;GAE1D;EAEDP,SAAe,CAAC;IACZ,MAAMQ,OAAO,GAAGC,UAAU,CAACH,MAAM,EAAE,CAAC,CAAC;IACrC,MAAMI,eAAe,GAAGC,QAAQ,CAACL,MAAM,EAAE,GAAG,CAAC;IAE7CM,MAAM,CAACC,gBAAgB,CAAC,QAAQ,EAAEH,eAAe,CAAC;IAElD,OAAO;MACHI,YAAY,CAACN,OAAO,CAAC;MACrBI,MAAM,CAACG,mBAAmB,CAAC,QAAQ,EAAEL,eAAe,CAAC;KACxD;GACJ,EAAE,CAACd,GAAG,CAACO,OAAO,EAAEC,UAAU,CAAC,CAAC;EAE7BJ,SAAe,CAAC;IACZ,MAAMgB,uBAAuB,GAAG5B,aAAa,CAACQ,GAAG,CAACO,OAAO,CAAC;IAE1D,IAAIC,UAAU,KAAKY,uBAAuB,EAAE;;;;MAIxCX,aAAa,CAACW,uBAAuB,CAAC;;GAE7C,CAAC;EAEFhB,SAAe,CAAC;IACZ,IAAIH,YAAY,EAAE;MAAA;MACdE,aAAa,kBAACH,GAAG,CAACO,OAAO,kDAAX,cAAaI,qBAAqB,EAAE,CAAC;;GAE1D,EAAEV,YAAY,CAAC;EAEhB,OAAOC,UAAU;AACrB;;;;"}
1
+ {"version":3,"file":"useBoundingClientRectListener.js","sources":["../../../../../../src/hooks/useBoundingClientRectListener.ts"],"sourcesContent":["import * as React from 'react';\nimport { debounce } from '../utils/debounce';\n\nconst getVisibility = (element: HTMLElement | null): boolean =>\n Boolean(element && (element.offsetWidth || element.offsetHeight || element.getClientRects().length));\n\nexport const useBoundingClientRectListener = (\n ref: React.RefObject<HTMLElement>,\n dependencies?: Array<any>\n): DOMRectReadOnly | undefined => {\n const [dimensions, setDimensions] = React.useState<DOMRectReadOnly | undefined>(undefined);\n const isRefElementVisible = getVisibility(ref.current);\n const [visibility, setVisibility] = React.useState(isRefElementVisible);\n\n const resize = () => {\n if (visibility) {\n setDimensions(ref.current?.getBoundingClientRect());\n }\n };\n\n React.useEffect(() => {\n const timeout = setTimeout(resize, 0);\n const debouncedResize = debounce(resize, 250);\n\n window.addEventListener('resize', debouncedResize);\n\n return () => {\n clearTimeout(timeout);\n window.removeEventListener('resize', debouncedResize);\n };\n }, [ref.current, visibility]);\n\n React.useEffect(() => {\n const newRefElementVisibility = getVisibility(ref.current);\n\n if (visibility !== newRefElementVisibility) {\n // When visibility of an element changes, then the new visibility of the element can only be checked after the\n // component has rendered. That's why the visibility check is inside the useEffect. This useEffect will cause\n // the consumer to rerender and that will cause the above hook to recalculate the dimensions\n setVisibility(newRefElementVisibility);\n }\n });\n\n React.useEffect(() => {\n if (dependencies) {\n setDimensions(ref.current?.getBoundingClientRect());\n }\n }, dependencies);\n\n return dimensions;\n};\n"],"names":["getVisibility","element","Boolean","offsetWidth","offsetHeight","getClientRects","length","useBoundingClientRectListener","ref","dependencies","dimensions","setDimensions","React","undefined","isRefElementVisible","current","visibility","setVisibility","resize","getBoundingClientRect","timeout","setTimeout","debouncedResize","debounce","window","addEventListener","clearTimeout","removeEventListener","newRefElementVisibility"],"mappings":";;;AAGA,MAAMA,aAAa,GAAIC,OAA2B,IAC9CC,OAAO,CAACD,OAAO,KAAKA,OAAO,CAACE,WAAW,IAAIF,OAAO,CAACG,YAAY,IAAIH,OAAO,CAACI,cAAc,EAAE,CAACC,MAAM,CAAC,CAAC;MAE3FC,6BAA6B,GAAG,CACzCC,GAAiC,EACjCC,YAAyB;EAEzB,MAAM,CAACC,UAAU,EAAEC,aAAa,CAAC,GAAGC,QAAc,CAA8BC,SAAS,CAAC;EAC1F,MAAMC,mBAAmB,GAAGd,aAAa,CAACQ,GAAG,CAACO,OAAO,CAAC;EACtD,MAAM,CAACC,UAAU,EAAEC,aAAa,CAAC,GAAGL,QAAc,CAACE,mBAAmB,CAAC;EAEvE,MAAMI,MAAM,GAAG;IACX,IAAIF,UAAU,EAAE;MAAA;MACZL,aAAa,iBAACH,GAAG,CAACO,OAAO,iDAAX,aAAaI,qBAAqB,EAAE,CAAC;;GAE1D;EAEDP,SAAe,CAAC;IACZ,MAAMQ,OAAO,GAAGC,UAAU,CAACH,MAAM,EAAE,CAAC,CAAC;IACrC,MAAMI,eAAe,GAAGC,QAAQ,CAACL,MAAM,EAAE,GAAG,CAAC;IAE7CM,MAAM,CAACC,gBAAgB,CAAC,QAAQ,EAAEH,eAAe,CAAC;IAElD,OAAO;MACHI,YAAY,CAACN,OAAO,CAAC;MACrBI,MAAM,CAACG,mBAAmB,CAAC,QAAQ,EAAEL,eAAe,CAAC;KACxD;GACJ,EAAE,CAACd,GAAG,CAACO,OAAO,EAAEC,UAAU,CAAC,CAAC;EAE7BJ,SAAe,CAAC;IACZ,MAAMgB,uBAAuB,GAAG5B,aAAa,CAACQ,GAAG,CAACO,OAAO,CAAC;IAE1D,IAAIC,UAAU,KAAKY,uBAAuB,EAAE;;;;MAIxCX,aAAa,CAACW,uBAAuB,CAAC;;GAE7C,CAAC;EAEFhB,SAAe,CAAC;IACZ,IAAIH,YAAY,EAAE;MAAA;MACdE,aAAa,kBAACH,GAAG,CAACO,OAAO,kDAAX,cAAaI,qBAAqB,EAAE,CAAC;;GAE1D,EAAEV,YAAY,CAAC;EAEhB,OAAOC,UAAU;AACrB;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"useId.js","sources":["../../../../../../src/hooks/useId.ts"],"sourcesContent":["import { v4 as uuid } from 'uuid';\r\nimport React from 'react';\r\n\r\n// React 18 has this built-in, when we upgrade this hook should be removed and the uuid dependency should be removed\r\n\r\nexport const useId = (nativeId: string | undefined) => {\r\n return React.useMemo(() => nativeId ?? uuid(), []);\r\n};\r\n"],"names":["useId","nativeId","React","useMemo","uuid"],"mappings":";;;AAGA;MAEaA,KAAK,GAAIC,QAA4B;EAC9C,OAAOC,cAAK,CAACC,OAAO,CAAC,MAAMF,QAAQ,aAARA,QAAQ,cAARA,QAAQ,GAAIG,EAAI,EAAE,EAAE,EAAE,CAAC;AACtD;;;;"}
1
+ {"version":3,"file":"useId.js","sources":["../../../../../../src/hooks/useId.ts"],"sourcesContent":["import { v4 as uuid } from 'uuid';\nimport React from 'react';\n\n// React 18 has this built-in, when we upgrade this hook should be removed and the uuid dependency should be removed\n\nexport const useId = (nativeId: string | undefined) => {\n return React.useMemo(() => nativeId ?? uuid(), []);\n};\n"],"names":["useId","nativeId","React","useMemo","uuid"],"mappings":";;;AAGA;MAEaA,KAAK,GAAIC,QAA4B;EAC9C,OAAOC,cAAK,CAACC,OAAO,CAAC,MAAMF,QAAQ,aAARA,QAAQ,cAARA,QAAQ,GAAIG,EAAI,EAAE,EAAE,EAAE,CAAC;AACtD;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"useIsFormControl.js","sources":["../../../../../../src/hooks/useIsFormControl.ts"],"sourcesContent":["import * as React from 'react';\r\n\r\n// taken from radix\r\n// determines whether a given ref is a descendant of a form element\r\nexport const useIsFormControl = (ref: React.RefObject<HTMLElement>, reset: () => void) => {\r\n const [isFormControl, setIsFormControl] = React.useState(false);\r\n\r\n React.useEffect(() => {\r\n let formElement: HTMLFormElement | null;\r\n\r\n if (ref.current) {\r\n formElement = ref.current.closest('form');\r\n setIsFormControl(!!formElement);\r\n\r\n if (reset && formElement) {\r\n formElement.addEventListener('reset', reset);\r\n }\r\n\r\n ref.current.closest('form')?.addEventListener('reset', reset);\r\n }\r\n\r\n return () => {\r\n if (formElement) {\r\n formElement.removeEventListener('reset', reset);\r\n }\r\n };\r\n }, [ref]);\r\n\r\n return isFormControl;\r\n};\r\n"],"names":["useIsFormControl","ref","reset","isFormControl","setIsFormControl","React","formElement","current","closest","addEventListener","removeEventListener"],"mappings":";;AAEA;AACA;MACaA,gBAAgB,GAAG,CAACC,GAAiC,EAAEC,KAAiB;EACjF,MAAM,CAACC,aAAa,EAAEC,gBAAgB,CAAC,GAAGC,QAAc,CAAC,KAAK,CAAC;EAE/DA,SAAe,CAAC;IACZ,IAAIC,WAAmC;IAEvC,IAAIL,GAAG,CAACM,OAAO,EAAE;MAAA;MACbD,WAAW,GAAGL,GAAG,CAACM,OAAO,CAACC,OAAO,CAAC,MAAM,CAAC;MACzCJ,gBAAgB,CAAC,CAAC,CAACE,WAAW,CAAC;MAE/B,IAAIJ,KAAK,IAAII,WAAW,EAAE;QACtBA,WAAW,CAACG,gBAAgB,CAAC,OAAO,EAAEP,KAAK,CAAC;;MAGhD,wBAAAD,GAAG,CAACM,OAAO,CAACC,OAAO,CAAC,MAAM,CAAC,yDAA3B,qBAA6BC,gBAAgB,CAAC,OAAO,EAAEP,KAAK,CAAC;;IAGjE,OAAO;MACH,IAAII,WAAW,EAAE;QACbA,WAAW,CAACI,mBAAmB,CAAC,OAAO,EAAER,KAAK,CAAC;;KAEtD;GACJ,EAAE,CAACD,GAAG,CAAC,CAAC;EAET,OAAOE,aAAa;AACxB;;;;"}
1
+ {"version":3,"file":"useIsFormControl.js","sources":["../../../../../../src/hooks/useIsFormControl.ts"],"sourcesContent":["import * as React from 'react';\n\n// taken from radix\n// determines whether a given ref is a descendant of a form element\nexport const useIsFormControl = (ref: React.RefObject<HTMLElement>, reset: () => void) => {\n const [isFormControl, setIsFormControl] = React.useState(false);\n\n React.useEffect(() => {\n let formElement: HTMLFormElement | null;\n\n if (ref.current) {\n formElement = ref.current.closest('form');\n setIsFormControl(!!formElement);\n\n if (reset && formElement) {\n formElement.addEventListener('reset', reset);\n }\n\n ref.current.closest('form')?.addEventListener('reset', reset);\n }\n\n return () => {\n if (formElement) {\n formElement.removeEventListener('reset', reset);\n }\n };\n }, [ref]);\n\n return isFormControl;\n};\n"],"names":["useIsFormControl","ref","reset","isFormControl","setIsFormControl","React","formElement","current","closest","addEventListener","removeEventListener"],"mappings":";;AAEA;AACA;MACaA,gBAAgB,GAAG,CAACC,GAAiC,EAAEC,KAAiB;EACjF,MAAM,CAACC,aAAa,EAAEC,gBAAgB,CAAC,GAAGC,QAAc,CAAC,KAAK,CAAC;EAE/DA,SAAe,CAAC;IACZ,IAAIC,WAAmC;IAEvC,IAAIL,GAAG,CAACM,OAAO,EAAE;MAAA;MACbD,WAAW,GAAGL,GAAG,CAACM,OAAO,CAACC,OAAO,CAAC,MAAM,CAAC;MACzCJ,gBAAgB,CAAC,CAAC,CAACE,WAAW,CAAC;MAE/B,IAAIJ,KAAK,IAAII,WAAW,EAAE;QACtBA,WAAW,CAACG,gBAAgB,CAAC,OAAO,EAAEP,KAAK,CAAC;;MAGhD,wBAAAD,GAAG,CAACM,OAAO,CAACC,OAAO,CAAC,MAAM,CAAC,yDAA3B,qBAA6BC,gBAAgB,CAAC,OAAO,EAAEP,KAAK,CAAC;;IAGjE,OAAO;MACH,IAAII,WAAW,EAAE;QACbA,WAAW,CAACI,mBAAmB,CAAC,OAAO,EAAER,KAAK,CAAC;;KAEtD;GACJ,EAAE,CAACD,GAAG,CAAC,CAAC;EAET,OAAOE,aAAa;AACxB;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"useMergedRef.js","sources":["../../../../../../src/hooks/useMergedRef.ts"],"sourcesContent":["import React from 'react';\r\n\r\n// merges an external ref (optional) with an internal ref (required)\r\nexport const useMergedRef = <T extends HTMLElement>(ref: React.Ref<HTMLElement>): React.RefObject<T> => {\r\n const internalRef = React.useRef<T>(null);\r\n\r\n React.useEffect(() => {\r\n if (ref) {\r\n if (typeof ref === 'function') {\r\n ref(internalRef.current);\r\n } else {\r\n (ref as React.MutableRefObject<HTMLElement | null>).current = internalRef.current;\r\n }\r\n }\r\n }, [ref]);\r\n\r\n return internalRef;\r\n};\r\n"],"names":["useMergedRef","ref","internalRef","React","useRef","useEffect","current"],"mappings":";;AAEA;MACaA,YAAY,GAA2BC,GAA2B;EAC3E,MAAMC,WAAW,GAAGC,cAAK,CAACC,MAAM,CAAI,IAAI,CAAC;EAEzCD,cAAK,CAACE,SAAS,CAAC;IACZ,IAAIJ,GAAG,EAAE;MACL,IAAI,OAAOA,GAAG,KAAK,UAAU,EAAE;QAC3BA,GAAG,CAACC,WAAW,CAACI,OAAO,CAAC;OAC3B,MAAM;QACFL,GAAkD,CAACK,OAAO,GAAGJ,WAAW,CAACI,OAAO;;;GAG5F,EAAE,CAACL,GAAG,CAAC,CAAC;EAET,OAAOC,WAAW;AACtB;;;;"}
1
+ {"version":3,"file":"useMergedRef.js","sources":["../../../../../../src/hooks/useMergedRef.ts"],"sourcesContent":["import React from 'react';\n\n// merges an external ref (optional) with an internal ref (required)\nexport const useMergedRef = <T extends HTMLElement>(ref: React.Ref<HTMLElement>): React.RefObject<T> => {\n const internalRef = React.useRef<T>(null);\n\n React.useEffect(() => {\n if (ref) {\n if (typeof ref === 'function') {\n ref(internalRef.current);\n } else {\n (ref as React.MutableRefObject<HTMLElement | null>).current = internalRef.current;\n }\n }\n }, [ref]);\n\n return internalRef;\n};\n"],"names":["useMergedRef","ref","internalRef","React","useRef","useEffect","current"],"mappings":";;AAEA;MACaA,YAAY,GAA2BC,GAA2B;EAC3E,MAAMC,WAAW,GAAGC,cAAK,CAACC,MAAM,CAAI,IAAI,CAAC;EAEzCD,cAAK,CAACE,SAAS,CAAC;IACZ,IAAIJ,GAAG,EAAE;MACL,IAAI,OAAOA,GAAG,KAAK,UAAU,EAAE;QAC3BA,GAAG,CAACC,WAAW,CAACI,OAAO,CAAC;OAC3B,MAAM;QACFL,GAAkD,CAACK,OAAO,GAAGJ,WAAW,CAACI,OAAO;;;GAG5F,EAAE,CAACL,GAAG,CAAC,CAAC;EAET,OAAOC,WAAW;AACtB;;;;"}
@@ -1 +1 @@
1
- {"version":3,"file":"usePrevious.js","sources":["../../../../../../src/hooks/usePrevious.ts"],"sourcesContent":["import React from 'react';\r\n\r\n// taken from radix\r\nfunction usePreviousValue<T>(value: T) {\r\n // The ref object is a generic container whose current property is mutable ...\r\n // ... and can hold any value, similar to an instance property on a class\r\n const ref = React.useRef<T>(value);\r\n\r\n // Store current value in ref\r\n React.useEffect(() => {\r\n ref.current = value;\r\n }, [value]); // Only re-run if value changes\r\n\r\n // Return previous value (happens before update in useEffect above)\r\n return ref.current;\r\n}\r\n\r\nexport { usePreviousValue };\r\n"],"names":["usePreviousValue","value","ref","React","useRef","useEffect","current"],"mappings":";;AAEA;AACA,SAASA,gBAAgB,CAAIC,KAAQ;;;EAGjC,MAAMC,GAAG,GAAGC,cAAK,CAACC,MAAM,CAAIH,KAAK,CAAC;;EAGlCE,cAAK,CAACE,SAAS,CAAC;IACZH,GAAG,CAACI,OAAO,GAAGL,KAAK;GACtB,EAAE,CAACA,KAAK,CAAC,CAAC,CAAC;;EAGZ,OAAOC,GAAG,CAACI,OAAO;AACtB;;;;"}
1
+ {"version":3,"file":"usePrevious.js","sources":["../../../../../../src/hooks/usePrevious.ts"],"sourcesContent":["import React from 'react';\n\n// taken from radix\nfunction usePreviousValue<T>(value: T) {\n // The ref object is a generic container whose current property is mutable ...\n // ... and can hold any value, similar to an instance property on a class\n const ref = React.useRef<T>(value);\n\n // Store current value in ref\n React.useEffect(() => {\n ref.current = value;\n }, [value]); // Only re-run if value changes\n\n // Return previous value (happens before update in useEffect above)\n return ref.current;\n}\n\nexport { usePreviousValue };\n"],"names":["usePreviousValue","value","ref","React","useRef","useEffect","current"],"mappings":";;AAEA;AACA,SAASA,gBAAgB,CAAIC,KAAQ;;;EAGjC,MAAMC,GAAG,GAAGC,cAAK,CAACC,MAAM,CAAIH,KAAK,CAAC;;EAGlCE,cAAK,CAACE,SAAS,CAAC;IACZH,GAAG,CAACI,OAAO,GAAGL,KAAK;GACtB,EAAE,CAACA,KAAK,CAAC,CAAC,CAAC;;EAGZ,OAAOC,GAAG,CAACI,OAAO;AACtB;;;;"}